本發(fā)明涉及執(zhí)行人形機器人與用戶或?qū)υ捳?其通常是人)之間的所謂的“多模式”對話的方法。本發(fā)明還涉及用于實施這樣的方法的計算機程序產(chǎn)品和人形機器人。
背景技術(shù):
“人形機器人”可以被定義為具有人類的外觀和功能(例如軀干、頭部、手臂、腿部)的某些屬性、使用語音識別和聲音合成與人類口頭溝通的能力等的機器人。這種種類的機器人目的在于減小人與機器之間的認知距離。人形機器人的最重要的特性之一是它盡可能自然地支持與人類對話者的對話的能力。這個能力對于“伴侶機器人”的開發(fā)是必不可少的,以在日常生活的需要中幫助老年人、病人或僅僅孤獨的人并且給這些人提供可接受的(也從情感發(fā)面看)對人類個人助手的存在的替代物。為此,有必要開發(fā)這樣的人形機器人以盡可能接近地模仿人類行為的方式與人類交互的能力。具體而言,有必要的是機器人可以解釋人類的問題或陳述,產(chǎn)生在對話模式中的復制物,許多表達對應(yīng)于人類的表達和與典型的人類行為和情感的類型協(xié)作的表達的模式。
由于對NaoTM人形機器人進行編程的方法,已經(jīng)在這個方向上做出了第一步,NaoTM人形機器人由申請人在市場上出售并且在關(guān)于機器人玩家的國際專利申請WO2012/000927中和在關(guān)于具有自然界面對話的人形機器人的國際專利申請WO2012/010451中被公開。
然而,由這些文件公開的機器人可能只執(zhí)行有限和預定的對話要素。
國際專利申請WO2013/150076描述了具有對話代理、語音識別工具和用于分析對話者的行為的工具的人形機器人,其顯示比先前存在的機器人的對話能力更豐富的對話能力。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于改進這樣的人形機器人,使與人類對話者的交互變得更豐富和更現(xiàn)實。具體而言,本發(fā)明包括被稱為“Juliette”的項目,其目的在于通過提供具有解釋用戶的動作的能力的機器人來提高人類-機器人交互。
允許實現(xiàn)這樣的目標的本發(fā)明的目的是執(zhí)行根據(jù)權(quán)利要求1的人形機器人與至少一個用戶之間的對話的方法,該方法包括由所述人形機器人反復執(zhí)行的以下步驟:
ⅰ)從相應(yīng)的傳感器獲得多個輸入信號,至少一個所述傳感器是聲音傳感器,并且至少一個另一種傳感器是運動或圖像傳感器;
ⅱ)解釋所獲得的信號以識別由所述用戶產(chǎn)生的多個事件,所述事件選自于包括以下各項的組:說出至少詞或句子、語音的語調(diào)、手勢、身體姿勢、面部表達;
ⅲ)確定所述人形機器人的響應(yīng),該響應(yīng)包括至少一個事件,所述至少一個事件選自于包括以下各項的組:說出至少詞或句子、語音的語調(diào)、手勢、身體姿勢、面部表達,通過應(yīng)用一組規(guī)則來執(zhí)行所述確定,每個所述規(guī)則使一組輸入事件與機器人的響應(yīng)相關(guān)聯(lián);
ⅳ)由所述人形機器人產(chǎn)生所述或每個所述事件;
其特征在于,在所述步驟ⅲ)應(yīng)用的所述規(guī)則中的至少一些規(guī)則使響應(yīng)與由所述用戶共同地產(chǎn)生并且在所述步驟ⅱ)識別出的至少兩個事件的組合相關(guān)聯(lián),其中至少一個事件不是由所述用戶說出的詞或句子。
這樣的方法的特定實施例構(gòu)成從屬權(quán)利要求的主題。
本發(fā)明的另一個目的是包括程序代碼指令的計算機程序產(chǎn)品,所述程序代碼指令用于在所述程序由嵌入在人形機器人上的至少一個處理器執(zhí)行時執(zhí)行這樣的方法,所述機器人包括:多個傳感器,其操作地連接到所述或至少一個處理器并且包括至少一個聲音傳感器和至少一個圖像或運動傳感器,以獲得相應(yīng)的輸入信號;語言合成模塊,其由所述或至少一個所述處理器控制以說出詞或句子;以及一組執(zhí)行器,其由所述或至少一個所述處理器驅(qū)動,從而使所述機器人能夠執(zhí)行多個運動或手勢。
本發(fā)明的又一目的是人形機器人,其包括:
-至少一個嵌入式處理器;
-傳感器組件,其操作地連接到所述或至少一個所述處理器并且包括至少一個聲音傳感器和至少一個圖像或運動傳感器,以獲得相應(yīng)的輸入信號;
-語言合成模塊,其由所述或至少一個所述處理器驅(qū)動以說出詞或句子;以及
-一組執(zhí)行器,其由所述或至少一個所述處理器驅(qū)動,從而使所述機器人能夠執(zhí)行多個運動或手勢;
其特征在于,所述或至少一個所述處理器被編程或被配置為實行根據(jù)本發(fā)明的實施例的方法。
這樣的人形機器人還可以包括用于連接到至少一個遠程服務(wù)器的設(shè)備,所述或至少一個所述處理器被編程或被配置為與所述或至少一個所述遠程服務(wù)器協(xié)作以實行根據(jù)本發(fā)明的實施例的方法。
附圖說明
當對參考通過示例的方式給出的附圖做出的以下描述進行閱讀時,本發(fā)明的其它特征、細節(jié)和優(yōu)點將變得顯而易見,其中:
-圖1示出了適合于實施本發(fā)明的人形機器人的物理架構(gòu);
-圖2是示出根據(jù)本發(fā)明的實施例的方法的步驟和用于該方法的實施方式的硬件和軟件模塊的布置的圖;
-圖3是示出根據(jù)本發(fā)明的一個實施例的“前攝”對話的實施方式的圖;
-圖4是示出根據(jù)本發(fā)明的實施例的使人形機器人的響應(yīng)動畫化的步驟的圖;
-圖5a、5b和5c是用于確定要進行動畫化的一個或多個詞的句子的句法分析的三個示例;
-圖6示出了根據(jù)本發(fā)明的實施例的機器人相對于用戶的位置的伺服控制;
-圖7是示出根據(jù)本發(fā)明的一個實施例的識別事件的步驟的圖;以及
-圖8是示出根據(jù)本發(fā)明的一個實施例的語音語言識別的步驟的圖。
圖1顯示在本發(fā)明的多個實施例中的人形機器人的物理架構(gòu)。
具體實施方式
附圖上的特定機器人R僅被當作本發(fā)明可以實施的人形機器人的示例。附圖上的機器人的下肢不具備行走的功能,但可以用它的底座RB在任何方向上運動,底座RB在其放置于的表面上滾動。本發(fā)明可以容易地實施在適于行走的機器人中。通過示例的方式,該機器人具有可以是大約120cm的高度H、大約65cm的深度D和大約40cm的寬度W。在具體實施例中,本發(fā)明的機器人具有平板電腦RT,利用平板電腦RT機器人可以向其周圍環(huán)境傳達消息(音頻、視頻、網(wǎng)頁),或通過平板電腦的觸覺界面接收來自用戶的輸入。除了平板電腦的處理器以外,本發(fā)明的機器人還使用其自身母板的處理器,該處理器可以是例如來自InterTM的ATOMTM Z530。在本發(fā)明的具體實施例中,本發(fā)明的機器人還有利地包括專用于處理母板且尤其是容納磁性旋轉(zhuǎn)編碼器(MRE)和傳感器的板之間的數(shù)據(jù)流的處理器,所述傳感器控制肢體中的關(guān)節(jié)的發(fā)動機以及被機器人用作輪子的球體。根據(jù)明確的關(guān)節(jié)所需的最大轉(zhuǎn)矩的大小,發(fā)動機可以是不同的類型。例如,可以使用來自e-minebeaTM的有刷DC無芯發(fā)動機(例如SE24P2CTCA)或來自MaxonTM的無刷DC發(fā)動機(例如EC45_70W)。優(yōu)選地,MRE是具有12位或14位準確度的使用霍爾效應(yīng)的類型。
在本發(fā)明的實施例中,圖1上顯示的機器人還包括各種種類的傳感器。這些傳感器中的一些傳感器用于控制機器人的位置和運動。這是例如位于機器人的軀干中的慣性單元的情況,所述慣性單元包括3軸陀螺儀和3軸加速度計。機器人還可以包括位于片上系統(tǒng)(SOC)類型的機器人(頂部和底部)的前額上的兩個2D彩色RGB相機,例如來自Shenzen V-Vision Technology LtdTM的相機(OV5640),其具有以每秒5幀的500萬像素分辨率以及大約57°水平和44°垂直的視場(FOV)。在機器人眼睛的后方還可以包括一個3D傳感器,例如具有以每秒20幀的30萬像素的分辨率的ASUS XTIONTM SOC傳感器,其具有與2D相機大約相同的FOV。本發(fā)明的機器人還可以配備有激光線發(fā)生器,例如在頭中的三個和在底座中的三個,以便于能夠感測到其相對于對象/人的位置。本發(fā)明的機器人還可以包括能夠感測其周圍環(huán)境中的聲音的麥克風。在實施例中,具有以1kHz的300mv/Pa+/-3dB的靈敏度和300Hz到12kHz的頻率范圍(-10dB相對于1kHz)的四個麥克風可以被植入在機器人的頭部上。本發(fā)明的機器人還可以包括可能位于其底座的前面和后面的兩個聲納傳感器,以測量到機器人周圍環(huán)境中的對象/人的距離。機器人還可以包括位于其頭上和手上的觸覺傳感器,以允許與人的交互。機器人還可以包括位于其底座上的緩沖器以感測在機器人的路線上機器人遇到的障礙物。
為了解釋機器人的情感并且在其周圍環(huán)境中與人類進行溝通,本發(fā)明的機器人還可以包括:
-LED,例如在機器人的眼中、耳中和機器人的肩膀上;
-揚聲器,例如位于機器人耳中的兩個。
本發(fā)明的機器人可以通過以太網(wǎng)RJ45或WiFi 802.11連接與基站或其它機器人進行通信。
可以通過具有大約400Wh的能量的磷酸鐵鋰電池來對本發(fā)明的機器人進行供電。機器人可以接入適于其包括的電池類型的充電站。
鑒于傳感器的測量結(jié)果,使用激活由每個肢體限定的鏈和在每個肢體的端部處限定的效應(yīng)器的算法,由機器人的發(fā)動機來控制機器人的位置/運動。
圖2示出了根據(jù)本發(fā)明的一個實施方式的對話的方法。由這樣的方法的實施方式得到的對話可以被稱為“多模式”,因為機器人為了制定其響應(yīng)而考慮由用戶(或?qū)υ捳?產(chǎn)生的在性質(zhì)上不同的事件(例如說出的詞、手勢、身體姿態(tài)、面部表達等的組合。應(yīng)注意,前面提到的國際申請WO2013/150076還公開了一種方法,其中機器人對對話者的手勢(例如,手的揮動)但不是對共同地產(chǎn)生的口頭和非口頭事件的特定組合做出反應(yīng)。
在圖2上示出的方法的第一步驟ⅰ)中,來自相應(yīng)的傳感器c1(麥克風)和c2(相機)的輸入信號s1、s2由機器人獲得并由一組提取器模塊EXT(在此處和下文中,術(shù)語“模塊”用于指示由嵌入式處理器或由遠程傳感器運行的軟件模塊;應(yīng)理解,硬件或硬件-軟件混合的實施方式總是可能的并落在本發(fā)明的范圍內(nèi))進行處理。每個提取器模塊接收輸入信號或給定類型的多個信號,并且輸出信息以供機器人的其它模塊使用。例如,在圖2的情況中,第一提取器模塊處理來自麥克風c1的信號s1以提供:
通過音譯被識別為與人類語音相兼容的聲音來得到的文本輸出TXT和代表所述語音的語調(diào)的元數(shù)據(jù)MD(快樂、悲傷、生氣、專橫、疑問……);第二和第三提取模塊處理來自相機c2的信號s2以在所述相機的視場中分別產(chǎn)生代表對用戶的面部和手臂感興趣的點的“非文本數(shù)據(jù)”NTD。這組提取器模塊的輸出被提供為到對話引擎模塊DE的輸入。由這個模塊執(zhí)行的處理可能是復雜的,并且需要訪問相當大的數(shù)據(jù)庫。由于這個原因,這個處理可以部分地由通過互聯(lián)網(wǎng)連接進行訪問的一個或多個遠程服務(wù)器RS執(zhí)行。
對話引擎模塊包括識別模塊REC,識別模塊REC接收數(shù)據(jù)TXT、MD、NTD作為輸入并且使它們與預定的“輸入事件”EVI相關(guān)聯(lián)。例如,模塊REC可以使文本數(shù)據(jù)TXT與字典的詞相關(guān)聯(lián);此外,它可以使用戶的面部的感興趣點的特定構(gòu)造與微笑相關(guān)聯(lián),并且甚至將數(shù)值賦予所述微笑(例如被包括在0與5之間的值,其中0意指沒有微笑并且5是大笑);此外,它可以使用戶的手臂的感興趣點的特定構(gòu)造與手勢(例如揮手)相關(guān)聯(lián)。根據(jù)所考慮的具體實施例,識別模塊的任務(wù)可以由提取器模塊(例如,可以具有“微笑提取器”的一個提取器模塊)實行,從而直接提供如上所述的微笑值。
存儲在機器人的存儲器中的“對話語境”或“主題”、參數(shù)CTX可以影響識別模塊的決定。實際上,類似的條目可以被解釋為根據(jù)語境而不同的事件;例如,在不同的語境中,用戶的嘴的寬開口可以被解釋為打呵欠或驚愕的表達。這對應(yīng)于創(chuàng)造性方法的第二步驟ⅱ)。
創(chuàng)造性方法的第三步驟ⅲ)由使響應(yīng)與輸入事件或輸入事件的組合相關(guān)聯(lián)的“規(guī)則應(yīng)用”模塊RUL實行。響應(yīng)由一個或多個“輸出事件”EVO構(gòu)成,輸出事件EVO可以是由機器人說出的詞或短語、由其發(fā)出的聲音、由其執(zhí)行的手勢、其“面部”表達等。以上引用的國際申請WO2012/010451描述了可以在本發(fā)明中使用的規(guī)則應(yīng)用模塊,雖然有重要的修改。實際上,根據(jù)本發(fā)明,至少一些規(guī)則使響應(yīng)不與單個輸入事件但與至少兩個共同產(chǎn)生的事件的組合相關(guān)聯(lián),其中至少一個事件是非口頭的(即不包括用戶說出單詞或句子)。根據(jù)本發(fā)明的優(yōu)選實施例,至少一些規(guī)則(尤其是將多個事件件當作它們的輸入的一些規(guī)則)確定由輸出事件的組合組成的響應(yīng),其中至少一個事件是非口頭的。
例如,可能的規(guī)則可以是:
IF{(smile>2)AND[waving or“hallo”or“hi”])}THEN{(smile=4AND waving AND“hallo”}。
這意味著如果用戶至少以中等微笑來微笑并且揮動他的手或說“hallo”或“hi”,那么機器人以大微笑、揮手并且說出詞“hello”來答復。
所謂“共同產(chǎn)生的”事件指的是在時間上足夠接近以為了對話的目的而被認為是同時的兩個或多個事件。例如,如果用戶揮動他的手并且接著在一秒鐘之后說“hallo”,則這兩個事件被認為是共同產(chǎn)生的,即使它們嚴格地說并不是同時的。
在每次,可應(yīng)用的規(guī)則取決于對話語境CTX,其進而由先前應(yīng)用的規(guī)則和/或輸入確定。與相同語境或主題有關(guān)的規(guī)則形成“對話”,其可以由程序員編輯,如由國際申請WO 2011/003628公開的。對話主題的示例可以是“足球”、“政治”、“烹飪”,但還有當用戶發(fā)起與機器人的對話(或反之亦然,如之后將解釋的)時的“會見”或當用戶離開時的“再見”或表達終止對話的意愿。
此外,在每次,可應(yīng)用的規(guī)則可以取決于機器人的內(nèi)部狀態(tài)RIS,其進而由先前應(yīng)用的規(guī)則和/或輸入確定。內(nèi)部狀態(tài)的示例是“快樂”、“悲傷”、“疲勞”,但還有“電池放電”或“機械故障”。
例如,如果機器人識別出用戶有悲傷的表達,那么它的內(nèi)部狀態(tài)將變成“擔心”。如果然后用戶說“我今天不是很好”,那么對話語境將取值“健康”(指示健康將是對話的主題),從而確定一組適當?shù)囊?guī)則。
要理解,輸入事件的“產(chǎn)生”不一定需要由用戶執(zhí)行的動作;例如,用戶穿彩色衣服的事實可以是“事件”。被稱為“前攝規(guī)則”的特定類別的規(guī)則被應(yīng)用于確定對事件或事件的組合(不包括由用戶說出的詞或識別出的手勢)的響應(yīng)。換句話說,機器人通過發(fā)起對話來對刺激(例如存在于房間中的人的數(shù)量、安靜的用戶的表達、衣服的顏色等)作出反應(yīng)。在本發(fā)明的特定實施例中,一些“小談話”主題被標記為前攝的,這意味著與所述主題有關(guān)的所有規(guī)則是前攝的?!靶≌勗挕敝黝}的示例是“微笑”,其包含當用戶微笑而不講話時應(yīng)用的規(guī)則。更具體的主題(例如“烹飪”或“政治”)通常不是前攝的。
圖3示出了根據(jù)本發(fā)明的特定實施例的“前攝”對話的實施方式。提取器組EXT包括顏色提取器COL(識別場景的不同元素的顏色)、微笑提取器SML、確定房間中的人的數(shù)量的提取器模塊NBP、文本提取器TXTX和手勢提取器GST。在具體情形中,顏色提取器識別紅色襯衣,微笑提取器識別用戶的大笑(微笑=5),并且NBP模塊對房間中的2個人進行計數(shù),而模塊TXTX和GST指示用戶既不講話也不執(zhí)行充分識別的手勢。對話引擎并且更確切來說規(guī)則應(yīng)用模塊RUL將進而搜索在對話數(shù)據(jù)庫DDB的包含“小談話”主題的子集PRO內(nèi)可應(yīng)用于這種情形的“前攝”規(guī)則。
圖2的方法還包括使機器人的響應(yīng)在由說出至少詞或句子組成或包括說出至少詞或句子時動畫化的可選的步驟ⅲ-a)。動畫是機器人的一系列運動和/或其它非口頭事件(例如,表達的變化),其伴隨有模仿人類的“肢體語言”的語言。經(jīng)動畫化的響應(yīng)可以與包括語言和運動的多模式響應(yīng)區(qū)分開;然而,它們以不同的方式產(chǎn)生。如以上所討論的,多模式響應(yīng)直接由規(guī)則應(yīng)用模塊確定;替代地,動畫由專用模塊ANE添加到口頭響應(yīng),從而采用由規(guī)則應(yīng)用模塊產(chǎn)生的輸出具體事件EVO(即口頭事件,即要說出的詞)作為其輸入,如以下將參考圖4、5a、5b和5c所解釋的。
如圖4上所示的,動畫模塊或引擎ANE包括句法分析模塊SYNTA、存儲在裝載在機器人上或可由機器人訪問的存儲器中的動畫列表AST、以及用于計算表現(xiàn)力值的兩個模塊1OX和FX?!氨憩F(xiàn)力值”是確定運動必須“夸張”或“離散”到哪個程度的參數(shù)?!氨憩F(xiàn)力系數(shù)”定義表現(xiàn)力值的修改。術(shù)語“表現(xiàn)力”指的是表現(xiàn)力值和系數(shù)兩者。
如之后將參考圖5a、5b和5c討論的,句法分析允許確定要被動畫化的(多個)詞和不由它們本身動畫化但影響(多個)經(jīng)動畫化的詞的表現(xiàn)力的有關(guān)單詞。此外,句法分析模塊也可以例如通過考慮文本中的“情感單詞”的頻率和/或機器人的內(nèi)部狀態(tài)RIS來確定要說出的文本的“整體”表現(xiàn)力。要被動畫化的每個詞都具有其自身的表現(xiàn)力;該表現(xiàn)力通過模塊1OX與有關(guān)詞的表現(xiàn)力和文本的整體表現(xiàn)力結(jié)合,模塊1OX輸出被稱為“一次性表現(xiàn)力”的表現(xiàn)力值。
要被動畫化的每個詞還與“概念”相關(guān)聯(lián)。概念和一次性表現(xiàn)力用于選擇動畫列表ALST內(nèi)的動畫。該選擇取決于與詞相關(guān)聯(lián)的概念并取決于由模塊1OX計算出的一次性表現(xiàn)力。例如,列表的每個動畫可以與一個或多個概念相關(guān)聯(lián),并且具有具體的表現(xiàn)力值;在這種情況下,選擇與由要被動畫化的詞表達的概念相關(guān)聯(lián)并且其具體的表現(xiàn)力值最接近一次性表現(xiàn)力的動畫。在圖4的示例中,所選擇的動畫被稱為anim2并且具有exp2的具體表現(xiàn)力。最后,模塊FX將所選擇的動畫的具體表現(xiàn)力與一次性表現(xiàn)力結(jié)合(例如,取平均值)以計算出最終表現(xiàn)力expf。動畫引擎的輸出是一對<動畫,最終表現(xiàn)力>。最終表現(xiàn)力值確定例如組成動畫的手勢的速度和/或幅度。
圖5a示出了要被動畫化的句子的句法分析:“He loves chocolate and beer”。句法樹提出連接兩個補語的連詞“AND”的證據(jù),其指示列舉。在這種情況下,連詞是要被動畫化的詞。它與概念“列舉”相關(guān)聯(lián),概念“enumeration”(列舉)進而與被稱為“two”(兩個)的列舉相關(guān)聯(lián),其在于手勢,其中機器人緊握它的手,它伸展它的拇指并且然后它伸展它的食指。
圖5b示出了要被動畫化的另一句子的句法分析:“I agree with you”。這是具有以肯定形式的動詞、主語和補語的簡單句子。除了“with”以外的所有詞被動畫化:“I”憑借動畫“myself”,其中機器人指示它自己,“agree”使用動畫“yeah”,其中機器人點頭;以及you憑借機器人。
這兩個例子是非常簡單的例子,其中表現(xiàn)力并不起任何作用。更復雜的示例由句子“I strongly disagree with you”構(gòu)成,該句子的句法樹在圖5c上示出。在這種情況下,動詞是以否定形式(在語意上,如果不是在語法上);在這樣的情況下,動詞本身而不是主語和補語被動畫化。此外,存在強調(diào)不同意的副詞(“strongly”)。
動詞“disagree”與概念“disagreement”相關(guān)聯(lián)并且具有在從0到10的標度上的5的表現(xiàn)力值。然而,由于副詞“strongly”的存在,一次性表現(xiàn)力從5增加到8。在本發(fā)明的實施例中,機器人的內(nèi)部狀態(tài)RIS也可以改變一次性表現(xiàn)力值。
存在與概念“disagreement”相關(guān)聯(lián)的三個動畫:具有3的具體表現(xiàn)力的“oppose1”,其只包括機器人的表達的變化;分別具有6和9的具體表現(xiàn)力的“oppose2”和“oppose3”,其還包括手勢。具體表現(xiàn)力值接近一次性表現(xiàn)力的動畫是“oppose3”,其隨后被選擇。然而,它的最終表現(xiàn)力減小到8.5,對應(yīng)于具體表現(xiàn)力和一次性表現(xiàn)力的平均值。這意味著手勢將比在“oppose3”的“standard”(標準)形式中略微緩慢和/或較不豐富。
重新回到圖2,可以看到,輸出事件和/或動畫用于驅(qū)動機器人的不同執(zhí)行器以“perform”(執(zhí)行)響應(yīng)。在附圖的示例性實施例中,執(zhí)行器是揚聲器A1、一組面部表達控制執(zhí)行器A2以及肢體控制執(zhí)行器A3。這是圖2的方法的步驟ⅳ)。
如果機器人站在用戶旁邊并且直接盯著他或她,那么與人形機器人的動畫化和/或多模式的對話甚至還可以被感知為尷尬且不自然的。此外,如果機器人太靠近用戶,它可能在“speaking with its hands”(用它的手交流)以便于產(chǎn)生動畫化或多模式的響應(yīng)時打到他或她。也有機器人在功能失常的情況下落在用戶身上的一般風險。由于這個原因,根據(jù)本發(fā)明的優(yōu)選實施例,機器人是伺服控制的以使離用戶的距離維持在預定(并且可能地,語境相關(guān)的)范圍內(nèi)。有利地,在機器人的一部分(例如它的腰部)與用戶的下身(上到腰部)之間測量該距離:這允許用戶朝著機器人傾斜并用他/她的手觸摸它而不使它往回運動。有利地,機器人也是伺服控制的以使相對于用戶的取向維持在預定(并且可能地,語境相關(guān)的)角度范圍內(nèi)。優(yōu)選地,機器人執(zhí)行偽隨機平移和/或旋轉(zhuǎn)運動,同時保持在所述距離和角度范圍內(nèi),以避免由不自然靜態(tài)的機器人引起煩擾的感覺。
圖6示出了根據(jù)上文的機器人R和用戶U。在以機器人為中心的參考系中,要求用戶(或更確切地說,用戶的下身)保持在由距離范圍[d1,d2]和角度范圍[-Φ,Φ]限定的授權(quán)區(qū)域AR中。如果用戶運動,則機器人也運動以保持這個條件被滿足。此外,如以上所提到的,機器人可執(zhí)行偽隨機平移和/或旋轉(zhuǎn)運動,同時將用戶保持在授權(quán)區(qū)域中。
為了得到機器人的“自然”行為,距離和角度范圍可以在對話期間發(fā)生變化,這取決于有效的主題。
可以通過使用與圖像處理模塊耦合的相機、激光線發(fā)生器和/或聲納傳感器(見上文,附圖1的人形機器人的物理架構(gòu)的描述)來確定用戶相對于機器人的位置。
重新回到圖2,將注意到,解釋輸入信號以識別不同種類的事件(口頭或非口頭)的步驟ⅱ)是根據(jù)本發(fā)明的方法的非常重要的步驟。識別事件意味著使輸入信號與存儲在人形機器人的存儲器中或可由其進行訪問的預期事件的預定列表的項目匹配。有利地,根據(jù)對話語境或主題,在多個所述列表當中選擇預期事件的所述列表。
例如,語言識別在于將由傳感器獲得的聲音信號與字典的自然語言詞或一系列詞(其可以是特定語境的)匹配。通常,每個匹配結(jié)果與置信度分數(shù)相關(guān)聯(lián);這個分數(shù)越高,匹配正確的概率就越大。通常,閾值用于區(qū)分開“成功的”匹配和失敗的嘗試以識別事件。
根據(jù)要進行識別的事件的特定種類,不同復雜度的幾種匹配方法在本領(lǐng)域中是已知的。例如在語言識別的領(lǐng)域中,以下方法(或更確切地,方法的系列)是已知的:
-明確匹配:這是最簡單和最快速的方法,其使用有限狀態(tài)機來檢查輸入是否明確地包含詞或句子。置信度分數(shù)是布爾值:匹配是肯定的(分數(shù)=1)或識別嘗試失敗(分數(shù)=0)。
-近似匹配:它也基于有限狀態(tài)機,但它允許在匹配鏈中的某些錯誤。當錯誤的數(shù)量增加時,置信度分數(shù)降低。
-語音匹配(僅用于語言識別),其基于在輸入與字典的詞或句子之間的語音距離的確定。
-語義匹配,最復雜的方法,其基于在輸入中所觀察到的詞匯和在每個對話條目中的詞匯之間的距離的計算。這個距離是在所述輸入和所述條目的矢量表示之間的余弦度量。遵循“詞袋”分布語義表示,使用TF-IDF(詞頻——逆文檔頻率)、加權(quán)來計算矢量。
機器人可以使用分等級的方法,而不使用單一匹配方法,分等級的方法從最簡單的方法開始,如果置信度分數(shù)超過預設(shè)閾值則接受結(jié)果,否則使用更復雜的方法來嘗試;如果使用最復雜的匹配方法(例如語義)得到的置信度分數(shù)仍然低于閾值,則搜索失敗。在這種情況下,機器人忽略輸入或請求澄清(例如,在失敗的語言識別的情況下通過說出“對不起,你說什么?”)。
等級結(jié)構(gòu)也可以適合于諸如所使用的語言識別技術(shù)的因素。當ASR(自動語言識別)基于大語言模型時,語義匹配將是優(yōu)選的,同時語音匹配將幫助從較不魯棒的嵌入式ASR結(jié)果恢復錯誤。
有利地,機器人可以根據(jù)不同的參數(shù)并且具體而言根據(jù)對話語境或主題來選擇匹配方法的子集。如果正在進行的對話是“關(guān)閉的”對話,其中只有幾個不同的輸入被預期,則明確匹配可能成功地起作用,并且繼而值得嘗試。相反,在允許大量可能的輸入事件的非常廣的語境的情況下,放棄明確和近似的匹配并直接以語音或甚至語義方法開始可能是優(yōu)選的。在圖7的右側(cè)部分上,示出了增加計算復雜度的匹配方法MM1-MM4的等級鏈。對于每種匹配方法,兩個結(jié)果是可能的:匹配是成功的,在這種情況下產(chǎn)生輸入事件EVI,或匹配不是成功的,在這種情況下嘗試下一種匹配方法(除了MM4以外)。要進行嘗試的第一匹配方法不一定是MM1:根據(jù)對話語境CTX和可能的其它參數(shù)由匹配策略引擎MSE來進行選擇。
如果互聯(lián)網(wǎng)連接是可用的,則最復雜的(多種)匹配方法至少可以由遠程服務(wù)器(見圖2)實行。
圖7指代語言識別的情況,其采用由適當?shù)奶崛∑魍ㄟ^音譯被識別為人類語音的聲音而得到的文本TXT作為輸入,但這種方法更一般。將理解,其不限于“多模式”對話的情況。
現(xiàn)在將參考圖8描述基于語音匹配的特定語言識別方法。
由傳感器(麥克風)c1獲得的聲音作為輸入被提供到轉(zhuǎn)錄模塊TRSC,轉(zhuǎn)錄模塊TRSC將它們轉(zhuǎn)換為文本。然后,通過考慮對話的語言的特殊性(其為由機器人例如根據(jù)用戶的身份而確定的參數(shù),借助于在本領(lǐng)域中已知的相機和面部識別模塊來識別出用戶的身份)、通過語音轉(zhuǎn)換模塊PHON來將這個文本轉(zhuǎn)換成它的語音等效形式。轉(zhuǎn)錄和語音轉(zhuǎn)換也可以被共同執(zhí)行:它們一起構(gòu)成可以被稱為“語音轉(zhuǎn)錄”的東西。
然后,語音轉(zhuǎn)錄由簡化模塊SIMP進行簡化和平滑化。
“簡化”在于由單音素表示不同的音素,不同的音素可能彼此混淆,例如“d”和“t”或“k”和“g”。
“平滑化”在于忽略由轉(zhuǎn)錄模塊(其常常位于識別錯誤的起源處)提出的語句分割,同時保留激發(fā)它的信息。在這個程度上,元音被忽略,除了在每個詞的開頭處的元音(如由轉(zhuǎn)錄模塊識別的)和鼻元音以外。包含在INDEX中的預期詞經(jīng)受(有利地離線)相同或相似處理。距離計算模塊DIST確定在輸入聲音的簡化和平滑化語音轉(zhuǎn)錄與索引的簡化和平滑化條目之間的編輯距離。然后,選擇模塊SEL選擇對應(yīng)于最小編輯距離的條目。
通過示例的方式,如果用戶用法語說“A demain”(即“明天見”),則語音轉(zhuǎn)錄將是“A DOE MIN”,其然后被簡化為“ATMN”(“N”表示鼻元音)。
編輯距離被定義為將一串字母轉(zhuǎn)換為另一串字母所必需的最小數(shù)量的變化。例如,ADMN與BDANS之間的編輯距離是3,因為三個變化是必需的:
-ADMN—>BDMN(“A”變?yōu)椤癇”);
-BDMN—>BDLN(“M”變?yōu)椤癓”);
-BDLN—>BDLNS(加上“S”)。
通過考慮具體實施例來描述本發(fā)明,具體實施例將多模式對話、動畫化語言、機器人位置的伺服控制以及事件(并且更特別地,語言識別)識別的特定方法進行結(jié)合。雖然它們在協(xié)作中工作效率最高,但也可以彼此獨立地實施本發(fā)明的這些不同的方面。