能夠?qū)⑴c用戶的自然對(duì)話合并到其行為中的機(jī)器人,以及編程和使用所述機(jī)器人的方法
【專利摘要】本發(fā)明涉及一種類人機(jī)器人,所述機(jī)器人能夠保存與至少一個(gè)用戶的對(duì)話,所述對(duì)話使用兩種模式的語(yǔ)音識(shí)別,一種模式是開(kāi)放的,另一種模式是封閉的,封閉模式由表征對(duì)話序列的概念來(lái)定義。對(duì)話還可以受到既不是語(yǔ)音也不是文本的事件影響。本發(fā)明的機(jī)器人能夠執(zhí)行行為,并產(chǎn)生表達(dá)和情感。與現(xiàn)有技術(shù)的機(jī)器人相比,本發(fā)明提供了相當(dāng)大地減少執(zhí)行對(duì)話序列的編程時(shí)間和等待時(shí)間,且提供了接近于人類對(duì)話的流暢性與自然性的優(yōu)點(diǎn)。
【專利說(shuō)明】能夠?qū)⑴c用戶的自然對(duì)話合并到其行為中的機(jī)器人,以及編程和使用所述機(jī)器人的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于機(jī)器人編程系統(tǒng)的領(lǐng)域。具體而言,其可以用于為已經(jīng)配備有執(zhí)行行為的能力的類人機(jī)器人配備與使用者對(duì)話的先進(jìn)能力。在機(jī)器人擁有人的外觀和功能的一些屬性:頭部、軀干、雙臂、可能的雙手、雙腿、雙腳等時(shí),可以將機(jī)器人說(shuō)明為類人的。但在本發(fā)明的環(huán)境中,最重要的類人特性是用于在與人類的對(duì)話中口語(yǔ)表達(dá)的能力,所述能力必須盡可能地與機(jī)器人的性格與情感的姿態(tài)和/或象征表達(dá)協(xié)調(diào)??梢栽O(shè)想開(kāi)發(fā)“機(jī)器人伙伴”型的應(yīng)用,即,在為人提供可以認(rèn)為是對(duì)存在人類私人秘書的情感上準(zhǔn)等價(jià)的替代的存在的同時(shí),能夠顯著地代表處于依賴狀態(tài)中的一個(gè)或多個(gè)人,承擔(dān)日常生活中的多個(gè)支持功能。為此,開(kāi)發(fā)所述類人機(jī)器人以盡可能接近人行為的方式保持與人的對(duì)話的能力是必要的。尤其必要的是,機(jī)器人可以理解來(lái)自人類的問(wèn)題或語(yǔ)句,并以對(duì)話方式說(shuō)出回答,具有大量與人類的相對(duì)應(yīng)的表達(dá)和表達(dá)方式,它們與通常人類具有的行為和情感的類型相配合。
【背景技術(shù)】
[0002]由于用于編程本專利申請(qǐng)的 申請(qǐng)人:市售的、并在涉及游戲者機(jī)器人的在N0.W02012/000927中公布的國(guó)際專利申請(qǐng)和涉及配備有自然對(duì)話接口的類人機(jī)器人的在N0.W02012/010451公布的國(guó)際專利申請(qǐng)中公開(kāi)的Nao?牌類人機(jī)器人的方法,已經(jīng)完成了在這個(gè)方向上的最初步驟。
[0003]但由這些文獻(xiàn)公開(kāi)的機(jī)器人僅能夠執(zhí)行有限的和預(yù)定數(shù)量的對(duì)話要素,或者如果希望將所述對(duì)話要素增加到對(duì)應(yīng)于人的正常行為的多樣性的情況下,組合對(duì)于它來(lái)說(shuō)至少是不能迅速達(dá)到的。為了能夠?yàn)榍笆龅娜颂峁╋@著的支持服務(wù),因此必須為類人機(jī)器人配備比現(xiàn)有技術(shù)的機(jī)器人更豐富的對(duì)話能力。為此,本發(fā)明在所述機(jī)器人中安裝了對(duì)話代理、語(yǔ)音識(shí)別工具和用于分析與機(jī)器人交談的人的行為的工具。
【發(fā)明內(nèi)容】
[0004]為此,本發(fā)明公開(kāi)了一種類人機(jī)器人,包括:i)至少一個(gè)傳感器,所述至少一個(gè)傳感器選自于包括以下傳感器的組:聲音類型的第一傳感器和由所述機(jī)器人的至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器,?)在所述至少一個(gè)傳感器的輸出處的至少一個(gè)事件識(shí)別模塊,iii)用于向所述至少一個(gè)用戶產(chǎn)生事件的至少一個(gè)模塊,用于與所述至少一個(gè)用戶對(duì)話的模塊,所述對(duì)話模塊接收所述至少一個(gè)識(shí)別模塊的輸出作為輸入,并生成到所述事件產(chǎn)生模塊的輸出,所述事件選自于包括語(yǔ)音、移動(dòng)、表達(dá)和情感的組,其中,所述機(jī)器人進(jìn)一步包括人工智能引擎,所述人工智能引擎被配置為控制事件產(chǎn)生模塊的輸出。
[0005]有利地,根據(jù)對(duì)話的上下文和定義所述機(jī)器人的當(dāng)前配置與預(yù)測(cè)配置的變量來(lái)執(zhí)行由所述人工智能引擎進(jìn)行的對(duì)所述事件產(chǎn)生模塊的控制。
[0006]有利地,所述至少一個(gè)事件識(shí)別模塊接收源自屬于至少兩個(gè)不同類型的至少兩個(gè)傳感器的輸入,在所述對(duì)話模塊的輸出處的所述至少一個(gè)事件產(chǎn)生模塊能夠考慮到源自所述至少兩個(gè)傳感器的所述輸入產(chǎn)生事件作為輸出。
[0007]有利地,所述至少一個(gè)識(shí)別模塊能夠按照動(dòng)態(tài)分層樹(shù)將輸入構(gòu)造為概念。
[0008]有利地,在所述至少一個(gè)識(shí)別模塊中的輸入在所述對(duì)話模塊中應(yīng)用于文本或語(yǔ)音輸入并啟動(dòng)語(yǔ)法。
[0009]有利地,在所述至少一個(gè)識(shí)別模塊中的輸入啟動(dòng)/停用所述輸入的識(shí)別。
[0010]有利地,所述至少一個(gè)識(shí)別模塊包括第一和第二子模塊,所述第一子模塊在關(guān)聯(lián)至少一個(gè)概念的詞語(yǔ)的封閉列表上操作,且所述第二子模塊在詞語(yǔ)的開(kāi)放列表上操作。
[0011]有利地,僅有一個(gè)來(lái)自第一子模塊的輸出提供給對(duì)話模塊。
[0012]有利地,僅來(lái)自第二子模塊的輸出提供給對(duì)話模塊。
[0013]有利地,來(lái)自第一子模塊的輸出與來(lái)自第二子模塊的輸出一起提供給對(duì)話模塊。
[0014]有利地,僅有一個(gè)來(lái)自第一子模塊的輸出首先提供給對(duì)話模塊,來(lái)自第一子模塊的所述輸出在對(duì)話模塊中由來(lái)自第二子模塊的輸出確認(rèn)。
[0015]有利地,沒(méi)有一個(gè)來(lái)自第一和第二子模塊的輸出從對(duì)話模塊產(chǎn)生輸出,及所述機(jī)器人向所述至少一個(gè)用戶提供至少一個(gè)輸入。
[0016]有利地,對(duì)話模塊進(jìn)一步接收源自應(yīng)用的動(dòng)態(tài)要素作為輸入。
[0017]有利地,將來(lái)自對(duì)話模塊的至少一個(gè)輸出提供給能夠執(zhí)行選自于功能組的功能的模塊,所述功能用于產(chǎn)生所述機(jī)器人的至少一個(gè)表達(dá),用于決定產(chǎn)生所述機(jī)器人的至少一個(gè)行為,和用于產(chǎn)生所述機(jī)器人的至少一個(gè)情感。
[0018]有利地,用于產(chǎn)生至少一個(gè)行為的所述功能考慮所述機(jī)器人的系統(tǒng)約束。
[0019]有利地,用于產(chǎn)生至少一個(gè)情感的所述功能能夠響應(yīng)于輸入事件產(chǎn)生在中性狀態(tài)與預(yù)定義狀態(tài)之間的一系列預(yù)定義的表達(dá)。
[0020]有利地,本發(fā)明的類人機(jī)器人進(jìn)一步包括視覺(jué)識(shí)別模塊,所述模塊能夠解譯來(lái)自所述至少一個(gè)用戶的、作為對(duì)話序列的開(kāi)始或結(jié)束的至少一個(gè)手勢(shì)。
[0021]有利地,所述對(duì)話模塊包括用于詞典分析的子模塊和用于解譯所述詞典分析子模塊的輸出的子模塊,其能夠產(chǎn)生當(dāng)前對(duì)話的詞語(yǔ)所關(guān)聯(lián)的概念。
[0022]有利地,所述對(duì)話模塊能夠處理來(lái)自所述至少一個(gè)用戶的、與其物理和/或邏輯系統(tǒng)的狀態(tài)有關(guān)的問(wèn)題和命令。
[0023]本發(fā)明還公開(kāi)了一種在類人機(jī)器人與至少一個(gè)用戶之間的對(duì)話的方法,包括:i)識(shí)別源自至少一個(gè)傳感器的輸入的至少一個(gè)步驟,所述至少一個(gè)傳感器選自于包括以下傳感器的組:聲音類型的第一傳感器和由所述至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器,?)向所述至少一個(gè)用戶產(chǎn)生事件的步驟,及iii)與所述與至少一個(gè)用戶對(duì)話的對(duì)話步驟,所述對(duì)話步驟接收來(lái)自所述至少一個(gè)識(shí)別步驟的輸出作為輸入,并生成到產(chǎn)生事件的所述步驟的輸出,事件選自于包括以下的組:語(yǔ)音、移動(dòng)、表達(dá)和情感,其中,所述方法進(jìn)一步包括由人工智能引擎控制事件產(chǎn)生模塊的輸出的步驟。
[0024]有利地,根據(jù)對(duì)話的上下文和定義所述機(jī)器人的當(dāng)前配置與預(yù)測(cè)配置的變量來(lái)執(zhí)行由所述人工智能引擎進(jìn)行的對(duì)所述事件產(chǎn)生模塊的控制。
[0025]有利地,所述機(jī)器人保存與至少兩個(gè)用戶的對(duì)話,表征所述至少兩個(gè)用戶的參數(shù)存儲(chǔ)在所述機(jī)器人的存儲(chǔ)器中,以便在所述機(jī)器人識(shí)別出至少兩個(gè)用戶之一時(shí)使用。
[0026]本發(fā)明還公開(kāi)了一種嵌入在類人機(jī)器人中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括程序代碼指令,當(dāng)在計(jì)算機(jī)上執(zhí)行程序時(shí),程序代碼指令用于執(zhí)行本發(fā)明的方法,所述程序適合于管理在所述類人機(jī)器人與至少一個(gè)用戶之間的對(duì)話,所述計(jì)算機(jī)程序包括:i)用于識(shí)別在至少一個(gè)傳感器的輸出的事件的至少一個(gè)模塊,所述至少一個(gè)傳感器選自于包括以下的組:聲音類型的第一傳感器和由所述至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器,ii)用于向所述至少一個(gè)用戶產(chǎn)生事件的至少一個(gè)模塊,及iii)用于與所述至少一個(gè)用戶的對(duì)話的模塊,所述對(duì)話模塊接收來(lái)自所述至少一個(gè)識(shí)別模塊的輸出作為輸入,并產(chǎn)生到用于產(chǎn)生事件的所述模塊的輸出,事件選自于包括以下的組:語(yǔ)音、移動(dòng)、表達(dá)和情感,其中,所述程序的特征在于其進(jìn)一步包括人工智能引擎,所述人工智能引擎被配置為控制事件產(chǎn)生模塊的輸出。
[0027]有利地,本發(fā)明還公開(kāi)了一種計(jì)算機(jī)程序,包括程序代碼指令,被配置為產(chǎn)生根據(jù)本發(fā)明的計(jì)算機(jī)程序,并將所述計(jì)算機(jī)程序傳送到至少一個(gè)類人機(jī)器人,所述指令在ChatScript型接口上產(chǎn)生。
[0028]本發(fā)明允許使用在對(duì)話代理領(lǐng)域中已經(jīng)使用的編程語(yǔ)言,所述語(yǔ)言的語(yǔ)法是大量程序員群體已知的,他們因而有資格開(kāi)發(fā)實(shí)施本發(fā)明的新應(yīng)用程序。作為本發(fā)明的部分而實(shí)施的,由于包含了語(yǔ)音識(shí)別的先進(jìn)功能,以及考慮了源自機(jī)器人的其他傳感器的信息,特別是視覺(jué)識(shí)別,現(xiàn)有技術(shù)對(duì)話代理發(fā)現(xiàn)他們的可能性相當(dāng)大地增大了,使得它能夠檢測(cè)到對(duì)話的啟動(dòng)的情形及其對(duì)話者。根據(jù)本發(fā)明的方法的對(duì)話可以適于與不同機(jī)器人性格的不同類別對(duì)話的要素,機(jī)器人性格取決于其用戶的偏好。機(jī)器人將能夠與對(duì)話的所述要素相符地表達(dá)情感,并使其行為同樣與所述要素同步,這將實(shí)現(xiàn)在用戶與其機(jī)器人或多個(gè)機(jī)器人之間的流暢的交換腳本的創(chuàng)建。而且,機(jī)器人將能夠提供有關(guān)于其系統(tǒng)的多個(gè)要素的狀態(tài)的信息(例如,剩余電池壽命),并以與用戶的對(duì)話模式接收系統(tǒng)命令,極大地改進(jìn)了所述機(jī)器人的使用的人機(jī)工程學(xué)。
【專利附圖】
【附圖說(shuō)明】
[0029]依據(jù)以下實(shí)施例的幾個(gè)示例的說(shuō)明及其附圖,會(huì)更好地理解本發(fā)明,其不同特征和優(yōu)點(diǎn)會(huì)顯現(xiàn)出來(lái),在附圖中:
[0030]圖1示出了能夠在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的類人機(jī)器人;
[0031]圖2示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的處理的總體流程圖;
[0032]圖3示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的用于管理對(duì)話行為的模塊和語(yǔ)音識(shí)別模塊的處理單元;
[0033]圖4示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的幾級(jí)對(duì)話的樹(shù)結(jié)構(gòu)的示例;
[0034]圖4a示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的概念樹(shù);
[0035]圖5示出了在本發(fā)明的幾個(gè)實(shí)施例中的語(yǔ)音識(shí)別模塊的處理的簡(jiǎn)化流程圖;
[0036]圖6示出了在被配置為用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的幾個(gè)軟件模塊之間的數(shù)據(jù)流;
[0037]圖6a示出了在本發(fā)明的某些實(shí)施例中的情感引擎的操作;
[0038]圖6b示出了在本發(fā)明的某些實(shí)施例中的決策引擎的操作;
[0039]圖7示出了在用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的對(duì)話管理模塊的輸入和輸出的不同功能;
[0040]圖8示出了用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的分析和對(duì)話解譯模塊的數(shù)據(jù)模型;
[0041]圖9示出了在被配置為用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的機(jī)器人上安裝的軟件模塊的架構(gòu)。
【具體實(shí)施方式】
[0042]圖1示出了能夠在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的類人機(jī)器人。
[0043]在本發(fā)明的實(shí)施例的附圖中示出了這個(gè)類人機(jī)器人。這個(gè)機(jī)器人已經(jīng)值得注意地在于10/15/2009公布的專利申請(qǐng)W02009/124951中公開(kāi)了。這個(gè)平臺(tái)用作導(dǎo)致本發(fā)明的改進(jìn)的基礎(chǔ)。在說(shuō)明的其余部分中,這個(gè)類人機(jī)器人可以按照這個(gè)類屬名來(lái)指代或者按照它的商標(biāo)ΝΑ0?來(lái)指代,而不會(huì)影響參考的普遍性。
[0044]這個(gè)機(jī)器人包括用于控制關(guān)節(jié)的傳感器和致動(dòng)器的大約兩打(24個(gè))電子控制板。電子控制板包括市場(chǎng)上可以購(gòu)買到的微控制器。例如這可以是來(lái)自Microchip公司的DSPIC?。它是耦合到DSP的16位MCU。這個(gè)MCU具有一毫秒的伺服環(huán)路循環(huán)。這個(gè)機(jī)器人還可以包括其他類型的致動(dòng)器,尤其是LED (發(fā)光二極管),其顏色和強(qiáng)度可以反應(yīng)機(jī)器人的情感。該機(jī)器人還可以包括其他類型的位置傳感器,尤其是慣性單元、FSR(地板壓力傳感器)等。
[0045]頭部110包括機(jī)器人的智能部件,尤其是執(zhí)行使得機(jī)器人能夠完成分配給它的任務(wù)的高級(jí)功能的板,在本發(fā)明的環(huán)境中,任務(wù)是用于執(zhí)行由用戶編寫的對(duì)話。頭部還有利地包括專用板,尤其是在語(yǔ)音(合成與識(shí)別)或者視覺(jué)處理中。
[0046]關(guān)于語(yǔ)音識(shí)別,在當(dāng)前使用的音頻信號(hào)處理架構(gòu)中,所述音頻信號(hào)由四個(gè)話筒捕獲,并由專用模塊中的軟件處理,在關(guān)于圖9的解說(shuō)中說(shuō)明了它們。分析在四個(gè)傳感器的聲音信號(hào)的到達(dá)的時(shí)間差可以確定聲音起源的方向。語(yǔ)音由具有語(yǔ)法引擎(例如Nuance?市售的類型)或具有自然語(yǔ)言解譯器的語(yǔ)音識(shí)別軟件來(lái)識(shí)別。
[0047]頭部還包括專門用于處理服務(wù)輸入/輸出的一個(gè)或多個(gè)板,例如打開(kāi)用于建立通過(guò)廣域網(wǎng)(WAN)的遠(yuǎn)程通信的端口所需的編碼。板處理器可以是在市場(chǎng)上可購(gòu)買的x86處理器。低功耗處理器是優(yōu)選的,例如Intel ATOM?(32位,1600MHz)。板還包括憶阻RAM和閃存存儲(chǔ)器。這個(gè)板還管理機(jī)器人與外界(行為服務(wù)器、其他機(jī)器人等)的通信,通常通過(guò)WiFi或WiMax傳輸層,可任選地通過(guò)具有可任選地封裝在VPN中的標(biāo)準(zhǔn)協(xié)議的公共移動(dòng)數(shù)據(jù)通信網(wǎng)絡(luò)。處理器通常通過(guò)標(biāo)準(zhǔn)OS來(lái)控制,其允許使用用于編程高級(jí)功能的常規(guī)高級(jí)語(yǔ)言(C、C++、Python等)或者特定人工智能語(yǔ)言,例如URBI (專用機(jī)器人保持語(yǔ)言)。
[0048]機(jī)器人能夠執(zhí)行已經(jīng)為之預(yù)先編程的行為,尤其是借助按照在已經(jīng)引用的以N0.W02012/010451公布的國(guó)際專利申請(qǐng)中公開(kāi)的發(fā)明產(chǎn)生的代碼,所述代碼已經(jīng)由程序員在圖形界面上創(chuàng)建了。根據(jù)本發(fā)明及剩余的說(shuō)明,行為是動(dòng)作(移動(dòng)、語(yǔ)音)與可任選的事件的組合。這些行為還可以在由不是專業(yè)程序員的用戶通過(guò)使用在專利申請(qǐng)W02011/003628中公開(kāi)的發(fā)明創(chuàng)建的腳本中設(shè)置。在第一種情況下可以包括在相對(duì)復(fù)雜的邏輯中結(jié)合在一起的行為,其中行為的順序由在機(jī)器人環(huán)境中發(fā)生的事件來(lái)制約。在此情況下,必須具有最少的編程技術(shù)的用戶可以使用Chodgraphe?工具包,在引用的申請(qǐng)中說(shuō)明其主要過(guò)程。在第二種情況下,腳本的順序邏輯在原則上不是適應(yīng)性的。
[0049]根據(jù)本發(fā)明,程序員能夠產(chǎn)生復(fù)雜的腳本,包括包含不同姿態(tài)和移動(dòng)的行為的組合、聲音或視覺(jué)信號(hào)的發(fā)出,尤其是在機(jī)器人與人或另一個(gè)機(jī)器人之間的自然對(duì)話,所述對(duì)話與機(jī)器人的性格和情感以及對(duì)話的語(yǔ)義和時(shí)間環(huán)境相協(xié)調(diào)。
[0050]圖2示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的處理的總體流程圖。
[0051]根據(jù)本發(fā)明,安裝在與機(jī)器人分離的工作站(例如PC)上的用于編寫對(duì)話的模塊210打算用于編程對(duì)話腳本。所述對(duì)話可以具有幾個(gè)字符、一個(gè)或多個(gè)機(jī)器人和一個(gè)或多個(gè)說(shuō)話者。所述模塊有利地安裝在Chodgraphe?軟件工具包中,其可以用于編程機(jī)器人的行為,對(duì)話在腳本內(nèi)與相關(guān)于對(duì)話的要素由機(jī)器人執(zhí)行的行為混合。其特征已經(jīng)在關(guān)于圖1的解說(shuō)中提及了的語(yǔ)音識(shí)別模塊220安裝在機(jī)器人上。其打算用于解譯在用于編寫對(duì)話的模塊210中創(chuàng)建的對(duì)話的要素,按照以上在關(guān)于圖1的解說(shuō)中所述的過(guò)程,所述對(duì)話要素經(jīng)由有線或無(wú)線通信接口傳送到機(jī)器人。例如在使用BNF(巴科斯范式)標(biāo)準(zhǔn)化語(yǔ)法的語(yǔ)言中編譯發(fā)送到模塊220的對(duì)話要素。例如,將一系列詞語(yǔ)解譯為邏輯“AND”,邏輯“0R”必須以不同的符號(hào)來(lái)表示,例如由“ I ”。在關(guān)于圖5的解說(shuō)中的說(shuō)明中會(huì)進(jìn)一步詳述語(yǔ)音識(shí)別模塊220的操作。
[0052]源自用于編寫對(duì)話的模塊210的要素和來(lái)自語(yǔ)音識(shí)別模塊220的輸出傳送到對(duì)話引擎模塊230。按照在關(guān)于圖6和7的解說(shuō)中解釋的過(guò)程,所述引擎產(chǎn)生在模塊210中創(chuàng)建的語(yǔ)音、情感、表達(dá)、行為和事件。行為是定義復(fù)合運(yùn)動(dòng)的一系列姿態(tài)(例如站起來(lái)、玩足球等)。表達(dá)是為由語(yǔ)音/動(dòng)作對(duì)給出的對(duì)話所定義的特定類型的行為。動(dòng)作可以是移動(dòng)和/或例如由機(jī)器人的LED發(fā)出的符號(hào)的組合。用于創(chuàng)建由表達(dá)序列組成的腳本的方法已經(jīng)由以N0.W02011/003628公布的國(guó)際申請(qǐng)公開(kāi)了。情感是由終端表達(dá)定義的一系列表達(dá)和趨向于終端表達(dá)的一系列表達(dá)。作為示例,可以定義以下情感Ei,n:“快樂(lè)的/悲哀的”、“疲勞的”、“恐懼的”、“興奮的”、“好奇的”,對(duì)于從I到η變化的i,每一個(gè)表達(dá)Eiin是在參考狀態(tài)與表達(dá)En,n之間的中間表達(dá)。如果機(jī)器人在狀態(tài)Eu中,其中P與η不同,為引起情感η定義的事件的列表會(huì)將機(jī)器人從狀態(tài)Eu移動(dòng)到狀態(tài)Ej,n。
[0053]從 ChatScript 語(yǔ)言(http: //chatscript.sourceforge.net/)得至丨J 對(duì)話描述語(yǔ)言。
[0054]在ChatScript語(yǔ)法中,如規(guī)則集一樣編寫腳本。例如:?:MEAT (you like meat)Yes
[0055]完整的規(guī)則通常包括:
[0056]-種類,在這個(gè)示例中的“?:”,其指示問(wèn)題;
[0057]-標(biāo)記,在這個(gè)示例中的“MEAT”,其可以被省略,但當(dāng)存在時(shí),其允許由其他對(duì)話調(diào)用;
[0058]-由在括號(hào)之間所示的模式表征的輸入,在示例中的“(youlike meat) ”,短語(yǔ)關(guān)聯(lián)的短語(yǔ),其包括以此順序的三個(gè)詞,但還包括其他詞語(yǔ):“Albert,you like meat”、“Albert, you like red meat,,等;
[0059]-輸出,在這個(gè)示例中的“Yes”
[0060]根據(jù)本發(fā)明,為將對(duì)話要素與機(jī)器人行為混合而改寫語(yǔ)言。改寫的非限制性示例在剩余的說(shuō)明中給出。
[0061]例如,由獨(dú)特字符串(例如:“國(guó)際象棋”、“足球”、“太極”等)定義行為。情感同樣如此,會(huì)理解,代碼會(huì)指示它是情感(例如,可以使用大寫詞首字母:“Happy/Sad”、“Tired”、“SCared”、“EXCited”、“Curi0uS”等)。使用的語(yǔ)言允許簡(jiǎn)單地編寫用于用戶短語(yǔ)的幾個(gè)措詞(例如“hello”的不同措詞)。輸入可以是保有與機(jī)器人的對(duì)話(“用戶”,其可以是人或者另一個(gè)機(jī)器人)、事件或二者的實(shí)體的短語(yǔ)(我說(shuō)你好,向機(jī)器人伸出手)。對(duì)于一個(gè)用戶短語(yǔ),這個(gè)語(yǔ)言可以用于表達(dá)短語(yǔ)、情感、事件或行為形式的幾個(gè)可能的回答。對(duì)話行為例如可以是如下類型:機(jī)器人用它的眼睛跟隨用戶,并分析用戶的移動(dòng)以創(chuàng)建更多自然回答(例如,不與用戶同時(shí)說(shuō)話)。
[0062]對(duì)話語(yǔ)言的每一個(gè)要素都重新轉(zhuǎn)錄到包括語(yǔ)音識(shí)別引擎的模塊220中的其對(duì)等物中,所述引擎僅能夠以一定確定性識(shí)別有限數(shù)量的詞語(yǔ)。由于這個(gè)轉(zhuǎn)換,確保了每一個(gè)識(shí)別的短語(yǔ)都有回答。在編寫對(duì)話時(shí),不是在執(zhí)行時(shí),從而以語(yǔ)音識(shí)別格式產(chǎn)生所有對(duì)話和所有對(duì)話輸入。因此重要的是,對(duì)話描述語(yǔ)言在語(yǔ)音識(shí)別中具有對(duì)等物,這不是已知的使用ChatScript語(yǔ)言環(huán)境下的鍵盤對(duì)話的情況。
[0063]對(duì)話描述語(yǔ)言的語(yǔ)法特別地包括以下功能:
[0064]I)模式識(shí)別(或模式匹配)
[0065]一些模式在對(duì)話腳本中由符號(hào)指示:
[0066]-“或”接受可能的詞的列表,例如:[hi hello];
[0067]-“與”搜索詞語(yǔ)的準(zhǔn)確列表,例如:“I’m happy” ;
[0068]-可任選詞,例如:hi{' my robot’};
[0069]-禁用詞,例如:I’m! not happy ;這個(gè)詞不會(huì)確認(rèn)輸入;
[0070]-未知詞,例如:myname is* ;用戶的姓名未知;
[0071]2)對(duì)話的上下文;使用觸發(fā)短語(yǔ)從一個(gè)對(duì)話到另一個(gè)對(duì)話的移動(dòng),例如:
[0072]-Ut: (speaking of an automobile);這個(gè)短語(yǔ)會(huì)觸發(fā)在汽車上的對(duì)話;
[0073]3)子對(duì)話;子對(duì)話在特定短語(yǔ)上啟動(dòng),并可以連續(xù)繼續(xù)下去,例如:
[0074]U: (how are you ? )I’m fine and you ?(你好嗎?)我很好,你呢?
[0075]A: (I’m not well)oh why ?(我不太好)哦,為什么?
[0076]B: (I’m sick)Oh too bad, do you want any medicine ?(我病了)哦,糟糕,你需要藥嗎?
[0077]A: (I’m fine) great (我很好)太棒了。
[0078]這個(gè)子對(duì)話功能例如可以引起如下類型的對(duì)話:
[0079]人:你好嗎?
[0080]機(jī)器人:我很好,你呢?
[0081]人:我不太好
[0082]機(jī)器人:哦,為什么?
[0083]人:我病了
[0084]4)事件:
[0085]以與由機(jī)器人捕獲的語(yǔ)音相同的方式來(lái)考慮作為對(duì)話的輸入的事件給出了現(xiàn)有技術(shù)中不存在的發(fā)明潛力的對(duì)話代理。具體而言,機(jī)器人的視覺(jué)識(shí)別使得它能夠檢測(cè)在其環(huán)境中的人并說(shuō)嗨,如同在人對(duì)它說(shuō)話時(shí)的情況:
[0086]-U:([e:面部檢測(cè)的嗨])嗨
[0087]如果機(jī)器人看見(jiàn)人或者如果某人說(shuō)“嗨”,那么機(jī)器人就回答“嗨”。
[0088]事件也可以作為對(duì)話的輸出被觸發(fā),可任選地通過(guò)開(kāi)始應(yīng)用:
[0089]-U:(我餓了)$用戶狀態(tài)“饑餓”
[0090]$用戶狀態(tài)=“饑餓”會(huì)將饑餓指定給用戶狀態(tài),并開(kāi)始應(yīng)用可以連接到的事件[用戶狀態(tài),饑餓];
[0091 ] 5)隱含或明確行為的選擇:
[0092]-U:(你認(rèn)識(shí)我嗎?)[$面部識(shí)別的==’運(yùn)行:面部識(shí)別我不認(rèn)識(shí)你,但我下一次會(huì)記住你]
[0093]6)皿:當(dāng)機(jī)器人不理解或誤解了用戶所說(shuō)的,于是它使用標(biāo)準(zhǔn)對(duì)話建議以便闡明,例如:
[0094]-建議:你多大了?
[0095]-U:(我
[5678]歲,你年輕!
[0096]7)^1::對(duì)話可以存儲(chǔ)用戶信息,例如:
[0097]-U:(我
[5678]歲$年齡=$1你年輕!
[0098]8)動(dòng)態(tài)要素:變量和列表(mp3,應(yīng)用、偏好等)可以作為輸入并作為輸出集成到對(duì)話中,例如:
[0099]-U:(你能做什么?)我能?應(yīng)用
[0100]-U:(你的名字?)我的名字叫$姓名
[0101]-U: ({開(kāi)始讀說(shuō)} *_?應(yīng)用)好,我將開(kāi)始$1
[0102]$應(yīng)用例如可以是(“三個(gè)火槍手”、“法國(guó)世界報(bào)”)
[0103]9)情感,悲哀的、快樂(lè)的、好奇的、恐懼的、疲勞的,即:
[0104]-U:(我不愛(ài)你!)這使得我悲哀SAD
[0105]10)刪除規(guī)則;可以停用或啟動(dòng)輸入以避免回答中的重復(fù)現(xiàn)象;相同的輸入因而可以在對(duì)話或幾個(gè)對(duì)話中重復(fù),刪除規(guī)則將實(shí)現(xiàn)解譯所有輸入,例如:
[0106]-U:刪除(你好嗎)我很好
[0107]-U:(你好嗎,nao)你記得我的名字!我很好
[0108]-U:(你好嗎)和我剛才一樣
[0109]11)回答規(guī)則:可以由機(jī)器人產(chǎn)生幾個(gè)可能的輸出,由輸入確定從其中的選擇,輸入是從用戶或幾個(gè)用戶確定性(不管輸入如何,總是相同的輸出,或者列表中給定排序的輸出)、隨機(jī)的、順序地(如果輸入i觸發(fā)輸出j,輸入i+Ι就觸發(fā)輸出j+Ι)或者有條件地接收的。對(duì)話模塊可以使用所有機(jī)器人的存儲(chǔ)器,因此可以按照機(jī)器人的存儲(chǔ)器中的值給出回答;輸出在用于向?qū)υ捲黾臃N類后可以刪除;作為示例:
[0110]-U:(你好嗎)[“我很好” “我已經(jīng)告訴你了” ]#默認(rèn)的順序
[0111]-U:(你好嗎隨機(jī)的[“我很好” “我非常好” “我好極了”]
[0112]-U:(你的名字是什么)~第一[“我的名字是$名字” “我沒(méi)有名字”]#在此,如果$名字存在,“我的名字是$名字”僅是可顯示的。
[0113]-U:(你好嗎)~刪除我很好#顯示回答后刪除規(guī)則
[0114]12)開(kāi)始子對(duì)話,主題:
[0115]-U:(我想要談?wù)勂?主題:汽車
[0116]圖3示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的用于管理對(duì)話行為的模塊和語(yǔ)音識(shí)別模塊的處理單元。
[0117]當(dāng)以嵌入機(jī)器人中的運(yùn)行時(shí)間執(zhí)行對(duì)話時(shí),對(duì)話引擎230在網(wǎng)絡(luò)和對(duì)話列表310、330及語(yǔ)音識(shí)別220上工作。
[0118]對(duì)話網(wǎng)絡(luò)310是結(jié)構(gòu)化的對(duì)話集合,其指示如何將他們連接在一起:例如首先介紹,隨后是另一個(gè)對(duì)話。網(wǎng)絡(luò)為對(duì)話給出指導(dǎo)。列表330是非結(jié)構(gòu)化的有效對(duì)話的列表,其在對(duì)話弓I擎和語(yǔ)音識(shí)別引擎中都存在。
[0119]可以啟動(dòng)或停用對(duì)話(這同時(shí)影響其全部輸入340)。啟動(dòng)/停用可以自動(dòng)由觸發(fā)器(ut:)觸發(fā)或者由用戶手動(dòng)觸發(fā)。使得有效對(duì)話的數(shù)量在給定時(shí)刻最少可以用于優(yōu)化在質(zhì)量和處理時(shí)間方面的語(yǔ)音識(shí)別性能。可以在編輯器中設(shè)置對(duì)話的參數(shù),以使得它們即使在如果開(kāi)啟新對(duì)話時(shí)也保持有效,默認(rèn)解決方案是新對(duì)話的開(kāi)啟關(guān)閉以前的對(duì)話。也可以個(gè)別地啟動(dòng)/停用對(duì)話輸入,或者通過(guò)連接到子對(duì)話,或者借助執(zhí)行的刪除,以避免進(jìn)行中的對(duì)話要素的重復(fù)。對(duì)話引擎230包括模式識(shí)別模塊320,其操作(點(diǎn)I)在關(guān)于圖2的解說(shuō)中示出了。它還包括動(dòng)態(tài)概念樹(shù)350。
[0120]概念是按照給出的對(duì)話中在語(yǔ)義上等同而定義的詞語(yǔ)的列表,。示例性地,短語(yǔ)“我生活”在給定對(duì)話中認(rèn)為是在語(yǔ)義上等價(jià)于短語(yǔ)“我活著”、“我居住”、“我生活”、“我,我活著”、“我,我居住”、“我,我生活”等。因此定義概念(生活)和概念(我):
[0121]概念:(生活)(活著、居住、生活、to_生活、to_居住)
[0122]概念:(我(主語(yǔ)))(我(賓語(yǔ))、我(主語(yǔ))、我已經(jīng))
[0123]因此會(huì)將短語(yǔ)編寫在對(duì)話中的幾個(gè)位置中:
[0124]U:(?我?to_生活)
[0125]動(dòng)態(tài)概念樹(shù)包括多個(gè)分層的有組織概念。在執(zhí)行時(shí)還可以修改關(guān)聯(lián)概念的短語(yǔ)的列表。
[0126]示例性地,概念“食品”包括概念“水果”和“肉”,概念“水果”包括“香蕉”和“桔子”;
[0127]概念:(食品)(?水果?肉)
[0128]概念:(水果)(香蕉桔子)
[0129]在對(duì)話過(guò)程中可以增加新的水果。因而創(chuàng)建了以下對(duì)話:
[0130]U:(你知道_的_?食品嗎)是,我知道$1$2
[0131]這給出了執(zhí)行:
[0132]用戶:你知道香蕉嗎?
[0133]機(jī)器人:是,我知道香蕉
[0134]U:(給我舉一個(gè)水果的例子)?水果是水果
[0135]用戶:給我舉一個(gè)水果的例子
[0136]機(jī)器人:香蕉是水果
[0137]列表330的對(duì)話中的輸入啟動(dòng)語(yǔ)音識(shí)別模塊220的語(yǔ)法列表360中的語(yǔ)法。以與對(duì)話模塊的輸入列表340同步的方式啟動(dòng)/停用語(yǔ)音識(shí)別模塊的輸入列表370。修改對(duì)話模塊230的動(dòng)態(tài)概念樹(shù)350中的概念導(dǎo)致語(yǔ)音識(shí)別模塊的動(dòng)態(tài)輸入380的改寫。
[0138]圖4示出了根據(jù)本發(fā)明的幾個(gè)實(shí)施例的幾級(jí)對(duì)話的樹(shù)結(jié)構(gòu)的示例。
[0139]圖中顯示了幾個(gè)對(duì)話。它們可以并行運(yùn)行(優(yōu)先級(jí)棧),一個(gè)對(duì)話能夠代替另一個(gè)。
[0140]對(duì)話包括在嵌入到機(jī)器人中的對(duì)話引擎模塊230中的三個(gè)邏輯級(jí):
[0141]-級(jí)410包括默認(rèn)的有效對(duì)話:普通對(duì)話4110(問(wèn)候、介紹、情緒),和一個(gè)“系統(tǒng)”對(duì)話4120,用于展現(xiàn)機(jī)器人的狀態(tài)(電池、溫度、配置等)或者給出基本命令(站起來(lái)、行走等);不僅是獲得與機(jī)器人的視覺(jué)功能的狀態(tài)有關(guān)的信息,還有能夠控制其中的一些(設(shè)置在備用模式中、連接到電源出口等)的可能性可以用于降低非技術(shù)人員的用戶在他們面對(duì)機(jī)器人是感受到的心理阻礙;
[0142]-級(jí)420包括用于按照來(lái)自用戶的輸入選擇對(duì)話的例程,所述選擇能夠由觸發(fā)器Ut:觸發(fā);例如可以編程多個(gè)選擇4210、4220、4230、4240 ;
[0143]-級(jí)430例如包括應(yīng)用4310、4320、4330,它們是對(duì)話或文件的序列,能夠自動(dòng)或由用戶手動(dòng)開(kāi)始。
[0144]默認(rèn)地,加載了包含普通信息和系統(tǒng)命令的對(duì)話(例如“大聲說(shuō)”)。觸發(fā)器短語(yǔ)隨后可以觸發(fā)其他對(duì)話的加載,例如用于:
[0145]-改變討論的對(duì)象(汽車、一天的活動(dòng)的談?wù)摰?;
[0146]-解釋機(jī)器人能夠做什么(“我不能講故事”);這個(gè)部分包含動(dòng)態(tài)要素:安裝的mp3、安裝的應(yīng)用;可以通過(guò)語(yǔ)音識(shí)別開(kāi)始的任何應(yīng)用都應(yīng)包含信息:其主題(游戲、信息等)和可任選的指定應(yīng)用的對(duì)話(機(jī)器人可以說(shuō)愛(ài)麗絲漫游仙境是關(guān)于小姑娘的故事等);
[0147]-開(kāi)始應(yīng)用的對(duì)話(例如交互式故事)
[0148]可以提供選擇:猜著名人物,選擇行為,選取產(chǎn)品,在交易中找到人等。可以由機(jī)器人(人必須理解機(jī)器人的意思)或者由人(機(jī)器人必須理解機(jī)器人的選擇)做出選擇。
[0149]這個(gè)選擇借助如上所述的對(duì)話做出,但這個(gè)對(duì)話常常包括重復(fù)相同的短語(yǔ),這使得對(duì)話難以編寫:
[0150]U:(猜猜我在想誰(shuí))是人嗎?
[0151]A:(是)是女人嗎?
[0152]B:(是)等
[0153]B:(不是)等
[0154]A:(不是)是虛構(gòu)的人物嗎?
[0155]概念的想法用于引導(dǎo)可能性樹(shù)。概念是與其他詞語(yǔ)、短語(yǔ)或概念有關(guān)的詞語(yǔ)。
[0156]概念:(人)[“他呼吸” “它是人”]
[0157]概念:(超人)[?人超級(jí)英雄?飛翔?斗篷]
[0158]概念:(哈利迪)[?歌手?人]
[0159]概念::(全部)[?超人?哈利迪]
[0160]在圖4A中為以上示例示出了可能性樹(shù)的層級(jí)特性。
[0161]詞語(yǔ)表示樹(shù)的葉子。概念表示樹(shù)的節(jié)點(diǎn)。節(jié)點(diǎn)和葉子是模式匹配的要素(模式識(shí)別)。
[0162]借助單一輸入:
[0163]U:([ “他能夠嗎” “它是”?超人嗎]是
[0164]我們可以匹配:
[0165]他能夠飛嗎
[0166]是人嗎
[0167]是超人嗎
[0168]我們還可以建議:
[0169]U:(幫助我)?超人
[0170]顯示了樹(shù)的一個(gè)葉子。
[0171]用戶“幫助我
[0172]機(jī)器人:它呼吸
[0173]對(duì)于猜超人的用戶,足以編寫:
[0174]U:(是超人嗎?)是,你猜對(duì)了!
[0175]U:(?超人)是
[0176]提議:不,不是他。
[0177]對(duì)于猜人物的機(jī)器人,足以編寫:
[0178]U:(猜猜我在想誰(shuí))--全部
[0179]圖5示出了在本發(fā)明的一個(gè)實(shí)施例中的語(yǔ)音識(shí)別模塊的處理的簡(jiǎn)化流程圖。
[0180]-第一級(jí)510包括有限數(shù)量的可識(shí)別詞;識(shí)別的詞必須出現(xiàn)在封閉列表中;此類語(yǔ)音識(shí)別軟件的示例是由NUanceTM(品牌名Vocon?)、Acapella?提供的,對(duì)于使用自然語(yǔ)言的軟件,是Dragon?提供的。
[0181]-語(yǔ)音識(shí)別的第二級(jí)520具有開(kāi)發(fā)類型,S卩,識(shí)別的詞的多樣性必須大得多;此類語(yǔ)音識(shí)別軟件的示例是特別地由Nuance?以品牌名WSP?提供的;這個(gè)軟件可以用于管理預(yù)先未知的詞語(yǔ),其將由編號(hào)的通配符$x來(lái)標(biāo)明。
[0182]此類語(yǔ)音識(shí)別構(gòu)造包括兩級(jí),一個(gè)是封閉的510,另一個(gè)是開(kāi)放的520(例如語(yǔ)音聽(tīng)寫型的),其可以用于優(yōu)化識(shí)別速度/質(zhì)量對(duì)。
[0183]圖5示出了如何合并兩類語(yǔ)音識(shí)別:
[0184]-情況530:機(jī)器人處于與用戶相同的語(yǔ)境中,它所說(shuō)的由有限的識(shí)別來(lái)識(shí)別;于是語(yǔ)音聽(tīng)寫不是必需的;
[0185]-情況540:機(jī)器人沒(méi)有在與用戶相同的語(yǔ)境中(用戶談?wù)撈?,但機(jī)器人認(rèn)為他們談?wù)撌称?,于是由語(yǔ)音聽(tīng)寫識(shí)別的短語(yǔ)會(huì)更接近于對(duì)話;
[0186]-情況550:類型520的識(shí)別補(bǔ)充了類型510的識(shí)別;
[0187]-情況560:開(kāi)放識(shí)別確認(rèn)封閉識(shí)別的可能的選擇;
[0188]-情況570:機(jī)器人不理解用戶所說(shuō)的;它提議確認(rèn)對(duì)話的領(lǐng)域或者轉(zhuǎn)換到另一個(gè)主題,以上情況530-560于是能夠由機(jī)器人的這個(gè)重新開(kāi)始而繼續(xù)下去。
[0189]圖6示出了在被配置為用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的幾個(gè)軟件模塊之間的數(shù)據(jù)流。
[0190]該圖顯示了在輸入事件610、對(duì)話620、輸出事件630和嵌入在機(jī)器人中的人工智能引擎640之間的數(shù)據(jù)交換:
[0191]-對(duì)話620等待輸入事件(例如來(lái)自用戶的微笑6130或語(yǔ)音6120);
[0192]-對(duì)話引擎可以動(dòng)態(tài)地加載新對(duì)話6240或動(dòng)態(tài)數(shù)據(jù)6230(例如安裝在其上的mp3文件或應(yīng)用);
[0193]-按照表達(dá)言語(yǔ)6310、行為6320、情感6330或事件6340的格式使其回答公式化,換句話說(shuō),表達(dá)言語(yǔ)包括與如何解譯文本(對(duì)于機(jī)器人的舞臺(tái)指導(dǎo))有關(guān)的信息的語(yǔ)音;
[0194]-來(lái)自對(duì)話的輸出可以發(fā)送到不同人工智能引擎模塊640:
[0195]■語(yǔ)音和表達(dá)由表達(dá)處理引擎6410Narrateur使用運(yùn)動(dòng)和語(yǔ)音合成處理,如特別地在以N0.W02011/003628公布的國(guó)際專利申請(qǐng)中說(shuō)明的;
[0196]■情感由情感引擎6420處理,其開(kāi)發(fā)了機(jī)器人的情感,以便隨著時(shí)間的過(guò)去穩(wěn)定它們;
[0197]■決策引擎6430決定是否開(kāi)始行為,并可以將決定按照事件的形式以信號(hào)傳送到對(duì)話引擎;機(jī)器人可以拒絕站起來(lái),假如條件不滿足這樣做。
[0198]這個(gè)行為可以是使用識(shí)別或鍵盤輸入的選擇,如上在關(guān)于圖4的解說(shuō)中解釋的;按照用戶的動(dòng)作,例如張嘴、走開(kāi)、轉(zhuǎn)頭等,行為觸發(fā)講話和講話的中斷。
[0199]這個(gè)對(duì)話包括解譯器6230和對(duì)話模型6240。
[0200]對(duì)話模型包括:
[0201 ]-對(duì)話網(wǎng)絡(luò)和有效對(duì)話;
[0202]-全部對(duì)話輸入和有效輸入;
[0203]-全部對(duì)話輸出;
[0204]-全部對(duì)話提議。
[0205]參考標(biāo)記6310、6320、6330、6340表示來(lái)自對(duì)話弓I擎的事件形式的輸出。
[0206]圖6a示出了在本發(fā)明的某些實(shí)施例中的情感引擎的操作。
[0207]如上向關(guān)于圖2的解說(shuō)中解釋的,機(jī)器人的情感是情感的多維空間中的點(diǎn)(例如,SAD、HAPPY、ANGRY、TIRED 等)。
[0208]對(duì)話引擎向情感引擎發(fā)送脈沖,情感引擎改變機(jī)器人的當(dāng)前情感,但不僅是對(duì)話引擎,例如其電池狀態(tài)、面對(duì)的面部和時(shí)間,同樣是情感變化的根源。這個(gè)情感隨時(shí)間穩(wěn)定到中性情感(0,0,0,0,0,O)。
[0209]圖6b示出了在本發(fā)明的某些實(shí)施例中的決策引擎的操作。
[0210]決策引擎考慮對(duì)于執(zhí)行行為的全部請(qǐng)求和可利用資源形式的機(jī)器人的所有約束。對(duì)于執(zhí)行對(duì)話引擎的請(qǐng)求僅是決定的一個(gè)要素。機(jī)器人的所有變量/事件都參與到?jīng)Q定中(電池、溫度、情感等)。
[0211]圖7示出了在用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的對(duì)話管理模塊的輸入和輸出的不同功能。
[0212]該圖示出了對(duì)話710將語(yǔ)音識(shí)別730、鍵盤輸入740或事件720的結(jié)果同等地作為輸入。也可以考慮諸如mp3文件或應(yīng)用的動(dòng)態(tài)數(shù)據(jù)750。有利地,依據(jù)由內(nèi)置在機(jī)器人中的相機(jī)接收的圖像的處理,對(duì)話模塊分析講話者頭部的位置,以便獲知是否向機(jī)器人說(shuō)話。類似地,可以評(píng)價(jià)嘴唇的位置,以便獲知用戶是否在講話,及相應(yīng)地它必須傾聽(tīng)還是它可以講話(要素760)。
[0213]此外,可以以與其講話相同的方式使用面部識(shí)別,以指示當(dāng)前講話者的名字。
[0214]來(lái)自對(duì)話引擎的“講話”回答可以由機(jī)器人的語(yǔ)音或在屏幕7A0上(或二者)給出。
[0215]如已經(jīng)提及的,對(duì)話模塊能夠觸發(fā)行為的執(zhí)行(要素7B0)。
[0216]圖8示出了用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的分析和對(duì)話解譯模塊的數(shù)據(jù)模型。
[0217]分析器810從對(duì)話8120中的詞典8110取回詞語(yǔ),其作為輸入提供給分析器。輸入對(duì)話具有數(shù)據(jù)模型8140。用于解析對(duì)話的內(nèi)容的“Libparser.so”庫(kù)8130執(zhí)行這個(gè)功能。這使得對(duì)話模型和來(lái)自這些對(duì)話的所有輸入能夠內(nèi)置到解譯器820的存儲(chǔ)器中。在執(zhí)行時(shí),解譯器將有效對(duì)話的棧8210與用于每一個(gè)用戶的所有有效輸入保存在一起。在解譯器的輸入“解析”的對(duì)話具有形式8220和數(shù)據(jù)模型8240。解譯器包括“Libparser.so”庫(kù)8130,用于完成其解譯功能。實(shí)際上,可以使得標(biāo)準(zhǔn)概念、變量和對(duì)話與用戶相關(guān)。
[0218]因而,以下規(guī)則可以用于改變用戶:
[0219]U:(e:面部識(shí)別)($名字=$面部識(shí)別)
[0220]U:(我的名字是_*) ($名字=$1)
[0221]在此情況下,按照用戶的歷史,自動(dòng)重置或指定與用戶相關(guān)的變量(偏好、年齡、高度等)。行為830具有用于狀態(tài)的變量的數(shù)據(jù)模型8310。
[0222]圖9示出了在被配置為用于在本發(fā)明的幾個(gè)實(shí)施例中實(shí)施本發(fā)明的機(jī)器人上安裝的軟件模塊的架構(gòu)。
[0223]在本發(fā)明的一個(gè)實(shí)施例中,有利地為諸如NAO的機(jī)器人配備高級(jí)軟件,用于控制機(jī)器人的功能。稱為NAOQI的此類軟件架構(gòu)已經(jīng)在于10/15/2009公布的專利申請(qǐng)W02009/124955中特別地公開(kāi)了。其包括基本功能,用于管理在機(jī)器人與PC或遠(yuǎn)程站點(diǎn)之間的通信,并用于交換提供必要軟件基礎(chǔ)結(jié)構(gòu)以便實(shí)施本發(fā)明的軟件。
[0224]NAOQI是為機(jī)器人應(yīng)用而優(yōu)化的架構(gòu);其支持多種語(yǔ)目,尤其是C++、Python、Urb1、Java 和 matlab。
[0225]在本發(fā)明的環(huán)境中,以下NAOQI模塊尤其有用:
[0226]-ALMemory模塊910管理在不同NAOQI模塊之間共用的存儲(chǔ)器;
[0227]-ALMot1n模塊920管理機(jī)器人的移動(dòng);
[0228]-語(yǔ)音合成模塊930產(chǎn)生機(jī)器人的講話;
[0229]-封閉識(shí)別模塊940執(zhí)行圖5中參考標(biāo)記510的功能;
[0230]-開(kāi)放識(shí)別模塊950執(zhí)行圖6中參考標(biāo)記520的功能;
[0231]-模塊ALDialog960執(zhí)行圖2中參考標(biāo)記230的對(duì)話引擎模塊的功能;
[0232]-Narrator [Narrateur]模塊970執(zhí)行圖6中參考標(biāo)記6410的功能;
[0233]-決策引擎模塊980執(zhí)行圖6中參考標(biāo)記6420的功能;
[0234]-情感引擎模塊990執(zhí)行圖6中參考標(biāo)記6430的功能;
[0235]有利地以C++編碼這些模塊。該圖還顯示了在模塊之間的數(shù)據(jù)流。
[0236]如在關(guān)于圖2的解說(shuō)中提及的,在安裝于標(biāo)準(zhǔn)計(jì)算機(jī)上的對(duì)話編輯模塊9A0中產(chǎn)生對(duì)話。也可以在Chor6graphe工具包中產(chǎn)生它們。確保了在ALDialog模塊960的對(duì)話與編輯模塊9A0的對(duì)話之間的一致性。在對(duì)話引擎960的分析器810與解譯器820 (圖9中顯示了它們)之間的數(shù)據(jù)流在編輯時(shí)的計(jì)算機(jī)上和在執(zhí)行時(shí)的機(jī)器人上同時(shí)進(jìn)行。
[0237]分析器可以讀取對(duì)話說(shuō)明文件U: (....)。
[0238]解譯器依據(jù)分析器的結(jié)果(無(wú)語(yǔ)法錯(cuò)誤編寫的對(duì)話)在存儲(chǔ)器中構(gòu)造對(duì)話模型。
[0239]上述的示例以例示本發(fā)明的實(shí)施例的方式給出。它們不以任何方式限制由所附權(quán)利要求書限定的本發(fā)明的范圍。
【權(quán)利要求】
1.一種類人機(jī)器人(110),包括:i)至少一個(gè)傳感器,所述至少一個(gè)傳感器選自于包括以下傳感器的組:聲音類型的第一傳感器、和由所述機(jī)器人的至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器;ii)在所述至少一個(gè)傳感器的輸出處的至少一個(gè)事件識(shí)別模塊(610) ;iii)用于向所述至少一個(gè)用戶產(chǎn)生事件的至少一個(gè)模塊(630),用于與所述至少一個(gè)用戶對(duì)話的模塊¢20),所述對(duì)話模塊接收所述至少一個(gè)識(shí)別模塊的輸出作為輸入,并生成到所述事件產(chǎn)生模塊的輸出,所述事件選自于包括語(yǔ)音、移動(dòng)、表達(dá)和情感的組,其中,所述機(jī)器人進(jìn)一步包括人工智能引擎¢40),所述人工智能引擎被配置為控制所述事件產(chǎn)生模塊的輸出。
2.根據(jù)權(quán)利要求1所述的類人機(jī)器人,其中,根據(jù)對(duì)話的上下文和定義所述機(jī)器人的當(dāng)前配置與預(yù)測(cè)配置的變量來(lái)執(zhí)行由所述人工智能引擎進(jìn)行的對(duì)所述事件產(chǎn)生模塊的控制。
3.根據(jù)權(quán)利要求1或2所述的類人機(jī)器人,其中,所述至少一個(gè)事件識(shí)別模塊接收源自屬于至少兩個(gè)不同類型的至少兩個(gè)傳感器的輸入,并且在所述對(duì)話模塊的輸出處的所述至少一個(gè)事件產(chǎn)生模塊能夠考慮源自所述至少兩個(gè)傳感器的所述輸入而產(chǎn)生事件作為輸出。
4.根據(jù)權(quán)利要求1至3所述的類人機(jī)器人,其中,所述至少一個(gè)識(shí)別模塊能夠按照動(dòng)態(tài)分層樹(shù)來(lái)將所述輸入構(gòu)造為概念。
5.根據(jù)權(quán)利要求1至4所述的類人機(jī)器人,其中,在所述對(duì)話模塊中,所述至少一個(gè)識(shí)別模塊中的輸入應(yīng)用于文本輸入或語(yǔ)音輸入并啟動(dòng)語(yǔ)法。
6.根據(jù)權(quán)利要求5所述的類人機(jī)器人,其中,所述至少一個(gè)識(shí)別模塊中的輸入啟動(dòng)/停用對(duì)所述輸入的識(shí)別。
7.根據(jù)權(quán)利要求5或6所述的類人機(jī)器人,其中,所述至少一個(gè)識(shí)別模塊包括第一子模塊和第二子模塊,所述第一子模塊在關(guān)聯(lián)至少一個(gè)概念的詞語(yǔ)的封閉列表上操作,且所述第二子模塊在詞語(yǔ)的開(kāi)放列表上操作。
8.根據(jù)權(quán)利要求7所述的類人機(jī)器人,其中,僅有一個(gè)來(lái)自所述第一子模塊的輸出被提供給所述對(duì)話模塊。
9.根據(jù)權(quán)利要求7所述的類人機(jī)器人,其中,僅來(lái)自所述第二子模塊的輸出被提供給所述對(duì)話模塊。
10.根據(jù)權(quán)利要求7所述的類人機(jī)器人,其中,來(lái)自所述第一子模塊的輸出與來(lái)自所述第二子模塊的輸出被一起提供給所述對(duì)話模塊。
11.根據(jù)權(quán)利要求7所述的類人機(jī)器人,其中,僅來(lái)自所述第一子模塊的輸出被首先提供給所述對(duì)話模塊,來(lái)自所述第一子模塊的輸出由來(lái)自所述第二子模塊的輸出在對(duì)話模塊中被確認(rèn)。
12.根據(jù)權(quán)利要求7至11所述的類人機(jī)器人,其中,來(lái)自所述第一子模塊和第二子模塊的輸出都不從所述對(duì)話模塊產(chǎn)生輸出,且所述機(jī)器人向所述至少一個(gè)用戶提供至少一個(gè)輸入。
13.根據(jù)權(quán)利要求1至12所述的類人機(jī)器人,其中,所述對(duì)話模塊進(jìn)一步接收源自應(yīng)用的動(dòng)態(tài)要素作為輸入。
14.根據(jù)權(quán)利要求1至13所述的類人機(jī)器人,其中,將來(lái)自所述對(duì)話模塊的至少一個(gè)輸出提供給能夠執(zhí)行選自于功能組的功能的模塊,所述功能組中的功能用于產(chǎn)生所述機(jī)器人的至少一個(gè)表達(dá);用于決定產(chǎn)生所述機(jī)器人的至少一個(gè)行為;以及用于產(chǎn)生所述機(jī)器人的至少一個(gè)情感。
15.根據(jù)權(quán)利要求14所述的類人機(jī)器人,其中,用于產(chǎn)生至少一個(gè)行為的所述功能考慮所述機(jī)器人的系統(tǒng)約束。
16.根據(jù)權(quán)利要求14所述的類人機(jī)器人,其中,用于產(chǎn)生至少一個(gè)情感的所述功能能夠響應(yīng)于輸入事件來(lái)產(chǎn)生在中性狀態(tài)與預(yù)定義狀態(tài)之間的一系列預(yù)定義的表達(dá)。
17.根據(jù)權(quán)利要求1至16所述的類人機(jī)器人,進(jìn)一步包括視覺(jué)識(shí)別模塊,所述模塊能夠解譯來(lái)自所述至少一個(gè)用戶的作為對(duì)話序列的開(kāi)始或結(jié)束的至少一個(gè)手勢(shì)。
18.根據(jù)權(quán)利要求4至17所述的類人機(jī)器人,其中,所述對(duì)話模塊包括用于詞典分析的子模塊和用于解譯所述詞典分析子模塊的輸出的子模塊,所述詞典分析子模塊能夠產(chǎn)生當(dāng)前對(duì)話的詞語(yǔ)所關(guān)聯(lián)的概念。
19.根據(jù)權(quán)利要求1至18所述的類人機(jī)器人,其中,所述對(duì)話模塊能夠處理來(lái)自所述至少一個(gè)用戶的、與其物理系統(tǒng)和/或邏輯系統(tǒng)的狀態(tài)有關(guān)的問(wèn)題和命令。
20.一種在類人機(jī)器人與至少一個(gè)用戶之間對(duì)話的方法,包括:i)識(shí)別源自至少一個(gè)傳感器的輸入的至少一個(gè)步驟,所述至少一個(gè)傳感器選自于包括以下傳感器的組:聲音類型的第一傳感器、和由所述至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器;?)向所述至少一個(gè)用戶產(chǎn)生事件的步驟;以及iii)與所述至少一個(gè)用戶的所述對(duì)話的對(duì)話步驟,所述對(duì)話步驟接收來(lái)自所述至少一個(gè)識(shí)別步驟的輸出作為輸入,并生成到所述產(chǎn)生事件的步驟的輸出,所述事件選自于包括語(yǔ)音、移動(dòng)、表達(dá)和情感的組,其中,所述方法進(jìn)一步包括借助人工智能引擎來(lái)控制所述事件產(chǎn)生模塊的輸出的步驟。
21.根據(jù)權(quán)利要求20所述的對(duì)話方法,其中,根據(jù)對(duì)話的上下文和定義所述機(jī)器人的當(dāng)前配置與預(yù)測(cè)配置的變量來(lái)執(zhí)行由所述人工智能引擎進(jìn)行的對(duì)所述事件產(chǎn)生模塊的控制。
22.根據(jù)權(quán)利要求20或21所述的對(duì)話方法,其中,所述機(jī)器人保存與至少兩個(gè)用戶的對(duì)話,表征所述至少兩個(gè)用戶的參數(shù)被存儲(chǔ)在所述機(jī)器人的存儲(chǔ)器中,以便當(dāng)所述機(jī)器人識(shí)別出所述至少兩個(gè)用戶之一時(shí)使用。
23.一種嵌入在類人機(jī)器人中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括程序代碼指令,所述程序代碼指令用于當(dāng)在計(jì)算機(jī)上執(zhí)行所述程序時(shí),執(zhí)行如權(quán)利要求20至22中任意一項(xiàng)所要求保護(hù)的方法,所述程序適合于管理所述類人機(jī)器人與至少一個(gè)用戶之間的對(duì)話,所述計(jì)算機(jī)程序包括:i)用于識(shí)別在至少一個(gè)傳感器的輸出處的事件的至少一個(gè)模塊,所述至少一個(gè)傳感器選自于包括以下傳感器的組:聲音類型的第一傳感器、和由所述至少一個(gè)用戶產(chǎn)生的事件的至少一個(gè)第二類型的第二傳感器;ii)用于向所述至少一個(gè)用戶產(chǎn)生事件的至少一個(gè)模塊;以及用于與所述至少一個(gè)用戶對(duì)話的模塊,所述對(duì)話模塊接收來(lái)自所述至少一個(gè)識(shí)別模塊的輸出作為輸入,并生成到用于產(chǎn)生事件的所述模塊的輸出,所述事件選自于包括語(yǔ)音、移動(dòng)、表達(dá)和情感的組,其中,所述程序的特征在于進(jìn)一步包括人工智能引擎,所述人工智能引擎被配置為控制所述事件產(chǎn)生模塊的輸出。
24.一種計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括程序代碼指令,所述程序代碼指令被配置為產(chǎn)生如權(quán)利要求23所述的計(jì)算機(jī)程序,并將所述計(jì)算機(jī)程序傳送到至少一個(gè)類人機(jī)器人,所述指令在ChatScript型接口上產(chǎn)生。
【文檔編號(hào)】G06F17/27GK104350541SQ201380029253
【公開(kāi)日】2015年2月11日 申請(qǐng)日期:2013年4月3日 優(yōu)先權(quán)日:2012年4月4日
【發(fā)明者】D·烏桑, G·加特 申請(qǐng)人:奧爾德巴倫機(jī)器人公司