專利名稱:智能自動化助理的制作方法
技術領域:
本發明涉及智能系統,且更具體地說,本發明是針對智能自動化助理的若干類應用。
背景技術:
如今的電子裝置能夠經由因特網且從其它來源接入大量、正在增長且多種多樣的功能、服務和信息。隨著許多消費型裝置、智能電話、平板計算機等能夠運行軟件應用程序來執行各種任務并提供不同類型的信息,針對此些裝置的功能性正快速增加。通常,每一應用程序、功能、網站或特征具有其自己的用戶接口以及其自己的操作范式,其中的許多學習起來很麻煩或對于用戶來說是有壓力的。另外,許多用戶可能甚至連發現其電子裝置上或各種網站上什么功能性和/或信息是可用的也有困難;因此,此些用戶可能感到沮喪或不堪重負,或可能僅僅是不能夠以有效方式使用對他們來說可用的資源。明確地說,初學用戶或以某一方式受損或傷殘的個人,和/或年老、繁忙、思想不集中和/或正操作交通工具的個人可能難以有效地與其電子裝置介接,和/或有效地加入在線服務。此些用戶尤其有可能對可供他們使用的大量分散且不一致的功能、應用程序和網站感到困難。因此,現有的系統常常難以使用和導航,且常常向用戶呈現不一致且有壓力的接口,所述接口常常阻止用戶有效地利用技術。
發明內容
根據本發明的各種實施例,一種智能自動化助理在電子裝置上實施,以促進用戶與裝置的交互,且幫助用戶更有效地與本地和/或遠程服務接洽。在各種實施例中,所述智能自動化助理使用自然語言對話以集成談話方式與用戶接洽,且在適當時調用外部服務以獲得信息或執行各種動作。根據本發明的各種實施例,所述智能自動化助理整合由不同軟件組件提供的多種 能力(例如,用于支持自然語言辨識和對話、多模式輸入、個人信息管理、任務流管理、編排分布式服務等)。此外,為了向用戶提供智能接口和有用功能性,本發明的智能自動化助理可在至少一些實施例中協調這些組件和服務。談話接口以及獲得信息并執行后繼任務的能力在至少一些實施例中是通過協調例如語言組件、對話組件、任務管理組件、信息管理組件和/或多個外部服務來實施的。根據本發明的各種實施例,可配置、設計和/或操作智能自動化助理系統來提供各種不同類型的操作、功能性和/或特征,且/或組合所述系統安裝于其上的電子裝置的多 個特征、操作和應用程序。在一些實施例中,本發明的智能自動化助理系統可執行以下各項中的任一者或全部主動地引出來自用戶的輸入;解譯用戶輸入;消除競爭性解譯之間的歧義;根據需要請求和接收澄清信息;以及基于辨明的意圖而執行(或起始)動作。可(例如)通過激活電子裝置上可用的任何應用程序或服務以及經由例如因特網等電子網絡可用的服務且/或與其介接來執行動作。在各種實施例中,可經由API或通過任何其它合適機制來執行對外部服務的此激活。以此方式,本發明的各種實施例的智能自動化助理系統可相對于電子裝置的許多不同應用程序和功能,且相對于可經由因特網可用的服務而統一、簡化和改進用戶的體驗。進而可減輕用戶進行以下行為的負擔學習什么功能性可在裝置上以及在網絡連接的服務上可用、如何與此服務介接以獲得他或她想要的東西,以及如何解譯從此些服務接收到的輸出;相反,本發明的助理可充當用戶與此些多樣服務之間的中間者。另外,在各種實施例中,本發明的助理提供一種談話接口,用戶可找到比常規圖形用戶接口多的直覺以及少的麻煩。用戶可使用若干可用輸入和輸出機制(例如語音、圖形用戶接口(按鈕和鏈接)、文本條目等)中的任一者以談話對話的形式與助理接洽。可使用若干不同平臺(例如裝置API、網絡、電子郵件等,或其組合)中的任一者來實施所述系統。可在此談話的上下文中將對額外輸入的請求呈現給用戶。可加入短期和長期存儲器,使得在給出先前事件和給定會話內的通信以及關于用戶的歷史和簡檔信息的情況下,可在適當的上下文中解譯用戶輸入。另外,在各種實施例中,從與裝置上的特征、操作或應用程序的用戶交互得到的上下文信息可用于使所述裝置上或其它裝置上的其它特征、操作或應用程序的操作成流線型。舉例來說,智能自動化助理可使用電話呼叫的上下文(例如被呼叫的人)來使文本消息的起始成流線型(例如,以確定應發送給同一人的文本消息,而用戶不必明確地指定文本消息的接收者)。本發明的智能自動化助理可進而解譯指令,例如“給他發送文本消息”,其中根據從當前電話呼叫且/或從裝置上的任何特征、操作或應用程序得到的上下文信息來解譯“他”。在各種實施例中,智能自動化助理考慮各種類型的可用上下文數據,以確定要使用哪一地址簿聯系人、要使用哪一聯系人數據、要將哪一電話號碼用于所述聯系人等,使得用戶無需手動地重新指定此信息。在各種實施例中,所述助理還可相應地考慮外部事件和作出響應,(例如)以起始動作、起始與用戶的通信、提供警報且/或依據外部事件修改先前起始的動作。如果需要來自用戶的輸入,那么可再次使用談話接口。在一個實施例中,所述系統是基于互相聯系的域和任務的集合,且使用由系統可與之交互的外部服務激勵的額外功能性。在各種實施例中,這些外部服務包含具有網絡功能的服務,以及與硬件裝置本身有關的功能性。舉例來說,在其中智能自動化助理在智能電 話、個人數字助理、平板計算機或其它裝置上實施的實施例中,助理可控制裝置的許多操作和功能,例如撥打電話號碼、發送文本消息、設定提醒、將事件添加到日歷等。在各種實施例中,可實施本發明的系統以在若干不同域中的任一者中提供輔助。實例包含·本地服務(包含位置和時間特定服務,例如餐館、電影、自動柜員機(ATM)、事件以及見面地點);·個人和社會記憶服務(包含動作項目、便箋、日歷事件、共享鏈接等);·電子商務(包含例如書籍、DVD、音樂等項目的在線購買);·旅行服務(包含航班、旅館、景點等)。所屬領域的技術人員將認識到,以上域列表只是示范性的。另外,本發明的系統可以域的任何組合來實施。在各種實施例中,本文所揭示的智能自動化助理系統可經配置或設計以包含用于使經由因特網可用的數據和服務的應用自動化以發現、尋找、挑選、購買、預訂或訂購產品和服務的功能性。除了使使用這些數據和服務的過程自動化之外,本文所揭示的至少一個智能自動化助理系統實施例還可一次實現數據和服務的若干來源的組合使用。舉例來說,所述系統可組合來自若干評論點的關于產品的信息、檢查來自多個經銷商的價格和可用性,且檢查其位置和時間約束,并幫助用戶找到對其問題的個人化解決方案。另外,本文所揭示的至少一個智能自動化助理系統可經配置或設計以包含以下功能性用于使經由因特網可用的數據和服務的使用自動化以發現、調查、選擇、預訂和以其它方式得知待辦事項(包含(但不限于)電影、事件、表演、展覽、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅館和其它要停留的地方、地標以及其它關注地點等);吃喝的地方(例如餐館和酒吧);與他人見面的時間和地方,以及可在因特網上找到的娛樂或社會交互的任何其它來源。另外,本文所揭示的至少一個智能自動化助理系統實施例可經配置或設計以包含以下功能性使得能夠經由可原本由具有圖形用戶接口的專用應用程序提供的自然語言對話實現應用程序和服務的操作,所述專用應用包含搜索(包含基于位置的搜索);導航(地圖和方向);數據庫查找(例如,通過名稱或其它特性來尋找商店或人);獲得天氣情況和預報;檢查市場物品的價格或金融交易的狀態;監視交通或航班狀態;存取和更新日歷和日程表;管理提醒、警報、任務和計劃;經由電子郵件或其它消息接發平臺進行通信;以及本地或遠程地操作裝置(例如,撥打電話、控制光和溫度、控制家用安全裝置、播放音樂或視頻等)。另外,本文所揭示的至少一個智能自動化助理系統實施例可經配置或經設計以包含以下功能性識別、產生且/或提供對活動、產品、服務、娛樂來源、時間管理的個人化推薦或受益于自然語言中的交互式對話和對數據和服務的自動化存取的任何其它種類的推薦服務。在各種實施例中,本發明的智能自動化助理可控制電子裝置的許多特征和操作。舉例來說,智能自動化助理可調用經由API或通過其它方式與裝置上的功能性和應用程序介接的服務,以執行原本可使用裝置上的常規用戶接口起始的功能和操作。此些功能和操作可包含(例如)設定警告、進行電話呼叫、發送文本消息或電子郵件消息、添加日歷事件等。可將此些功能和操作執行為用戶與助理之間的談話對話的上下文中的附加功能。此些功能和操作可在此對話的上下文中由用戶指定,或其可基于對話的上下文自動執行。所屬領域的技術人員將認識到,助理可進而用作用于起始和控制電子裝置上的各種操作的控制機制,其可用作例如按鈕或圖形用戶接口等常規機構的替代物。
本發明的若干實施例,且連同描述內容一起用以根據實施例闡釋本發明的原理。所屬領域的技術人員將認識到,圖中所說明的特定實施例僅僅是示范性的,且無意限制本發明的范圍。圖I是描繪智能自動化助理系統的一個實施例的實例的框圖。圖2說明根據至少一個實施例的在用戶與智能自動化助理之間的交互的實例。圖3是描繪適合實施根據至少一個實施例的智能自動化助理的至少一部分的計算裝置的框圖。圖4是描繪用于根據至少一個實施例在獨立計算系統上實施智能自動化助理的至少一部分的架構的框圖。圖5是描繪用于根據至少一個實施例在分布式計算網絡上實施智能自動化助理的至少一部分的架構的框圖。圖6是描繪說明若干不同類型的客戶端和操作模式的系統架構的框圖。圖7是描繪根據一個實施例彼此通信以實施本發明的客戶端和服務器的框圖。圖8是描繪根據一個實施例的主動本體的一片段的框圖。圖9是描繪智能自動化助理系統的替代實施例的實例的框圖。圖10是描繪根據一個實施例的主動輸入引出組件的操作的方法的流程圖。圖11是描繪根據一個實施例的用于主動所鍵入輸入引出的方法的流程圖。圖12到21是說明根據一個實施例的用于主動所鍵入輸入引出的程序中的一些程序的某些部分的屏幕截圖。圖22是描繪根據一個實施例的用于引出話音或語音輸入的主動輸入引出的方法的流程圖。圖23是描繪根據一個實施例的用于引出基于⑶I的輸入的主動輸入引出的方法的流程圖。圖24是描繪根據一個實施例的用于在對話流等級下的主動輸入引出的方法的流程圖。圖25是描繪根據一個實施例的用于主動監視相關事件的方法的流程圖。圖26是描繪根據一個實施例的用于多模式主動輸入引出的方法的流程圖。圖27是說明根據一個實施例可由域模型組件和服務編排提供的各種類型的功能、操作、動作和/或其它特征的實例的一組屏幕截圖。圖28是描繪根據一個實施例的用于自然語言處理的方法的實例的流程圖。圖29是說明根據一個實施例的自然語言處理的屏幕截圖。 圖30和31是說明根據一個實施例可由對話流處理器組件提供的各種類型的功能、操作、動作和/或其它特征的實例的屏幕截圖。圖32是描繪根據一個實施例的對話流處理器組件的操作的方法的流程圖。圖33是描繪根據一個實施例的自動呼叫和響應程序的流程圖。圖34是描繪根據一個實施例的用于受約束選擇任務的任務流的實例的流程圖。圖35和36是說明根據一個實施例的受約束選擇任務的操作的實例的屏幕截圖。圖37是描繪根據一個實施例的用于執行服務編排程序的程序的實例的流程圖。圖38是描繪根據一個實施例的服務調用程序的實例的流程圖。圖39是描繪根據一個實施例的多階段輸出程序的實例的流程圖。圖40和41是描繪根據一個實施例的輸出處理的實例的屏幕截圖。圖42是描繪根據一個實施例的多模式輸出處理的實例的流程圖。圖43A和43B是描述根據一個實施例的在改變位置的同時使用短期個人存儲器組件來維持對話上下文的實例的屏幕截圖。圖44A到44C是描繪根據一個實施例的長期個人存儲器組件的使用的實例的屏幕截圖。圖45描繪用于受約束選擇任務的抽象模型的實例。圖46描繪幫助引導用戶通過搜索過程的對話流模型的實例。圖47是描繪根據一個實施例的受約束選擇的方法的流程圖。
具體實施例方式現在將參考如附圖中說明的幾個實例實施例詳細描述各種技術。在以下描述中,陳述大量具體細節,以便提供對本文所描述或參考的一個或一個以上方面和/或特征的全面理解。然而,所屬領域的技術人員將明白,本文所描述或參考的一個或一個以上方面和/或特征可在沒有一些或所有這些具體細節的情況下實踐。在其它情況下,為了不使本文所描述或參考的方面和/或特征中的一些方面和/或特征模糊不清,未詳細描述眾所周知的過程步驟和/或結構。本申請案中可能描述一個或一個以上不同發明。另外,對于本文所述的方面中的一者或一者以上,大量實施例可描述于本專利申請案中,且僅出于說明性目的而呈現。所描述的實施例無意在任何意義上具有限制性。如從揭示內容容易明白,所述發明中的一者或一者以上可廣泛適用于大量實施例。充分詳細地描述這些實施例以使得所屬領域的技術人員能夠實踐所述發明中的一者或一者以上,且將理解,可利用其它實施例,且可在不脫離所述發明中的一者或一者以上的范圍的情況下作出結構、邏輯、軟件、電氣和其它改變。因此,所屬領域的技術人員將認識到,可以各種修改和更改來實踐所述發明中的一者或一者以上。可參考形成本發明的一部分的一個或一個以上特定實施例或圖來描述所述發明中的一者或一者以上的特定特征,且其中以說明的方式展示所述發明中的一者或一者以上的特定實施例。然而,應理解,此些特征不限于在描述其所參考的一個或一個以上特定實施例或圖中使用。本發明不是對所述發明中的一者或一者以上的所有實施例的字描述,也不是所有實施例中必須存在的所述發明中的一者或一者以上的特征的列表。本專利申請案中所提供的章節的標題以及本專利申請案的題目僅是為了方便,且不應被視為以任何方式限制本發明。彼此通信的裝置無需彼此連續通信,除非另有明確指定。另外,彼此通信的裝置可直接通信或通過一個或一個以上中間物間接地通信。
對彼此通信的若干組件的實施例的描述并不暗示需要所有此些組件。相反,描述多種任選組件以說明所述發明中的一者或一者以上的廣泛多種的可能實施例。另外,盡管可以順序次序描述過程步驟、方法步驟、算法等,但此些過程、方法和算法可經配置以便以交替次序工作。換句話說,本專利申請案中可描述的步驟的任何序列或次序本身并不指示以所述次序執行所述步驟的要求。可以任何實際次序執行所描述過程的步驟。另外,可同時執行一些步驟,盡管所述步驟被描述或暗示為非同時發生(例如,因為一個步驟是在另一步驟之后描述的)。此外,通過在圖式中描繪而說明過程并不暗示所說明的過程排除對過程的其它變化和修改,并不暗示所說明的過程或其步驟中的任一者對所述發明中的一者或一者以上是必要的,且并不暗示所說明的過程是優選的。當描述單個裝置或物品時,將容易明白,可使用一個以上裝置/物品(不管其是否協作)代替單個裝置/物品。類似地,在描述一個以上裝置或物品(不管其是否協作)的情況下,將容易明白,可使用單個裝置/物品代替一個以上裝置或物品。裝置的功能性和/或特征可替代地由未明確描述為具有此類功能性/特征的一個或一個以上其它裝置體現。因此,所述發明中的一者或一者以上的其它實施例無需包含所述裝置本身。本文所描述或參考的技術和機制有時將為了清楚而以單數形式描述。然而,應注意,特定實施例包含技術的多次反復或機制的多個例示,除非另有注釋。盡管在智能自動化助理技術的上下文內描述,但可理解,本文所述的各種方面和技術(例如與主動本體相關聯的那些技術)還可部署和/或應用于涉及與軟件的人類和/或計算機化交互的其它領域的技術中。與智能自動化助理技術有關的其它方面(例如,其可由本文所述的一個或一個以上智能自動化助理系統實施例利用、提供且/或在所述一個或一個以上智能自動化助理系統實施例處實施)揭示于以下參考中的一者或一者以上中*2010年I月18日申請的代理人案號為SIRIP003P的第61/295,774號美國臨時專利申請案“智能自動化助理(Intelligent Automated Assistant) ”,所述臨時專利申請案的揭示內容以引用的方式并入本文中;· 2006年9月8日申請的第11/518,292號美國專利申請案“用于建立智能自動化助理的方法和設備(Method and Apparatus for Building an Intelligent AutomatedAssistant) ”,所述專利申請案的揭示內容以引用的方式并入本文中;以及· 2009年6月12日申請的第61/186,414號美國臨時專利申請案“用于語義自動完成的系統和方法(System and Method for Semantic Auto-Completion) ”,所述臨時專利申請案的揭示內容以引用的方式并入本文中。硬件架構通常,本文所揭示的智能自動化助理技術可在硬件或軟件與硬件的組合上實施。舉例來說,所述技術可在操作系統核心中、在單獨的用戶進程中、在綁定到網絡應用程序中的庫封裝中、在特殊構造的機器上,或在網絡接口卡上實施。在特定實施例中,本文所揭示的技術可在例如操作系統等軟件中或在操作系統上運行的應用程序中實施。本文所揭示的智能自動化助理實施例中的至少一些的軟件/硬件混合實施方案 可實施在由存儲在存儲器中的計算機程序選擇性地激活或重新配置的可編程機器上實施。此些網絡裝置可具有多個網絡接口,所述多個網絡接口可經配置或設計以利用不同類型的網絡通信協議。用于這些機器中的一些的一般架構可從本文所揭示的描述中得知。根據特定實施例,本文所揭示的各種智能自動化助理實施例的特征和/或功能性中的至少一些可實施在以下各者上一個或一個以上通用網絡主機,例如終端用戶計算機系統、計算機、網絡服務器或服務器系統、移動計算裝置(例如,個人數字助理、移動電話、智能電話、膝上型計算機、平板計算機等);消費型電子裝置;音樂播放器;或任何其它合適的電子裝置、路由器、交換機等,或其任何組合。在至少一些實施例中,本文所揭示的各種智能自動化助理實施例的特征和/或功能性中的至少一些可在一個或一個以上虛擬化計算環境(例如,網絡計算云等)中實施。現在參看圖3,展示了描繪適合實施本文所揭示的智能自動化助理特征和/或功能性的至少一部分的計算裝置60的框圖。計算裝置60可為(例如)終端用戶計算機系統、網絡服務器或服務器系統、移動計算裝置(例如,個人數字助理、移動電話、智能電話、膝上型計算機、平板計算機等)、消費型電子裝置;音樂播放器;或任何其它合適的電子裝置,或其任何組合或部分。計算裝置60可適于使用針對此通信的已知協議(無論是無線還是有線)經由例如因特網等通信網絡與其它計算裝置(例如客戶端和/或服務器)通信在一個實施例中,計算裝置60包含中央處理單元(CPU)62、接口 68以及總線67 (例如外圍組件互連(PCI)總線)。當在適當軟件或固件的控制下作用時,CPU 62可負責實施與經特殊配置的計算裝置或機器的功能相關聯的特定功能。舉例來說,在至少一個實施例中,用戶的個人數字助理(PDA)可經配置或設計以用作智能自動化助理系統,其利用CPU 62、存儲器61、65,以及接口 68。在至少一個實施例中,可致使CPU 62在軟件模塊/組件的控制下執行不同類型的智能自動化助理功能和/或操作中的一者或一者以上,所述軟件模塊/組件可(例如)包含操作系統和任何適當的應用程序軟件、驅動器等。CPU 62可包含一個或一個以上處理器63,例如來自摩托羅拉或因特爾微處理器家族或MIPS微處理器家族的處理器。在一些實施例中,處理器63可包含經特殊設計的硬件(例如,專用集成電路(ASIC)、電可擦除可編程只讀存儲器(EEPROM)、現場可編程門陣列(FPGA)等),其用于控制計算裝置60的操作。在特定實施例中,存儲器61 (例如非易失性隨機存取存儲器(RAM)和/或只讀存儲器(ROM))也形成CPU 62的一部分。然而,存在其中存儲器可耦合到系統的許多不同方式。存儲器塊61可用于多種目的,例如高速緩存和/或存儲數據、編程指令等。如本文所使用,術語“處理器”并不僅限于此項技術中稱為處理器的那些集成電路,而是廣泛地指代微控制器、微型計算機、可編程邏輯控制器、專用集成電路,以及任何其它可編程電路。在一個實施例中,可將接口 68提供為接口卡(有時稱為“線卡”)。通常,接口 68控制數據包在計算網絡上的發送和接收,且有時支持與計算裝置60 —起使用的其它外圍設備。可提供的接口是以太網接口、幀中繼接口、纜線接口、DSL接口、令牌環接口等。另夕卜,可提供各種類型的接口,例如通用串行總線(USB)、串行、以太網、火線、PCI、并行、射頻(RF)、Bluetooth 、近場通信(例如,使用近場磁)、802· 11 (WiFi)、幀中繼、TCP/IP、ISDN、快速以太網接口、千兆位以太網接口、異步傳送模式(ATM)接口、高速串行接口(HSSI)接口、銷售點(POS)接口、光纖數據分布接口(FDDI)等。通常,此些接口 68可包含適合與適當媒體通信的端口。在一些情況下,此些接口 68還可包含獨立處理器,且在一些例子中,可包含 易失性和/或非易失性存儲器(例如,RAM)。盡管圖3中所示的系統說明用于實施本文所描述的本發明的技術的計算裝置60的一種特定架構,但其絕不是其上可實施本文所述的特征和技術的至少一部分的僅有裝置架構。舉例來說,可使用具有一個或任何數目的處理器63的架構,且此些處理器63可存在于單個裝置中,或分布在任何數目的裝置之間。在一個實施例中,單個處理器63處置通信以及路由計算。在各種實施例中,可在智能自動化助理系統中實施不同類型的智能自動化助理特征和/或功能性,所述智能自動化助理系統包含客戶端裝置(例如,運行客戶端軟件的個人數字助理或智能電話)和服務器系統(例如下文更詳細描述的服務器系統)。不管網絡裝置配置如何,本發明的系統可使用一個或一個以上存儲器或存儲器模塊(例如,存儲器塊65),其經配置以存儲數據、用于通用網絡操作的程序指令,和/或與本文所述的智能自動化助理技術的功能性有關的其它信息。舉例來說,所述程序指令可控制操作系統和/或一個或一個以上應用程序的操作。存儲器還可經配置以存儲數據結構、關鍵字分類信息、廣告信息、用戶點擊和按壓信息,和/或本文中所描述的其它特定非程序信肩、O因此此些信息和程序指令可用以實施本文所描述的系統/方法,所以至少一些網絡裝置實施例可包含非暫時機器可讀存儲媒體,所述非暫時機器可讀存儲媒體(例如)可經配置或設計以存儲用于執行本文所述的各種操作的程序指令、狀態信息等。此類非暫時機器可讀存儲媒體的實例包含(但不限于)磁性媒體,例如硬盤、軟盤和磁帶;光學媒體,例如⑶-ROM磁盤;磁-光學媒體,例如軟光盤,以及經特殊配置以存儲和執行程序指令的硬件裝置,例如只讀存儲器裝置(ROM)、快閃存儲器、記憶電阻器存儲器、隨機存取存儲器(RAM)等。程序指令的實例包含機器代碼(例如由編譯器產生),以及含有可由計算機使用解譯器執行的較高等級代碼的文件。在一個實施例中,本發明的系統在獨立計算系統上實施。現在參看圖4,展示了描繪用于根據至少一個實施例在獨立計算系統上實施智能自動化助理的至少一部分的架構的框圖。計算裝置60包含處理器63,處理器63運行用于實施智能自動化助理1002的軟件。輸入裝置1206可為適合接收用戶輸入的任何類型,包含(例如)鍵盤、觸摸屏、麥克風(例如,用于話音輸入)、鼠標、觸摸板、軌跡球、五向開關、操縱桿和/或其任何組合。輸出裝置1207可為屏幕、揚聲器、打印機和/或其任何組合。存儲器1210可為具有如此項技術中已知的結構和架構的隨機存取存儲器,以供處理器63在運行軟件的過程中使用。存儲裝置1208可為用于以數字形式存儲數據的任何磁性、光學和/或電存儲裝置;實例包含快閃存儲器、磁性硬盤驅動器、⑶-ROM和/或類似物。在另一實施例中,本發明的系統是在分布式計算網絡(例如具有任何數目的客戶端和/或服務器的分布式計算網絡)上實施。現在參看圖5,展示了描繪用于根據至少一個實施例在分布式計算網絡上實施智能自動化助理的至少一部分的架構的框圖。在圖5所示的布置中,提供任何數目的客戶端1304 ;每一客戶端1304可運行用于實施本發明的客戶端側部分的軟件。另外,可提供用于處置從客戶端1304接收到的請求的任何數目的服務器1340。客戶端1304和服務器1340可經由電子網絡1361 (例如因特網)彼此通信。可使用任何已知網絡協議(包含(例如)有線和/或無線協議)來實施網絡1361。
另外,在一個實施例中,服務器1340可在需要時呼叫外部服務1360,以獲得額外信息或參考關于與特定用戶的先前交互的存儲數據。與外部服務1360的通信可(例如)經由網絡1361而發生。在各種實施例中,外部服務1360包含與硬件裝置本身有關或安裝于其上的具有網絡功能的服務和/或功能性。舉例來說,在其中助理1002實施于智能電話或其它電子裝置上的實施例中,助理1002可獲得存儲在日歷應用程序(“app”)、聯系人,和/或其它來源中的信息。在各種實施例中,助理1002可控制其上安裝了助理1002的電子裝置的許多特征和操作。舉例來說,助理1002可呼叫外部服務1360,外部服務1360經由API或通過其它方法與裝置上的功能性和應用程序介接,以執行原本可能使用裝置上的常規用戶接口起始的功能和操作。此些功能和操作可包含(例如)設定警報、作出電話呼叫、發送文本消息或電子郵件消息、添加日歷事件等。可將此些功能和操作執行為用戶與助理1002之間的對話對話的上下文中的附加功能。此些功能和操作可由用戶在此對話的上下文中指定,或其可基于對話的上下文自動執行。所屬領域的技術人員將認識到,助理1002可因而用作用于起始和控制電子裝置上的各種操作的控制機制,其可用作例如按鈕或圖形用戶接口等常規機構的替代方案。舉例來說,用戶可將輸入提供給助理1002,例如“我需要在明天上午8點醒來”。一旦助理1002已使用本文所述的技術確定用戶的意圖,助理1002就可呼叫外部服務1340以與裝置上的鬧鐘功能或應用程序介接。助理1002代表用戶設定警報。以此方式,用戶可使用助理1002作為用于設定警報或執行裝置上的其它功能的常規機構的代替物。如果用戶的請求是不明確的,或需要進一步澄清,那么助理1002可使用本文所述的各種技術(包含主動引出、釋義、建議等)來獲得所需的信息,使得正確的服務1340被呼叫,且采取既定動作。在一個實施例中,助理1002可在呼叫服務1340以執行功能之前提示用戶進行確認。在一個實施例中,用戶可選擇性地停用助理1002的呼叫特定服務1340的能力,或可在需要時停用所有此類服務呼叫。本發明的系統可結合許多不同類型的客戶端1304和操作模式而實施。現在參看圖6,展示了說明若干不同類型的客戶端1304和操作模式的系統架構的框圖。所屬領域的技術人員將認識到,圖6中所示的各種類型的客戶端1304和操作模式僅僅是示范性的,且本發明的系統可使用不同于所描繪的客戶端和操作模式的客戶端1304和/或操作模式來實施。另外,系統可單獨或以任何組合包含此些客戶端1304和/或操作模式中的任一者或全部。所描繪的實例包含 具有輸入/輸出裝置和/或傳感器的計算機裝置1402。客戶端組件可部署在任一此計算機裝置1402上。可使用用于經由網絡1361實現與服務器1340的通信的網絡瀏覽器1304A或其它軟件應用程序來實施至少一個實施例。輸入和輸出通道可為任何類型,包含(例如)視覺和/或聽覺通道。舉例來說,在一個實施例中,可使用基于話音的通信方法來實施本發明的系統,從而允許用于盲人的助理的實施例,盲人的網絡瀏覽器的等效物是由語音驅動且使用語音進行輸出。 具有I/O和傳感器的移動裝置1406,針對其,客戶端可實施為移動裝置上的應用程序1304B。這包含(但不限于)移動電話、智能電話、個人數字助理、平板裝置、聯網的游戲控制臺等。
具有I/O和傳感器的消費型電器1410,針對其,客戶端可實施為電器上的嵌入式應用程序1304C。 具有儀表盤接口和傳感器的汽車和其它交通工具1414,針對其,客戶端可實施為嵌入式系統應用程序1304D。這包含(但不限于)汽車導航系統、話音控制系統、車內娛樂系統等。·例如駐留在網絡上或與網絡介接的路由器1418或任何其它裝置等聯網計算裝置,針對其,客戶端可實施為裝置駐留應用程序1304E。·電子郵件客戶端1424,針對其,助理的實施例經由電子郵件形態服務器1426而連接。電子郵件形態服務器1426充當通信橋梁,例如將來自用戶的輸入作為發送到助理的電子郵件消息,且將來自助理的輸出發送給用戶作為回復。·即時消息接發客戶端1428,針對其,助理的實施例經由消息接發形態服務器1430而連接。消息接發形態服務器1430充當通信橋梁,將來自用戶的輸入作為發送到助理的消息,且將來自助理的輸出發送給用戶作為回復消息。·話音電話1432,針對其,助理的實施例經由因特網話音協議(VoIP)形態服務器1430而連接。VoIP形態服務器1430充當通信橋梁,將來自用戶的輸入作為向助理說出的話音,且將來自助理的輸出發送給用戶,例如作為回復的經合成語音。對于包含(但不限于)電子郵件、即時消息接發、討論論壇、群組聊天會話、在線幫助或客戶支持會話等消息接發平臺,助理1002可充當談話中的參與者。助理1002可監視談話,并使用本文針對一對一交互所描述的一種或一種以上技術和方法來回復個人或群組。在各種實施例中,用于實施本發明的技術的功能性可分布于任何數目的客戶端和/或服務器組件當中。舉例來說,可實施各種軟件模塊以用于結合本發明執行各種功能,且此些模塊可以各種方式實施以在服務器和/或客戶端組件上運行。現在參看圖7,展示客戶端1304和服務器1340的實例,其彼此通信以根據一個實施例實施本發明。圖7描繪一種可能的布置,通過所述布置,軟件模塊可分布在客戶端1304與服務器1340之間。所屬領域的技術人員將認識到,所描繪的布置僅僅為示范性的,且此些模塊可以許多不同方式分布。另外,可提供任何數目的客戶端1304和/或服務器1340,且所述模塊可以多種不同方式中的任一者分布在這些客戶端1304和/或服務器1340當中。在圖7的實例中,輸入引出功能性和輸出處理功能性分布在客戶端1304與服務器1340當中,其中輸入引出的客戶端部分1904a和輸出處理的客戶端部分1092a位于客戶端1304處,且輸入引出的服務器部分1094b和輸出處理的服務器部分1092b位于服務器1340處。以下組件位于服務器1340處 整個詞匯 1058b;·整個語言模式辨識器庫1060b ;·短期個人存儲器的主版本1052b ;·長期個人存儲器的主版本1054b。在一個實施例中,客戶端1304在本地維持這些組件的子集和/或部分,以改進響 應性并減少對網絡通信的依賴。可根據眾所周知的高速緩沖存儲器管理技術來維持和更新此些子集和/或部分。此些子集和/或部分包含,例如·詞匯子集 1058a ;·語言模式辨識器庫的子集1060a ;·短期個人存儲器的高速緩沖存儲器1052a ;·長期個人存儲器的高速緩沖存儲器1054a。可將額外組件實施為服務器1340的部分,包含(例如): 語言解譯器1070; 對話流處理器1080 ; 輸出處理器1090; 域實體數據庫1072; 任務流模型1086; 服務編排1082 ; 服務能力模型1088。下文將更詳細地描述這些組件中的每一者。服務器1340通過在需要時與外部服務1360介接來獲得額外信息。概念架構現在參看圖1,展示智能自動化助理1002的特定實例實施例的簡化框圖。如本文更詳細地描述,智能自動化助理系統的不同實施例可經配置、設計且/或可操作以提供大體上與智能自動化助理技術有關的各種不同類型的操作、功能性和/或特征。另外,如本文中更詳細地描述,本文所揭示的智能自動化助理系統的各種操作、功能性和/或特征中的許多者可提供可實現或提供不同類型的優點和/或益處給與智能自動化助理系統交互的不同實體。圖I中所示的實施例可使用上文所述的硬件架構中的任一者或使用不同類型的硬件架構來實施。舉例來說,根據不同實施例,至少一些智能自動化助理系統可經配置、設計和/或可操作以提供各種不同類型的操作、功能性和/或特征,例如以下各者中的一者或一者以上(或其組合)·使經由因特網可用的數據和服務的應用自動化,以發現、尋找、挑選、購買、預訂、訂購產品和服務。除了使使用這些數據和服務的過程自動化之外,智能自動化助理1002還可同時實現數據和服務的若干來源的組合使用。舉例來說,智能自動化助理1002可組合關于來自若干評論點的產品的信息,檢查來自多個經銷商的價格和可用性,且檢查其位置和時間約束,且幫助用戶找出對其問題的個人化解決方案。·使經由因特網可用的數據和服務的使用自動化,以發現、調查、選擇、預訂和以其它方式得知代辦事項(包含(但不限于)電影、事件、表演、展覽、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅館和其它停留地方、地標和其它景點等);吃喝的地方(例如餐館和酒吧),見面時間和地點,以及可在因特網上找到的娛樂或社會交互的任何其它來源。·經由原本由具有圖形用戶接口的專 用應用程序提供的自然語言對話實現應用程序和服務的操作,所述圖形用戶接口包含搜索(包含基于位置的搜索);導航(地圖和方向);數據庫查找(例如通過姓名或其它特性來查找商店或人);獲得天氣情況和預報,檢查市場物品的價格或金融交易的狀態;監視交通或航班狀態;存取和更新日歷和日程表;管理提醒、警報、任務和計劃;經由電子郵件或其它消息接發平臺進行通信;以及本地或遠程操作裝置(例如,撥打電話,控制光和溫度,控制家用安全裝置,播放音樂或視頻等)。在一個實施例中,助理1002可用以起始、操作和控制裝置上可用的許多功能和應用程序。·提供對活動、產品、服務、娛樂來源、時間管理的個人推薦,或任何其它種類的推薦服務,其受益于自然語言的交互式對話以及對數據和服務的自動化存取。根據不同實施例,可在一個或一個以上客戶端系統處、在一個或一個以上服務器系統處,和/或在其組合處實施由智能自動化助理1002提供的各種類型的功能、操作、動作和/或其它特征的至少一部分。根據不同實施例,由助理1002提供的各種類型的功能、操作、動作和/或其它特征的至少一部分可由自動化呼叫和響應程序的至少一個實施例實施,例如相對于圖33所說明和描述的程序。另外,本文描述的助理1002的各種實施例可包含或提供優于當前存在的智能自動化助理技術的許多不同優點和/或益處,所述技術例如為以下各項中的一者或一者以上(或其組合)·語音-文本和自然語言理解技術的整合,其由域、任務、服務和對話的一組顯式模型約束。不同于嘗試實施通用人工智能系統的助理技術,本文所述的實施例可應用多個約束源來減少對較易駕馭大小的解決方案的數目。這導致較少的對語言的模糊解釋、較少的相關域或任務,以及較少的使服務中的意圖操作化的方式。對特定域、任務和對話的關注也使得實現對具有人類管理的詞匯的域和任務的覆蓋以及從意圖到服務參數的映射是可行的。·通過使用API經由因特網代表其而調用服務來解決用戶問題的能力。不同于僅返回鏈接和內容的搜索引擎,本文所述的自動化助理1002的實施例可使研究和問題解決活動自動化。針對給定請求而調用多個服務的能力還向用戶提供比通過訪問單個站點(例如)以產生產品或服務或尋找要做的事情而實現的功能性更廣的功能性。·在用戶請求的解譯和執行中應用個人信息和個人交互歷史。不同于常規搜索引擎或問題回答服務,本文所描述的實施例使用來自個人交互歷史(例如,對話歷史、來自結果的先前選擇等)的信息、個人物理環境(例如,用戶的位置和時間),以及在交互的上下文中搜集的個人信息(例如,姓名、電子郵件地址、物理地址、電話號碼、賬戶號、偏好等)。使用這些信息源實現(例如),O對用戶輸入的更佳解譯(例如,當解譯語言時使用個人歷史和物理環境);O更個人化的結果(例如,其偏向偏好或最近選擇);O為用戶改善的效率(例如,通過使涉及向服務簽約或填寫表格的步驟自動化)。 將對話歷史用于解譯用戶輸入的自然語言。因為所述實施例可保持個人歷史,且應用對用戶輸入的自然語言理解,所以所述實施例還可使用對話上下文(例如當前位置、時間、域、任務步驟和任務參數來解譯新輸入。常規的搜索引擎和命令處理器獨立于對話歷史而解譯至少一個查詢。使用對話歷史的能力可使更自然的交互成為可能,其類似于正常的人類談話。
·主動輸入引出,其中助理1002基于用以解譯其輸入的相同模型和信息,主動引導和約束來自用戶的輸入。舉例來說,助理1002可應用對話模型來建議與用戶的對話中的接下來的步驟,其中所述步驟正細化請求;基于域和上下文特定可能性提供對部分鍵入的輸入的完成;或使用語義解譯來從語音為文本或文本為意圖的模糊解譯進行選擇。 服務的顯式建模和動態管理,其具有動態或穩健的服務編排。所述實施例的架構使助理1002能夠與許多外部服務介接,動態地確定哪些服務可為特定用戶請求提供信息,將用戶請求的參數映射到不同服務API,一次呼叫多個服務,整合來自多個服務的結果,平穩地對失敗的服務進行故障處理,和/或隨著其API和能力演化而高效地維持服務的實施。·將主動本體用作用于構造助理1002的方法和設備,其簡化自動化助理系統的軟件工程設計和數據維護。主動本體是用于助理的對數據建模與執行環境的整合。其提供將各種模型和數據源(域概念、任務流、詞匯、語言模式辨識器、對話上下文、用戶個人信息,以及從域和任務請求到外部服務的映射)系在一起的框架。本文描述的主動本體和其它架構創新使得在域內構造深度功能性為實用的,從而統一多個信息和服務源,且在一組域上進行此活動。在至少一個實施例中,智能自動化助理1002可操作以在執行特定任務和/或操作時,利用和/或產生各種不同類型的數據和/或其它類型的信息。這可包含(例如)輸入數據/信息和/或輸出數據/信息。舉例來說,在至少一個實施例中,智能自動化助理1002可操作以存取、處理和/或以其它方式利用來自一種或一種以上不同類型的來源(例如,一個或一個以上本地和/或遠程存儲器、裝置和/或系統)的信息。另外,在至少一個實施例中,智能自動化助理1002可操作以產生一種或一種以上不同類型的輸出數據/信息,所述輸出數據/信息(例如)可存儲在一個或一個以上本地和/或遠程裝置和/或系統的存儲器中。可由智能自動化助理1002存取和/或利用的不同類型的輸入數據/信息的實例可包含(但不限于)以下各者中的一者或一者以上(或其組合) 來自移動裝置的話音輸入,所述移動裝置例如為移動電話和平板計算機、具有麥克風的計算機、藍牙手持機、汽車話音控制系統,經由電話系統、回答服務上的紀錄、整合的消息接發服務上的音頻話音郵件、具有例如時鐘無線電等話音輸入的消費型應用、電話臺、家用娛樂控制系統,以及游戲控制臺。 來自計算機或移動裝置上的鍵盤、遙控器或其它消費型電子裝置上的小鍵盤的文本輸入;發送到助理的電子郵件消息;發送到助理的即時消息或類似的短消息;從多用戶游戲環境中的玩家接收到的文本,以及在消息饋送中流式傳輸的文本。 來自傳感器或基于位置的系統的位置信息。實例包含移動電話上的全球定位系統(GPS)和輔助式GPS(A-GPS)。在一個實施例中,位置信息與顯式用戶輸入組合。在一個實施例中,本發明的系統能夠基于已知地址信息和當前位置確定來檢測用戶何時在家。以此方式,可關于用戶在家時可能感興趣的與在家外相對的信息類型以及應取決于用戶是否在家而代表用戶調用的服務和動作的類型作出某些推斷。 來自客戶端裝置上的時鐘的時間信息。這可包含(例如)來自電話或其它客戶端裝置的指示本地時間和時區的時間。另外,時間可用于用戶請求的上下文中(例如)以解譯例如“在一小時內”和“今晚”等短語。·羅盤、加速計、陀螺儀和/或行進速度數據,以及來自移動或手持式裝置或例如 汽車控制系統等嵌入式系統的其它傳感器數據。這還可包含來自電器的遙控器和游戲控制臺的裝置定位數據。 來自具有圖形用戶接口(GUI)的任何裝置上的GUI的點擊和菜單選擇和其它事件。進一步實例包含對觸摸屏的觸摸。 來自傳感器和其它數據驅動觸發器(例如,鬧鐘、日歷警告、價格改變觸發器、位置觸發器、從服務器到裝置上的推送通知等)的事件。對本文所述的實施例的輸入還包含用戶交互歷史(包含對話和請求歷史)的上下文。可由智能自動化助理1002產生的不同類型的輸出數據/信息的實例可包含(但不限于)以下各者中的一者或一者以上(或其組合)·直接發送到輸出裝置和/或發送到裝置的用戶接口的文本輸出·經由電子郵件發送給用戶的文本和圖形·經由消息接發服務發送給用戶的文本和圖形 語音輸出,可包含以下各者中的一者或一者以上(或其組合)ο經合成的語音ο經取樣的語音ο經紀錄的消息·具有照片、豐富文本、視頻、聲音和超鏈接的信息的圖形布局。舉例來說,在網絡瀏覽器中再現的內容。·用以控制裝置上的物理動作的致動器輸出,例如致使裝置接通或斷開、發出聲音、改變色彩、振動、控制光,等等。·調用裝置上的其它應用程序,例如呼叫映射應用程序;話音撥打電話;發送電子郵件或即時消息;播放媒體;在日歷、任務管理器和便箋應用程序以及其它應用程序中制作條目。 用以控制對由裝置附著或控制的裝置的物理動作的致動器輸出,所述物理動作例如為操作遠程相機、控制輪椅、在遠程揚聲器上播放音樂、在遠程顯示器上播放視頻,等
坐寸ο可了解,圖I的智能自動化助理1002只是來自可實施的較廣范圍的智能自動化助理系統實施例的一個實例。智能自動化助理系統(未圖示)的其它實施例可包含與(例如)在圖I的實例智能自動化助理系統實施例中所說明的組件/特征相比是額外的、更少的和/或不同的組件/特征。用戶交互現在參看圖2,展示用戶與智能自動化助理1002的至少一個實施例之間的交互的實例。圖2的實例假定用戶正使用輸入裝置1206向智能自動化助理1002說話,輸入裝置1206可為語音輸入機構,且輸出為到輸出裝置1207的圖形布局,輸出裝置1207可為可滾動屏幕。談話屏幕IOlA的特征為談話用戶接口 ,其展示用戶所說的話IOlB (“我想去我辦公室附近吃意大利餐的浪漫地方”)和助理1002的響應,所述響應為發現結果的概述101C( “好的,我找到這些意大利餐館,評論說這些餐館氣氛浪漫,且靠近您工作的地方”)以及一組結果IOlD (展示餐館列表中的前三者)。在此實例中,用戶在列表中的第一結果上點擊,且所述結果自動打開以顯現顯示于信息屏幕IOlE中的關于所述餐館的更多信息。信息屏幕IOlE和談話屏幕IOlA可出現在同一輸出裝置(例如觸摸屏或其它顯示裝置)上;圖2中所描繪的實例為同一輸出裝置的兩種不同輸出狀態。在一個實施例中,信息屏幕IOlE展示從多個服務搜集并組合的信息,包含(例如)以下各者中的任一者或全部 商店的地址和地理位置;·距用戶的當前位置的距離; 來自多個來源的評論;在一個實施例中,信息屏幕IOlE還包含助理1002可能代表用戶提供的服務的一些實例,包含·撥打電話以呼叫商店(“呼叫”);·記住此餐館以供將來參考(“保存”);·將具有關于此餐館的方向和信息的電子郵件發送給某人(“共享”);·在地圖上展示此餐館的位置和到此餐館的方向(“在地圖上顯示它”);·保存關于此餐館的個人便箋(“我的便箋”)。如圖2的實例中所示,在一個實施例中,助理1002包含超過簡單數據庫應用程序的智能,例如,·處理自然語言IOlB中的意圖陳述,不僅僅是關鍵字;·從所述語言輸入推斷語義意圖,例如將“吃意大利餐的地方”解譯為“意大利餐館”;·將語義意圖操作化為使用在線服務的策略,并代表用戶執行所述策略(例如,將對浪漫地方的希望操作化為檢查在線評論點以尋找將一個地方描述為“浪漫”的評論的策略)。智能自動化助理組件根據各種實施例,智能自動化助理1002可包含多種不同類型的組件、裝置、模塊、過程、系統等,其(例如)可經由使用硬件和/或硬件與軟件的組合來實施和/或例示。舉例來說,如圖I的實例實施例中所說明,助理1002可包含以下類型的系統、組件、裝置、過程等(或其組合)中的一者或一者以上
· 一個或一個以上主動本體1050 ;·主動輸入引出組件1094(可包含客戶端部分1094a和服務器部分1094b);·短期個人存儲器組件1052 (可包含主版本1052b和高速緩沖存儲器1052a);·長期個人存儲器組件1054(可包含主版本1052b和高速緩沖存儲器1052a); 域模型組件1056;·詞匯組件1058 (可包含整個詞匯1058b和子集1058a);·語言模式辨識器組件1060 (可包含完整庫1060b和子集1560a); 語言解譯器組件1070 ;
·域實體數據庫1072 ; 對話流處理器組件1080 ;·服務編排組件1082 ;·服務組件1084 ;·任務流模型組件1086 ;·對話流模型組件1087 ;·服務模型組件1088 ;·輸出處理器組件1090。如結合圖7所述,在某些基于客戶端/服務器的實施例中,這些組件中的一些或全部可分布在客戶端1304與服務器1340之間。出于說明的目的,現在將參考圖I的實例智能自動化助理1002實施例更詳細地描述智能自動化助理1002的特定實例實施例的不同類型的組件的至少一部分。主動本體ΙΟδΟ主動本體1050充當統一架構,其整合來自智能自動化助理1002的實施例的其它部分的模型、組件和/或數據。在計算機和信息科學領域中,本體提供用于數據和知識表示的結構,例如類/類型、關系、屬性/特性,以及其在例子中的例示。本體例如用以建立數據和知識的模型。在智能自動化系統1002的一些實施例中,本體是在其中構造例如域模型等模型的建模框架的部分。在本發明的上下文內,“主動本體” 1050還可充當執行環境,其中不同處理元素以類似本體的方式布置(例如,具有與其它處理元素不同的屬性和關系)。這些處理元素執行智能自動化助理1002的任務中的至少一些任務。可提供任何數目的主動本體1050。在至少一個實施例中,主動本體1050可為可操作的,以執行和/或實施各種類型的功能、操作、動作和/或其它特征,例如以下各者中的一者或一者以上(或其組合)·充當建模和開發環境,其整合來自各種模型和數據組件的模型和數據,包含(但不限于)ο 域模型 1056ο 詞匯 1058ο域實體數據庫1072ο任務流模型1086ο對話流模型1087ο服務能力模型1088
·充當數據建模環境,基于本體的編輯工具可在其上操作以開發新的模型、數據結構、數據庫基模以及表示。 充當實況執行環境,其例示域1056、任務1086和/或對話模型1087、語言模式辨識器和/或詞匯1058的元素的值,以及例如在短期個人存儲器1052、長期個人存儲器1054和/或服務編排1182的結果中找到的用戶特定信息。舉例來說,主動本體的一些節點可對應于域概念(例如餐館)以及其特性(餐館名稱)。在實況執行期間,這些主動本體節點可用特定餐館實體的身份及其名稱以及其名稱如何對應于自然語言輸入表達中的字來例示。因此,在此實施例中,主動本體正用作指定餐館為具有身份(其具有名稱)的實體的概念的建模環境,且用于存儲那些建模節點與來自實體數據庫的數據以及自然語言的解析的動態綁定。·實現智能自動化助理的組件和處理元件之間的通信和協調,所述組件和處理元件例如為以下各者中的一者或一者以上(或其組合)
ο主動輸入引出組件1094ο語言解譯器組件1070ο對話流處理器組件1080ο服務編排組件1082ο服務組件1084在一個實施例中,本文描述的主動本體1050的功能、操作、動作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申請的第11/518,292號美國專利申請案“用于構造智能自動化助理的方法和設備(Method and Apparatus for Building anIntelligentAutomated Assistant) ”中描述的各種方法和設備來實施。在至少一個實施例中,主動本體1050的給定例子可從一個或一個以上相關聯的數據庫存取和/或利用信息。在至少一個實施例中,可經由與一個或一個以上本地和/或遠程存儲器裝置的通信來存取數據庫信息的至少一部分。可由主動本體1050存取的不同類型的數據的實例可包含(但不限于)以下各者中的一者或一者以上(或其組合)·靜態數據,其可從智能自動化助理1002的一個或一個以上組件獲得; 在每個用戶會話動態例示的數據,例如(但不限于)維持在智能自動化助理1002的組件之間交換的用戶特定輸入和輸出的狀態,短期個人存儲器的內容,從用戶會話的先前狀態作出的推斷,等等。以此方式,主動本體1050用以統一智能自動化助理1002中的各種組件的元素。主動本體1050允許作者、設計者或系統構造者整合組件,使得用其它組件的元素來識別一個組件的元素。作者、設計者或系統構造者可因此較容易地組合和整合組件。現在參看圖8,展示根據一個實施例的主動本體1050的片段的實例。此實例意在幫助說明可由主動本體1050提供的各種類型的功能、操作、動作和/或其它特征中的一些。圖8中的主動本體1050包含餐館和用餐事件的表示。在此實例中,餐館是具有例如其名稱1612、所提供菜系1615以及其位置1613等特性的概念1610,其又可建模為具有街道地址1614的特性的結構化節點。用餐事件的概念可建模為節點1616,節點1616包含聚餐1617(其具有規模1619)和時間周期1618。·主動本體可包含和/或作出對域模型1056的參考。舉例來說,圖8描繪鏈接到餐館概念1610和用餐事件概念1616的外出就餐域模型1622。在此例子中,主動本體1050包含外出就餐域模型1622 ;具體地說,主動本體1050的至少兩個節點(即餐館1610和用餐事件1616)也包含在外出就餐域模型1622中且/或由外出就餐域模型1622參考。此域模型尤其表示外出就餐涉及發生在餐館的用餐事件的理念。主動本體節點餐館1610和用餐事件1616也由智能自動化助理(由圖8中的虛線展示)的其它組件包含和/或參考。·主動本體可包含和/或參考任務流模型1086。舉例來說,圖8描繪事件規劃任務流模型1630,其獨立于應用于域特定種類的事件用餐事件1616的域而對事件的規劃進行建模。此處,主動本體1050包含一般事件規劃任務流模型1630,一般事件規劃任務流模型1630包括表示事件以及對其進行規劃時所涉及的其它概念的節點。主動本體1050還包含節點用餐事件1616,其為特定種類的事件。在此實例中,用餐事件1616由域模型1622和任務流模型1630包含或參考,且這些模型兩者均包含在主動本體1050中且/或由主動本體1050參考。并且,用餐事件1616為主動本體可如何統一由圖8中的虛線所示的智能自動化助理的其它組件包含且/或參考的各種組件的元件的實例。
·主動本體可包含且/或參考對話流模型1087。舉例來說,圖8描繪對話流模型1642,其用于獲得在如概念1619中所表示的約束聚會規模上所例示的交易所需的約束的值。并且,主動本體1050提供用于關聯和統一例如對話流模型1087等各種組件的框架。在此情況下,對話流模型1642具有在此特定實例中例示的對主動本體節點聚會規模1619的約束的一般概念。此特定對話流模型1642獨立于域而以約束的抽象物操作。主動本體1050表示聚會節點1617的聚會規模特性1619,其與用餐事件節點1616有關。在此實施例中,智能自動化助理1002使用主動本體1050來統一對話流模型1642中的約束概念與聚會規模1619的特性,以作為表示用餐事件概念1616的節點群集的一部分,用餐事件概念1616為域模型1622的用于外出就餐的部分。·主動本體可包含且/或參考服務模型1088。舉例來說,圖8描繪餐館預訂服務1672的模型,所述模型與用于獲得所述服務執行交易所需的值的對話流步驟相關聯。在此例子中,用于餐館預訂服務的服務模型1672指定預訂需要聚會規模1619的值(坐在預訂桌子旁的人數)。概念聚會規模1619 (其為主動本體1050的一部分)還鏈接到一般對話流模型1642或與一般對話流模型1642有關,用于詢問用戶關于對交易的約束;在此例子中,聚會規模是對話流模型1642所需的約束。 主動本體可包含且/或參考域實體數據庫1072。舉例來說,圖8描繪與主動本體1050中的餐館節點1610相關聯的餐館的域實體數據庫1652。主動本體1050表示餐館的一般概念1610,其可由智能自動化助理1002的各種組件使用,且其由關于餐館數據庫1652中的特定餐館的數據例示。·主動本體可包含且/或參考詞匯數據庫1058。舉例來說,圖8描繪菜系詞匯數據庫1662,例如意大利、法國等,以及與每一菜系相關聯的字,例如“法國”、“歐洲”、“省”等。主動本體1050包含餐館節點1610,其與所提供菜系節點1615有關,所提供菜系節點1615與菜系數據庫1662中的菜系的表示相關聯。數據庫1662中用于一菜系的特定條目(例如“法國”)因此通過主動本體1050作為所提供菜系1615的概念的例子而相關。 主動本體可包含且/或參考可映射到本體1050中的概念或其它表示的任何數據庫。域實體數據庫1072和詞匯數據庫1058僅為主動本體1050可如何將數據庫彼此整合且與自動化助理1002的其它組件整合的兩個實例。主動本體允許作者、設計者或系統構造者指定數據庫中的表示與本體1050中的表示之間的非平凡映射。舉例來說,用于餐館數據庫1652的數據庫模式可將餐館表示為字符串和數字的表,或表示為從較大的商店數據庫的投射,或適合于數據庫1652的任何其它表示。在此實例主動本體1050中,餐館1610為具有以與數據庫表不同的方式組織的特性和關系的概念節點。在此實例中,本體1050的節點與數據庫基模的元素相關聯。數據庫與本體1050的整合提供用于依據主動本體1050中的模型和數據的較大集合而解譯數據庫中的特定數據條目且對其作用的統一表示。舉例來說,字“法國”可為菜系數據庫1662中的條目。因為在此實例中,數據庫1662整合在主動本體1050中,相同的字“法國”也具有作為在餐館處提供的可能菜系的解譯,其在規劃用餐事件中涉及,且此菜系充當在使用餐館預訂服務等時使用的約束。主動本體可因此將數據庫整合到建模和執行環境中,以與自動化助理1002的其它組件互操作。如上文所述,主動本體1050允許作者、設計者或系統構造者整合組件;因此,在圖8的實例中,組件的元素(例如對話流模型1642中的約束)可用其它組件的元素(例如餐館預訂服務1672的所需參數)識別。
主動本體1050可體現為(例如)模型、數據庫和組件的配置,其中模型、數據庫和組件間的關系為以下各者中的任一者·容器和/或包含;·具有鏈接和/或指針的關系;·經由API的接口,兩者均在程序內部和程序之間。舉例來說,現在參看圖9,展示智能自動化助理系統1002的替代實施例的實例,其中域模型1056、詞匯1058、語言模式辨識器1060、短期個人存儲器1052以及長期個人存儲器1054的組件在與主動本體1050相關聯的共用容器下組織,且例如主動輸入引出組件1094、語言解譯器1070以及對話流處理器1080等其它組件經由API關系與主動本體1050
相關聯。主動輸入引出組件1094在至少一個實施例中,主動輸入引出組件1094(如上文所述,其可實施于獨立配置中或包含服務器和客戶端組件兩者的配置中)可為可操作的,以執行且/或實施各種類型的功能、操作、動作和/或其它特征,例如以下各者中的一者或一者以上(或其組合)
引出、促進和/或處理來自用戶或用戶的環境的輸入,和/或關于用戶的需要或請求的信息。舉例來說,如果用戶正希望找到餐館,那么輸入引出模塊可獲得關于用戶對位置、事件、菜系、價格等的約束或偏好的信息。 促進來自各種來源的不同種類的輸入,例如以下各者中的一者或一者以上(或其組合)ο來自產生文本的鍵盤或任何其它輸入裝置的輸入ο來自提供對部分輸入的動態所建議完成的用戶接口中的鍵盤的輸入ο來自話音或語音輸入系統的輸入ο來自圖形用戶接口(GUI)的輸入,其中用戶點擊、選擇或以其它方式直接操縱圖形對象以指示選擇O來自產生文本并將其發送到自動化助理的其它應用程序的輸入,所述其它應用程序包含電子郵件、文本消息接發,或其它文本通信平臺通過執行主動輸入引出,助理1002能夠在輸入處理的早期階段消除意圖的歧義。舉例來說,在其中輸入由語音提供的實施例中,可將波形發送到服務器1340,可在服務器1340處提取字,且執行語義解譯。可接著使用此語義解譯的結果來驅動主動輸入引出,其可向用戶提供替代候選字,以基于其語義配合程度以及發音匹配而挑選。在至少一個實施例中,主動輸入引出組件1094主動、自動且動態地將用戶引導向可由助理1002的實施例所提供的服務中的一者或一者以上作用的輸入。現在參看圖10,展示了描繪根據一個實施例的用于主動輸入引出組件1094的操作方法的流程圖。程序開始20。在步驟21中,助理1002可提供一個或一個以上輸入通道上的接口。舉例來說,用戶接口可提供用戶選項,以說出或鍵入或點按談話交互的任何階段。在步驟22中,用戶通過在一個形態上起始輸入(例如按壓按鈕以開始紀錄語音或引出接口以用于鍵 入)來選擇輸入通道。在至少一個實施例中,助理1002提供對選定形態的默認建議23。也就是說,助理1002提供選項24,選項24在用戶在所述形態上輸入任何輸入之前在當前上下文中相關。舉例來說,在文本輸入形態中,助理1002可提供將開始文本請求或命令的常見字列表,例如以下各者中的一者或一者以上(或其組合)命令式動詞(例如,尋找、購買、預訂、獲得、呼口q、檢查、調度等)、名詞(例如,餐館、電影、事件、商店等),或對談論域命名的類似菜單的選項(例如,天氣、體育、新聞等)。如果用戶在25中選擇默認選項中的一者,且對自動提交30的偏好被設定,那么程序可立即返回。這類似于常規菜單選擇的操作。然而,可將初始選項視為部分輸入,或用戶可能已開始輸入部分輸入26。在輸入的任何點處,在至少一個實施例中,用戶可選擇指示部分輸入完成22,這致使程序返回。在28中,將最新輸入(不管是被選擇還是被輸入的)與累積輸入相加。在29中,在給定當前輸入以及對什么構成相關和/或有意義的輸入的約束的其它來源的情況下,系統建議接下來可能的相關輸入。在至少一個實施例中,對用戶輸入的約束的來源(例如,其用于步驟23和29中)為可包含于助理1002中的各種模型和數據源中的一者或一者以上,其可包含(但不限于)以下各者中的一者或一者以上(或其組合) 詞匯1058。舉例來說,可建議與當前輸入匹配的字或短語。在至少一個實施例中,詞匯可與主動本體、域模型、任務模型、對話模型和/或服務模型中的任一節點或一個或一個以上節點相關聯。 域模型1056,其可約束可例示或以其它方式與域模型一致的輸入。舉例來說,在至少一個實施例中,域模型1056可用以建議將與當前輸入一致的概念、關系、特性和/或例子。·語言模式辨識器1060,其可用以辨識當前輸入中的慣用語、短語、語法構造或其它模式,且用以建議填充所述模式的完成。 域實體數據庫1072,其可用以建議與輸入匹配的域中的可能實體(例如,商店名稱、電影名稱、事件名稱等)。 短期存儲器1052,其可用以匹配任何先前輸入或先前輸入的部分,和/或關于與用戶交互的歷史的任何其它特性或詳情。舉例來說,可將部分輸入與用戶在會話中已遇到的城市匹配,不管是假想地(例如,在查詢中提到)且/或實際的(例如,如從位置傳感器確定)。·在至少一個實施例中,可使最近輸入、請求或結果的語義釋義與當前輸入匹配。舉例來說,如果用戶先前已請求“實況音樂”且獲得音樂會列表,且接著將“音樂”鍵入主動輸入引出環境中,那么建議可包含“實況音樂”和/或“音樂會”。·長期個人存儲器1054,其可用以建議匹配來自長期存儲器的項目。此些匹配項目可包含(例如)以下各者中的一者或一者以上或任一組合被保存的域實體(例如,“喜愛的”餐館、電影、劇院、比賽地點等)、待辦事項項目、列表項目、日歷條目、聯系人/地址簿中的人名、聯系人/地址簿中所提到的街道或城市名,等等。·任務流模型1086,其可用以基于任務流中的接下來的可能步驟而建議輸入。 ·對話流模型1087,其可用以基于對話流中的接下來可能步驟而建議輸入。·服務能力模型1088,其可用以通過模型中的名稱、類別、能力或任何其它特性來建議要使用的可能服務。舉例來說,用戶可鍵入優選的評論點的名稱的部分,且助理1002可建議用于查詢所述評論點以進行評論的完整命令。在至少一個實施例中,主動輸入引出組件1094向用戶呈現談話接口,例如其中用戶和助理通過使言論以談話方式來回而通信的接口。主動輸入引出組件1094可為可操作的,以執行且/或實施各種類型的談話接口。在至少一個實施例中,主動輸入引出組件1094可為可操作的,以執行且/或實施各種類型的談話接口,其中助理1002使用談話層級來根據對話模型提示來自用戶的信息。對話模型可表示用于執行對話的程序,例如引出執行服務所需的信息所需的一系列步驟。在至少一個實施例中,在用戶正在鍵入、講話或以其它方式創建輸入中的同時,主動輸入引出組件1094實時地向用戶提供約束和向導。舉例來說,主動引出可引導用戶鍵入文本輸入,所述文本輸入可由助理1002的實施例辨識,且/或可由助理1002的實施例所提供的一個或一個以上服務來服務。這是優于被動等待來自用戶的未受約束輸入的優點,因為其使用戶的努力能夠集中在可有用或可能有用的輸入上,且/或其使助理1002的實施例能夠在用戶正輸入輸入時,實時地應用其對所述輸入的解譯。本文描述的主動輸入引出的功能、操作、動作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申請的第11/518,292號美國專利申請案“用于構造智能自動化助理的方法和設備(Method and Apparatus for Building an Intelligent AutomatedAssistant) ”中描述的各種方法和設備來實施。根據特定實施例,主動輸入引出組件1094的多個例子或線程可經由使用一個或一個以上處理器63和/或硬件和/或硬件與軟件的其它組合而同時實施且/或起始。根據不同實施例,主動輸入引出組件1094的一個或一個以上不同線程或例子可響應于檢測到滿足用于觸發主動輸入引出組件1094的至少一個例子的起始的一個或一個以上不同類型的最小閾值準則的一個或一個以上條件或事件而起始。可觸發主動輸入引出組件1094的一個或一個以上不同線程或例子的起始和/或實施的條件或事件的各種實例可包含(但不限于)以下各者中的一者或一者以上(或其組合)·用戶會話的開始。舉例來說,當用戶會話啟動作為助理1002的實施例的應用程序時,接口可例如通過按壓按鈕以起始語音輸入系統或在文本字段上點擊以起始文本輸入會話而為用戶提供起始輸入的機會。 檢測到的用戶輸入。·當助理1002明確地提示用戶進行輸入時,如當其請求對問題的響應或提供從中進行選擇的接下來步驟的菜單時。·當助理1002正幫助用戶執行交易,且正搜集用于所述交易的數據(例如填寫表格)時。在至少一個實施例中,主動輸入引出組件1094的給定例子可從一個或一個以上相關聯數據庫存取和/或利用信息。在至少一個實施例中,可經由與一個或一個以上本地和/或遠程存儲器裝置的通信來存取數據庫信息的至少一部分。可由主動輸入引出組件1094存取的不同類型的數據的實例可包含(但不限于)以下各者中的一者或一者以上(或其組合) ·將在文本輸入中使用的可能的字的數據庫;·將在文本輸入言論中使用的可能的短語的語法;·語音輸入的可能解譯的數據庫; 來自用戶或來自其它用戶的先前輸入的數據庫; 來自可為助理1002的實施例的部分的各種模型和數據源中的任一者的數據,其可包含(但不限于)以下各者中的一者或一者以上(或其組合)·域模型 1056 ;·詞匯 1058 ;·語言模式辨識器1060 ;·域實體數據庫1072 ;·短期存儲器1052 ;·長期個人存儲器1054 ;·任務流模型1086 ;·對話流模型1087 ; 服務能力模型1088。根據不同實施例,主動輸入引出組件1094可將主動引出程序應用于(例如)以下各者中的一者或一者以上(或其組合)·所鍵入輸入;·語音輸入; 來自圖形用戶接口(⑶I)的輸入,包含手勢;·來自對話中提供的建議的輸入;以及·來自計算和/或感測到的環境的事件。主動所鍵入輸入引出現在參看圖11,展示了描繪根據一個實施例的用于主動所鍵入輸入弓I出的方法的流程圖。所述方法開始110。助理1002例如經由輸入裝置1206接收111部分文本輸入。部分文本輸入可包含(例如)在文本輸入字段中到現在為止已鍵入的字符。在任何時間,用戶可例如通過按壓回車鍵來指示所接入輸入完成112。如果未完成,那么建議產生器產生114候選建議116。這些建議可為基于本文所述的信息或約束來源中的任一者的句法、語義和/或其它種類的建議。如果選擇118所述建議,那么將所述輸入轉變117為包含選定建議。在至少一個實施例中,所述建議可包含對當前輸入的擴展。舉例來說,對“rest”的建議可為“restaurants”。在至少一個實施例中,所述建議可包含對當前輸入的部分的替代。舉例來說,對“rest”的建議可為“吃飯的地方”。在至少一個實施例中,所述建議可包含替代和釋義當前輸入的部分。舉例來說,如果當前輸入為“尋找有風格的餐館”,那么建議可為“意大利”,且當所述建議被選擇時,整個輸入可重寫為“尋找意大利餐館”。
在至少一個實施例中,對返回的所得輸入作注解119,使得關于在118中作出的選擇的信息連同文本輸入一起保存。這使得(例如)字符串潛在的語義概念或實體在返回時能夠與所述字符串相關聯,這提高了后續語言解譯的準確性。現在參看圖12到21,展示了說明根據一個實施例的用于主動所鍵入輸入引出的程序中的一些程序的一些部分的屏幕截圖。屏幕截圖描繪如在例如可從例如加利福尼亞州庫珀蒂諾市的蘋果公司購得的iPhone等智能電話上實施的助理1002的實施例的實例。經由觸摸屏(包含屏幕上鍵盤功能性)向此裝置提供輸入。所屬領域的技術人員將認識到,屏幕截圖描繪僅為示范性的實施例,且本發明的技術可實施于其它裝置上,且使用其它布局和布置。在圖12中,屏幕1201包含當字段1203中尚未提供輸入時展示的建議1202的高級集合。這對應于應用于圖11的步驟114的圖10的無輸入步驟23,其中不存在輸入。在圖13中,屏幕1301描繪詞匯的使用的實例,以提供對使用屏幕上鍵盤1304在字段1203中輸入的部分用戶輸入1305的所建議完成1303。這些所建議完成1303可為主動輸入引出1094的功能的部分。用戶已輸入部分用戶輸入1305,包含字符串“comm”。詞匯組件1058已提供此字符串到三種不同種類的例子(其列舉為所建議完成1303)的映射短語“社區和本地事件”為事件域的類別;“商會”為本地商店搜索域的類別,且“猶太社區中心”為本地商店的例子的名稱。詞匯組件1058可提供對與這些類似的名稱空間的數據查找和管理。用戶可點按Go按鈕1306,以指示他或她已完成輸入輸入;這致使助理1002以完成的文本字符串作為用戶輸入的單元繼續下去。在圖14中,屏幕1401描繪一實例,其中用于部分字符串“wh” 1305的所建議語義完成1303包含具有所鍵入參數的完整短語。可通過使用本文所述的輸入約束的各種模型和來源中的一者或一者以上來實現這些種類的建議。舉例來說,在圖14中所示的一個實施例中,“市里正發生什么”是本地事件域的位置參數的主動引出;“商店名稱在哪”是本地商店搜索域的商店名稱約束的主動引出;“比賽地點名稱處正展示的是什么”是本地事件域的比賽地點名稱約束的主動引出;且“電影院正在播放什么”是本地事件域的電影院名稱約束的主動引出。這些實例說明所建議的完成是由模型產生,而不是簡單地從先前輸入的查詢的數據庫抽取。在圖15中,屏幕1501描繪在用戶已在字段1203中輸入額外文本1305之后的同一實例的接續部分。更新所建議完成1303以與額外文本1305匹配。在此實例中,使用來自域實體數據庫1072的數據名稱以“f”開頭的比賽地點。注意,這是顯著比以“f”開頭的所有字小且語義上更相關的建議集合。并且,通過應用模型(在此情況下為將本地事件表示為在比賽地點發生的域模型)來產生建議,其為具有名稱的商店。建議主動地引出輸入,其將在使用本地事件服務時潛在地形成有意義的條目。在圖16中,屏幕1601描繪在用戶已選擇所建議完成1303中的一者之后的同一實例的接續部分。主動引出通過提示用戶進一步指定所要信息的類型,此處通過用戶可從中進行選擇的許多分類符1602而繼續。在此實例中,這些分類符由域、任務流和對話流模型產生。所述域為本地事件,其包含在位置中在若干日期發生的事件的類別,且具有事件名稱和特征執行者。在此實施例中,將這五個選項提供給用戶的事實是從以下兩者產生指示應詢問用戶他們尚未輸入的約束的對話流模型以及指示這五個約束為助理可用的本地事件服務的參數的服務模型。甚至對優選短語將用作分類符(例如“按類別”和“特征化”)的選擇是從域詞匯數據庫產生。 在圖17中,屏幕1701描繪在用戶已選擇分類符1602中的一者之后的同一實例的接續部分。在圖18中,屏幕1801描繪同一實例的接續部分,其中已將選定分類符1602添加到字段1203,且呈現額外分類符1602。用戶可選擇分類符1602中的一者,且/或經由鍵盤1304提供額外的文本輸入。在圖19中,屏幕1901描繪同一實例的接續部分,其中已將選定分類符1602添加到字段1203,且呈現更多的分類符1602。在此實例中,并不冗余地主動引出先前輸入的約束。在圖20中,屏幕2001描繪同一實例的接續部分,其中用戶已點按Go按鈕1306。在框2002中展示用戶的輸入,且在框2003中展示消息,從而將關于正響應于用戶的輸入而執行查詢的反饋提供給用戶。在圖21中,屏幕2101描繪同一實例的接續部分,其中已找到結果。在框2102中展示消息。結果2103(包含允許用戶查看進一步詳情的輸入元件)保存所識別的事件、買票、添加注釋等。在一個屏幕2101以及其它所顯示屏幕中是可滾動的,從而允許用戶向上滾動以查看屏幕2001或其它先前呈現的屏幕,且在需要時對所述查詢作出改變。主動語音輸入引出現在參看圖22,展示了描繪根據一個實施例的用于話音或語音的主動輸入引出的方法的流程圖。方法開始221。助理1002接收121呈聽覺信號的形式的話音或語音輸入。語音-文本服務122或處理器產生聽覺信號的一組候選文本解譯124。在一個實施例中,使用(例如)可從馬薩諸塞州伯靈頓市的紐昂斯通信公司(Nuance Communications, Inc.)購得的紐昂斯辨識器(Nuance Recognizer)來實施語音-文本服務122。在一個實施例中,助理1002使用統計語言模型來產生語音輸入121的候選文本解譯 124。另外,在一個實施例中,調諧統計語言模型以尋找出現在圖8中所示的助理1002的各種模型中的字、名稱和短語。舉例來說,在至少一個實施例中,統計語言模型為來自以下各者中的一些或全部的給定字、名稱和短語域模型1056(例如,與餐館和用餐事件有關的字和短語)、任務流模型1086 (例如,與規劃一事件有關的字和短語)、對話流模型1087 (例如,與搜集用于餐館預訂的輸入所需的約束有關的字或短語)、域實體數據庫1072(例如,餐館的名稱)、詞匯數據庫1058(例如,菜系名稱)、服務模型1088(例如,服務名稱提供(例如)打開表(OpenTable)),和/或與主動本體1050的任一節點相關聯的任何字、名稱或短語。在一個實施例中,還調諧統計語言模型以尋找來自長期個人存儲器1054的字、名稱和短語。舉例來說,統計語言模型可為來自待辦事項項目、列表項目、個人便箋、日歷條目、聯系人/地址簿中的人名、聯系人/地址簿中所提到的街道或城市名等的給定文本。分等級組件分析候選解譯124且根據其與智能自動化助理1002的語法和/或語義模型的配合程度而對其進行分等級126。可使用對用戶輸入的任何約束源。舉例來說,在一個實施例中,助理1002可根據解譯在語法和/或語義意義上、域模型、任務流模型和/或對話模型和/或類似物中解析的程度來對語音-文本解譯器的輸出進行分等級助理1002 評估文本解譯124中的字的各種組合將與主動本體1050及其相關聯模型的概念、關系、實體和特性的配合程度。舉例來說,如果語音-文本服務122產生兩個候選解譯“午餐吃意大利食物”以及“午餐穿意大利鞋”,通過語義相關進行分等級可將“午餐吃意大利食物”分較高等級(如果其與節點助理1002的主動本體1050更匹配(例如,字“意大利”、“食物”和“午餐”全部與本體1050中的節點匹配,且其全部是通過本體1050中的關系連接,而字“鞋”并不與本體1050匹配或與不是外出就餐域網絡的一部分的節點匹配))。在各種實施例中,可使用由助理1002用于解譯文本輸入的算法或程序(包含圖28中所示的自然語言處理程序的任何實施例)對由語音-文本服務122產生的候選文本解譯124進行分等級和評分。在一個實施例中,如果分等級組件126確定128來自解譯124的最高等級語音解譯分在指定閾值之上,那么可自動選擇130最高等級解譯。如果沒有解譯分在指定閾值之上,那么向用戶呈現132語音134的可能候選解譯。用戶可接著在所顯示選擇當中進行選擇 136。在各種實施例中,可通過任何輸入模式(包含例如結合圖16所述的多模式輸入模式中的任一者)來實現在所顯示選擇當中的用戶選擇136。此些輸入模式包含(不限于)主動引出的所鍵入輸入2610、主動引出的語音輸入2620、用于輸入的主動呈現的⑶I 2640,和/或類似物。在一個實施例中,用戶可例如通過點按或講話來在候選解譯134之間進行選擇。在講話的情況下,新語音輸入的可能解譯受所提供的小選擇集合134高度約束。舉例來說,如果提供“你的意思是意大利食物還是意大利鞋? ”,那么用戶可僅說“食物”,且助理可將此與短語“意大利食物”匹配,且不會將其與輸入的其它全局解譯混淆。不管自動選擇130還是由用戶選擇136輸入,均返回所得輸入138。在至少一個實施例中,對返回的輸入作注解138,使得關于在步驟136中作出的選擇的信息連同文本輸入一起被保留。這使得(例如)字符串潛在的語義概念或實體在返回時能夠與所述字符串相關聯,這提高了后續語言解譯的準確性。舉例來說,如果基于菜系=意大利食物的語義解譯將“意大利食物”提供作為候選解譯134中的一者,那么可連同用戶對作為帶注解的文本輸Λ 138的字符串“意大利食物”的選擇而發送機器可讀語義解譯。在至少一個實施例中,基于作為語音-文本服務122的輸出而接收到的語音解譯而產生候選文本解譯124。在至少一個實施例中,通過依據語音解譯的語義意義對其進行釋義而產生候選文本解譯124。在一些實施例中,可存在同一語音解譯的多個釋義,從而提供不同的詞感或同音替代物。舉例來說,如果語音-文本服務122指示“用于見面的地方”,那么向用戶呈現的候選解譯可釋義為“見面的地方(本地商店)”和“用于吃飯的地方(餐館)”。在至少一個實施例中,候選文本解譯124包含對正確子字符串的提供。
在至少一個實施例中,候選文本解譯124包含使用如本文所述的語法和語義分析對候選解譯的正確子字符串的提供。在至少一個實施例中,當用戶選擇候選解譯時,其返回。在至少一個實施例中,在返回之前向用戶提供編輯解譯的接口。在至少一個實施例中,向用戶提供在返回輸入之前以更多話音輸入繼續的接口。這使得能夠遞增地建立輸入言論,從而在一個反復中獲得語法和語義校正、建議和向導。在至少一個實施例中,向用戶提供直接從136進行到主動所鍵入輸入引出的方法(上文結合圖11而描述)的步驟111的接口。這使得能夠使所鍵入和口述輸入交錯,從而在一個步驟處獲得語法和語義校正、建議和向導。在至少一個實施例中,向用戶提供直接從主動所鍵入輸入引出的實施例的步驟111直接進行到主動語音輸入引出的實施例的接口。這使得能夠使所鍵入和口述輸入交錯,從而在一個步驟處獲得語法和語義校正、建議和向導。基于主動⑶I的輸入引出現在參看圖23,展示描繪根據一個實施例的用于基于⑶I的輸入的主動輸入引出的方法的流程圖。所述方法開始140。助理1002在輸出裝置1207上呈現141圖形用戶接口(⑶I),其可包含(例如)鏈接和按鈕。用戶與至少一個⑶I元件交互142。接收數據144,并將其轉換146為統一格式。接著返回經轉換的數據。在至少一個實施例中,⑶I的元件中的一些元件是從主動本體的模型動態地產生,而不是寫入到計算機程序中。舉例來說,助理1002可提供一組約束以將餐館預訂服務引導為用于在屏幕上點按的區,其中每一區表示約束的名稱和/或值。舉例來說,屏幕可具有動態產生的⑶I布局的行,所述CTI布局具有用于約束(菜系、位置和價格范圍)的區。如果主動本體的模型改變,那么⑶I屏幕將自動改變而無需重新編程。 主動對話建議輸入引出。圖24是描繪根據一個實施例的用于在對話流等級下的主動輸入引出的方法的流程圖。助理1002建議151可能的響應152。用戶選擇154所建議的響應。將接收到的輸入轉換154為統一格式。接著返回經轉換的數據。在至少一個實施例中,在步驟151中提供的建議是作為對話和/或任務流中的后繼步驟而提供。在至少一個實施例中,所述建議提供用以例如使用來自域和/或任務模型的參數來細化查詢的選項。舉例來說,可提議某人改變請求的假定位置或時間。
在至少一個實施例中,所述建議提供用以在由語言解譯程序或組件給出的模糊替代性解譯當中進行選擇的選項。在至少一個實施例中,所述建議提供用以在由語言解譯程序或組件給出的模糊替代性解譯當中進行選擇的選項。在至少一個實施例中,所述解譯提供用以在與工作流相關聯的對話流模型1087中的接下來步驟當中進行選擇的選項。舉例來說,對話流模型1087可建議在搜集到對一個域(例如,餐館就餐)的約束之后,助理1002應建議其它相關域(例如,附近的電影院)。對相關事件的主動監視在至少一個實施例中,可以與主動引出的輸入的其它形態類似的方式將異步事件視為輸入。因此,可將此些事件提供作為助理1002的輸入。一旦被解譯,就可以與任何其它輸入類似的方式來看待此些事件。
舉例來說,航班狀態改變可起始待發送給用戶的警報通知。如果航班被指示為晚點,那么助理1002可基于檢測到的事件,通過呈現替代航班、作出其它建議等來繼續對話。此些事件可為任何類型。舉例來說,助理1002可檢測到用戶剛回家,或迷路了(離開指定路線),或股票價格達到閾值,或用戶感興趣的電視節目正開始,或受關注的音樂家正在該地區旅行。在這些情形中的任一者中,助理1002可以與用戶自己起始詢問大體上相同的方式來進行對話。在一個實施例中,事件甚至可基于從其它裝置提供的數據,(例如)以告訴用戶同事何時已吃午飯回來(所述同事的裝置可將此事件用信號發送到用戶的裝置,此時,安裝在用戶的裝置上的助理1002相應地響應)。在一個實施例中,所述事件可為來自日歷、時鐘、提醒或待辦事項應用程序的通知或警報。舉例來說,來自日歷應用程序的關于晚餐日期的警報可起始與助理1002的關于就餐事件的對話。對話可像用戶剛剛說出或鍵入關于即將到來的晚餐事件的信息(例如,“在舊金山2人晚餐)那樣進行。在一個實施例中,可能的事件觸發器162的上下文可包含關于人、地方、事件和其它數據的信息。可將這些數據用作對助理1002的輸入的部分,以用于處理的各種步驟中。在一個實施例中,來自事件觸發器162的上下文的這些數據可用以消除來自用戶的語音或文本輸入的歧義。舉例來說,如果日歷事件警報包含受邀參與所述事件的人的名字,那么所述信息可幫助消除可能與具有相同或類似名字的若干人匹配的輸入的歧義。現在參看圖25,展示了描繪根據一個實施例的用于主動監視相關事件的方法的流程圖。在此實例中,事件觸發器事件為輸入集合162。助理1002監視161以尋找此些事件。可使用可從智能自動化助理1002中的其它組件獲得的模型、數據和信息來對檢測到的事件進行過濾和分類164以獲得語義相關度。舉例來說,如果用戶的短期或長期存儲器紀錄指示用戶正在那個航班上且/或已向助理1002作出關于其的詢問,那么可給予報告航班狀態的變化的事件較高相關度。此分類和過濾可接著僅呈現頂部事件供用戶檢視,用戶可接著選擇挑選一者或一者以上并對其作用。將事件數據轉換166為統一輸入格式,且返回。在至少一個實施例中,助理1002可前攝地提供與曾針對用戶關注而建議的事件相關聯的服務。舉例來說,如果航班狀態警報指示可能錯過航班,那么助理1002可向用戶建議用于重新規劃路線或預訂旅館的任務流。
輸入引出組件實例以下實例意在幫助說明可由主動輸入引出組件1094提供的各種類型的功能、操作、動作和/或其它特征中的一些。實例命令完成(用戶可對助理1002說什么?)用戶正面對具有輸入“您想做什么? ”的籠統指令的文本輸入框。取決于上下文和用戶輸入,提供若干系統響應中的任一者。實例展示如下。情況空值輸入
用戶輸入系統響應注釋
在空字段Il無對 丨: 、義、找較館、旅館、電影院…… 黑文本將被插入到輸入字的憒況K,鍵入_題或空*訂餐桌、WM、應位……段屮+ -M義本被插入,
格符,或在某.時W周期·預Ii食物、鮮花……斜體字文本就將為后續迚
內不輸入任W東西。·購買梨、書、DVD……議。
I·安排+會議、蘋件 …*
提醒待辦1ff項......
_I.解釋結果__情況第一字輸入
I……輸入.....................................................................................................系統響兩...............................................................................................................................................................;!;#................................................................................................................
在空對W I-: K文的情況、M找餐館、旅館、電影 文木將被插入到輸入K,如果!LI戶鍵入任-命 ….*卞段中。-〖1文木被插
I______令的 __第___________._個_〒邛,__________那么丨____________入,_________f彳體__7__義___本__就__將_為______
it提出述議,,例如后續 Η義,,
I_g___情況關鍵字輸入
|)ur輸人丨系統咖: |fi;釋 —
/1: 對話I; VMImi. · _待辦1_丨……咒義'本將被■入到輸入
卜如來川 鍵入ir: +.X} ·根據位w、菜系來彳找MW,7段屮《 +Hi木被個
鍵卞的i.w個7-呀,那么·入,斜體Y義本就將為
向 提出建議以及命令=后續違議。
例如
I____情況針對爭論進行提示
.....JtJPttA..................................................................................................................Mmm..........................................................................................................................................................................Im................................................................................................................
MJP已輸入或選抒了 “命·根據位.H、菜系、……的餐館, +僅提供選抒種類,Ifu H.
+令”動叼,此外無.K.它。·根據位置、叫⑴性、……的旅W 廣ft約束選頂注S,地例如 ·根裾位W、流浪、……的電影院 /,I :名稱只是提小% ΓΓ不會_.:7·找」__·地點名稱__插入文本_
情況建議準則
IJH/1輸入系統響應注釋一
用戶已經輸入足夠的G息·在市1H, I 政編WI文木將被tt入到輸入字
來建立仟務和域,Π.現在依·IS近家、辦公審、地點名稱段中》 · K文木被插入,
序提¥約束.·桁名的餐館名稱斜體字文木就將為fi濁建
I、i.找ff館.....I·a 情況添加準則
.........IpIa.......系統響應丨+t 釋—
詔戶d說“中”,π.現在提示位.K ·城市,_政編《Jl到川戶輸入下+ WT,
3找Λ··…·屮的餐館」·加利福尼亞州Cl洛阿爾托建議I為提不要鍵入何
市種東卩t地點為來π個人
__·加利福M亞州H洛帕克市.存儲器的城市。_
川戶已說“附近' Jl現在提示·我家地點為來自個人存儲器
位H·我中位的·個或-個以I·.地點
i找在……附近的IIWJ · Ull利福尼靡丨 K洛阿爾托
市
I· MmmmMmmaj情況添加位置或其它約束
JlJP輸入系統響成注釋才找在帕洛阿爾托的餐I ·供應食物炎型或菜系提示爲它約東W」 ·今晚、_天……tmw_·描述為浪漫、■務好_
________________·___________今 I""^....... .....jr;1iiiilliliii'. :00...ΙΠ....9:00.........
位Wiflff館I·明天們的U!議
卜'午7點Pr-9 點
_I·兆它時_或「1___情況從約束、未知任務或域開始
)fl戶輸入系統響極注釋—
浪漫」·根《位S、菜系的餐W.……來 木體的約束值W訴您要使
根據位S、" 用性、……的旅W Γ0_Λ選擇類別^·
*Mmm,流派、……的電毖
側—I· W據位S、流派、……的電影“ *副”足電毖中的流派的約束
雛:K、……的事件值,為事件屮的流派,Ii “棚_·根據位置的俱樂部 _俱樂部”為本地H朵商#類別實例名稱完成
此處,用戶已鍵入某一文本,而不接受命令中的任一者,或他或她僅用實體名稱來擴展命令。系統可試圖依據上下文完成所述名稱。這也消除域的歧義。情況不具有上下文的字
權利要求
1.一種在計算裝置上操作的自動化助理,所述助理包括 輸入裝置,其用于接收用戶輸入; 語言解譯器組件,其用于解譯所述已接收的用戶輸入以得到用戶意圖的表示; 對話流處理器組件,其用于至少部分地基于所述已得到的用戶意圖的表示而識別至少一個域、至少一個任務以及用于所述任務的至少一個參數; 服務編排組件,其用于調用至少一個服務以用于執行所述已識別的任務; 輸出處理器組件,其用于基于從所述至少一個已調用的服務接收到的數據且進一步至少部分地基于當前輸出模式而再現輸出;以及輸出裝置,其用于輸出所述已再現的輸出。
2.根據權利要求I所述的自動化助理,其進一步包括 主動輸入引出組件,其用于產生用以主動地引出來自用戶的輸入的至少一個提示; 其中所述輸出裝置輸出所述已產生的至少一個提示。
3.根據權利要求2所述的自動化助理,其中 所述主動輸入引出組件經由談話接口而產生用以主動地引出來自用戶的輸入的所述至少一個提示;以及 所述輸入裝置經由所述談話接口而接收所述用戶輸入。
4.根據權利要求2所述的自動化助理,其中所述主動輸入引出組件通過以下操作來執行受約束選擇以產生所述至少一個提示獲得經排序的準則列表; 對于所述已獲得的準則中的至少一個,獲得至少一個約束;以及 基于所述至少一個準則和所述至少一個約束,產生一組候選項目。
5.根據權利要求2所述的自動化助理,其進一步包括 主動本體,其包括概念的表示以及概念之間的關系; 其中所述主動輸入引出組件使用所述主動本體中的所述表示的至少一個子集來產生所述至少一個提示。
6.根據權利要求2所述的自動化助理,其中 所述主動輸入引出組件經由多個輸入模式而產生用以主動地引出來自用戶的輸入的所述至少一個提示;以及 所述輸入裝置經由所述多個輸入模式而接收所述用戶輸入。
7.根據權利要求6所述的自動化助理,其中所述多個輸入模式包括選自由以下各項所組成的群組中的至少一個 所鍵入輸入; 口述輸入;以及 經由圖形用戶接口提供的輸入。
8.根據權利要求2所述的自動化助理,其進一步包括事件檢測器,所述事件檢測器用于檢測至少一個事件,且其中所述主動輸入引出組件產生響應于至少一個已檢測事件的所述至少一個提示。
9.根據權利要求I所述的自動化助理,其進一步包括 任務流模型組件,其用于識別表示用于執行所述已識別的至少一個任務的步驟的至少一個任務流模型;且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述任務流模型組件介接。
10.根據權利要求9所述的自動化助理,其進一步包括 主動本體,其包括概念的表示以及概念之間的關系; 其中所述至少一個任務流模型是根據所述主動本體而組織的。
11.根據權利要求9所述的自動化助理,其中所述對話流處理器組件執行受約束選擇以識別所述至少一個任務流模型。
12.根據權利要求I所述的自動化助理,其進一步包括 域模型組件,其包括域的至少一個表示; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述域模型組件介接。
13.根據權利要求12所述的自動化助理,其中域的每一表示包括選自由以下各項所組成的群組中的至少一個 至少一個概念的表示; 至少一個實體的表示;以及 至少一個關系的表示。
14.根據權利要求12所述的自動化助理,其進一步包括 主動本體,其包括概念的表示以及概念之間的關系; 其中域的所述至少一個表示是根據所述主動本體而組織的。
15.根據權利要求12所述的自動化助理,其中所述域模型組件使用來自受約束選擇的建模抽象概念來定義域的至少一個表示。
16.根據權利要求I所述的自動化助理,其進一步包括 對話流模型組件,其包括所述助理與用戶之間的談話中所采用的步驟的表示; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述對話流模型組件介接。
17.根據權利要求I所述的自動化助理,其進一步包括 服務能力模型組件,其包括服務能力的表示; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述服務能力模型組件介接。
18.根據權利要求17所述的自動化助理,其中所述服務編排組件基于至少一個服務模型來選擇要調用的至少一個服務。
19.根據權利要求17所述的自動化助理,其中所述服務能力模型組件包括至少一個服務的宣告模型,且其中所述服務編排組件根據所述宣告模型且進一步根據所述已得到的用戶意圖的表示而在可用服務當中動態地選擇。
20.根據權利要求I所述的自動化助理,其進一步包括 詞匯數據庫,其包括字與概念之間的關聯; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述詞匯數據庫介接。
21.根據權利要求I所述的自動化助理,其進一步包括域實體數據庫,其包括描述域實體的數據; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述域實體數據庫介接以獲得描述域實體的數據。
22.根據權利要求I所述的自動化助理,其進一步包括 短期存儲器組件,其用于存儲描述與所述自動化助理的至少一個用戶交互的數據;且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述短期存儲器組件介接以獲得描述與所述自動化助理的至少一個用戶交互的數據。
23.根據權利要求22所述的自動化助理,其中所述語言解譯器組件至少部分地基于來自所述短期存儲器組件的信息而解譯所述已接收的用戶輸入。
24.根據權利要求I所述的自動化助理,其進一步包括 長期存儲器組件,其用于存儲選自由以下各項所組成的群組中的至少一個 與用戶相關聯的個人信息; 由所述用戶收集的信息; 所保存的與所述用戶相關的實體列表; 與所述用戶相關聯的交易歷史; 且其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個與所述長期存儲器組件介接以獲得存儲在其中的數據。
25.根據權利要求24所述的自動化助理,其中所述語言解譯器組件至少部分地基于來自所述長期存儲器組件的信息而解譯所述已接收的用戶輸入。
26.根據權利要求I所述的自動化助理,其中所述對話流處理器組件執行受約束選擇以識別至少一個任務以及用于所述任務的至少一個參數。
27.根據權利要求26所述的自動化助理,其中所述對話流處理器組件通過以下操作來執行受約束選擇 獲得經排序的準則列表; 對于所述已獲得的準則中的至少一個,獲得至少一個約束;以及基于所述至少一個準則和所述至少一個約束,識別至少一個任務和用于所述任務的至少一個參數。
28.根據權利要求I所述的自動化助理,其中所述服務編排組件執行受約束選擇以調用至少一個服務。
29.根據權利要求28所述的自動化助理,其中所述服務編排組件通過以下操作來執行受約束選擇 獲得經排序的準則列表; 對于所述已獲得的準則中的至少一個,獲得至少一個約束;以及 基于所述至少一個準則和所述至少一個約束,調用至少一個服務。
30.根據權利要求I所述的自動化助理,其進一步包括 主動本體,其包括概念的表示以及概念之間的關系。
31.根據權利要求30所述的自動化助理,其中所述語言解譯器組件使用所述主動本體中的所述表示的至少一個子集來解譯所述已接收的用戶輸入。
32.根據權利要求30所述的自動化助理,其中所述對話流處理器組件使用所述主動本體中的所述表示的至少一個子集來識別所述至少一個域、任務和參數。
33.根據權利要求30所述的自動化助理,其中所述服務編排組件使用所述主動本體中的所述表示的至少一個子集來調用至少一個服務。
34.根據權利要求30所述的自動化助理,其中所述輸出處理器組件使用所述主動本體中的所述表示的至少一個子集來再現輸出。
35.根據權利要求30所述的自動化助理,其中所述主動本體用作所述自動化助理所使用的至少一個數據庫的語義統一體。
36.根據權利要求30所述的自動化助理,其中所述主動本體針對每一用戶會話而被例/Jn ο
37.根據權利要求30所述的自動化助理,其中所述主動本體包括選自由以下各項所組成的群組中的至少一個 至少一個域模型; 至少一個對話流模型; 至少一個服務模型;以及 至少一個任務模型。
38.根據權利要求I所述的自動化助理,其進一步包括 事件監視器,其用于接收關于事件的數據; 其中所述對話流處理器組件至少部分地基于關于至少一個事件的所接收的數據而識別至少一個任務以及用于所述任務的至少一個參數。
39.根據權利要求I所述的自動化助理,其中所述輸入裝置包括 至少一個麥克風,其用于接收語音輸入; 且其中所述助理進一步包括 語音-文本組件,其用于將所述已接收的語音輸入翻譯成文本。
40.根據權利要求I所述的自動化助理,其中所述輸入裝置接收文本輸入。
41.根據權利要求I所述的自動化助理,其中所述語言解譯器消除所述已接收的用戶輸入的替代性解析結果當中的歧義。
42.根據權利要求I所述的自動化助理,其中所述服務編排組件調用用于在所述計算裝置上執行操作的至少一個服務。
43.根據權利要求I所述的自動化助理,其中所述服務編排組件調用用于經由計算網絡執行操作的至少一個服務。
44.根據權利要求I所述的自動化助理,其中所述服務編排組件調用用于經由因特網執行操作的至少一個服務。
45.根據權利要求I所述的自動化助理,其中所述服務編排組件從所述已調用的至少一個服務接收結果,且統一所述已接收的結果。
46.根據權利要求I所述的自動化助理,其中所述自動化助理對選自由以下各項所組成的群組中的至少一個操作 電話; 智能電話;平板計算機; 膝上型計算機; 個人數字助理; 桌上型計算機; 公用電話亭; 消費型電子裝置; 消費型娛樂裝置; 音樂播放器; 相機; 電視; 電子游戲單元;以及 機頂盒。
47.根據權利要求I所述的自動化助理,其中 所述輸出處理器組件對用戶意圖的所述至少一個表示進行釋義;以及 所述輸出裝置輸出所述已釋義的用戶意圖的表示。
48.根據權利要求I所述的自動化助理,其中所述語言解譯器組件、所述對話流處理器組件、所述服務編排組件以及所述輸出處理器組件中的至少一個從所述計算裝置的已檢測的上下文獲得參數。
49.根據權利要求48所述的自動化助理,其中所述計算裝置的所述已檢測的上下文包括選自由以下各項所組成的群組中的至少一個 當前軟件應用程序及其當前狀態; 當前位置; 經由至少一個環境傳感器檢測的當前環境條件; 使用歷史;以及 描述所述用戶的信息。
50.根據權利要求I所述的自動化助理,其中所述輸出裝置使用至少兩個輸出模式的組合來輸出所述已再現的輸出。
51.根據權利要求50所述的自動化助理,其中至少兩個輸出模式包括選自由以下各項所組成的群組中的至少兩者 文本輸出; 圖形輸出; 聲音輸出; 合成語音輸出; 經取樣語音輸出;以及 致動器輸出。
52.一種在計算裝置上操作的自動化助理,所述助理包括 輸入裝置,其用于接收用戶輸入; 主動本體,其包括概念的表示以及概念之間的關系;語言解譯器組件,其用于解譯所述已接收的用戶輸入以得到用戶意圖的表示,其中所述語言解譯器組件獲得來自所述主動本體的概念的表示以及概念之間的關系以得到用戶意圖的所述表不; 輸出處理器組件,其用于基于所述已得到的用戶意圖的表示且進一步至少部分地基于當前輸出模式而再現輸出;以及 輸出裝置,其用于輸出所述已再現的輸出。
53.根據權利要求52所述的自動化助理,其中所述語言解譯器組件基于來自所述主動本體的概念的所述表示以及概念之間的關系而解析所述已接收的用戶輸入以得到用戶意圖的所述表示。
54.根據權利要求52所述的自動化助理,其中所述語言解譯器組件基于來自所述主動本體的概念的所述表示以及概念之間的關系而消除所述用戶輸入的至少兩個可能的解譯當中的歧義。
55.根據權利要求52所述的自動化助理,其進一步包括 主動輸入引出組件,其用于產生用以主動地引出來自用戶的輸入的至少一個提示; 其中所述輸出裝置輸出所述已產生的至少一個提示。
56.根據權利要求55所述的自動化助理,其中所述主動輸入引出組件基于從所述主動本體獲得的概念的表示以及概念之間的關系而產生所述至少一個提示。
57.根據權利要求55所述的自動化助理,其中所述主動輸入引出組件基于從所述主動本體獲得的概念的表示以及概念之間的關系而自動完成所述用戶輸入。
58.根據權利要求52所述的自動化助理,其進一步包括 服務編排組件,其用于基于所述已得到的用戶意圖的表示而調用至少一個服務以用于執行任務; 其中所述服務編排組件基于來自所述主動本體的概念的所述表示以及概念之間的關系而識別待調用的服務。
59.一種在計算裝置上操作的自動化助理,所述助理包括 輸入裝置,其用于接收用戶輸入; 語言解譯器組件,其用于解譯所述已接收的用戶輸入以得到用戶意圖的表示; 主動輸入引出組件,其用于 經由談話接口產生用以主動地弓丨出來自用戶的輸入的至少一個提示;以及 產生所述用戶意圖的釋義; 輸出處理器組件,其用于 基于所述已得到的用戶意圖的表示而概述多個結果;以及 產生表示所述已概述的多個結果且進一步至少部分地基于當前輸出模式的輸出;以及 輸出裝置,其用于輸出所述用戶意圖的所述釋義,且用于輸出所述已產生的輸出。
60.根據權利要求59所述的自動化助理,其中 所述輸入裝置包括語音輸入裝置,所述語音輸入裝置用于接收口述輸入; 所述輸出裝置進一步輸出表示所述口述輸入的文本。
61.一種用于在具有至少一個處理器的計算裝置上實施自動化助理的方法,所述方法包括 在輸入裝置處,接收用戶輸入;在處理器處,解譯所述已接收的用戶輸入以得到用戶意圖的表示; 在所述處理器處,至少部分地基于所述已得到的用戶意圖的表示而識別至少一個域、至少一個任務以及用于所述任務的至少一個參數; 在所述處理器處,調用至少一個服務以用于執行所述已識別的任務; 在所述處理器處,基于從所述至少一個已調用的服務接收到的數據且進一步至少部分地基于當前輸出模式而再現輸出;以及 在輸出裝置處,輸出所述已再現的輸出。
62.根據權利要求61所述的方法,其進一步包括 在所述處理器處,產生用以主動地引出用戶輸入的至少一個提示;以及 在所述輸出裝置處,輸出所述已產生的至少一個提示。
63.根據權利要求61所述的方法,其中接收用戶輸入包括 經由談話接口提示所述用戶;以及 經由所述談話接口接收用戶輸入。
64.根據權利要求61所述的方法,其進一步包括 對用戶意圖的所述至少一個表示進行釋義;以及 在所述輸出裝置處輸出所述已釋義的用戶意圖的表示。
65.根據權利要求61所述的方法,其進一步包括 產生所述已接收的用戶輸入的多個替代性解析結果;以及 消除所述替代性解析結果當中的歧義。
66.根據權利要求65所述的方法,其中消除所述替代性解析結果當中的歧義包括 識別所述用戶輸入的至少兩個競爭性解譯; 在所述輸出裝置處,輸出用以請求來自所述用戶的額外信息的提示; 在所述輸入裝置處,接收來自所述用戶的額外信息;以及 基于所述額外信息而解決歧義。
67.根據權利要求61所述的方法,其中處理所述已接收的用戶輸入包括使用選自由以下各項所組成的群組中的至少一個來處理所述用戶輸入 來自短期存儲器的描述當前會話中的至少一個先前交互的數據;以及 來自長期存儲器的描述所述用戶的至少一個特性的數據。
68.一種用于在具有至少一個處理器的計算裝置上實施自動化助理的計算機程序產品,所述方法包括 非暫時計算機可讀存儲媒體;以及 計算機程序代碼,其編碼在所述媒體上,用于致使至少一個處理器執行以下步驟 接收用戶輸入; 解譯所述已接收的用戶輸入以得到用戶意圖的表示; 至少部分地基于所述已得到的用戶意圖的表示而識別至少一個域、至少一個任務以及用于所述任務的至少一個參數; 調用至少一個服務以用于執行所述已識別的任務; 基于從所述至少一個已調用的服務接收到的數據且進一步至少部分地基于當前輸出模式而再現輸出;以及輸出所述已再現的輸出。
69.根據權利要求68所述的計算機程序產品,其進一步包括用于致使所述至少一個處理器執行以下步驟的計算機程序代碼 產生用以主動地引出用戶輸入的至少一個提示;以及 輸出所述已產生的至少一個提示。
70.根據權利要求68所述的計算機程序產品,其中所述用于接收用戶輸入的計算機程序代碼包括用于致使所述至少一個處理器執行以下步驟的計算機程序代碼 經由談話接口提示所述用戶;以及 經由所述談話接口接收用戶輸入。
71.根據權利要求68所述的計算機程序產品,其進一步包括用于致使所述至少一個處理器執行以下步驟的計算機程序代碼 對用戶意圖的所述至少一個表示進行釋義;以及 在所述輸出裝置處輸出所述已釋義的用戶意圖的表示。
72.根據權利要求68所述的計算機程序產品,其進一步包括用于致使所述至少一個處理器執行以下步驟的計算機程序代碼 產生所述已接收的用戶輸入的多個替代性解析結果;以及 消除所述替代性解析結果當中的歧義。
73.根據權利要求72所述的計算機程序產品,其中所述用于消除所述替代性解析結果當中的歧義的計算機程序代碼包括用于致使所述至少一個處理器執行以下步驟的計算機程序代碼 識別所述用戶輸入的至少兩個競爭性解譯; 在所述輸出裝置處,輸出用以請求來自所述用戶的額外信息的提示; 在所述輸入裝置處,接收來自所述用戶的額外信息;以及 基于所述額外信息而解決歧義。
74.根據權利要求68所述的計算機程序產品,其中所述用于處理所述已接收的用戶輸入的計算機程序代碼包括用于致使所述至少一個處理器執行使用選自由以下各項所組成的群組中的至少一個來處理所述用戶輸入的步驟的計算機程序代碼 來自短期存儲器的描述當前會話中的至少一個先前交互的數據;以及 來自長期存儲器的描述所述用戶的至少一個特性的數據。
全文摘要
一種智能自動化助理系統使用自然語言對話以整合的談話方式與用戶接洽,且在適當時調用外部服務以獲得信息或執行各種動作。可使用若干不同平臺中的任一種來實施所述系統,例如所述平臺為網絡、電子郵件、智能電話等,或其任一組合。在一項實施例中,所述系統是基于若干互相聯系的域和任務集合,且使用由可與所述系統交互的外部服務支持的額外功能性。
文檔編號G06Q10/00GK102792320SQ201180013559
公開日2012年11月21日 申請日期2011年1月11日 優先權日2010年1月18日
發明者亞當·約翰·奇也, 亨利·約瑟夫·薩德勒, 克里斯托弗·迪安·布里格姆, 戴格·吉特勞斯, 托馬斯·羅伯特·格魯伯, 理查德·唐納德·朱利, 迪迪埃·勒內·古佐尼, 馬爾切洛·巴斯泰亞-福特 申請人:蘋果公司