要特定格式。例如,領(lǐng)域代理156的每一個(gè)都可以要求以特定方式對請求和/或命令進(jìn)行格式編排。因此在306,可以產(chǎn)生一條或多條適當(dāng)格式編排的查詢和/或命令。操作304和306可以重復(fù)以便得到用戶口頭表達(dá)的正確解釋,并且產(chǎn)生所期望的應(yīng)答和/或動(dòng)作。一旦產(chǎn)生了適當(dāng)格式編排的查詢和/或命令,就可以在308采取適合的動(dòng)作。這可能要求將適當(dāng)格式編排的查詢和/或命令發(fā)送到能夠滿足所述查詢和/或命令要求的特定領(lǐng)域代理、信息源、設(shè)備或者其他適當(dāng)目的地。一旦適當(dāng)?shù)膭?dòng)作已經(jīng)執(zhí)行,就可以在310把這個(gè)事件記錄到例如用戶概況、數(shù)據(jù)庫和/或一個(gè)或多個(gè)代理中。這樣的數(shù)據(jù)對于未來的用戶詢問和命令可能有用。在動(dòng)作已經(jīng)執(zhí)行之后,在312如果需要可以產(chǎn)生應(yīng)答并轉(zhuǎn)發(fā)到用戶和/或第三方。
[0203]在為了檢索數(shù)據(jù)而查詢的情況下,應(yīng)答會(huì)包含所請求的信息。在命令的情況下,應(yīng)答可以是已經(jīng)執(zhí)行了特定動(dòng)作的確認(rèn)。應(yīng)答的形式可以是自然語言格式。應(yīng)答還可以格式編排為反映應(yīng)答的具體個(gè)性或聲調(diào),以便使應(yīng)答更加“人性化”。應(yīng)答可以作為音頻消息和/或用戶界面上顯示的可視消息傳遞給用戶和/或第三方。
[0204]圖4A是根據(jù)本發(fā)明另一個(gè)實(shí)施例的過程400,使用系統(tǒng)90接收基于自然語言語音的查詢和/或命令并產(chǎn)生應(yīng)答。在402通過在多種真實(shí)世界環(huán)境中運(yùn)行的語音識別捕獲了用戶口頭表達(dá)(即用戶查詢和/或命令)時(shí),過程400便開始。一旦捕獲了口頭表達(dá),就在404對其進(jìn)行語法分析和解釋以確定在口頭表達(dá)中包含的查詢和/或命令。下一步,在406調(diào)用適宜的資源包括例如若干代理評審該查詢和/或命令以確定所需要的專長領(lǐng)域和查詢的上下文。用戶提交的原始查詢和/或命令可能需要產(chǎn)生多條查詢和/或命令。
[0205]例如,假設(shè)用戶對檢索她股票資產(chǎn)組合的數(shù)值有興趣。用戶會(huì)說出“請獲得我的股票資產(chǎn)組合數(shù)值”。系統(tǒng)90可以連同存儲的數(shù)據(jù)比如用戶概況評審這個(gè)請求,并且確定關(guān)鍵字比如“獲得數(shù)值”和“我的股票資產(chǎn)組合”。然后系統(tǒng)90可以產(chǎn)生查詢以確定用戶資產(chǎn)組合中的股票、股票數(shù)量和用于當(dāng)前價(jià)格信息的信息源。這些查詢?nèi)缓罂梢园l(fā)送到一個(gè)或多個(gè)代理領(lǐng)域,比如可以訪問其中包含用戶概況的數(shù)據(jù)庫的領(lǐng)域和訪問股票價(jià)格數(shù)據(jù)源的領(lǐng)域,以確定這些問題答案。
[0206]為了得到所期望的數(shù)據(jù),可以向這些領(lǐng)域代理或數(shù)據(jù)源發(fā)送查詢。因此,在操作408,可以表達(dá)一個(gè)或多個(gè)查詢并發(fā)送到一個(gè)或多個(gè)本地和/或網(wǎng)絡(luò)數(shù)據(jù)源,并且/或者將適宜的命令發(fā)送到本地或遠(yuǎn)程設(shè)備或系統(tǒng)自身。這些查詢?nèi)缓蟊话l(fā)送到所指定的代理。這些代理然后又產(chǎn)生它們自己的查詢和/或命令,發(fā)送到例如本地或遠(yuǎn)程信息源以檢索所需數(shù)據(jù)。在410根據(jù)目標(biāo)源的需求可以表達(dá)代理所產(chǎn)生的查詢和/或命令,并且執(zhí)行變量替換和變換,將查詢的形式修改為最可能從這些可用信息源中產(chǎn)生所期望的結(jié)果。一旦正確地表達(dá)了這些查詢,在412就可以以異步的方式執(zhí)行它們并適度地處理故障。作為執(zhí)行查詢的結(jié)果,這些結(jié)果可以由領(lǐng)域代理和/或數(shù)據(jù)源返回。然后在414系統(tǒng)90可以從一個(gè)或多個(gè)結(jié)果中提取或分解所期望的信息,這些結(jié)果可能以許多不同格式的任何一種返回。也就是說,用戶尋求的結(jié)果可以是匯總即從例如幾個(gè)信息源所得到的信息進(jìn)一步處理的結(jié)果。
[0207]下一步,在416可以評估和解釋這些結(jié)果,包括處理錯(cuò)誤,并且將它們匯集和結(jié)合為被判定“最佳的”的單一最佳結(jié)果,即使這些結(jié)果是歧義的、不完整的或矛盾的。一旦確定了最佳結(jié)果,就進(jìn)行所有需要的格式編排。在操作418,可以使用變量替換和變換修改結(jié)果。最后,在操作420,可以通過文本到語音引擎124以有用和預(yù)期的方式向用戶呈現(xiàn)該復(fù)合的結(jié)果。在執(zhí)行過程400的同時(shí)可以考慮到可用的所需專長領(lǐng)域、在其中呈現(xiàn)問題或命令的上下文、可用的領(lǐng)域?qū)S眯畔?、用戶互?dòng)歷史、用戶偏愛、信息源或命令以及從這些信息源得到的應(yīng)答。
[0208]在過程400的每個(gè)階段,概率或模糊集決策與匹配的方法都可以應(yīng)用于處理不一致、歧義、沖突和不完整的信息或響應(yīng)。另外,使用可能導(dǎo)致某些查詢或命令出現(xiàn)快速和適度故障的異步查詢,可以準(zhǔn)許系統(tǒng)90穩(wěn)健地快速返回結(jié)果并且方式對用戶看起來自然。
[0209]圖4B展示了根據(jù)本發(fā)明另一個(gè)實(shí)施例的過程450,用于接收基于自然語言語音的命令,以便在本地或遠(yuǎn)程地控制系統(tǒng)90或其他設(shè)備的功能。在452通過在多種真實(shí)世界環(huán)境中運(yùn)行的語音識別捕獲了用戶口頭表達(dá)(即用戶查詢和/或命令)時(shí),過程450便開始。一旦捕獲了口頭表達(dá),就在操作454對其進(jìn)行語法分析和解釋以確定在口頭表達(dá)中包含的命令。
[0210]下一步,在操作456調(diào)用包括若干代理的適宜的資源評審該命令以確定領(lǐng)域和上下文。用戶提交的原始命令將往往需要產(chǎn)生多條查詢和/或命令。例如,假設(shè)用戶對錄制他喜愛的電視節(jié)目有興趣。用戶會(huì)說出“請錄制我喜愛的TV節(jié)目”。系統(tǒng)90可以連同存儲的數(shù)據(jù)比如用戶概況評審這個(gè)請求,并且確定關(guān)鍵字比如“錄制”和“我喜愛的TV節(jié)目”。然后系統(tǒng)90可以產(chǎn)生查詢以確定用戶喜愛TV節(jié)目的名稱、頻道和時(shí)間。這些查詢?nèi)缓罂梢园l(fā)送到代理領(lǐng)域,它可以訪問包含用戶概況的數(shù)據(jù)庫并確定這些問題的答案。然后可以向錄像機(jī)發(fā)送命令,命令該錄像機(jī)錄制所選定的TV節(jié)目。因此,在操作458,可以表達(dá)一個(gè)或多個(gè)查詢并將其發(fā)送到一個(gè)或多個(gè)本地和/或網(wǎng)絡(luò)數(shù)據(jù)源。將適宜的命令發(fā)送到本地或遠(yuǎn)程設(shè)備或系統(tǒng)自身。下一步,在操作460,可以將產(chǎn)生的命令路由到適合的系統(tǒng)和/或外部設(shè)備。只要已經(jīng)執(zhí)行了這些命令,在462就可以接收包括錯(cuò)誤的結(jié)果并處理。在操作464可以有選擇地向用戶呈現(xiàn)執(zhí)行命令的結(jié)果。
[0211]圖4A描述的某些操作可以使用能夠重復(fù)的多個(gè)步驟執(zhí)行。例如在操作404中,為了判斷用戶的口頭表達(dá)的意義,對口頭表達(dá)進(jìn)行了語法分析和解釋。系統(tǒng)90可以根據(jù)例如上下文描述語法模塊112、用戶概況110、代理106和數(shù)據(jù)庫104中存儲的數(shù)據(jù),對口頭表達(dá)進(jìn)行初始解釋。為了產(chǎn)生領(lǐng)域或上下文的得分,對解釋結(jié)果可以應(yīng)用實(shí)時(shí)的評分系統(tǒng)或其他技術(shù)。如果所述領(lǐng)域或上下文得分的置信度不足以確保可靠的應(yīng)答,系統(tǒng)90可以請求用戶驗(yàn)證是否正確地理解了問題或命令。一般來說,問題可以用短語表達(dá)以指明問題的上下文,包括全部準(zhǔn)則或參數(shù)。如果用戶確認(rèn)該問題是正確的,系統(tǒng)繼續(xù)產(chǎn)生應(yīng)答。否則,或者用戶可以將原始問題重新構(gòu)詞,也許添加另外的信息以消除歧義性,或者系統(tǒng)可以詢問一個(gè)或多個(gè)問題以嘗試解決歧義性或可以采取其他行動(dòng)。
[0212]圖5展示了根據(jù)本發(fā)明一個(gè)實(shí)施例的過程500,用于正確地解釋用戶的口頭表達(dá)。過程500 —般地表示了過程400的操作402和404。一開始在操作502將用戶的口頭表達(dá)輸入到系統(tǒng)90中。然后使用例如多種存儲的數(shù)據(jù)比如用戶概況、代理數(shù)據(jù)、字典和短語以及其他相關(guān)數(shù)據(jù)對輸入進(jìn)行解釋。然后在506使用例如先前介紹的加權(quán)評分系統(tǒng)對解釋評分。一旦獲得了得分,在508就可以分析解釋的置信度以判斷它是否令人滿意。換言之,對解釋給定的得分是否超過了某個(gè)數(shù)值做出判斷。如果判定置信度不令人滿意,那么在510和512就可以向用戶提交請求,請求用戶驗(yàn)證該解釋。如果用戶對該解釋不滿意,在514可以要求他/她重新用短語表示該口頭表達(dá)和/或提供另外的信息。一旦用戶提供了重新用短語表達(dá)的口頭表達(dá)和/或另外的信息,過程500就返回到操作502的起點(diǎn)。相反,如果用戶對該解釋滿意,那么用于接收基于自然語言語音的查詢和/或命令并產(chǎn)生應(yīng)答的過程400就可以在操作516繼續(xù)。一旦已經(jīng)確定了該口頭表達(dá)的意義,就可以為適當(dāng)?shù)念I(lǐng)域代理恰當(dāng)?shù)剡M(jìn)行代理以及查詢和/或命令格式編排。
[0213]圖6展示的過程600用于確定要調(diào)用的適當(dāng)領(lǐng)域代理以及將要提交到代理106的查詢和/或命令的適當(dāng)格式,正如在圖4A的步驟406至步驟408中一般描述過的。為了以代理106所用的規(guī)則語法表達(dá)問題或命令,對于問題和/或命令的準(zhǔn)則或參數(shù)的必需和可選值可以做出判斷。用戶可能已經(jīng)顯式地提供了這些準(zhǔn)則,也可能需要進(jìn)行推理。因此在操作602,對于例如由圖4A的操作404和圖4B的操作454所產(chǎn)生的恰當(dāng)解釋的查詢和/或命令進(jìn)行語法分析。
[0214]然后在604分析已恰當(dāng)解釋的查詢和/或命令的內(nèi)容以確定已恰當(dāng)解釋的查詢和/或命令的準(zhǔn)則和/或參數(shù)。為了從已恰當(dāng)解釋的查詢和/或命令中提取準(zhǔn)則或參數(shù),可以使用上下文敏感的過程。某些準(zhǔn)則通過執(zhí)行代理中的算法確定,而其他的卻可以通過對可能值的若干表應(yīng)用概率或模糊推理確定。先驗(yàn)概率或模糊可能性以及相關(guān)聯(lián)的數(shù)值從許多數(shù)據(jù)源收到,包括對話歷史、用戶概況110和代理。
[0215]基于用戶的響應(yīng),隨著系統(tǒng)學(xué)習(xí)所期望的行為而更新先驗(yàn)概率或模糊可能性。對于天氣上下文,準(zhǔn)則實(shí)例包括位置、日期和時(shí)間。其他準(zhǔn)則可以包括命令準(zhǔn)則(即,是/否、接通/關(guān)閉、暫停、停止)以及拼寫。確定準(zhǔn)則的過程可以是迭代的或遞歸的以便消除用戶問題或命令中的歧義性。例如,假若用戶在其口頭表達(dá)中有地名(或者其他專有名詞),就可以在數(shù)據(jù)庫102的若干表中查找地名,或者對從口頭表達(dá)句法確定哪個(gè)單詞是專有名詞進(jìn)行嘗試。在另一個(gè)實(shí)例中,用戶詢問“航班一百二十又如何? ”。在這樣的情況下,數(shù)據(jù)庫和網(wǎng)絡(luò)信息中的航班信息連同上下文可以用于在以下諸項(xiàng)中確定看似最可信的解釋:航班100還有航班20、航班100和航班22、航班122等。只要已經(jīng)建立了用于查詢和/或命令的參數(shù)和準(zhǔn)則,在606就可以選擇適當(dāng)?shù)拇?06。
[0216]在選定了適當(dāng)?shù)拇?06后,在操作608可以確定將提交給代理106的恰當(dāng)?shù)乇磉_(dá)的查詢和/或命令。查詢和/或命令可以是標(biāo)準(zhǔn)的格式也可以是代理106進(jìn)行處理所用的分層數(shù)據(jù)結(jié)構(gòu)。為了向代理106提交恰當(dāng)?shù)乇磉_(dá)的查詢和/或命令,上下文語法的全部必需的和某些可選的標(biāo)記都可以填入。這些標(biāo)記往往必須轉(zhuǎn)錄為代理可接受的數(shù)值和形式??梢詮拇?、對話歷史或用戶概況110中獲得所需要的變換。以上提供了可以進(jìn)行的變換或替換的實(shí)例。一旦產(chǎn)生了恰當(dāng)?shù)乇磉_(dá)的查詢和/或命令,在610該過程(如過程400)就可以繼續(xù)。
[0217]雖然以上已經(jīng)介紹了本發(fā)明的若干特定實(shí)施例,但是應(yīng)當(dāng)認(rèn)識到,可以以不同于介紹的方式實(shí)踐本發(fā)明。例如,本發(fā)明可以采取計(jì)算機(jī)程序的形式,包含機(jī)器可讀指令的一個(gè)或多個(gè)序列,描述以上公開的方法,也可以采取數(shù)據(jù)存儲介質(zhì)(如半導(dǎo)體存儲器、磁盤或光盤)的形式,使這樣的計(jì)算機(jī)程序存儲其中。
[0218]以上說明旨在展示而非限制。因此,對于本領(lǐng)域的技術(shù)人員顯而易見,對所介紹的本發(fā)明可以做出若干修改而不脫離以下闡述的權(quán)利要求書的范圍。
【主權(quán)項(xiàng)】
1.一種使用多步式自動(dòng)語音識別解釋自然語言口頭表達(dá)的方法,包括: 在包括多步式語音識別模塊的計(jì)算機(jī)處接收自然語言口頭表達(dá),所述多步式語音識別模塊被配置為使用聽寫語法將自然語言口頭表達(dá)轉(zhuǎn)錄為文本消息,或者如果聽寫語法不可用則使用虛擬聽寫語法來將所述口頭表達(dá)轉(zhuǎn)錄為文本消息,所述虛擬聽寫語法對于詞匯表之外的詞使用餌詞;以及 使用所述多步式語音識別模塊將所述口頭表達(dá)轉(zhuǎn)錄為文本消息。
2.根據(jù)權(quán)利要求1所述的方法,其中,將所述口頭表達(dá)轉(zhuǎn)錄為文本消息包括:如果聽寫語法可用,則多步式語音識別模塊使用聽寫語法將所述口頭表達(dá)轉(zhuǎn)錄為文本消息,或者如果聽寫語法不可用,則多步式語音識別模塊使用虛擬聽寫語法將所述口頭表達(dá)轉(zhuǎn)錄為文本消息。
3.根據(jù)權(quán)利要求1所述的方法,其中,餌詞包括實(shí)用詞、無意義詞、孤立音節(jié)和孤立獨(dú)特音。
4.一種用于解釋自然語言口頭表達(dá)的系統(tǒng),包括: 被配置為接收自然語言口頭表達(dá)的語音用戶接口 ;以及 與多步式語音識別模塊相關(guān)聯(lián)的平臺,被配置為: 使用聽寫語法或大詞匯語法來將自然語言口頭表達(dá)轉(zhuǎn)錄為文本消息;以及如果所述聽寫語法在所述平臺上不可用,則使用虛擬聽寫語法來將自然語言口頭表達(dá)轉(zhuǎn)錄為文本消息,所述虛擬聽寫語法對于詞匯表之外的詞使用餌詞。
【專利摘要】公開了響應(yīng)自然語言語音口頭表達(dá)的系統(tǒng)和方法。提供的系統(tǒng)和方法用于接收自然語言問題和/或命令的語音和非語音通信,將所述語音和非語音通信轉(zhuǎn)錄為文本消息,并且執(zhí)行這些問題和/或命令。本發(fā)明應(yīng)用了上下文、先驗(yàn)信息、領(lǐng)域知識和用戶專用的概況數(shù)據(jù),以便實(shí)現(xiàn)一位或多位用戶跨越多個(gè)領(lǐng)域呈現(xiàn)問題或命令的自然環(huán)境。本系統(tǒng)和方法為每位用戶創(chuàng)建、存儲和使用了廣泛的個(gè)人概況信息,因而改進(jìn)了確定語音和非語音通信上下文的可靠性并為具體問題或命令呈現(xiàn)了所期待的結(jié)果。
【IPC分類】G06F3-16, G10L21-007, G06F17-30, G10L15-183
【公開號】CN104778945
【申請?zhí)枴緾N201510205939
【發(fā)明人】P·迪克里斯托, 柯敏, R·A·肯尼維克, L·E·阿姆斯特隆
【申請人】沃伊斯博克斯科技公司
【公開日】2015年7月15日
【申請日】2006年8月4日
【公告號】CN101297355A, CN101297355B, EP1922723A2, EP1922723A4, US7640160, US7917367, US8326634, US8849670, US20070033005, US20100057443, US20110131045, US20130297293, US20150019217, WO2007019318A2, WO2007019318A3