本發(fā)明屬于機器人領(lǐng)域,尤其涉及一種基于自然語言的機器人交互方法和系統(tǒng)。
背景技術(shù):
目前,機器人的使用已經(jīng)逐漸普及到各個領(lǐng)域,例如,聊天機器人、酒店或銀行的前臺服務(wù)機器人、深海水下探測機器人以及產(chǎn)線包裝機器人,等等。目前的機器人采用的交互方式包括:鍵盤/按鍵操作、顯示屏菜單操作、單片機控制下的固定動作的控制以及語音控制(固定模式的語音控制或簡單的聊天功能),等等。
上述現(xiàn)有的交互方式中,傳統(tǒng)的鍵盤/按鍵和顯示屏操作方式,其主要的缺陷是帶來比較繁瑣的點擊操作,外出或者遠(yuǎn)距離操作上更是不方便,而語音控制的交互方式目前雖然已經(jīng)達(dá)到了一個較高的水準(zhǔn),但是還存在不確定性的問題,例如,很多情況下用戶問了機器卻沒有回復(fù),一方面是機器無法準(zhǔn)確識別語音內(nèi)容,另一方面就是系統(tǒng)可能不支持用戶的語音控制命令或者是識別了語音但是卻無法理解。
基于便捷與不確定性的考慮,“能動嘴說話解決的,就不要動手去操控”,一種方案解決上述交互方式缺陷的是自然語音的交互。當(dāng)用戶不想進行繁瑣復(fù)雜的點擊操作時,僅僅需要用戶輕輕說幾句話就可以遠(yuǎn)程操控機器人,實現(xiàn)這一交互方式的前提是機器人能夠準(zhǔn)確理解語義,在此基礎(chǔ)上處理用戶的指令,這也是衡量一個語音交互系統(tǒng)智慧程度至關(guān)重要的一環(huán)。遺憾的是,目前業(yè)界在這一點上仍然存在不足,導(dǎo)致人機(用戶與機器人)交互仍然不暢通。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于自然語言的機器人交互方法和系統(tǒng),以提高機器人的智能和人機交互的便捷性。
本發(fā)明第一方面提供一種基于自然語言的機器人交互方法,所述方法應(yīng)用于包括機器人前端和機器人云服務(wù)器組成的系統(tǒng),所述機器人前端包括語音接收模塊、語音播報模塊和語音交互處理模塊,所述方法包括:
在機器人處于喚醒狀態(tài)下,所述語音接收模塊將接收到的自然語音識別為對應(yīng)的文字信息;
若所述文字信息屬于操控指令,則所述語音交互處理模塊下發(fā)所述操控指令至機器人本體執(zhí)行操控指令,若所述文字信息屬于問答信息,則將所述問答信息上傳至機器人云服務(wù)器;
所述機器人云服務(wù)器對所述問答信息進行智能識別,將進行智能識別后得到的問題答案反饋至所述語音交互處理模塊;
所述語音交互處理模塊將所述問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息;
所述語音播報模塊向用戶播報所述問題答案對應(yīng)的語音信息。
本發(fā)明第二方面提供一種基于自然語言的機器人交互系統(tǒng),所述系統(tǒng)包括機器人前端和機器人云服務(wù)器,所述機器人前端包括語音接收模塊、語音播報模塊和語音交互處理模塊;
所述語音接收模塊,用于在機器人處于喚醒狀態(tài)下,將接收到的自然語音識別為對應(yīng)的文字信息;
所述語音交互處理模塊,用于若所述文字信息屬于操控指令時下發(fā)所述操控指令至機器人本體執(zhí)行操控指令,若所述文字信息屬于問答信息時將所述問答信息上傳至機器人云服務(wù)器;
所述機器人云服務(wù)器,用于對所述問答信息進行智能識別,將進行智能識別后得到的問題答案反饋至所述語音交互處理模塊;
所述語音交互處理模塊,用于將所述問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息;
所述語音播報模塊,用于向用戶播報所述問題答案對應(yīng)的語音信息。
從上述本發(fā)明技術(shù)方案可知,由于在機器人處于喚醒狀態(tài)下,機器人前端的語音接收模塊能夠?qū)⒔邮盏降淖匀徽Z音識別為對應(yīng)的文字信息并分類處理,將屬于問答信息的文字信息上傳至機器人云服務(wù)器,由機器人云服務(wù)器對所述問答信息進行智能識別后得到的問題答案反饋至機器人前端的語音交互處理模塊,再由語音交互處理模塊將問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息,語音播報模塊向用戶播報所述問題答案對應(yīng)的語音信息。因此,本發(fā)明提供的技術(shù)方案提高了機器人人機交互系統(tǒng)的智能化水平,能夠準(zhǔn)確識別用戶的自然語音的含義,執(zhí)行相應(yīng)的操作,從而使得人機交互更加順暢和便捷。
附圖說明
圖1是本發(fā)明實施例一提供的基于自然語言的機器人交互方法的實現(xiàn)流程示意圖;
圖2是本發(fā)明實施例二提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例三提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例四提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖5-a是本發(fā)明實施例五提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖5-b是本發(fā)明實施例六提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖5-c是本發(fā)明實施例七提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖6-a是本發(fā)明實施例八提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖6-b是本發(fā)明實施例九提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖6-c是本發(fā)明實施例十提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例提供一種基于自然語言的機器人交互方法,所述方法應(yīng)用于包括機器人前端和機器人云服務(wù)器組成的系統(tǒng),所述機器人前端包括語音接收模塊、語音播報模塊和語音交互處理模塊,所述方法包括:在機器人處于喚醒狀態(tài)下,所述語音接收模塊將接收到的自然語音識別為對應(yīng)的文字信息;若所述文字信息屬于操控指令,則所述語音交互處理模塊下發(fā)所述操控指令至機器人本體執(zhí)行操控指令,若所述文字信息屬于問答信息,則將所述問答信息上傳至機器人云服務(wù)器;所述機器人云服務(wù)器對所述問答信息進行智能識別,將進行智能識別后得到的問題答案反饋至所述語音交互處理模塊;所述語音交互處理模塊將所述問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息;所述語音播報模塊向用戶播報所述問題答案對應(yīng)的語音信息。本發(fā)明實施例還提供相應(yīng)的基于自然語言的機器人交互系統(tǒng)。以下分別進行詳細(xì)說明。
請參閱附圖1,是本發(fā)明實施例一提供的基于自然語言的機器人交互方法的實現(xiàn)流程示意圖,該方法應(yīng)用于包括機器人前端和機器人云服務(wù)器組成的系統(tǒng),其中,機器人前端包括語音接收模塊、語音播報模塊和語音交互處理模塊。附圖1示例的基于自然語言的機器人交互方法主要包括以下步驟s101至步驟s105,詳細(xì)說明如下:
s101,在機器人處于喚醒狀態(tài)下,語音接收模塊將接收到的自然語音識別為對應(yīng)的文字信息。
需要說明的是,在步驟s101之前,系統(tǒng)可以進行一個初始化過程,主要包括機器人前端的初始化和機器人后端大腦數(shù)據(jù)的初始化,其中,機器人前端的初始化包括從機器人云服務(wù)器接收指令參數(shù)數(shù)據(jù)(常用的用戶指令數(shù)據(jù)和同義詞表等數(shù)據(jù)),并初始化本地的業(yè)務(wù)邏輯,設(shè)置系統(tǒng)參數(shù)(包括波特率、語音格式和聲道等數(shù)據(jù))以及啟動監(jiān)聽喚醒服務(wù)進程,即啟動機器人“聽”和“說”的功能。而機器人后端大腦數(shù)據(jù)的初始化相對要復(fù)雜一些,主要是錄入機器人領(lǐng)域?qū)I(yè)數(shù)據(jù)和個性數(shù)據(jù),其中,個性數(shù)據(jù)是指每個機器人都有的一套自己的屬性庫即個性(例如,興趣愛好、姓名、性別、特長、居住城市、所屬公司、年齡、喜歡的顏色和運動等),系統(tǒng)根據(jù)每個機器人的屬性庫,分別建立情緒引擎,使每個機器人都具有自己的個性情緒,例如,如果你哈哈大笑,它會知道你現(xiàn)在很開心,如果你皺眉,它就明白有什么事在困擾你,等等;機器人領(lǐng)域?qū)I(yè)數(shù)據(jù)是指根據(jù)機器人的領(lǐng)域和作用域,分別錄入該領(lǐng)域內(nèi)的機器人的指令數(shù)據(jù)和該領(lǐng)域內(nèi)的容易混淆的文字?jǐn)?shù)據(jù),例如,同音字、同義詞、停止詞、近義詞以及大量的通用語料數(shù)據(jù)等,人要聰明就要學(xué)習(xí),機器人也一樣,也要不斷的學(xué)習(xí),才會變得聰明,機器人的學(xué)習(xí)分為兩個階段,初級階段和高級智階段,其中,初級階段就是機器人被動接受新事物、新思維、新知識,即不斷地訓(xùn)練機器人,給它輸入更多的數(shù)據(jù),使其能掌握更多的知識,機器人后臺提供一個對機器人進行訓(xùn)練的功能,采用的方法是模擬現(xiàn)實的問答錄入大量的模板問答數(shù)據(jù),這些數(shù)據(jù)分為兩類,一類是機器人領(lǐng)域?qū)I(yè)數(shù)據(jù),如果有現(xiàn)成的文字?jǐn)?shù)據(jù)則直接導(dǎo)入到后臺語料數(shù)據(jù)庫中,如果沒有則要錄入專業(yè)的問答數(shù)據(jù),另一類是非專業(yè)數(shù)據(jù),包括個性數(shù)據(jù),這類非專業(yè)數(shù)據(jù)就像人們?nèi)粘υ捯粯?,例如,你好、你叫什么名字?你老家在哪里?你幾歲了?等等。
需要說明的是,機器人的狀態(tài)分為休眠狀態(tài)和喚醒狀態(tài),其中,休眠狀態(tài)是指機器人接收語音,但是不處理除喚醒詞外的語音信息,而喚醒狀態(tài)是指機器人正常接收外部語音信息并記錄外部語音信息。若機器人在休眠狀態(tài),則接收語音并處理,檢查收到的語音是否是喚醒詞,若不是則忽略該條信息,若收到的語音是喚醒詞,則激活機器人狀態(tài),使之成為喚醒狀態(tài),開始正常接收語音信息并向下一個環(huán)節(jié)傳遞語音信息,機器人收到的語音數(shù)據(jù)包含噪音、回聲以及正常的語音數(shù)據(jù),因此,在正常進行喚醒處理之前,要采用回聲消除和抑噪處理,如此,在一定程度上可以提高語音喚醒機器人的概率。
作為本發(fā)明一個實施例,語音接收模塊將接收到的自然語音識別為對應(yīng)的文字信息主要包括:判斷自然語音屬于靜音還是非靜音,若自然語音屬于非靜音,則記錄所述非靜音的數(shù)據(jù)并處理所述非靜音的數(shù)據(jù)。系統(tǒng)時刻計算自然語音的音量分貝,若音量分貝小于某個音量閾值,則認(rèn)為是無語音輸入即此時的自然語音是靜音,若自然語音的音量分貝大于閾值,則認(rèn)為有語音輸入即此時的自然語音為非靜音。在判斷自然語音是靜音時,機器人則丟棄此時的自然語音,不做處理;在判斷自然語音是非靜音時,則認(rèn)為是有效數(shù)據(jù),開始記錄語音數(shù)據(jù),系統(tǒng)隨時根據(jù)靜音時長判斷語音輸入是否結(jié)束,機器人獲取到有效數(shù)據(jù)后,則開始處理語音數(shù)據(jù)。
s102,若語音接收模塊識別出的文字信息屬于操控指令,則語音交互處理模塊下發(fā)操控指令至機器人本體執(zhí)行操控指令,若語音接收模塊識別出的文字信息屬于問答信息,則將問答信息上傳至機器人云服務(wù)器。
在本發(fā)明實施例中,操控指令可以語音控制機器人的行走、轉(zhuǎn)向、調(diào)整機器的狀態(tài)(包括開機、關(guān)機和運行模式等)、播放音樂和調(diào)整風(fēng)速等。若語音接收模塊識別出的文字信息屬于操控指令,則語音交互處理模塊下發(fā)操控指令至機器人本體執(zhí)行操控指令,控制機器人的上述行為。若語音接收模塊識別出的文字信息屬于問答信息,則將問答信息上傳至機器人云服務(wù)器,由機器人云服務(wù)器進行問答處理。
s103,機器人云服務(wù)器對問答信息進行智能識別,將進行智能識別后得到的問題答案反饋至語音交互處理模塊。
在本發(fā)明實施例中,機器人云服務(wù)器對問答信息進行智能識別包括:將所述問答信息進行分類,并根據(jù)所述問答信息所屬的業(yè)務(wù)類別進行相應(yīng)的處理。具體地,機器人云服務(wù)器可根據(jù)問答信息,將問答信息進行分類處理,分類參照前期用戶設(shè)定的模板或者模板語料進行智能識別,識別該問答信息是屬于哪個類別(例如,詢問天氣、空氣質(zhì)量、汽車違章和何種星座等),然后進入該類別的分支進行業(yè)務(wù)處理。
需要說明的是,為了提高機器人云服務(wù)器對問答信息進行智能識別的速度和準(zhǔn)確率,本發(fā)明采用了lucene倒排索引和/或編輯距離等算法。lucene是一個高性能的全文檢索工具,不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎,其具有如下突出的優(yōu)點:(1)索引文件格式獨立于應(yīng)用平臺,主要在于lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺的應(yīng)用能夠共享建立的索引文件;(2)在傳統(tǒng)全文檢索引擎的倒排索引的基礎(chǔ)上,實現(xiàn)了分塊索引,能夠針對新的文件建立小文件索引,提升索引速度,然后通過與原有索引的合并,達(dá)到優(yōu)化的目的,該框架已經(jīng)默認(rèn)實現(xiàn)了一套強大的查詢引擎,可獲得強大的查詢能力,lucene的查詢實現(xiàn)中默認(rèn)實現(xiàn)了布爾操作、模糊查詢(fuzzysearch)和分組查詢等。而編輯距離算法的公式如下:
編輯距離算法是指從字符串a(chǎn)變成字符串b時所需的最少編輯操作(包括增加、刪除和插入字符串等)次數(shù),在本發(fā)明實施例中,用于求解兩個字符串的相似度;一般而言,編輯距離越小,兩個串的相似度越大。
s104,語音交互處理模塊將機器人云服務(wù)器進行智能識別后得到的問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息。
s105,語音播報模塊向用戶播報問題答案對應(yīng)的語音信息。
如果不考慮語音播報的流暢性,上述步驟s103至s105順次執(zhí)行,即,機器人云服務(wù)器將進行智能識別后得到的問題答案反饋至語音交互處理模塊后,語音交互處理模塊將機器人云服務(wù)器進行智能識別后得到的問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息,語音播報模塊再向用戶播報問題答案對應(yīng)的語音信息。
為了增強語音播報的流暢性,在本發(fā)明實施例中,語音交互處理模塊還可以將機器人云服務(wù)器反饋回來的問題答案上傳至機器人云服務(wù)器,以使機器人云服務(wù)器將所述問題答案分段轉(zhuǎn)化為語音流,此時,語音播報模塊向用戶播報所述問題答案對應(yīng)的語音信息可以是:語音交互處理模塊從機器人云服務(wù)器下載分段轉(zhuǎn)化得到的語音流并傳輸至語音收發(fā)模塊的同時,語音播報模塊向用戶播報分段轉(zhuǎn)化后得到的語音流,即,語音交互處理模塊一邊從機器人云服務(wù)器下載分段轉(zhuǎn)化得到的語音流并傳輸至語音收發(fā)模塊,語音播報模塊一邊向用戶播報分段轉(zhuǎn)化后得到的語音流,兩者并行執(zhí)行,直到收到結(jié)束標(biāo)識,語音播報模塊才停止播放,這種并行執(zhí)行的方式可以明顯地節(jié)省時間,等待延遲時間較少。
在上述本發(fā)明提供的實施例中,在語音播報模塊向用戶播報問題答案對應(yīng)的語音信息時,若用戶發(fā)出停止播報的語音信息,則采用回波抵消算法消除語音播報模塊所播報語音的回聲,以便語音接收模塊接收用戶發(fā)出的停止播報的語音指令,用戶隨時打斷機器人的語音播報。
從上述附圖1示例的基于自然語言的機器人交互方法可知,由于在機器人處于喚醒狀態(tài)下,機器人前端的語音接收模塊能夠?qū)⒔邮盏降淖匀徽Z音識別為對應(yīng)的文字信息并分類處理,將屬于問答信息的文字信息上傳至機器人云服務(wù)器,由機器人云服務(wù)器對所述問答信息進行智能識別后得到的問題答案反饋至機器人前端的語音交互處理模塊,再由語音交互處理模塊將問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息,語音播報模塊向用戶播報所述問題答案對應(yīng)的語音信息。因此,本發(fā)明提供的技術(shù)方案提高了機器人人機交互系統(tǒng)的智能化水平,能夠準(zhǔn)確識別用戶的自然語音的含義,執(zhí)行相應(yīng)的操作,從而使得人機交互更加順暢和便捷。
請參閱附圖2,是本發(fā)明實施例二提供的基于自然語言的機器人交互系統(tǒng)的結(jié)構(gòu)示意圖。為了便于說明,附圖2僅示出了與本發(fā)明實施例相關(guān)的部分。附圖2示例的基于自然語言的機器人交互系統(tǒng)主要包括機器人前端201和機器人云服務(wù)器202,其中,機器人前端201包括語音接收模塊203、語音播報模塊204和語音交互處理模塊205,詳細(xì)說明如下:
語音接收模塊203,用于在機器人處于喚醒狀態(tài)下,將接收到的自然語音識別為對應(yīng)的文字信息;
語音交互處理模塊204,用于若語音接收模塊203識別出的文字信息屬于操控指令時下發(fā)操控指令至機器人本體執(zhí)行操控指令,若語音接收模塊203識別出的文字信息屬于問答信息時將問答信息上傳至機器人云服務(wù)器202;
機器人云服務(wù)器202,用于對問答信息進行智能識別,將進行智能識別后得到的問題答案反饋至語音交互處理模塊205;
語音交互處理模塊205,用于將問題答案轉(zhuǎn)換為問題答案對應(yīng)的語音信息;
語音播報模塊204,用于向用戶播報問題答案對應(yīng)的語音信息。
附圖2示例的語音接收模塊203包括判斷單元301和處理單元302,如附圖3所示本發(fā)明實施例三提供的基于自然語言的機器人交互系統(tǒng),其中:
判斷單元301,用于判斷自然語音屬于靜音還是非靜音;
處理單元302,用于若判斷單元301的判斷結(jié)果為自然語音屬于非靜音,則記錄非靜音的數(shù)據(jù)并處理非靜音的數(shù)據(jù)。
附圖2示例的機器人云服務(wù)器202包括分類處理模塊401,如附圖4所示本發(fā)明實施例四提供的基于自然語言的機器人交互系統(tǒng)。分類處理模塊401用于將問答信息進行分類,并根據(jù)問答信息所屬的業(yè)務(wù)類別進行相應(yīng)的處理。
附圖2至附圖4任一示例的語音交互處理模塊204還可以包括上傳單元501,語音播報模塊204還可以包括語音流播放單元502,如附圖5-a至附圖5-c實施例五至實施例七提供的基于自然語言的機器人交互系統(tǒng),其中:
上傳單元501,用于將問題答案上傳至機器人云服務(wù)器202,以使機器人云服務(wù)器202將問題答案分段轉(zhuǎn)化為語音流;
語音流播放單元502,用于語音交互處理模塊205從機器人云服務(wù)器202下載語音流并傳輸至語音收發(fā)模塊203的同時,向用戶播報分段轉(zhuǎn)化后得到的語音流。
附圖2至附圖4任一示例的基于自然語言的機器人交互系統(tǒng)還可以包括回波抵消模塊601,如附圖6-a至附圖6-c實施例八至實施例十提供的基于自然語言的機器人交互系統(tǒng)?;夭ǖ窒K601用于在語音播報模塊204向用戶播報問題答案對應(yīng)的語音信息時,若用戶發(fā)出停止播報的語音信息,則采用回波抵消算法消除語音播報模塊204所播報語音的回聲,以便語音接收模塊203接收用戶發(fā)出的停止播報的語音指令。
需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實施例相同,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(rom,readonlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的基于自然語言的機器人交互方法和系統(tǒng)進行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。