背景
隨著計算技術(shù)的發(fā)展,越來越強大的移動設(shè)備已經(jīng)變得可用。例如,智能電話以及其他計算設(shè)備已經(jīng)變得普及。此類設(shè)備的處理能力已導致開發(fā)出不同類型的功能性,諸如與數(shù)字個人助理相關(guān)功能性。
實現(xiàn)在各種移動設(shè)備內(nèi)的數(shù)字個人助理具有交互式和內(nèi)置會話理解力以能夠?qū)τ脩魡栴}或語音命令作出響應。然而,取決于正被使用的設(shè)備的類型,來自數(shù)字個人助理的這樣的響應可能不是總是適當?shù)?。例如,一些設(shè)備可能不具有觸摸屏,并且指令用戶觸摸或按壓屏幕上的按鈕的響應可能不是可行的。
概述
提供本概述以便以簡化的形式介紹以下在詳細描述中進一步描述的一些概念。本概述并不旨在標識所要求保護主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
根據(jù)一個或多個方面,一種用于提供數(shù)字個人助理響應的方法可包括由與多個反應型代理相關(guān)聯(lián)的數(shù)字個人助理接收發(fā)起與計算設(shè)備內(nèi)的數(shù)字個人助理的對話的用戶輸入。響應于接收到該輸入,可從多個可用操作模式中檢測計算設(shè)備的操作模式。可基于接收到的輸入來選擇多個反應型代理中的一個反應型代理。可訪問與所選的反應型代理相關(guān)聯(lián)的多個響應串。至少基于計算設(shè)備的操作模式和/或至少一個硬件特性選擇多個響應串中的至少一個響應串。在對話期間提供多個響應串中所選的至少一個響應串作為對用戶輸入的響應。
根據(jù)一個或多個方面,包括處理器、存儲器和話筒的計算設(shè)備可被適配成執(zhí)行一種用于提供數(shù)字個人助理響應的方法。該方法包括由數(shù)字個人助理接收由用戶生成的輸入(例如,文本、語音、觸覺等),其中該輸入可經(jīng)由話筒來接收(在數(shù)字語音輸入的實例中)。響應于接收到該輸入,檢測計算設(shè)備的操作模式和/或至少一個硬件特性。選擇與數(shù)字個人助理的反應型代理相關(guān)聯(lián)的多個響應串中的至少一個響應串以及多個響應串中的該至少一個響應串的呈現(xiàn)模式。對多個響應串中的至少一個響應串以及呈現(xiàn)模式的選擇可至少基于操作模式和/或至少一個硬件特性??墒褂迷摮尸F(xiàn)模式來提供多個響應串中的該至少一個響應串作為對數(shù)字語音輸入的響應。
根據(jù)一個或多個方面,計算機可讀存儲介質(zhì)可包括指令,這些指令在執(zhí)行之際,使得計算機系統(tǒng)通過在該計算機系統(tǒng)上運行的第三方應用來接收由用戶生成的輸入。該輸入可包括數(shù)字語音輸入、通過例如打字接收的文本輸入和/或任何其他類型的用戶輸入(例如,觸覺輸入)。數(shù)字語音輸入可通過話筒來接收。話筒可以是計算機系統(tǒng)內(nèi)的內(nèi)置式話筒、可通過有線連接連接(附連)到計算機系統(tǒng)的可拆卸話筒、無線地耦合到計算機系統(tǒng)的遠程監(jiān)聽設(shè)備(例如,具有話筒的藍牙耳機)和/或具有話筒和/或揚聲器能力的伴隨設(shè)備(例如,智能手表)。在數(shù)字語音輸入被使用時的實例中,使用數(shù)字語音輸入的自然語言處理被執(zhí)行以確定用戶語音請求。用戶語音請求與由在計算機系統(tǒng)上運行的應用執(zhí)行的一個或多個功能性相關(guān)聯(lián)。應用包括用于執(zhí)行一個或多個功能性的一個或多個反應型代理??蛇x擇一個或多個反應型代理中的一個反應型代理來執(zhí)行一個或多個功能性。由應用請求標識計算機系統(tǒng)的操作模式和至少一個硬件特性的信息,該請求使用api請求。響應于api請求,接收標識計算機系統(tǒng)的操作模式和/或至少一個硬件特性的信息。選擇與所選的第三方反應型代理相關(guān)聯(lián)的多個響應串中的至少一個響應串以及多個響應串中的該至少一個響應串的呈現(xiàn)模式。對多個響應串中的至少一個響應串以及呈現(xiàn)模式的選擇可至少基于操作模式和/或至少一個硬件特性??墒褂迷摮尸F(xiàn)模式來提供多個響應串中的該至少一個響應串作為對用戶語音請求的響應。
如本文所述的,各種其它特征和優(yōu)點可按照需要被結(jié)合到所述技術(shù)中。
附圖簡述
圖1是解說根據(jù)本公開的示例實施例的用于跨具有不同設(shè)備能力的諸計算設(shè)備縮放數(shù)字個人助理代理的示例架構(gòu)的框圖。
圖2是解說根據(jù)本公開的示例實施例的具有在圖1的架構(gòu)中使用的縮放服務的示例反應型代理的框圖。
圖3是解說根據(jù)本公開的示例實施例的具有示例設(shè)備操作模式和對應的輸出串的表的框圖。
圖4是根據(jù)本公開的示例實施例的使用可被縮放的應用反應型代理的計算設(shè)備的框圖。
圖5-7是解說根據(jù)一個或多個實施例的跨諸設(shè)備縮放數(shù)字個人助理代理的流程圖。
圖8是解說可結(jié)合其來實現(xiàn)此處描述的創(chuàng)新的示例移動計算設(shè)備的框圖。
圖9是可用于實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的示圖。
詳細描述
如本文中所描述的,各種技術(shù)和解決方案可被應用來跨諸設(shè)備縮放數(shù)字個人助理反應型代理。更具體地,在檢測到用戶輸入(例如,用于語音控制數(shù)字個人助理的語音輸入、諸如鍵入打字輸入之類的文本輸入、觸覺輸入等)之際,反應型代理可被選擇來幫助執(zhí)行與設(shè)備功能性相關(guān)聯(lián)并通過該用戶輸入觸發(fā)的任務。數(shù)字個人助理(或代理)可隨后使用當前設(shè)備操作模式和一個或多個設(shè)備能力(例如,諸如硬件特性之類的一個或多個設(shè)備特征或特性)來定制響應于該用戶輸入而發(fā)起的語音響應對話。響應串可基于設(shè)備操作模式和/或一個或多個設(shè)備能力來選擇。此外,用于呈現(xiàn)響應串的呈現(xiàn)模式(例如,純音頻、純顯示、音頻/顯示組合、響應串有多詳細等)可基于設(shè)備操作模式和/或一個或多個設(shè)備能力來定制。就此而言,通過使用該設(shè)備類型的硬件能力以及用戶在與數(shù)字個人助理進行交互時可能如何參與(例如,基于設(shè)備操作模式),數(shù)字個人助理可提供針對正在特定操作模式中使用的特定設(shè)備定制的更相關(guān)及高效的響應體驗。
如本文中所使用的,術(shù)語“反應型代理”指代可被數(shù)字個人助理用來實現(xiàn)與設(shè)備功能性相關(guān)聯(lián)的一個或多個響應對話(例如,語音、文本和/或觸覺響應)的數(shù)據(jù)/命令結(jié)構(gòu)。該設(shè)備功能性(例如,電子郵件收發(fā)、消息收發(fā)等)可由到數(shù)字個人助理的用戶輸入(例如,語音命令)來激活。反應型代理(或代理)可使用語音代理定義(vad)或反應型代理定義(rad)xml文檔以及用于驅(qū)動該代理來通過對話的編程代碼(例如,c++代碼)來定義。
圖1是解說根據(jù)本公開的示例實施例的用于跨具有不同設(shè)備能力的諸計算設(shè)備縮放數(shù)字個人助理代理的示例架構(gòu)100的框圖。參考圖1,架構(gòu)100可包括計算設(shè)備102、…、104,其中每一計算設(shè)備分別具有特定設(shè)備能力(或特性),諸如120、…、121。計算設(shè)備102、…、104可包括臺式計算機、膝上型計算機、上網(wǎng)本、平板計算機、智能電話或可執(zhí)行操作系統(tǒng)(例如,106、...、107)和數(shù)字個人助理108(其可以是語音控制的數(shù)字個人助理)的其他計算設(shè)備。盡管數(shù)字個人助理108被示為被安裝在計算設(shè)備102上,但本公開不限于此。例如,伴隨設(shè)備(例如,智能手表)可與其上安裝有數(shù)字個人助理的另一設(shè)備(例如電話)通信。在該情況下,盡管伴隨設(shè)備沒有數(shù)字個人助理被安裝在該設(shè)備上,但通過依賴于由安裝在第二設(shè)備(即,電話)上的數(shù)字個人助理提供的信息(例如,響應串),它仍可利用本文中描述的功能性。數(shù)字個人助理也可以是云環(huán)境中的服務器的一部分,該服務器可由云環(huán)境中的多個其他設(shè)備訪問。
計算設(shè)備102、…、104中的每一者都可使用數(shù)字個人助理(dpa)108。dpa108可包括合適的邏輯、電路系統(tǒng)、接口和/或代碼,并且可用于使用一個或多個反應型代理(ra),諸如ra110、…、114。ra可被用于執(zhí)行一個或多個功能性,該一個或多個功能性可由到dpa108的用戶輸入(例如,語音輸入)觸發(fā)。例如,ra110可以是電子郵件代理,該電子郵件代理可基于用戶語音命令被用于打開新的電子郵件窗口、基于語音輸入來創(chuàng)作電子郵件以及向由語音輸入指定的電子郵件地址發(fā)送電子郵件。ra110、…、114也可被用來在用dpa108發(fā)起的對話會話期間基于用戶輸入提供一個或多個響應(例如,音頻/視頻/觸覺響應)。更具體地,ra110、…、114和dpa108可使用縮放服務116來獲得模式/設(shè)備適當響應(mdar)126、…、130和132、…、136。mdar可以是基于設(shè)備操作模式和/或一個或多個設(shè)備特性/能力選擇的響應(諸如,響應串)。
在示例實現(xiàn)中,響應串和/或這樣的響應的呈現(xiàn)模式的選擇可進一步基于其他因素,諸如用戶距設(shè)備的距離、用戶的姿態(tài)(例如,正躺著、正坐著還是正站著)、用戶周圍的社交環(huán)境的知識(例如,存在另一用戶嗎)、噪聲水平和當前用戶活動(例如,用戶處于活躍的會話還是正執(zhí)行物理活動)。例如,用戶主動參與計算設(shè)備的當前可用性可基于關(guān)于用戶的當前活動的知識來確定(例如,設(shè)備可通過檢測用戶的語音來檢測用戶當前參與了會話;設(shè)備可檢測到用戶正活躍地移動,從而指示物理活動并且因此用戶不可用于看著設(shè)備屏幕;設(shè)備可檢測到?jīng)]有移動,從而指示用戶不在移動并且完全參與該設(shè)備可以是可能的)。
用戶距設(shè)備的距離可基于例如在用戶經(jīng)由免提與設(shè)備通信時接收到的信號強度來確定。如果確定用戶超出閾值距離,則該設(shè)備可認為該屏幕對用戶是不可見的,并且因此不可用。在該實例中,mdar可被選擇,并且恰當?shù)某尸F(xiàn)模式可被進一步修改(例如,純音頻呈現(xiàn)模式可被選擇)。
縮放服務116可包括合適的邏輯、電路系統(tǒng)、接口和/或代碼,并可用于基于設(shè)備操作模式信息(例如,118、…、119)和/或設(shè)備能力(或設(shè)備特性)信息(例如,120、…、121)來生成mdar126、…、130。更具體地,縮放服務116可確定當前活躍(例如,處于與使用dpa108的用戶的對話中)的反應型代理,并可訪問與反應型代理相關(guān)聯(lián)的多個響應串(或可用對話響應,例如在圖2中看見的)??s放服務116可隨后基于設(shè)備操作模式118和/或設(shè)備能力120來縮放響應(例如,通過選擇適當?shù)捻憫?。例如,計算設(shè)備102和104可具有不同的設(shè)備能力/特性(120和121;例如不同的設(shè)備形狀因素)。在該情況下,縮放服務116將分別為諸相同的反應型代理110、…、114選擇不同的模式/設(shè)備適當響應132、...、136。在設(shè)備操作模式118和/或設(shè)備能力120不可用時的實例中,則默認響應(例如,圖2中的202)可被選擇。
盡管縮放設(shè)備116是與ra和dpa108分開地解說的,但本公開不限于此。在一示例實施例中,縮放設(shè)備可被實現(xiàn)為諸反應型代理中的一者或多者的一部分和/或數(shù)字個人助理108的一部分。附加地,盡管反應型代理110、…、114被解說為本機代理(即,被實現(xiàn)在計算設(shè)備102、…、104內(nèi)),諸反應型代理中的一者或多者可被實現(xiàn)在計算設(shè)備外部(例如,在云環(huán)境中的服務器計算機中,其可由計算設(shè)備102、…、104經(jīng)由一個或多個通信網(wǎng)絡來訪問)。
圖2是解說根據(jù)本公開的示例實施例的具有在圖1的架構(gòu)中使用的縮放服務的示例反應型代理的框圖。參考圖2,示例反應型代理200是與(在圖1中解說的)數(shù)字個人助理108相關(guān)聯(lián)的反應型代理。與反應型代理200分開地實現(xiàn)的縮放服務116被通信地耦合到響應數(shù)據(jù)庫212和用戶界面(u/i)引擎214。
縮放服務116也可包括語音平臺211,語音平臺211可包括合適的邏輯、電路系統(tǒng)、接口和/或代碼,并可用于執(zhí)行對信息的語音到文本和文本到語音處理。語音平臺211可任選地被實現(xiàn)在縮放服務116外部。在計算設(shè)備102上運行的一個或多個應用(例如,諸如圖4中的應用402之類的第三方應用)以及數(shù)字個人助理108可使用語音平臺211與縮放服務116以及諸反應型代理110、…、114中的一者或多者交互。就此而言,語音平臺211抽象化與設(shè)備102和/或dpa108的反應型代理的通信。設(shè)備模式信息210和/或設(shè)備能力信息208可最初被提供給語音平臺211,并隨后被傳遞給縮放服務116以在從數(shù)據(jù)庫212獲得模式/設(shè)備適當響應時使用。
在操作中,用戶可通過提供用戶輸入來發(fā)起與數(shù)字個人助理108的對話。該輸入可包括數(shù)字語音輸入、通過例如打字接收的文本輸入和/或任何其他用戶輸入(例如,觸覺輸入)。數(shù)字語音輸入可通過話筒來接收。話筒可以是計算機系統(tǒng)內(nèi)的內(nèi)置式話筒、可通過有線連接連接(附連)到計算機系統(tǒng)的可拆卸話筒、無線地耦合到計算機系統(tǒng)的遠程監(jiān)聽設(shè)備(例如,具有話筒的藍牙耳機)和/或具有話筒和/或揚聲器能力的伴隨設(shè)備(例如,智能手表)。在數(shù)字語音輸入被使用時的實例中,使用數(shù)字語音輸入的自然語言處理(例如,由語音平臺211進行)被執(zhí)行以確定用戶語音請求。用戶語音請求可與由數(shù)字個人助理和/或計算設(shè)備上運行的應用執(zhí)行的一個或多個功能性相關(guān)聯(lián)。數(shù)字個人助理和/或應用可包括用于執(zhí)行該一個或多個功能性的一個或多個反應型代理(例如,反應型代理200)。
當前設(shè)備操作模式210和/或設(shè)備能力/特性信息208可被傳達到語音平臺211和縮放服務116。設(shè)備能力/特性信息208可包括以下中的一者或多者:與計算設(shè)備相關(guān)聯(lián)的顯示器分辨率、顯示器類型/尺寸、顯示器可用性、音頻能力(例如,話筒可用性、揚聲器可用性)、藍牙可用性和/或設(shè)備形狀因素。
例如,顯示器類型可包括全顯示類型(將對響應串/回答的尺寸存在很少限制到?jīng)]有限制);擴展顯示類型(可包括不是主設(shè)備顯示器的第二/附加顯示器,使得響應串的多個版本可被用于可用顯示器中的每一者);受限/小顯示類型(具有小顯示器的設(shè)備,諸如不具有觸摸屏能力的移動電話、可穿戴設(shè)備等);以及無顯示設(shè)備(該設(shè)備僅具有音頻能力,而沒有任何顯示器)。
音頻能力可包括文本到語音(tts)可用性(該設(shè)備能夠輸出將幫助給出用戶信息的音頻);無tts可用性(該設(shè)備不具有發(fā)聲/揚聲器能力或者用戶已使揚聲器靜音);以及純耳聽信號(earcon)可用性(例如,該設(shè)備可生成有限的聲音,諸如耳聽信號(或蜂鳴聲))。
圖3是解說根據(jù)本公開的示例實施例的具有示例設(shè)備操作模式和對應的輸出串的表的框圖。參考圖3,列出了具有對應的顯示輸出串312和/或音頻輸出串314的示例設(shè)備操作模式310。
設(shè)備操作模式310可包括純音頻模式316、完全參與模式322、半分心模式328和限制顯示模式334。盡管圖3中僅解說了四個操作模式(316、322、328和334),但本公開不限于此,并且其他操作模式和設(shè)備類型也可與本文中公開的技術(shù)一起使用。當計算設(shè)備不具有物理顯示表面時,或者當設(shè)備顯示器不可用(例如,主顯示器被斷開連接并且次顯示器活躍)時,可使用純音頻模式316。在主顯示器不活躍而次顯示器活躍的情況下,詳細的顯示串318可作為輸出被呈現(xiàn)。詳細的tts串320也可被呈現(xiàn)(例如,經(jīng)由揚聲器)。
當用戶在物理上在該設(shè)備旁邊(例如,在該設(shè)備前面)并且存在該用戶完全參與該設(shè)備的高可能性(例如,用戶在臺式計算機或膝上型計算機前面)時,可使用完全參與模式322。在該情況下,低詳細顯示串324可被顯示和/或短tts串326可被呈現(xiàn)作為音頻輸出314。
當用戶在計算設(shè)備附近,但用戶沒有完全參與該設(shè)備(例如,用戶正在駕駛,并且他旁邊有具有數(shù)字個人助理的移動電話)時,可使用半分心模式328。在該情況下,低詳細顯示串330可被顯示和/或中等詳細tts串332可被呈現(xiàn)作為音頻輸出314。
當計算設(shè)備是具有受限顯示表面的次/外圍設(shè)備時,可使用限制顯示模式334。在該情況下,短顯示串336可被顯示作為輸出串312。
顯示和音頻串的簡要概述在本文中被提供如下:
詳細的顯示串可以是旨在快速地概括作為回答來提供的信息的文本串。詳細的顯示串可以或可以不提供可預期作為回答的完整信息。這種類型的顯示串可與以下示例設(shè)備形狀因素或操作模式一起使用:不受可用面積限制但聲音關(guān)閉的顯示器、聲音被靜音或者音頻喪失的臺式機、電子布告板、具有純文本能力的可滾動小屏幕和/或可穿戴設(shè)備的擴展顯示器。
短的詳細串可以是文本串(例如,最多100個字符),并且可在語言方面支持有限的個性化,并且更針對工具應用。這種類型的顯示串可與以下示例設(shè)備形狀因素或操作模式一起使用:諸如智能手表之類的可穿戴設(shè)備、恒溫器、智能計算器、烤箱、冰箱等。
低細節(jié)顯示串可以是作為對數(shù)字個人助理的用戶體驗的支持串的文本串,并且該串可被用于攜帶非實質(zhì)信息。這種類型的顯示串可與以下示例設(shè)備形狀因素或操作模式一起使用:電話(當用戶當前正看著設(shè)備屏幕時)、臺式計算機、具有智能設(shè)備/顯示能力的汽車、游戲控制臺等等。
詳細的tts音頻串可以是旨在快速地概括在與數(shù)字個人助理的對話期間作為回答來提供的信息的響應串。這種類型的音頻tts串可與以下示例設(shè)備形狀因素或操作模式一起使用:處于純音頻模式的計算設(shè)備、在駕駛時使用的計算設(shè)備(如果駕駛時使用被檢測到,則設(shè)備可自動切換到純音頻模式)、較老一代的智能設(shè)備或不具有智能電話能力的移動設(shè)備等等。
中等詳細tts音頻串可提供有用的響應信息,而無需響應串與純音頻模式期間提供的響應串一樣詳細。這種類型的音頻tts串可與以下示例設(shè)備形狀因素或操作模式一起使用:由分心的用戶使用的計算設(shè)備(例如,用戶使用另一設(shè)備,并且該用戶的移動電話在桌子上該用戶旁邊)。
短tts音頻串(或純耳聽信號)可提供非常短的讀出。這種類型的音頻tts串可與以下示例設(shè)備形狀因素或操作模式一起使用:游戲控制臺、電視機、臺式計算機等等。
再次參考圖2,在語音平臺211接收到設(shè)備能力信息208和操作模式信息210后,該信息被用于訪問響應數(shù)據(jù)庫212,并獲得一個或多個模式/設(shè)備適當響應218,諸如mdar204、…、206。此外,如果計算設(shè)備102使用第二顯示器(或者具有顯示/音頻/觸覺能力的另一外圍設(shè)備),則第二響應串220也可被傳遞回給反應型代理200,并隨后被傳遞到外圍設(shè)備(從數(shù)據(jù)庫212到外圍設(shè)備的直接通信也是可能的)。此外,縮放服務116可使用用戶界面引擎214來生成u/i(例如,htmlu/i)222,該u/i針對設(shè)備形狀因素和/或其他設(shè)備能力(例如,能力/特性208)進行了優(yōu)化。
在一示例實施例中,反應型代理200可結(jié)合多個設(shè)備來使用。例如,兩個計算設(shè)備可一起工作,其中一個設(shè)備作為主設(shè)備,且另一設(shè)備作為次/伴隨設(shè)備。在該情況下,代理(例如,200)可生成兩個響應(例如,204和206),每種設(shè)備類型/模式一個響應。
在設(shè)備操作模式信息210(和/或設(shè)備能力208中的一者或多者)對縮放服務116不可用時的實例中,則可提供默認響應202。默認響應202可能不知道設(shè)備能力,并且可被優(yōu)化以供在多個設(shè)備形狀因素中的使用(例如,用戶和用于發(fā)送文本消息的數(shù)字個人助理之間的對話交換可詢問消息接收方和消息內(nèi)容)。
圖4是根據(jù)本公開的示例實施例的使用可被縮放的應用反應型代理的計算設(shè)備的框圖。參考圖4,計算設(shè)備102可能正在運行一個或多個應用,諸如應用(app)402。應用402可以是例如第三方應用或通過設(shè)備操作系統(tǒng)提供的本機應用。應用402可使用一個或多個應用反應型代理(ara),諸如ara404。在一示例實施例中,ara404可被實現(xiàn)為應用402的一部分(或者在計算設(shè)備102外部,諸如通信地耦合到設(shè)備102的遠程服務器)。當與應用402的用戶的對話被發(fā)起時,ara404可用于生成由應用402使用的響應。就此而言,參考圖1-3描述的功能性中的一者或多者可對應用402可用。
更具體地,應用402可使用可縮放服務116(其也可被實現(xiàn)為應用402的一部分)以提供模式/設(shè)備適當響應。例如,如果縮放服務116被實現(xiàn)在應用402(或ara404)內(nèi),則api請求420可被用于請求模式和/或設(shè)備能力信息。設(shè)備模式信息118和/或設(shè)備能力信息120可被傳遞給應用402以供縮放服務116使用(在縮放服務是應用402的一部分時的實例中)。在與響應數(shù)據(jù)庫(例如,212)和用戶界面引擎(例如,214)的通信后,模式/設(shè)備適當響應可被生成并被傳遞給應用402或ara404以供應用402使用。
在另一實施例中,ara404可被實現(xiàn)為設(shè)備本機代理110、…、114的一部分(如通過數(shù)字個人助理108內(nèi)的404的虛線指示的)。在該情況下,模式/設(shè)備適當響應(例如,414)可被生成,如參考圖1-3中的本機ra110、…、114描述的。mdar114可隨后被傳遞給tpa402以供在由應用402的用戶發(fā)起的對話中使用。
圖5-7是解說根據(jù)一個或多個實施例的跨諸設(shè)備縮放數(shù)字個人助理代理的流程圖。參考圖1-3和5,示例方法500可始于502,這時計算設(shè)備102可接收發(fā)起與該計算設(shè)備內(nèi)的數(shù)字個人助理(例如,dpa108)的對話的用戶輸入。數(shù)字個人助理108可與多個反應型代理(諸如,ra110、…、114)相關(guān)聯(lián)。在504,響應于接收到該輸入,可從多個可用操作模式(例如,316、322、328和334)中檢測該計算設(shè)備的操作模式(例如,118)。在506,dpa108可基于接收到的輸入選擇多個反應型代理中的一個反應型代理(例如,110)。例如,這些ra中的一個ra可基于與接收到的用戶輸入相關(guān)聯(lián)的功能性的類型(例如,消息收發(fā)、電子郵件、導航等)來選擇。在508,縮放服務116(和/或反應型代理)可訪問與所選的反應型代理相關(guān)聯(lián)的多個響應串(例如,數(shù)據(jù)庫212中的響應)。在510,縮放服務116可至少基于計算設(shè)備的操作模式(例如,118)和/或至少一個硬件特性(例如,設(shè)備能力/特性120中的一者或多者)來選擇多個響應串中的至少一個響應串。在512,縮放服務116可提供多個響應串中被選的至少一個響應串作為對用戶輸入的響應。
參考圖1-3和6,示例方法600可起始于602,這時數(shù)字個人助理108可接收由用戶生成的數(shù)字語音輸入。數(shù)字語音輸入可通過計算設(shè)備102的話筒來接收。在604,響應于接收到數(shù)字語音輸入,可檢測計算設(shè)備的操作模式(例如,118)和至少一個硬件特征(例如,120)。在606,縮放服務116可選擇與數(shù)字個人助理(例如,108)的反應型代理(例如,ra110、…、114中的一個ra)相關(guān)聯(lián)的多個響應串(例如,在響應數(shù)據(jù)庫212內(nèi))中的至少一個響應串。在608,縮放服務116可選擇針對多個響應串中的該至少一個響應串(例如,針對被傳遞給ra110的所返回的mdar126)的呈現(xiàn)模式(例如,如參考圖3所描述的)。對多個響應串中的該至少一個響應串和呈現(xiàn)模式的選擇可至少基于操作模式(118)和/或至少一個硬件特性(120)。在610,ra110、dpa108(和/或縮放服務116)可使用該呈現(xiàn)模式提供多個響應串中的至少一個響應串(例如,mdar126)作為對數(shù)字語音輸入的響應。
參考圖1-4和7,示例方法700可起始于702,這時在計算機系統(tǒng)(例如,設(shè)備102)上運行的應用(例如,應用402)可接收由用戶生成的數(shù)字語音輸入。數(shù)字語音輸入可通過計算設(shè)備102的話筒來接收。在704,計算設(shè)備102可執(zhí)行使用該數(shù)字語音輸入的自然語言處理以確定用戶語音請求(例如,自然語言處理可由與縮放服務116相關(guān)聯(lián)的語音平臺211來執(zhí)行)。用戶語音請求可與由在計算機系統(tǒng)(例如,設(shè)備102)上運行的應用(應用402)執(zhí)行的一個或多個功能性相關(guān)聯(lián)。應用(應用402)可包括用于執(zhí)行該一個或多個功能性的一個或多個應用反應型代理(例如,ara404)。
在706,應用402(和/或dpa108)可選擇用于執(zhí)行該一個或多個功能性的一個或多個應用反應型代理中的一個反應型代理(例如,ara404可被選擇)。在708,應用(應用402)可使用api請求(例如,420)來請求標識計算機系統(tǒng)的操作模式和/或至少一個硬件特性的信息。在710,響應于該api請求420,可在應用402處接收所請求的標識計算機系統(tǒng)的操作模式(例如,118)和/或至少一個硬件特性(例如,120)的信息(例如,當應用402實現(xiàn)縮放服務116和/或dpa108的功能性時,應用402接收信息118和/或120)。在712,可選擇與所選的反應型代理相關(guān)聯(lián)的多個響應串中的至少一個響應串(例如,可選擇mdar414)。在714,縮放服務116可選擇針對多個響應串中的該至少一個響應串的呈現(xiàn)模式。對多個響應串中的該至少一個響應串和呈現(xiàn)模式的選擇可至少基于操作模式(118)和/或至少一個硬件特性(120)。在716,可使用該呈現(xiàn)模式來提供多個響應串中的該至少一個響應串(mdar414)作為對用戶語音請求的響應。
圖8是解說可結(jié)合其來實現(xiàn)本文中描述的創(chuàng)新的示例移動計算設(shè)備的框圖。移動設(shè)備800包括各種任選的硬件和軟件組件,其通常在802處示出。一般來說,移動設(shè)備中的組件802可與該設(shè)備的任何其他組件通信,但出于容易說明的目的未示出所有連接。移動設(shè)備800可以是各種計算設(shè)備(例如,蜂窩電話、智能電話、手持式計算機、膝上型計算機、筆記本計算機、平板設(shè)備、上網(wǎng)本、媒體播放器、個人數(shù)字助理(pda)、相機、攝像機等)中的任何一個,并且可允許與諸如無線保真(wi-fi)、蜂窩、或衛(wèi)星網(wǎng)絡之類的一個或多個移動通信網(wǎng)絡804進行無線雙向通信。
所解說的移動設(shè)備800可包括用于執(zhí)行如信號編碼、數(shù)據(jù)處理(包括分配權(quán)重和對諸如搜索結(jié)果之類的數(shù)據(jù)進行排名)、輸入/輸出處理、電源控制和/或其他功能等任務的控制器或處理器810(例如,信號處理器、微處理器、asic、或其他控制和處理邏輯電路)。操作系統(tǒng)812控制各組件802的分配和使用,并且支持一個或多個應用程序811。操作系統(tǒng)812可包括具有反應型代理的數(shù)字個人助理813a以及縮放服務813b。縮放服務813b和具有反應型代理的數(shù)字個人助理813a可具有與如參考圖1-4所描述的縮放服務116、dpa108和反應型代理(例如,110、…、114、404)的功能性相似的功能性。
所示的移動設(shè)備800包括存儲器820。存儲器820可以包括不可移動存儲器822和/或可移動存儲器824。不可移動存儲器822可以包括ram、rom、閃存、硬盤或者其他公知的存儲器存儲技術(shù)??梢苿哟鎯ζ?24可包括閃存或訂戶身份模塊(sim)卡——其在全球移動通信系統(tǒng)(gsm)等通信系統(tǒng)中是眾所周知的,或者其他眾所周知的存儲器存儲技術(shù),諸如“智能卡”。存儲器820可用于存儲運行操作系統(tǒng)812和應用811的數(shù)據(jù)和/或代碼。示例數(shù)據(jù)可以包括要經(jīng)由一個或多個有線或無線網(wǎng)絡被發(fā)送至和/或接收自一個或多個網(wǎng)絡服務器或其他設(shè)備的網(wǎng)頁、文本、圖像、聲音文件、視頻數(shù)據(jù)或者其他數(shù)據(jù)集。存儲器820可用于存儲訂戶標識符和設(shè)備標識符,所述訂戶標識符諸如國際移動訂戶身份(imsi),所述設(shè)備標識符諸如國際移動設(shè)備標識符(imei)。這種標識符可以被發(fā)射至網(wǎng)絡服務器以標識用戶和設(shè)備。
移動設(shè)備800可支持一個或多個輸入設(shè)備830以及一個或多個輸出設(shè)備850,一個或多個輸入設(shè)備830為諸如觸摸屏832(例如,能夠捕捉手指輕擊輸入、手指姿勢輸入或虛擬鍵盤或小鍵盤的鍵擊輸入)、話筒834(例如,能夠捕捉語音輸入)、相機836(例如,能夠捕捉靜止圖片和/或視頻圖像)、物理鍵盤838、按鈕和/或跟蹤球840,一個或多個輸出設(shè)備850為諸如揚聲器852和顯示器854。其他可能的輸出設(shè)備(未示出)可以包括壓電或其他觸覺輸出設(shè)備。一些設(shè)備可以用于多于一個輸入/輸出功能。例如,觸摸屏832和顯示器854可以在單個輸入/輸出設(shè)備內(nèi)被組合。移動設(shè)備800可提供一個或多個自然用戶界面(nui)。例如,操作系統(tǒng)812或應用811可包括多媒體處理軟件,諸如音頻/視頻播放器。
無線調(diào)制解調(diào)器860可被耦合至一個或多個天線(未示出),并且可支持處理器810與外置設(shè)備間的雙向通信,如本領(lǐng)域中充分理解的那樣。調(diào)制解調(diào)器860一般被示為并可包括例如用于通過移動通信網(wǎng)絡804進行長程通信的蜂窩式調(diào)制解調(diào)器、可兼容藍牙的調(diào)制解調(diào)器864、或用于通過外置的配備有藍牙的設(shè)備或者本地的無線數(shù)據(jù)網(wǎng)絡或路由器來進行短程通信的可兼容wi-fi的調(diào)制解調(diào)器862。無線調(diào)制解調(diào)器860一般被配置成與一個或多個蜂窩網(wǎng)絡(諸如gsm網(wǎng)絡)通信,用于單個蜂窩網(wǎng)絡內(nèi)、多個蜂窩網(wǎng)絡之間、或者在移動設(shè)備和公共交換電話網(wǎng)(pstn)之間的數(shù)據(jù)和語音通信。
移動設(shè)備可進一步包括至少一個輸入/輸出端口880、電源882、衛(wèi)星導航系統(tǒng)接收機884(諸如全球定位系統(tǒng)(gps)接收機)、傳感器886(諸如,用于檢測設(shè)備800的方向和運動并用于接收姿勢命令來作為輸入的加速度計、陀螺儀或紅外鄰近傳感器)、收發(fā)機888(用于無線發(fā)射模擬或數(shù)字信號)和/或物理連接器890,它可以是usb端口、ieee1394(火線)端口、和/或rs-232端口。所示的組件802不是必需的或所有都包括的,因為可刪除所示的組件中的任何一個并可添加其他組件。
移動設(shè)備可基于通過衛(wèi)星導航系統(tǒng)接收機884(例如,gps接收機)接收到的信息來確定指示移動設(shè)備的位置的位置數(shù)據(jù)?;蛘撸苿釉O(shè)備可以另一方式來確定指示移動設(shè)備的位置的位置數(shù)據(jù)。例如,可以通過蜂窩網(wǎng)絡的各蜂窩塔之間的三角測量來確定移動設(shè)備的位置?;蛘?,可基于在移動設(shè)備附近的wi-fi路由器的已知位置來確定移動設(shè)備的位置。可以每秒鐘或以其他為基礎(chǔ)來更新位置數(shù)據(jù),這取決于實現(xiàn)和/或用戶設(shè)置。不管位置數(shù)據(jù)的源如何,移動設(shè)備都可以向地圖導航工具提供位置數(shù)據(jù)以供在地圖導航中使用。
作為客戶端計算設(shè)備,移動設(shè)備800可以向服務器計算設(shè)備(例如,搜索服務器、路由服務器等)發(fā)送請求,并且作為回報從服務器計算設(shè)備接收地圖圖像、距離、方向、其他地圖數(shù)據(jù)、搜索結(jié)果(例如,基于指定搜索區(qū)域內(nèi)的poi搜索的poi)或其他數(shù)據(jù)。
移動設(shè)備800可以是實現(xiàn)環(huán)境的一部分,在實現(xiàn)環(huán)境中各種類型的服務(例如,計算服務)是通過計算“云”來提供的。例如,云可包括可位于中央或是分布式的計算設(shè)備集,其向經(jīng)由諸如因特網(wǎng)等網(wǎng)絡連接的各種類型的用戶和設(shè)備提供基于云的服務。一些任務(例如,處理用戶輸入和呈現(xiàn)用戶界面)可在本地計算設(shè)備(例如,連接的設(shè)備)上執(zhí)行,而其他任務(例如,對將在后繼處理中使用的數(shù)據(jù)的存儲、數(shù)據(jù)的加權(quán)和數(shù)據(jù)的排名)可在云中執(zhí)行。
雖然圖8示出了移動設(shè)備800,但更一般地本文中描述的創(chuàng)新可以通過具有其他屏幕能力和設(shè)備形成因素的設(shè)備來實現(xiàn),諸如臺式計算機、電視屏幕或連接到電視機的設(shè)備(例如,機頂盒或游戲控制臺)??捎稍仆ㄟ^服務提供商、或通過其他在線服務的提供商來提供服務。此外,由于本文中描述的技術(shù)可涉及音頻流傳輸,可能不需要或使用設(shè)備屏幕(在音頻/視頻內(nèi)容正被流傳輸?shù)骄哂幸曨l回放能力的多媒體端點設(shè)備時的實例中,可使用顯示器)。
圖9是可用于實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的示圖。計算系統(tǒng)900并不旨對使用范圍或功能提出任何限制,因為這些創(chuàng)新可以在不同的通用或?qū)S糜嬎阆到y(tǒng)中實現(xiàn)。
參考圖9,計算環(huán)境900包括一個或多個處理單元910、915和存儲器920、925。在圖9中,該基本配置930被包括在虛線內(nèi)。處理單元910、915執(zhí)行計算機可執(zhí)行的指令。處理單元可以是通用中央處理單元(cpu)、專用集成電路(asic)中的處理器或任意其它類型的處理器。在多處理系統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能力。例如,圖9示出中央處理單元910以及圖形處理單元或協(xié)處理單元915。有形存儲器920、925可以是可由(諸)處理單元存取的易失性存儲器(例如,寄存器、高速緩存、ram)、非易失性存儲器(例如,rom、eeprom、閃存等)或者兩者的某一組合。存儲器920、925以適合被(諸)處理單元執(zhí)行的計算機可執(zhí)行指令的形式,存儲實現(xiàn)此處描述的一個或多個發(fā)明的軟件980。
計算系統(tǒng)還可具有附加的特征。例如,計算系統(tǒng)900包括存儲940、一個或多個輸入設(shè)備950、一個或多個輸出設(shè)備960以及一個或多個通信連接970。諸如總線、控制器或網(wǎng)絡之類的互連機制(未示出)將計算系統(tǒng)900的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算系統(tǒng)900中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計算系統(tǒng)900的各組件的活動。
有形存儲940可以是可移動或不可移動的,并包括磁盤、磁帶或磁帶盒、cd-rom、dvd或可用于儲存信息并可在計算系統(tǒng)900內(nèi)訪問的任何其他介質(zhì)。存儲器940存儲用于軟件980的指令,所述軟件980實現(xiàn)此處描述的一個或多個發(fā)明。
(諸)輸入設(shè)備950可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標、筆或跟蹤球)、語音輸入設(shè)備、掃描設(shè)備或向計算系統(tǒng)900提供輸入的另一設(shè)備。對于視頻編碼,(諸)輸入設(shè)備950可以是相機、視頻卡、tv調(diào)諧卡或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備,或?qū)⒁曨l樣本讀入計算系統(tǒng)900的cd-rom或cd-rw。(諸)輸出設(shè)備960可以是顯示器、打印機、揚聲器、cd刻錄機或提供來自計算系統(tǒng)900的輸出的另一設(shè)備。
(諸)通信連接970允許在通信介質(zhì)上到另一計算實體的通信。通信介質(zhì)傳達諸如計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號中的其他數(shù)據(jù)之類的信息。已調(diào)制數(shù)據(jù)信號是使其一個或多個特征以在信號中編碼信息的方式設(shè)置或改變的信號。作為示例而非限制,通信介質(zhì)可以使用電的、光學的、rf或其它載體。
各創(chuàng)新可在計算機可執(zhí)行指令(諸如包括在程序模塊中的在目標現(xiàn)實或虛擬處理器上在計算系統(tǒng)中執(zhí)行的那些計算機可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對各程序模塊的計算機可執(zhí)行指令可以在本地或分布式計算系統(tǒng)中執(zhí)行。
術(shù)語“系統(tǒng)”和“設(shè)備”在本文中被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對計算系統(tǒng)或計算設(shè)備的類型的任何限制。一般說來,計算系統(tǒng)或計算設(shè)備可以是本地的或分布式的,并且可以包括具有實現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
出于介紹的目的,本詳細描述使用了如“確定”和“使用”等術(shù)語來描述計算系統(tǒng)中的計算機操作。這些術(shù)語是對由計算機執(zhí)行的操作的高級抽象,且不應與人類所執(zhí)行的動作混淆。對應于這些術(shù)語的實際的計算機操作取決于實現(xiàn)而不同。
盡管以特定的順序次序描述所公開方法的一些的操作以便于方便呈現(xiàn),但應當理解,這一描述方式包含重排,除非以下提出的具體語言要求特定的次序。例如,順序描述的操作可以在一些情況下并行地重排或同時執(zhí)行。此外,為簡潔起見,附圖可能不示出所公開的方法可以結(jié)合其他方法使用的各種方式。
所公開的方法中的任何方法可被實現(xiàn)為被存儲在一個或多個計算機可讀存儲介質(zhì)上并在計算設(shè)備(例如任何可用計算設(shè)備,包括智能電話或其他包括計算硬件的移動設(shè)備)上執(zhí)行的計算機可執(zhí)行指令或計算機程序產(chǎn)品。計算機可讀存儲介質(zhì)是在計算環(huán)境內(nèi)可訪問的任何可用的有形介質(zhì)(例如,諸如dvd或cd之類的一個或多個光學介質(zhì)盤、易失性存儲器組件(諸如dram或sram)或非易失性存儲器組件(諸如閃存或硬件驅(qū)動器))。作為示例并參考圖9,計算機可讀存儲介質(zhì)包括存儲器920和925以及存儲940。術(shù)語“計算機可讀存儲介質(zhì)”不包括信號和載波。此外,術(shù)語“計算機可讀存儲介質(zhì)”不包括通信連接(例如,970)。
用于實現(xiàn)所公開技術(shù)的計算機可執(zhí)行指令中的任一個以及在實現(xiàn)所公開的實施例期間創(chuàng)建和使用的任何數(shù)據(jù)可以被存儲在一個或多個計算機可讀存儲介質(zhì)上。計算機可執(zhí)行指令可以是例如專用軟件應用或者經(jīng)由web瀏覽器或其他軟件應用(諸如遠程計算應用)訪問和下載的軟件應用的一部分。這種軟件可以例如在單個本地計算機(例如,任何適當?shù)纳虡I(yè)可購買計算機)上或者使用一個或多個網(wǎng)絡計算機在網(wǎng)絡環(huán)境(例如,經(jīng)由互聯(lián)網(wǎng)、廣域網(wǎng)、局域網(wǎng)、客戶端-服務器網(wǎng)絡(諸如云計算網(wǎng)絡)、或者其他這樣的網(wǎng)絡)中執(zhí)行。
為清楚起見,僅描述了基于軟件的實現(xiàn)方式的特定所選方面。省略了本領(lǐng)域公知的其他細節(jié)。例如,應當理解,所公開的技術(shù)不限于任何具體的計算機語言或程序。例如,所公開的技術(shù)可以通過以c++、java、perl、javascript、adobeflash或者任何其他適當?shù)木幊陶Z言編寫的軟件來實現(xiàn)。同樣,所公開的技術(shù)不限于任何特定的計算機或硬件類型。適當計算機和硬件的特定細節(jié)是公知的,并且不需要在本公開中詳細提出。
而且,基于軟件的實施例(包括例如用于使計算機執(zhí)行所公開方法的任一種的計算機可執(zhí)行指令)中的任一者可以通過適當?shù)耐ㄐ攀侄伪簧陷d、下載或遠程地訪問。這種適當?shù)耐ㄐ攀侄伟ɡ缁ヂ?lián)網(wǎng)、萬維網(wǎng)、內(nèi)聯(lián)網(wǎng)、軟件應用、電纜(包括光纖電纜)、磁通信、電磁通信(包括rf、微波和紅外通信)、電子通信或者其他這樣的通信手段。
所公開的方法、裝置和系統(tǒng)不應以任何方式被限制。相反,本公開針對各種公開的實施例(單獨和彼此的各種組合和子組合)的所有新穎和非顯而易見的特征和方面。所公開的方法、裝置和系統(tǒng)不限于任何具體方面或特征或它們的組合,所公開的實施例也不要求存在任一個或多個具體優(yōu)點或者解決問題。
來自任何示例的技術(shù)可以與在任何一個或多個其他示例中所描述的技術(shù)相組合。鑒于可應用所公開的本技術(shù)的原理的許多可能的實施例,應當認識到,所示實施例僅是所公開的技術(shù)的示例,并且不應被用作是對所公開的技術(shù)的范圍的限制。相反,本公開的技術(shù)的范圍由后續(xù)的權(quán)利要求書的范圍和精神來覆蓋。