背景
電子設(shè)備現(xiàn)在具有可響應(yīng)于口述的命令來提供各種特征的話音識(shí)別功能。這樣的功能的益處有許多。此外,一些設(shè)備現(xiàn)在提供可按自然的、對(duì)話的方式(通過語音或鍵入的文本)對(duì)用戶命令或問題作出響應(yīng)的數(shù)字角色。作為結(jié)果,用戶與其設(shè)備進(jìn)行交互變得越來越舒適,并且對(duì)自然語言命令的使用變得越來越普遍。
仍然存在其中自然語言命令技術(shù)難以實(shí)行的一些場(chǎng)景。因此,仍有改進(jìn)的空間。
概述
提供本概要從而以簡(jiǎn)要形式引入將在下面具體實(shí)施例中進(jìn)一步描述的概念的選擇。本概要不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用來限制所要求保護(hù)的主題的范圍。
一實(shí)施例可以是一種控制多個(gè)經(jīng)注冊(cè)的動(dòng)作提供者中的哪個(gè)動(dòng)作提供者來執(zhí)行任務(wù)的方法,該方法包括:接收由話筒檢測(cè)到的口述的表達(dá);對(duì)該口述的表達(dá)執(zhí)行話音識(shí)別,所述話音識(shí)別該口述的表達(dá)中的任務(wù);以及,響應(yīng)于識(shí)別出所述任務(wù),并基于經(jīng)注冊(cè)的動(dòng)作提供者的存儲(chǔ)的注冊(cè)以及存儲(chǔ)的任務(wù)到提供者關(guān)聯(lián)偏好,將所述任務(wù)分配給經(jīng)注冊(cè)的動(dòng)作提供者中的特定動(dòng)作提供者,其中分配所述任務(wù)包括選擇所述特定動(dòng)作提供者來執(zhí)行所述任務(wù),以及向所述特定動(dòng)作提供者發(fā)送執(zhí)行所述任務(wù)的指令。
一實(shí)施例可被實(shí)現(xiàn)為一種電子設(shè)備,包括:處理器;存儲(chǔ)經(jīng)注冊(cè)的動(dòng)作提供者的多個(gè)存儲(chǔ)的注冊(cè)的存儲(chǔ)器,其中所述存儲(chǔ)的注冊(cè)包括指示特定經(jīng)注冊(cè)動(dòng)作提供者所支持的任務(wù)的針對(duì)該特定經(jīng)注冊(cè)動(dòng)作提供者的存儲(chǔ)的注冊(cè);存儲(chǔ)經(jīng)注冊(cè)的動(dòng)作提供者的多個(gè)存儲(chǔ)的偏好的存儲(chǔ)器,其中所述存儲(chǔ)的偏好包括將特定經(jīng)注冊(cè)動(dòng)作提供者指示為被偏好用于特定任務(wù)的偏好;識(shí)別引擎,所述識(shí)別引擎被配置成識(shí)別由所述設(shè)備的話筒接收到的口述的表達(dá)或由所述設(shè)備的文本輸入硬件接收到的鍵入的命令中的任務(wù);以及,個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù),所述個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù)被配置成基于存儲(chǔ)的注冊(cè)和存儲(chǔ)的偏好來控制將所述任務(wù)定向到哪個(gè)動(dòng)作提供者來完成。
一實(shí)施例可被實(shí)現(xiàn)為一個(gè)或多個(gè)機(jī)器可讀介質(zhì),所述一個(gè)或多個(gè)機(jī)器可讀介質(zhì)包括機(jī)器可執(zhí)行指令,所述機(jī)器可執(zhí)行指令使得電子設(shè)備執(zhí)行一種控制多個(gè)經(jīng)注冊(cè)的通信動(dòng)作提供者中的哪個(gè)通信動(dòng)作提供者執(zhí)行數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)所支持的通信任務(wù)的方法,該方法包括:對(duì)表達(dá)執(zhí)行話音識(shí)別,所述話音識(shí)別包括識(shí)別所述表達(dá)中的支持的通信任務(wù)以及聯(lián)系人名稱;以及,基于經(jīng)注冊(cè)的通信動(dòng)作提供者的存儲(chǔ)的注冊(cè)、存儲(chǔ)的動(dòng)作到提供者關(guān)聯(lián)偏好及用于發(fā)起針對(duì)所述聯(lián)系人名稱的通信任務(wù)的聯(lián)系人信息的可用性,選擇特定經(jīng)注冊(cè)通信動(dòng)作提供者,并使用所選擇的特定經(jīng)注冊(cè)通信動(dòng)作提供者經(jīng)由支持的通信任務(wù)發(fā)起與所述聯(lián)系人名稱所標(biāo)識(shí)的聯(lián)系人的通信;其中選擇特定經(jīng)注冊(cè)通信動(dòng)作提供者包括最初考慮第一通信動(dòng)作提供者,但響應(yīng)于確定所述第一通信動(dòng)作提供者的聯(lián)系人信息的可用性丟失,選擇第二通信動(dòng)作提供者。
如本文所述的,各種其它特征和優(yōu)點(diǎn)可按照需要被結(jié)合到所述技術(shù)中。
附圖簡(jiǎn)述
圖1是被配置成控制多個(gè)經(jīng)注冊(cè)動(dòng)作提供者中的哪個(gè)動(dòng)作提供者執(zhí)行任務(wù)的示例電子設(shè)備的框圖。
圖2是擴(kuò)展數(shù)字個(gè)人助理動(dòng)作提供者的示例方法的流程圖。
圖3是控制多個(gè)經(jīng)注冊(cè)動(dòng)作提供者中的動(dòng)作提供者執(zhí)行任務(wù)的示例方法的流程圖。
圖4是某動(dòng)作提供者的允許各動(dòng)作提供者共享數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)的示例注冊(cè)記錄模式的框圖。
圖5a和5b是示例注冊(cè)記錄的框圖。
圖6是示出示例任務(wù)域的個(gè)體任務(wù)的框圖。
圖7是示出音頻設(shè)備、數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)和動(dòng)作提供者之間的信息和指令的示例流動(dòng)的流程圖。
圖8是示出用于配置數(shù)字個(gè)人助理以使用第三方擴(kuò)展來進(jìn)行消息收發(fā)的示例用戶界面的屏幕截圖。
圖9是可用于實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的圖示。
圖10是可被用于本文中描述的技術(shù)的示例移動(dòng)設(shè)備。
圖11是可連同本文中描述的技術(shù)來使用的示例云支持環(huán)境。
詳細(xì)描述
示例1–示例概覽
本文中的各實(shí)施例在各種場(chǎng)景中可用于解決各種技術(shù)挑戰(zhàn),包括可擴(kuò)展性、計(jì)算資源節(jié)省、改進(jìn)的對(duì)語音命令的用戶效率、以及增加的用戶交互性能。
在各示例中,動(dòng)作提供者可向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)。在控制哪個(gè)動(dòng)作提供者將執(zhí)行用戶輸入所識(shí)別的任務(wù)時(shí),經(jīng)注冊(cè)的動(dòng)作提供者可被基礎(chǔ)結(jié)構(gòu)服務(wù)考慮。
雖然數(shù)字個(gè)人助理可具有豐富的功能,但它們可限于其設(shè)計(jì)者構(gòu)想到了什么。如本文中所描述的,數(shù)字個(gè)人助理系統(tǒng)的功能可被擴(kuò)展??蓴U(kuò)展性向更多樣的參與動(dòng)作提供者開放助理功能。例如,出于增加的功能、個(gè)人偏好等原因,用戶可期望第三方動(dòng)作提供者。
在缺乏技術(shù)方案的情況下,動(dòng)作提供者分開地提供其自己的數(shù)字個(gè)人助理功能。作為如本文中所描述的在各動(dòng)作提供者中共享基礎(chǔ)結(jié)構(gòu)的結(jié)果,附加的動(dòng)作提供者可被添加到該系統(tǒng),但這樣的提供者不需要并入其自己的資源和代碼來實(shí)現(xiàn)數(shù)字個(gè)人助理,也不需要并入數(shù)字個(gè)人助理的任何相關(guān)的子部分。因此,構(gòu)造和實(shí)現(xiàn)動(dòng)作提供者所需的總計(jì)算資源被減少。對(duì)于本地存儲(chǔ)的動(dòng)作提供者,這意味著在電子設(shè)備上消耗更少的存儲(chǔ)器。
如本文中所描述的,可使用一種注冊(cè)過程,通過該注冊(cè)過程,提供者可將數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)在向動(dòng)作提供者分配任務(wù)時(shí)可使用的信息傳遞給該服務(wù)。這樣的信息可包括支持的動(dòng)作、要填充的槽、先決條件等。
如本文中所描述的機(jī)器學(xué)習(xí)可最終導(dǎo)致更快的總體任務(wù)執(zhí)行。
本文中的各特征可解決這些問題,使得可導(dǎo)致總的來說更優(yōu)良的用戶體驗(yàn)以及對(duì)資源更好的使用。
各種其它特征可被實(shí)現(xiàn)并如本文所述地組合。
示例2–與設(shè)備的示例高效用戶界面及其他效果
如在本文中的示例中描述的,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)的服務(wù)可在各動(dòng)作提供者之中共享。結(jié)果,存儲(chǔ)動(dòng)作提供者所需的總存儲(chǔ)量可被減少。在本地動(dòng)作提供者的情況下,用于存儲(chǔ)本地動(dòng)作提供者的存儲(chǔ)器可被減小。
此外,可利用數(shù)字個(gè)人助理的動(dòng)作提供者的數(shù)目和類型可被擴(kuò)展。這樣的涉及其他動(dòng)作提供者的參與的開放方法可導(dǎo)致更豐富的功能被電子設(shè)備提供。
不同的用戶可具有關(guān)于他們?cè)谕瓿扇蝿?wù)時(shí)希望使用哪個(gè)動(dòng)作提供者的不同偏好。如本文中所描述的,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可允許任何數(shù)目的動(dòng)作提供者向該服務(wù)注冊(cè),以利用(例如,插入)該服務(wù)所提供的功能,包括用戶偏好、槽填充、先決條件、機(jī)器學(xué)習(xí)等。
示例3–實(shí)現(xiàn)各技術(shù)的示例系統(tǒng)
圖1是被配置成控制多個(gè)經(jīng)注冊(cè)動(dòng)作提供者172a-n、174中的哪個(gè)動(dòng)作提供者執(zhí)行任務(wù)的示例電子設(shè)備150的框圖。在該示例中,電子設(shè)備150具有監(jiān)聽(例如,話音識(shí)別)能力,但設(shè)備150也可用文本輸入硬件來實(shí)現(xiàn)這些技術(shù)。
在該示例中,電子設(shè)備150包括話筒120、揚(yáng)聲器190,并可具有多個(gè)其他硬件傳感器。識(shí)別器130可識(shí)別由話筒120接收到的口述的表達(dá)110。如本文中所描述的,這樣的表達(dá)110可包括任務(wù)名、任務(wù)參數(shù)等。在基于文本輸入的系統(tǒng)中,識(shí)別器可以是識(shí)別由設(shè)備的文本輸入硬件(例如,鍵盤、觸摸屏等)接收到的鍵入的命令中的任務(wù)的識(shí)別引擎。
數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)160可對(duì)所識(shí)別的任務(wù)采取行動(dòng)、協(xié)調(diào)這樣的任務(wù)的執(zhí)行、并經(jīng)由揚(yáng)聲器190提供音頻反饋195,揚(yáng)聲器190可采取各種音頻輸出設(shè)備中的任一者的形式。它由此可基于存儲(chǔ)的注冊(cè)165以及存儲(chǔ)的任務(wù)偏好167來控制將任務(wù)定向到哪個(gè)動(dòng)作提供者來完成,如本文中所描述的。
如本文中所描述的,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)160可向動(dòng)作提供者172a-n、174中的特定動(dòng)作提供者發(fā)送指令180以執(zhí)行所識(shí)別的任務(wù)。數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)160可基于各種因素來確定要使用哪個(gè)動(dòng)作提供者172a-n、174。例如,可選擇用戶默認(rèn)的動(dòng)作提供者、顯式地指定的動(dòng)作提供者或推斷出的動(dòng)作提供者(例如,基于先前使用推斷的)。
存儲(chǔ)的提供者注冊(cè)165可指示針對(duì)動(dòng)作提供者172a-n、174的各種信息,并指示這些動(dòng)作提供者的能力。例如,可包括支持的任務(wù)、要被填充的參數(shù)槽、先決條件等。具有存儲(chǔ)的注冊(cè)的動(dòng)作提供者被認(rèn)為是(例如,向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)的)經(jīng)注冊(cè)的動(dòng)作提供者。
任務(wù)偏好167可包括該服務(wù)所支持的任務(wù)和支持任務(wù)的特定動(dòng)作提供者之間的映射。由此,可指示針對(duì)某任務(wù)的默認(rèn)的或偏好的動(dòng)作提供者。如本文中所描述的,機(jī)器學(xué)習(xí)可被采用來修改為特定任務(wù)指示的動(dòng)作提供者。如本文中所描述的,偏好可以是超過任務(wù)水平的粒度。例如,對(duì)特定聯(lián)系人、地理位置等的偏好可被支持。
數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)160可基于各種輸入(例如,提供者注冊(cè)165、存儲(chǔ)的任務(wù)偏好167、顯式地指定的提供者、推斷出的提供者等)來選擇多個(gè)經(jīng)注冊(cè)的動(dòng)作提供者172a-n、174中的哪一個(gè)將執(zhí)行被識(shí)別的任務(wù)。
盡管各組件在分開的框中示出,在實(shí)踐中,組件邊界可改變。例如,各組件可作為設(shè)備操作系統(tǒng)、應(yīng)用、設(shè)備等的一部分被提供。其它布置也是可能的,同時(shí)仍舊實(shí)現(xiàn)所述技術(shù)。例如,雖然注冊(cè)165和偏好167被分開地示出,但可實(shí)現(xiàn)其中兩者被合并或一者的各部分被復(fù)制到另一者中等優(yōu)化。例如,來自注冊(cè)165的信息可被放置為使得當(dāng)經(jīng)由偏好167找到默認(rèn)動(dòng)作提供者時(shí),該信息可被容易地訪問(例如,在同一記錄等中)。
在實(shí)踐中,本文中示出的系統(tǒng)(諸如系統(tǒng)100)可以更復(fù)雜,具有附加的功能、更多的輸入、輸出等。在實(shí)踐中,與位置有關(guān)的附加功能(例如,gps、室內(nèi)定位技術(shù)等)可被包括以確定聽見口述的命令的設(shè)備的當(dāng)前位置。
系統(tǒng)100和此處描述的其它系統(tǒng)中的任何系統(tǒng)可結(jié)合此處描述的硬件組件中的任何組件來實(shí)現(xiàn),諸如計(jì)算系統(tǒng)或下面描述的移動(dòng)設(shè)備(例如,包括一個(gè)或多個(gè)處理器、存儲(chǔ)器等)。在本文中描述的任一示例中,輸入、輸出、偏好、注冊(cè)、動(dòng)作提供者及指令可被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、機(jī)器可讀介質(zhì)、或計(jì)算機(jī)可讀存儲(chǔ)設(shè)備中。此處描述的技術(shù)可對(duì)操作系統(tǒng)或硬件的細(xì)節(jié)通用且可在任何各種環(huán)境中應(yīng)用以利用所述特征。
示例4–實(shí)現(xiàn)擴(kuò)展數(shù)字個(gè)人助理動(dòng)作提供者的示例方法
圖2是擴(kuò)展數(shù)字個(gè)人助理動(dòng)作提供者并可例如在圖1所示的系統(tǒng)中實(shí)現(xiàn)的示例方法200的流程圖。
在210,向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)動(dòng)作提供者。向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)特定動(dòng)作提供者可包括存儲(chǔ)該特定動(dòng)作提供者所支持的一個(gè)或多個(gè)動(dòng)作的指示。在實(shí)踐中,可包括附加注冊(cè)信息,如本文中所描述的。例如,合約指定機(jī)制可被用于指示在執(zhí)行任務(wù)時(shí),動(dòng)作提供者預(yù)期什么信息。
在220,由電子設(shè)備接收并識(shí)別表達(dá)中的任務(wù)。
可執(zhí)行如本文中描述的附加動(dòng)作,諸如確定參數(shù)槽丟失、先決條件沒有被滿足等。
在230,基于如本文中描述的注冊(cè)和偏好,將任務(wù)分配給特定動(dòng)作提供者。如本文中所描述的,可完成對(duì)偏好的動(dòng)作提供者的顯式覆蓋。
在240,特定動(dòng)作提供者執(zhí)行任務(wù)。
方法200和本文中描述的任何其它方法可由存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,存儲(chǔ)或其它有形介質(zhì))中、存儲(chǔ)在一個(gè)或多個(gè)機(jī)器可讀介質(zhì)、或存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)設(shè)備中的(例如,在被執(zhí)行時(shí),使得計(jì)算系統(tǒng)執(zhí)行該方法的)機(jī)器可讀或計(jì)算機(jī)可執(zhí)行指令來執(zhí)行。這樣的方法可至少部分地由本文中描述的計(jì)算系統(tǒng)或設(shè)備(例如,移動(dòng)設(shè)備、移動(dòng)計(jì)算設(shè)備、游戲控制臺(tái)、可穿戴計(jì)算設(shè)備、膝上型計(jì)算機(jī)、平板設(shè)備等)中的任一者來執(zhí)行。
示例5–實(shí)現(xiàn)各技術(shù)的示例方法
圖3是控制多個(gè)經(jīng)注冊(cè)的動(dòng)作提供者中的哪個(gè)動(dòng)作提供者執(zhí)行任務(wù)并可在例如圖1所示的系統(tǒng)中實(shí)現(xiàn)的示例方法300的流程圖。方法300可獨(dú)立地或結(jié)合圖2中所示的用于擴(kuò)展動(dòng)作提供者(例如,用于執(zhí)行圖2的220和230)的方法執(zhí)行。注冊(cè)(框210)可在方法300被執(zhí)行執(zhí)行發(fā)生。
在310,(例如由電子設(shè)備的話筒)接收口述的表達(dá)(例如被電子設(shè)備的話筒檢測(cè)到等)。表達(dá)包括口述的任務(wù)。
在320,對(duì)口述的表達(dá)執(zhí)行話音識(shí)別,并且話音識(shí)別識(shí)別口述的表達(dá)中的任務(wù)。在實(shí)踐中,口述的任務(wù)由任務(wù)名或關(guān)鍵詞指示。多個(gè)任務(wù)名或關(guān)鍵詞可被映射到同一任務(wù)以允許典型的口頭表達(dá)的變體被用來指示同一任務(wù)。
在330,響應(yīng)于識(shí)別出任務(wù),并基于經(jīng)注冊(cè)的動(dòng)作提供者的存儲(chǔ)的注冊(cè)以及存儲(chǔ)的任務(wù)到提供者關(guān)聯(lián)偏好,將該任務(wù)分配給特定提供者。
分配任務(wù)可包括選擇335特定動(dòng)作提供者來執(zhí)行該任務(wù),并向該特定動(dòng)作提供者發(fā)送337執(zhí)行該任務(wù)的指令。用于執(zhí)行任務(wù)的信息(例如,經(jīng)填充的槽)可被包括在這些指令中。經(jīng)填充的槽的內(nèi)容可由在特定動(dòng)作提供者的注冊(cè)期間指示的合約指定來決定。如本文中所描述的,多個(gè)動(dòng)作提供者可針對(duì)同一任務(wù)注冊(cè),并且一個(gè)動(dòng)作提供者可針對(duì)多于任務(wù)注冊(cè)。
如本文中所描述的,關(guān)于槽填充、機(jī)器學(xué)習(xí)、顯式覆蓋等的附加動(dòng)作可被執(zhí)行。
由此,控制哪個(gè)動(dòng)作提供者執(zhí)行任務(wù)可被完成,如所描述的。
示例6—示例任務(wù)
在本文中的任一示例中,表達(dá)可包括可通過話音識(shí)別技術(shù)來識(shí)別并隨后代表用戶執(zhí)行的一個(gè)或多個(gè)任務(wù)。由于這樣的任務(wù)由數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)支持,它們有時(shí)被稱為“數(shù)字個(gè)人助理任務(wù)”。任務(wù)可具有相關(guān)聯(lián)的任務(wù)名,這些任務(wù)名可被選為對(duì)用戶熟悉的(例如,“播放音樂”、“呼叫媽媽”、“向jim發(fā)送電子郵件”、“打開廚房的燈”等)。如圖所示,任務(wù)可包括被包括為口述命令短語的一部分的參數(shù)。
實(shí)際的底層任務(wù)(有時(shí)被稱為“任務(wù)類型”或“任務(wù)類別”)可包括消息收發(fā)(例如,文本收發(fā)、即時(shí)消息收發(fā)等)、呼叫、電子郵件、筆記(例如,給自身添加筆記)、導(dǎo)航、日歷(約會(huì))等。如本文中所描述的,可通過注冊(cè)來識(shí)別并支持任何數(shù)目的其他任務(wù)或動(dòng)作(例如,播放音樂、天氣、出租車服務(wù)、鬧鐘、提醒、送花、打開燈、打開設(shè)備等)。
呼叫可被定義為包括語音和視頻呼叫兩者,或者其可被認(rèn)為是分開的任務(wù)。
在實(shí)踐中,可存在多于一種方式來指定任務(wù)。例如,“呼叫<聯(lián)系人名稱>”和“我想要與<聯(lián)系人名稱>說話”兩者都可被個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù)映射到“呼叫”。
在執(zhí)行任務(wù)時(shí),可(例如,用虛擬角色的語音)給出音頻指示。例如,可說出諸如“好的,播放音樂”之類的短語。也可提供動(dòng)作提供者的音頻指示(例如,“好的,在<服務(wù)>上播放音樂”)。由此,用戶意識(shí)到任務(wù)被識(shí)別出,并且將被執(zhí)行,從而導(dǎo)致用戶和設(shè)備之間更平滑的交互。
用于取消任務(wù)的機(jī)制(例如,“取消”按鈕或說“不”)可被提供在用戶界面中,使得用戶可取消任務(wù)。
如本文中所描述的,來自經(jīng)注冊(cè)應(yīng)用列表的默認(rèn)應(yīng)用可被選擇用于特定任務(wù)類型。
示例7–示例數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)
在本文中的任一示例中,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可采取為多個(gè)動(dòng)作提供者提供數(shù)字個(gè)人助理功能的服務(wù)的形式。例如,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可處理語音交互,并選擇哪個(gè)特定動(dòng)作提供者將執(zhí)行任務(wù),即時(shí)多于一個(gè)動(dòng)作提供者被注冊(cè)并支持該任務(wù)。
如本文中所描述的,數(shù)字個(gè)人助理功能可包括執(zhí)行與用戶的對(duì)話,諸如詢問完成任務(wù)所需的附加信息,通知任務(wù)是否被合適地識(shí)別,傳遞錯(cuò)誤條件等。
在實(shí)踐中,基礎(chǔ)結(jié)構(gòu)可被實(shí)現(xiàn)為平臺(tái),各種其他提供者可通過注冊(cè)連接到該平臺(tái)中,如本文中所描述的。
示例8–示例動(dòng)作提供者
在本文中的任一示例中,動(dòng)作提供者可采取各種形式,包括本地應(yīng)用、遠(yuǎn)程(例如,基于web的)應(yīng)用或服務(wù)等。動(dòng)作提供者可向如本文中所描述的數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè),并隨后(例如響應(yīng)于用戶請(qǐng)求)被分配任務(wù),其隨后幫助完成這些任務(wù)。例如,安裝在設(shè)備上的應(yīng)用可幫助呼叫某人并由此履行呼叫任務(wù)。
這樣的動(dòng)作提供者可以是本機(jī)的或非本機(jī)的,并且本文中描述的系統(tǒng)可支持本機(jī)和非本機(jī)動(dòng)作提供者兩者的混合(例如,經(jīng)注冊(cè)的動(dòng)作提供者包括非本機(jī)動(dòng)作提供者和本機(jī)動(dòng)作提供者)。由此,如果數(shù)字個(gè)人助理由第一方提供者提供,則第三方動(dòng)作提供者可在該電子設(shè)備上參與,并利用由該基礎(chǔ)結(jié)構(gòu)提供的服務(wù),而無須并入其自己的整個(gè)數(shù)字個(gè)人助理功能。
示例9—示例任務(wù)偏好
在本文中的任一示例中,電子設(shè)備可存儲(chǔ)任務(wù)與偏好的動(dòng)作提供者的關(guān)聯(lián)。這樣的偏好可由數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)、操作系統(tǒng)等管理。
由此,偏好可用作任務(wù)和動(dòng)作提供者之間的映射(例如,任務(wù)被映射到偏好的動(dòng)作提供者)。例如,播放音樂任務(wù)和音樂服務(wù)之間的關(guān)聯(lián)指示音樂服務(wù)是偏好的用于播放音樂的動(dòng)作提供者。
最初可向設(shè)備提供(裝載)默認(rèn)的偏好動(dòng)作提供者(例如,從被安裝的那些動(dòng)作提供者中選出的動(dòng)作提供者等)。
用戶可經(jīng)由設(shè)置圖形用戶界面、通過語音命令(例如,“總是使用skype來呼叫”、“使得skype成為我的默認(rèn)呼叫應(yīng)用”等)來修改偏好的動(dòng)作提供者指定,或者可基于表達(dá)用戶的先前使用(例如,歷史)來分配動(dòng)作提供者。
當(dāng)任務(wù)被識(shí)別出時(shí),它可隨后被分配給偏好的動(dòng)作提供者,如果該提供者能夠執(zhí)行該任務(wù)的話,如本文中所描述的。如果偏好的動(dòng)作提供者無法勝任,則可向已注冊(cè)該任務(wù)的不同提供者分配該任務(wù)以供執(zhí)行。通過這種方式,用戶仍可完成該任務(wù),即使偏好的提供者出于不管什么理由無法勝任??梢罁?jù)偏好指定次要或其他動(dòng)作提供者。例如,動(dòng)作提供者可依據(jù)偏好程度來排序。
示例10–執(zhí)行任務(wù)的示例指令
在本文中的任一示例中,向動(dòng)作提供者發(fā)送的執(zhí)行任務(wù)的指令可包括足夠的信息以傳達(dá)該動(dòng)作提供者將執(zhí)行該任務(wù)。例如,可包括任務(wù)名或標(biāo)識(shí)符以及用于執(zhí)行該任務(wù)的任何參數(shù)。在接收到這些指令后,動(dòng)作提供者可執(zhí)行該任務(wù),或確定在執(zhí)行該任務(wù)之前,進(jìn)一步交互是合適的,如本文中所描述的。
示例11–示例機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)可在各種場(chǎng)景中被使用。例如,機(jī)器學(xué)習(xí)可基于任務(wù)提供者應(yīng)用所提供的數(shù)據(jù)來創(chuàng)建選擇任務(wù)提供者或偏好的任務(wù)提供者的固定規(guī)則集(例如,決策樹、簡(jiǎn)單試探法等)(例如,無需來自用戶的實(shí)際行為的輸入,諸如用戶選擇了什么)。
機(jī)器學(xué)習(xí)可被用于基于用戶與系統(tǒng)的交互來創(chuàng)建動(dòng)態(tài)規(guī)則集。例如,如果觀察到用戶正使用一個(gè)特定的任務(wù)提供者來完成特定上下文中的任務(wù)(例如,涉及特定用戶的),則該系統(tǒng)可學(xué)習(xí)這樣的行為并在將來應(yīng)用該行為。
機(jī)器學(xué)習(xí)還可基于相似的用戶及其與系統(tǒng)的交互來創(chuàng)建動(dòng)態(tài)規(guī)則集。例如,可應(yīng)用眾包技術(shù)。
在實(shí)踐中,機(jī)器學(xué)習(xí)決策可取決于各外部因素及其組合。例如,可使用諸如wi-fi是否可用、4g/ltg是否可用、gsm是否可用、用戶是否在漫游、4g/lte的數(shù)據(jù)限制是否被達(dá)到等外部因素來構(gòu)建用于決策作出的上下文。此外,存在可被使用的眾多內(nèi)部因素,諸如聯(lián)系人是否與一個(gè)任務(wù)提供者相關(guān)聯(lián)而不與其他任務(wù)提供者相關(guān)聯(lián)。
不受監(jiān)督的機(jī)器學(xué)習(xí)可基于同一用戶的相似意圖、或基于其他相似用戶的觀察到的相似意圖來推斷用戶的意圖。
機(jī)器學(xué)習(xí)可被用于設(shè)置偏好的動(dòng)作提供者。機(jī)器學(xué)習(xí)可確定特定動(dòng)作提供者是某任務(wù)的偏好動(dòng)作提供者,并響應(yīng)于這樣的確定,該任務(wù)的偏好動(dòng)作提供者可被改變?yōu)樵撎囟▌?dòng)作提供者。
例如,如果用戶一貫并重復(fù)地為某任務(wù)顯式指定特定動(dòng)作提供者,則該動(dòng)作提供者可被設(shè)置為該任務(wù)的偏好動(dòng)作提供者。例如,連續(xù)為同一任務(wù)指定某動(dòng)作提供者n次(例如5次等)可導(dǎo)致該動(dòng)作提供者被設(shè)置為針對(duì)該任務(wù)的默認(rèn)項(xiàng)?;蛘撸崾究呻S后被呈現(xiàn),通過該提示,用戶可確認(rèn)它將是默認(rèn)項(xiàng)。(例如,“你是否希望<提供者>成為用于消息收發(fā)的默認(rèn)項(xiàng)?”)。也可向用戶通知設(shè)置已被作出(例如,“好的。我正將<提供者>設(shè)置為你偏好的用于消息收發(fā)的提供者。將來,你可以只說‘發(fā)送消息’來使用<提供者>”)。
由此,該系統(tǒng)可針對(duì)特定任務(wù)識(shí)別出對(duì)特定動(dòng)作提供者的重復(fù)、一貫的使用。響應(yīng)于識(shí)別出這樣的使用,指示該特定動(dòng)作提供者的用戶偏好可(例如,在下一監(jiān)聽循環(huán)發(fā)生之前)(例如,在偏好中)被設(shè)置為與該特定任務(wù)相關(guān)聯(lián)。將來,該任務(wù)可被識(shí)別出,并且控制哪個(gè)動(dòng)作提供者執(zhí)行該任務(wù)可基于該用戶偏好為該特定任務(wù)選擇該特定動(dòng)作提供者。
另一機(jī)器學(xué)習(xí)特征可基于動(dòng)作提供者糾正來實(shí)現(xiàn)。例如,如果任務(wù)在特定設(shè)備上開始,用戶可說“不,不是<提供者a>,而是<提供者b>”。該系統(tǒng)可記錄這樣的糾正,并重復(fù)這些糾正,這類似于以上對(duì)動(dòng)作提供者的顯式指定。因此,響應(yīng)于接收提供者糾正表達(dá),該系統(tǒng)可為任務(wù)存儲(chǔ)動(dòng)作提供者偏好。
機(jī)器學(xué)習(xí)可考慮任務(wù)域(例如,重復(fù)且一貫地為域中的各任務(wù)指定特定提供者可導(dǎo)致該提供者被設(shè)置為該任務(wù)域的偏好設(shè)備)。
雖然各示例描述了在任務(wù)或域級(jí)學(xué)習(xí)偏好動(dòng)作提供者,但也有可能在更細(xì)的粒度級(jí)別(例如,聯(lián)系人或城市級(jí)別)這么做,如本文中所描述的。例如,可一貫地使用支持消息收發(fā)的特定動(dòng)作提供者向某個(gè)聯(lián)系人發(fā)消息,或者可一貫地使用支持出租車服務(wù)的特定動(dòng)作提供者來請(qǐng)求某個(gè)城市中的搭乘車輛。如果特定動(dòng)作提供者被確定為被偏好用于某任務(wù)或聯(lián)系人,則針對(duì)該任務(wù)和聯(lián)系人的偏好提供者可據(jù)此被改變。
如本文中所描述的機(jī)器學(xué)習(xí)的益處之一在于它減少了交換數(shù)和/或需要被提供以完成任務(wù)的信息量。例如,用戶可簡(jiǎn)單地停止在與設(shè)備進(jìn)行交互時(shí)顯式地陳述動(dòng)作提供者。最終任務(wù)可由此被更快完成。
示例12–示例注冊(cè)信息
在本文中的任一示例中,動(dòng)作提供者可提供注冊(cè)信息來向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)。圖4是某動(dòng)作提供者的允許各動(dòng)作提供者共享數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)的示例注冊(cè)記錄模式400的框圖。動(dòng)作提供者的能力可通過指示該動(dòng)作提供者所支持的一個(gè)或多個(gè)任務(wù)等來注冊(cè)。該示例示出條目名/值對(duì),但其他格式可被支持。
在實(shí)踐中,動(dòng)作提供者可(例如,經(jīng)由應(yīng)用編程接口)將注冊(cè)信息傳遞給數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)并隨后適當(dāng)?shù)馗略撔畔???啥x用于指定注冊(cè)信息的模式。
提供者標(biāo)識(shí)符410指示動(dòng)作提供者的標(biāo)識(shí)符,使得可在處理期間將其與其他提供者區(qū)分開。表達(dá)的名稱420可以是對(duì)其執(zhí)行話音識(shí)別的名稱(例如表達(dá)的名稱可在被口述時(shí)被識(shí)別出)。名稱420也可在生成語音(例如,“好的,在<表達(dá)的名稱>上呼叫<聯(lián)系人名稱>?!?時(shí)被使用。名稱420可被用作標(biāo)識(shí)符410,和/或其他名稱(例如,顯示名稱)也可被包括。
提供者類型430可被用于指示動(dòng)作提供者是本地的還是遠(yuǎn)程的等。
支持的任務(wù)440a-n可包括動(dòng)作提供者可執(zhí)行的一個(gè)或多個(gè)任務(wù)。支持的任務(wù)可通過其任務(wù)標(biāo)識(shí)符445來標(biāo)識(shí)。
槽450可指示完成該任務(wù)所預(yù)期的一個(gè)或多個(gè)參數(shù)(例如,依據(jù)名稱)。例如,呼叫通常需要電話號(hào)碼、名稱等。如果槽丟失,則數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可提示(例如,通過接收附加信息)填充槽。也可為槽指定附加信息(例如,參數(shù)類型)。也可支持槽的默認(rèn)值(例如,當(dāng)前gps位置)。也可支持替換例(例如,槽可被填充地址或名稱)。
可支持合約機(jī)制,通過該合約機(jī)制,可使注冊(cè)變得可用于請(qǐng)求動(dòng)作提供者。在向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)時(shí),動(dòng)作提供者可注冊(cè)成為該合約的特定版本下的特定任務(wù)的提供者。每個(gè)特定任務(wù)(例如,呼叫提供者合約;版本=1.0)可存在數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可展示的一個(gè)或多個(gè)合約。合約指定在調(diào)用提供者來完成某動(dòng)作時(shí),數(shù)字個(gè)人助理將(例如,在槽中)包括什么信息。因此,服務(wù)提供者可簡(jiǎn)單地指示合約指定,而無需并入用于獲得該信息的功能。
對(duì)數(shù)字個(gè)人助理所支持的合約的查詢可由提供者向數(shù)字個(gè)人助理提出,并且動(dòng)作提供者所支持的合約可由該提供者選擇。在針對(duì)單個(gè)任務(wù)有多個(gè)支持的合約的情況下,最新近或以其他方式偏好的一個(gè)合約可被選擇。通過這種方式,隨著各增強(qiáng)對(duì)提供者和助理作出,兼容性可被維持。
例如,呼叫合約指定可指示數(shù)字個(gè)人助理將包括聯(lián)系人名值和聯(lián)系人姓值,并且可選地還包括當(dāng)前設(shè)備類型、完全轉(zhuǎn)錄的用戶口述文本等。因此,在提供者向數(shù)字個(gè)人助理注冊(cè)時(shí),提供者可指定它在被數(shù)字個(gè)人助理調(diào)用以完成某任務(wù)時(shí)預(yù)期什么。
如果提供者基于個(gè)人助理所提供的內(nèi)容無法解析出聯(lián)系人,則它可用(例如,數(shù)字個(gè)人助理可向用戶顯式或說出的)恰當(dāng)報(bào)錯(cuò)消息來讓數(shù)字助理知道它無法完成。替換地,動(dòng)作提供者可決定在動(dòng)作提供者體驗(yàn)(例如,用戶界面等)內(nèi)直接讓用戶知道其無法完成其被要求的動(dòng)作。
先決條件460可指示在任務(wù)可被執(zhí)行之前、動(dòng)作提供者可被調(diào)用之前等的一個(gè)或多個(gè)先決條件,如本文中所描述的。如果任務(wù)注冊(cè)指示先決條件沒有被滿足,則數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)可避免向動(dòng)作提供者分配任務(wù)。
對(duì)于相同的動(dòng)作提供者,槽450和條件460可對(duì)不同的任務(wù)不同。例如,一個(gè)任務(wù)可指定特定槽,而另一任務(wù)則不指定該特定槽。例如,聯(lián)系人名稱槽可按需被指定用于消息收發(fā)和呼叫兩者,但消息內(nèi)容槽可按需僅被指定用于消息收發(fā)動(dòng)作提供者。
示例13—示例合約實(shí)現(xiàn)
在本文中的任一示例中,合約機(jī)制可被用作動(dòng)作提供者的注冊(cè)過程的一部分。例如,動(dòng)作提供者可提供話音命令定義文件(例如,語音命令定義xml文件等)作為該注冊(cè)過程的一部分。話音命令定義文件可包括動(dòng)作提供者正在注冊(cè)的合約(例如,它可消費(fèi)并處理的合約)。
表1示出合約注冊(cè)的示例。動(dòng)作提供者可調(diào)用平臺(tái)api并提供話音命令定義文件。數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可隨后構(gòu)建將合約映射到可消費(fèi)這些合約的經(jīng)注冊(cè)動(dòng)作提供者的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。合約可與任務(wù)相關(guān)聯(lián)。通過這種方式,任務(wù)最終與動(dòng)作提供者相關(guān)聯(lián)。
表1–用于擴(kuò)展助理的xml元素
合約指定以及它提供的數(shù)據(jù)的示例在表2中被示出。預(yù)定義合約概括了在該合約被調(diào)用時(shí),動(dòng)作提供者將接收到的鍵:值對(duì)集合。在該示例中,動(dòng)作提供者將接收到兩個(gè)鍵:值對(duì)。一個(gè)被命名為“contractid(合約id)”,而另一個(gè)為“contactname(聯(lián)系人名稱)”。在實(shí)踐中,合約指定可包括本文中描述的槽信息中的任一者。
表2-dial0(撥號(hào)0)的預(yù)定義合約指定
當(dāng)數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)識(shí)別出給定的表達(dá)的任務(wù)時(shí),它交叉參考該數(shù)據(jù)結(jié)構(gòu)并使用路由過程來選擇哪個(gè)動(dòng)作提供者應(yīng)當(dāng)處理該任務(wù)。例如,任務(wù)可被識(shí)別出,并且履行該任務(wù)的關(guān)聯(lián)合約可被標(biāo)識(shí)出??衫^續(xù)進(jìn)行從可消費(fèi)該合約的各動(dòng)作提供者之中進(jìn)行選擇,如本文中所描述的。所選的動(dòng)作提供者被傳遞(例如基于該表達(dá))將合約信息提供給動(dòng)作提供者的對(duì)象結(jié)構(gòu)。當(dāng)動(dòng)作提供者被啟動(dòng)時(shí),它接收(例如,暗示任務(wù)的)合約標(biāo)識(shí)符以及關(guān)聯(lián)信息(例如,一個(gè)或多個(gè)槽)兩者。由此,動(dòng)作提供者可確定它正被調(diào)用以消費(fèi)(例如,與被識(shí)別為用戶正表達(dá)的任務(wù)相關(guān)聯(lián)的)特定合約。
示例14–示例共享聯(lián)系人信息
在本文中的任一示例中,動(dòng)作提供者可經(jīng)由跨提供者共享的聯(lián)系人存儲(chǔ)來與數(shù)字個(gè)人助理共享聯(lián)系人信息。動(dòng)作提供者可將其聯(lián)系人信息的列表添加到公共存儲(chǔ)。通過這種方式,用戶可集中管理用于跨若干不同的動(dòng)作提供者與聯(lián)系人通信的組合的聯(lián)系人信息。
在動(dòng)作提供者將聯(lián)系人列表提交給公共存儲(chǔ)后,數(shù)字個(gè)人助理可包括聯(lián)系人名稱以用于話音識(shí)別的目的(例如,通過將這些名稱指定給識(shí)別器,使得識(shí)別器可更容易地識(shí)別該列表中的表達(dá)的名稱)。
示例15—示例否定槽
在本文中的任一示例中,對(duì)于其中存在太多信息的情況,可指定否定槽(例如,如果存在x,則采取動(dòng)作來進(jìn)行糾正)。這樣的場(chǎng)景可對(duì)其中指定某電話類型(例如,“家庭”)無意義的通信場(chǎng)景有用。在遇到這樣的信息之際,報(bào)錯(cuò)消息、確認(rèn)或替換可被傳遞以確定如何繼續(xù)(例如,“我很抱歉,<提供者>不支持家庭號(hào)碼”。你仍想啟動(dòng)與<聯(lián)系人>的視頻呼叫嗎?”)。
示例16—示例先決條件
在本文中的任一示例中,先決條件可采取在動(dòng)作提供者可執(zhí)行任務(wù)之前將滿足的各種形式。先決條件由此用作對(duì)動(dòng)作提供者的約束。先決條件的失敗可防止動(dòng)作提供者被分配任務(wù)。這樣的約束可以是自施加的或由該系統(tǒng)施加。
例如,動(dòng)作提供者可指定在接受任務(wù)之前存在wi-fi、數(shù)據(jù)、蜂窩或其他網(wǎng)絡(luò)連接。類似地,它可指定服務(wù)器可操作(例如,該系統(tǒng)在工作)。對(duì)于遠(yuǎn)程服務(wù),一個(gè)或多個(gè)這樣的先決條件可被暗示(例如,即使它不存在于注冊(cè)記錄中,它也可被應(yīng)用)。
其他先決條件包括地理先決條件(例如,該設(shè)備必須在某位置的x公里內(nèi)、在某地理圍欄內(nèi)等)。
先決條件可以以更細(xì)的粒度級(jí)別被指定。例如,按聯(lián)系人或按城市的先決條件可被執(zhí)行(例如,除非針對(duì)聯(lián)系人的條件被滿足,否則任務(wù)無法被執(zhí)行)。例如,如果針對(duì)動(dòng)作提供者的識(shí)別的聯(lián)系人名稱(例如,動(dòng)作提供者所需的用戶名稱)的動(dòng)作提供者標(biāo)識(shí)符不存在,或者如果數(shù)字證書不存在,則該任務(wù)無法用該動(dòng)作提供者完成。
類似地,可為用戶查閱動(dòng)作提供者的存在信息,并且先決條件可以是該存在信息具有特定狀態(tài)(例如,用戶是活躍或可用的)。如果用戶不存在于動(dòng)作提供者的服務(wù)上,則該先決條件失敗。
在任務(wù)的處理期間,可能確定針對(duì)動(dòng)作提供者的先決條件沒有被滿足。響應(yīng)于這樣的確定,該任務(wù)的次要?jiǎng)幼魈峁┱呖杀粯?biāo)識(shí)出,并被用作用于執(zhí)行該任務(wù)的提供者。
處理先決條件可導(dǎo)致總體上更快的任務(wù)執(zhí)行。例如,用戶不需要體驗(yàn)第一提供者的失敗,并隨后選擇第二提供者來執(zhí)行該任務(wù)。
由此,如果表達(dá)為“呼叫<聯(lián)系人名稱>”并且不存在該聯(lián)系人的電話號(hào)碼,則偏好的提供者(例如,電話)可故障轉(zhuǎn)移到存在足夠的聯(lián)系人信息(例如,用戶標(biāo)識(shí)符)來發(fā)起該呼叫的次要提供者(例如,voip)。相反的方案也可被實(shí)現(xiàn)(例如,voip提供者被偏好,但用戶標(biāo)識(shí)符不可用或者不存在數(shù)據(jù)網(wǎng)絡(luò)連接)。
先決條件可由此對(duì)通信動(dòng)作提供者尤其有幫助。選擇特定經(jīng)注冊(cè)通信動(dòng)作提供者可包括最初考慮第一通信動(dòng)作提供者,但響應(yīng)于確定所述第一通信動(dòng)作提供者的聯(lián)系人信息的可用性丟失(例如,沒有被注冊(cè)、不存在于地址簿中等),選擇第二通信動(dòng)作提供者。
示例17–示例注冊(cè)記錄
圖5a和5b是示例注冊(cè)記錄500、550的框圖。
在示例500中,提供者“skype”是支持“呼叫”任務(wù)的本地應(yīng)用。先決條件是存在針對(duì)聯(lián)系人的用戶標(biāo)識(shí)符。在實(shí)踐中,消息收發(fā)也可被支持,并且用于消息收發(fā)的附加槽可以是該消息本身。
在示例550中,提供者“rideshare”是支持出租車任務(wù)的遠(yuǎn)程應(yīng)用。由于它是搭車共享,該應(yīng)用在執(zhí)行槽中所指定的任務(wù)之前預(yù)期目的地位置。
任何數(shù)目的變體是可能的。例如,對(duì)鮮花派送任務(wù)的注冊(cè)可指示地址或鮮花提供者標(biāo)識(shí)符是要填充的槽。
“幫我尋找搭乘車輛”任務(wù)可等同于出租車服務(wù)。要填充的槽可以是目的地(例如,“好的。你想到哪里去?”)。上車位置可默認(rèn)為當(dāng)前位置或被顯式地指定(例如,“幫我尋找從建筑物117到建筑物8的搭乘車輛”)。
示例18–示例虛擬角色
在本文中的任一示例中,各技術(shù)可實(shí)現(xiàn)用戶能夠通過語音或文本輸入從一設(shè)備參與的虛擬的基于軟件的實(shí)體以幫助完成給定任務(wù)(例如,向某人發(fā)送電子郵件、呼叫其地址簿中的某人等)。
這樣的虛擬角色可促使用戶以自然的方式與電子設(shè)備交互,從而導(dǎo)致更放松的語音并由此導(dǎo)致更高效的用戶交互。由于虛擬角色系統(tǒng)可幫助用戶完成任務(wù),它有時(shí)被稱為“數(shù)字個(gè)人助理”。
示例19——示例通信任務(wù)
在本文中的任一示例中,任務(wù)可以是通信任務(wù)(例如,呼叫、視頻聊天、消息收發(fā)、電子郵件收發(fā)等)。在實(shí)踐中,這樣的任務(wù)通常包括聯(lián)系人名稱。
由此,當(dāng)諸如對(duì)口述的表達(dá)執(zhí)行話音識(shí)別時(shí),聯(lián)系人名稱被識(shí)別出。在這樣的情況下,分配特定動(dòng)作提供者來執(zhí)行任務(wù)包括由該特定動(dòng)作提供者經(jīng)由通信任務(wù)發(fā)起與聯(lián)系人的通信。
示例20–示例顯式動(dòng)作提供者
在本文中的任一示例中,可通過在表達(dá)或鍵入的文本中包括名稱(例如,“在skype上呼叫媽媽”)來顯式地指定選擇的應(yīng)用。由此,用戶可選擇期望完成特定任務(wù)的應(yīng)用。
數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可由此覆蓋默認(rèn)應(yīng)用,并將該任務(wù)分配給顯式指定的動(dòng)作提供者(例如,假設(shè)先決條件被滿足等)。
在這樣的情況下,即使第一動(dòng)作提供者被指定為被偏好用于某任務(wù),數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)可接收包括對(duì)第二動(dòng)作提供者的顯式指示和該任務(wù)的表達(dá),并響應(yīng)于識(shí)別出對(duì)第二動(dòng)作提供者的顯式指示,向第二動(dòng)作提供者發(fā)送執(zhí)行該任務(wù)的指令,而不管偏好為何。
示例21—示例任務(wù)域
在本文中的任一示例中,任務(wù)可被分組成各任務(wù)域。圖6是示出被分組成各示例任務(wù)域610、620、630、640的各支持的個(gè)體任務(wù)612、622、624、626、632、642、644的框圖。
例如,與音樂有關(guān)的任務(wù)642、644可被分組成語音域640,與日歷(約會(huì))有關(guān)的任務(wù)622、624、626可被分組成日歷域620等等。在某域內(nèi),動(dòng)作提供者偏好和行為可變得一致。例如,如果用戶希望為特定任務(wù)設(shè)置偏好的動(dòng)作提供者,或者如果機(jī)器學(xué)習(xí)改變了偏好,則這樣的偏好可跨同一域中的其他任務(wù)達(dá)到。
類似地,作為個(gè)體任務(wù)級(jí)的替換或補(bǔ)充,動(dòng)作提供者可如本文中所描述的通過在域級(jí)提供支持的任務(wù)來注冊(cè)。
示例22–示例通信流
圖7是示出音頻設(shè)備710(話筒、揚(yáng)聲器等)、數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)720和動(dòng)作提供者730之間的信息和指令的示例流動(dòng)的流程圖700。
在本文中描述的任一示例中,該過程可開始于包括任務(wù)名的初始表達(dá)742(例如,“作出呼叫”),該初始表達(dá)742被音頻設(shè)備710接收到、被識(shí)別并被傳遞給服務(wù)720。服務(wù)720可基于特定的(例如,偏好的)動(dòng)作提供者的存儲(chǔ)的注冊(cè)來確定針對(duì)該任務(wù)的參數(shù)槽丟失。響應(yīng)于確定該參數(shù)丟失,并在向特定動(dòng)作提供者發(fā)送執(zhí)行該任務(wù)的指令之前,對(duì)用于填充參數(shù)槽的參數(shù)值的提示746可被發(fā)送回該硬件(例如,“好的。你想要呼叫誰?”)。
包括所提示的參數(shù)的表達(dá)的響應(yīng)748(例如,“dan”)可被音頻設(shè)備710接收到??蓪?duì)表達(dá)響應(yīng)執(zhí)行話音識(shí)別,該話音識(shí)別識(shí)別出口述的參數(shù)值。口述的參數(shù)值可隨后被服務(wù)720接收,服務(wù)720在分配任務(wù)時(shí)將該口述的參數(shù)值提交給特定動(dòng)作提供者。服務(wù)720可將該任務(wù)和參數(shù)打包到指令752中,指令752被發(fā)送給動(dòng)作提供者730,動(dòng)作提供者730隨后執(zhí)行該任務(wù)(例如,發(fā)起到名為“dan”的聯(lián)系人的呼叫)。
槽填充也可基于聯(lián)系人粒度級(jí)別。例如,如果聯(lián)系人具有兩個(gè)號(hào)碼(例如,家庭和工作),則附加提示可在將指令752發(fā)送給提供者730之前被生成以獲得電話類型。然而,也可向動(dòng)作提供者730提供指令752之后通過將該提示傳遞回服務(wù)720來實(shí)現(xiàn)這樣的功能。
在實(shí)踐中,初始口述表達(dá)742可包含參數(shù)值。如果如此,則將任務(wù)分配給特定動(dòng)作提供者可包括將參數(shù)發(fā)送給該動(dòng)作提供者(例如,無需執(zhí)行提示或作為執(zhí)行提示的補(bǔ)充)。
如本文中所描述的,各種各樣的場(chǎng)景是可能的。通過本文中描述的技術(shù),動(dòng)作提供者730可不再需要必須包括用于與音頻設(shè)備進(jìn)行交互、提供確認(rèn)等的功能。
如所描述的,動(dòng)作提供者730甚至在指令752被發(fā)送之后,仍可(例如,通過進(jìn)一步與服務(wù)720通信,這可生成提示并接收回答)請(qǐng)求進(jìn)一步信息。
示例23–示例發(fā)現(xiàn)能力
在一些情況下,可能不存在可執(zhí)行支持的任務(wù)的經(jīng)注冊(cè)的動(dòng)作提供者。響應(yīng)于確定沒有支持該任務(wù)的經(jīng)注冊(cè)的動(dòng)作提供者,可標(biāo)識(shí)支持該任務(wù)的動(dòng)作提供者。例如,提供者列表可被呈現(xiàn)給用戶以供選擇。提供者數(shù)據(jù)庫可被查閱以尋找支持該任務(wù)的一個(gè)或多個(gè)提供者。
可安裝并注冊(cè)該動(dòng)作提供者。隨后,可向該動(dòng)作提供者分配任務(wù)。
示例24–示例用戶界面
圖8是示出用于配置數(shù)字個(gè)人助理以使用第三方擴(kuò)展來進(jìn)行消息收發(fā)的示例用戶界面800的屏幕截圖。
在該示例中,彈出菜單810可被用于選擇已經(jīng)注冊(cè)并且已在注冊(cè)信息中指示其支持“消息收發(fā)”任務(wù)的動(dòng)作提供者。所選的動(dòng)作提供者(例如,動(dòng)作提供者6)可以是第三方動(dòng)作提供者,如本文中所描述的。
類似地,針對(duì)其他任務(wù)(例如,“呼叫”)的偏好可由用戶通過其他用戶界面元素(例如,820)來控制。
隨后在執(zhí)行該任務(wù)時(shí)被默認(rèn)使用該顯示的動(dòng)作提供者。如本文中所描述的機(jī)器學(xué)習(xí)可更改默認(rèn)應(yīng)用。如果如此,則新的默認(rèn)應(yīng)用可在用戶界面800中被示出。
隨后,當(dāng)諸如“向dan發(fā)消息我在我的路上”之類的口述表達(dá)被接收時(shí),數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可使用經(jīng)由用戶界面800選擇的第三方動(dòng)作提供者(例如,動(dòng)作提供者6)來向聯(lián)系人“dan”發(fā)送消息。
在本文中的任一示例中,附加或其他用戶界面特征可被提供。例如,確認(rèn)屏幕可被示出以確認(rèn)該動(dòng)作。這樣的屏幕可示出消息“我在我的路上”、聯(lián)系人(例如,完整的聯(lián)系人名稱、來自地址簿的圖形圖片等)、正被使用的動(dòng)作提供者以及確認(rèn)該動(dòng)作的機(jī)會(huì)。例如,取代直接繼續(xù)進(jìn)行以發(fā)送該消息,用于“發(fā)送”和“取消”的圖形按鈕可被示出。取代激活圖形按鈕,音頻輸入(例如,“發(fā)送”或“取消”表達(dá))可被接受。用戶界面可建議用戶嘗試說“發(fā)送”或“發(fā)送它”,由此向用戶提供音頻輸入可被如此使用的暗示。
替換地,數(shù)字個(gè)人助理可簡(jiǎn)單地指示要繼續(xù)進(jìn)行的意圖并用音頻(例如,“好的,在<動(dòng)作提供者6>上向danh.發(fā)送消息”)進(jìn)行確認(rèn)。如果動(dòng)作被不適當(dāng)?shù)刈R(shí)別,則可提供簡(jiǎn)短的暫停,通過該簡(jiǎn)短的暫停,用戶可進(jìn)行取消。
示例25–示例動(dòng)作提供者選擇過程
如本文中所描述的,默認(rèn)的(偏好的)動(dòng)作提供者可在每任務(wù)的基礎(chǔ)上被指定。更細(xì)的粒度級(jí)別允許默認(rèn)的每一聯(lián)系人每一動(dòng)作(例如,在作出對(duì)第一聯(lián)系人的呼叫時(shí)使用一個(gè)提供者,但在作出對(duì)第二聯(lián)系人的呼叫時(shí)使用不同的提供者)。
由此,如果任務(wù)到提供者關(guān)聯(lián)偏好指示針對(duì)任務(wù)的偏好的動(dòng)作提供者,則選擇特定動(dòng)作提供者來執(zhí)行該任務(wù)包括為該任務(wù)選擇該偏好的動(dòng)作提供者。
對(duì)動(dòng)作提供者的顯式指定可覆蓋該默認(rèn)項(xiàng)。
槽可通過進(jìn)行對(duì)話來填充,如本文中所描述的。
如本文中所描述的機(jī)器學(xué)習(xí)可影響哪個(gè)動(dòng)作提供者被選擇。
如果動(dòng)作提供者無法執(zhí)行該任務(wù)(例如,先決條件被丟失),則選擇可轉(zhuǎn)而依靠次要或其他提供者。由此,數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)可最初考慮一動(dòng)作提供者(例如,偏好的動(dòng)作提供者),但隨后基于先決條件的失敗而考慮并選擇次要的動(dòng)作提供者。
在一些情況下,如果提供者是可執(zhí)行該任務(wù)的唯一的一個(gè)提供者,則可向該提供者提供任務(wù)。
示例26–示例場(chǎng)景:對(duì)動(dòng)作提供者的顯式指定
在本文中的任一示例中,可支持其中表達(dá)包括對(duì)動(dòng)作提供者的顯式指定的各種各樣的場(chǎng)景。
一個(gè)示例涉及特定動(dòng)作提供者上的呼叫或消息收發(fā)。如果足夠的信息可用,則該任務(wù)可被分配給顯式指定的動(dòng)作提供者。如果該動(dòng)作提供者沒有被注冊(cè),則注冊(cè)該提供者的提議可被呈現(xiàn)(例如,“你希望我將<提供者>注冊(cè)成為消息收發(fā)服務(wù)嗎?”)。如果肯定的回復(fù)被接收到,則注冊(cè)可繼續(xù)進(jìn)行。
類似地,如果動(dòng)作提供者沒有被安裝,則安裝該動(dòng)作提供者的提議可被呈現(xiàn)。
例如,表達(dá)“在<提供者>上呼叫<聯(lián)系人名稱>”可導(dǎo)致檢查該聯(lián)系人是否具有可接受的聯(lián)系人信息供該提供者存儲(chǔ)在該設(shè)備上或?qū)υ撛O(shè)備可用。一些提供者要求提供者專用標(biāo)識(shí)符。如果該標(biāo)識(shí)符可用,則該呼叫可繼續(xù)進(jìn)行。如果不是這樣,則不同的動(dòng)作提供者可被提議和/或數(shù)字個(gè)人助理可請(qǐng)求聯(lián)系人信息(例如,“你知道dan的skypeid嗎?”)。
如果先決條件失敗(例如,支持該提供者的服務(wù)停機(jī)),則該過程可轉(zhuǎn)而依靠下一動(dòng)作提供者,該下一動(dòng)作提供者被分配給任務(wù)。
在一些情況下,太多信息可被指定,從而指示預(yù)期信息中導(dǎo)致該任務(wù)失敗的失配。例如,一些呼叫應(yīng)用可能不接受某電話類型(例如,“家庭”)。因此“在<提供者>上呼叫<聯(lián)系人名稱>家庭”的表達(dá)對(duì)于該提供者無意義,因此它可能失敗或轉(zhuǎn)而依靠另一呼叫應(yīng)用(例如,運(yùn)營(yíng)商的應(yīng)用)并查找家庭號(hào)碼。數(shù)字個(gè)人助理可呼叫家庭號(hào)碼或提議呼叫該家庭號(hào)碼。
如本文中所描述的,對(duì)動(dòng)作提供者的顯式指定可導(dǎo)致使得該動(dòng)作提供者成為針對(duì)某任務(wù)、聯(lián)系人等的默認(rèn)項(xiàng)的機(jī)器學(xué)習(xí)。
示例27–示例場(chǎng)景:沒有對(duì)動(dòng)作提供者的顯式指定
在本文中的任一示例中,可支持其中表達(dá)不包括對(duì)動(dòng)作提供者的顯式指定的各種各樣的場(chǎng)景。
例如,如果任務(wù)被簡(jiǎn)單地指定,則該任務(wù)可被分配給針對(duì)該任務(wù)的偏好的動(dòng)作提供者。如果不存在偏好的提供者,則查詢可被放置以確定要使用哪個(gè)提供者。
如果偏好的動(dòng)作提供者不可用,則任務(wù)可被分配給支持該任務(wù)的次要或備用提供者。
如果完成任務(wù)所必須的信息僅對(duì)特定動(dòng)作提供者可用,則該任務(wù)可被分配給該特定動(dòng)作提供者。例如,在呼叫或消息收發(fā)場(chǎng)景中,如果聯(lián)系人信息僅對(duì)特定動(dòng)作提供者可用,則該任務(wù)可被分配給特定動(dòng)作提供者。
示例28–示例觸發(fā)內(nèi)容
在本文中的任一示例中,動(dòng)作提供者可指定信息將在條件發(fā)生之際被數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)傳遞給用戶。例如,邊界(例如,地理圍欄)可被指定,使得服務(wù)在設(shè)備的當(dāng)前位置落在該邊界內(nèi)(例如,進(jìn)入某城市、登陸機(jī)場(chǎng)等)時(shí)傳遞可用性。
在注冊(cè)期間,提供者可指定要呈現(xiàn)的條件和內(nèi)容。響應(yīng)于確定當(dāng)前位置落在該邊界內(nèi),數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)呈現(xiàn)該消息。
示例29–示例話音識(shí)別
在本文中的任一示例中,可應(yīng)用各種話音識(shí)別技術(shù)。雖然如一些示例所示,語音識(shí)別可在設(shè)備中執(zhí)行,但也可恰當(dāng)?shù)夭捎猛獠孔R(shí)別器。
示例30—示例設(shè)備
這些技術(shù)可支持豐富的設(shè)備組合。例如,電話、平板、游戲控制臺(tái)、可穿戴計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)等可被支持。
示例31—示例特征
雖然名為“cortana”的數(shù)字個(gè)人助理系統(tǒng)的示例有時(shí)被使用,但這些技術(shù)可被應(yīng)用于各種數(shù)字助理系統(tǒng)中的任一者,并且該數(shù)字助理可具有各種名稱中的任一者。
雖然一些示例使用微軟技術(shù),但取代所述技術(shù),可替換其他技術(shù)。
示例32——示例特征概覽
數(shù)字個(gè)人助理可執(zhí)行一組支持的任務(wù)。通常,助理將選取她將與其一起工作以完成這樣的任務(wù)的默認(rèn)提供者/應(yīng)用。但是,不同的用戶可能不偏好相同的提供者/應(yīng)用來完成完全相同的任務(wù)。例如,一些用戶可能偏好使用skype服務(wù)來實(shí)現(xiàn)其voip呼叫,而其他人可偏好使用gtalk服務(wù)來完成其voip呼叫。
在本文中的任一示例中,應(yīng)用可以是被安裝在設(shè)備本地的應(yīng)用、可從該設(shè)備遠(yuǎn)程地訪問的web服務(wù)等。
數(shù)字個(gè)人助理可理解并適應(yīng)于用戶的偏好,并可與用戶的選擇的提供者/應(yīng)用一起工作以完成某任務(wù),只要所請(qǐng)求的應(yīng)用可完成所請(qǐng)求的任務(wù),并且已向該個(gè)人助理注冊(cè)。這些技術(shù)可通過提供允許應(yīng)用注冊(cè)成為針對(duì)數(shù)字個(gè)人助理可執(zhí)行的任務(wù)的提供者的平臺(tái)和模式來解決問題。
第三方可擴(kuò)展數(shù)字個(gè)人助理的功能,如本文中所描述的。應(yīng)用可注冊(cè)為數(shù)字個(gè)人助理動(dòng)作提供者。
用戶當(dāng)提到使用各應(yīng)用來完成特定任務(wù)時(shí)偏好選擇。對(duì)于一些用戶,whatsapp應(yīng)用將是用于消息收發(fā)體驗(yàn)的偏好應(yīng)用,而一些用戶將依賴于skype來作出其視頻呼叫。第三方應(yīng)用開發(fā)者可向反應(yīng)型代理框架(reactiveagentframework)注冊(cè)以履行特定cortana動(dòng)作。
示例33–示例話音和文本輸入平臺(tái)
雖然本文中的一些示例提到了“reactiveagentframework”,但可使用經(jīng)由數(shù)字個(gè)人助理來履行用戶請(qǐng)求的任何話音和文本輸入平臺(tái)。
示例34—示例功能
各種功能可被提供。例如,該技術(shù)可允許應(yīng)用注冊(cè)成為數(shù)字個(gè)人助理可為該用戶執(zhí)行的任務(wù)(例如,呼叫、文件收發(fā)、記筆記等)的提供者。
可為數(shù)字個(gè)人助理可執(zhí)行的常見動(dòng)作和任務(wù)定義模式。
已注冊(cè)成為任務(wù)提供者的應(yīng)用可經(jīng)由數(shù)字個(gè)人助理來將響應(yīng)提供回給用戶。
在請(qǐng)求的任務(wù)已被接收到、該請(qǐng)求的任務(wù)正被操作并且結(jié)果(成功/失敗)可被指示時(shí),應(yīng)用可提供響應(yīng)。
應(yīng)用可將各種信息包括在其對(duì)數(shù)字個(gè)人助理的響應(yīng)中,包括顯示文本、要大聲朗讀的文本、退回應(yīng)用的深度鏈接、到網(wǎng)頁/網(wǎng)站的鏈接、將由個(gè)人助理呈現(xiàn)的htmlweb內(nèi)容等。
示例35–示例話音和文本輸入平臺(tái)
任務(wù)類別可具有cortana將使用來完成任務(wù)的默認(rèn)應(yīng)用。在這些示例中,這被稱作任務(wù)的“系統(tǒng)默認(rèn)應(yīng)用”。
當(dāng)用戶卸載其已選為任務(wù)的默認(rèn)/偏好應(yīng)用的應(yīng)用時(shí),該任務(wù)的系統(tǒng)默認(rèn)應(yīng)用可被重置為針對(duì)該任務(wù)的新默認(rèn)/偏好應(yīng)用。
應(yīng)用可注冊(cè)多于一個(gè)cortana任務(wù)。例如,應(yīng)用可支持音頻呼叫和視頻聊天兩者等。
示例36-示例場(chǎng)景
cortana知道用戶的應(yīng)用。用戶可選擇針對(duì)像筆記、呼叫和消息收發(fā)之類的cortana任務(wù)要使用哪些應(yīng)用。
例如,eric是whatsapp的激烈愛好者,并偏好使用whatsapp而非他電話上的運(yùn)營(yíng)商支持的sms體驗(yàn)。他可(例如,經(jīng)由如所描述的圖8中的用戶界面)選擇使用whatsapp應(yīng)用作為其電話上的默認(rèn)消息收發(fā)應(yīng)用。雖然作為示例,該示例可使用whatsapp和skype,但在實(shí)踐中,可使用任何數(shù)目的其他應(yīng)用(例如,動(dòng)作提供者)。
在該示例中,whatsapp應(yīng)用(例如,第三方應(yīng)用)利用并參與該任務(wù)提供者基礎(chǔ)結(jié)構(gòu)。
示例37—示例特征
所描述的技術(shù)可以是reactiveagentframework的可用于裝載了cortana的任何設(shè)備的特征。該特征可用于與cortana的鍵入&話音交互兩者。
可為cortana動(dòng)作定義模式:動(dòng)作的意圖x槽定義??筛鶕?jù)動(dòng)作展示的優(yōu)先化動(dòng)作列表(域x意圖)以及關(guān)聯(lián)槽列表可被支持。
因此,例如,為了進(jìn)行消息收發(fā),意圖可以是“發(fā)送”。槽可包括聯(lián)系人名、聯(lián)系人姓、消息。
對(duì)于呼叫,意圖可以是“呼叫”。槽可包括聯(lián)系人名、聯(lián)系人姓、電話號(hào)碼、電話類型。
對(duì)于電子郵件,意圖可以是“發(fā)送”。槽可包括接收方地址、主題、消息、優(yōu)先級(jí)、抄送列表、密送列表、
對(duì)于筆記,意圖可以是“創(chuàng)建”。槽可包括該消息。
對(duì)于導(dǎo)航,意圖可以是“導(dǎo)航”。槽可包括位置地址、位置gps坐標(biāo)。
對(duì)于日歷(約會(huì)),意圖可以是創(chuàng)建、審閱、更新。槽可包括標(biāo)題、消息、日期時(shí)間、被邀請(qǐng)者、位置地址和位置gps坐標(biāo)。
服務(wù)意圖x槽信息可被映射到設(shè)備上動(dòng)作模式。
在設(shè)備反應(yīng)型代理上,通用的依賴于平臺(tái)的實(shí)現(xiàn)可被提供用于支持的設(shè)備上動(dòng)作。這是cortana任務(wù)的系統(tǒng)默認(rèn)應(yīng)用。
通用的依賴于平臺(tái)的實(shí)現(xiàn)可被實(shí)現(xiàn)用于將通過用戶選擇來覆蓋的設(shè)備上動(dòng)作。這樣可使得能夠擴(kuò)展代理的cortana任務(wù)完成動(dòng)作。
由設(shè)備上反應(yīng)型代理提出的任務(wù)完成動(dòng)作可一直被路由到合適的用戶選擇的任務(wù)提供者。
cortana用戶體驗(yàn)可查詢并挑選要體現(xiàn)在設(shè)置/筆記本用戶體驗(yàn)中的經(jīng)注冊(cè)的動(dòng)作提供者。
用于應(yīng)用的機(jī)制可被提供以跨這些應(yīng)用正在注冊(cè)的動(dòng)作列表來為特定槽注冊(cè)一組實(shí)體。例如,在應(yīng)用注冊(cè)呼叫動(dòng)作時(shí),它們可注冊(cè)其聯(lián)系人列表。
該流所識(shí)別的槽值可變得對(duì)任務(wù)提供者可用,即使該提供者將不需要特定槽。例如,skype可發(fā)現(xiàn)電話類型槽沒有用。
當(dāng)用戶卸載其已選為任務(wù)的默認(rèn)/偏好應(yīng)用的應(yīng)用時(shí),該任務(wù)的系統(tǒng)默認(rèn)應(yīng)用可被重置為針對(duì)該任務(wù)的新默認(rèn)/偏好應(yīng)用。
可提供各應(yīng)用可用于更新它們已注冊(cè)的動(dòng)作的槽值的機(jī)制。例如,當(dāng)用戶在使用skype時(shí)添加/移除聯(lián)系人時(shí),skype可能想要更新向我們注冊(cè)的聯(lián)系人列表。
示例38–示例特征:注冊(cè)
可以支持各種注冊(cè)功能。第三方應(yīng)用可向反應(yīng)型代理框架注冊(cè)以處理cortana動(dòng)作。應(yīng)用可注冊(cè)多于一個(gè)動(dòng)作。根據(jù)設(shè)備,服務(wù)(個(gè)性化)可知道正在注冊(cè)特定動(dòng)作的應(yīng)用的列表。反應(yīng)型代理框架可發(fā)起該信息到服務(wù)的上傳。
注冊(cè)應(yīng)用(根據(jù)唯一的appid)可任選地指定串作為名稱標(biāo)識(shí)符(例如,skype移動(dòng)應(yīng)用可將“skype”注冊(cè)為該標(biāo)識(shí)符)。當(dāng)這個(gè)沒有被提供時(shí),當(dāng)應(yīng)用的名稱出現(xiàn)在開始菜單中時(shí),該應(yīng)用的名稱可被用作默認(rèn)項(xiàng)。
示例39–示例特征:選擇/更新任務(wù)提供者
cortana可查詢經(jīng)注冊(cè)的提供者的列表以得到任務(wù)完成列表。
用戶可為cortana設(shè)置中的每一動(dòng)作選擇默認(rèn)任務(wù)提供者。
示例40–示例特征:調(diào)用
應(yīng)用可在前臺(tái)任務(wù)上或在后臺(tái)任務(wù)中處理對(duì)任務(wù)完成動(dòng)作的調(diào)用。
用戶可通過將提供者的名稱包括在話音表達(dá)或鍵入的文本中來開始使用該提供者完成任務(wù)。
例如,“在skype上呼叫媽媽”可使用skype來完成該動(dòng)作。“呼叫媽媽”可使用系統(tǒng)默認(rèn)提供者呼叫應(yīng)用來完成該動(dòng)作,除非用戶已將skype設(shè)置為用于呼叫的默認(rèn)提供者。
調(diào)用可在時(shí)間閾值(例如,5秒鐘)內(nèi)被確認(rèn)。如果不是這樣,則任務(wù)可被認(rèn)為已超時(shí)。cortana可呈現(xiàn)“對(duì)不起。<應(yīng)用名稱>沒有響應(yīng)。讓我試一下用<系統(tǒng)默認(rèn)提供者>來完成這個(gè)”,并將嘗試使用系統(tǒng)默認(rèn)提供者來完成該任務(wù)。
如果在該系統(tǒng)上用戶請(qǐng)求的應(yīng)用不可用,則cortana可向用戶呈現(xiàn)消歧用戶界面,其中被注冊(cè)以處理那個(gè)動(dòng)作的應(yīng)用列表具有“在商店中查找應(yīng)用”的鏈接。用戶可使用靈活的選擇來挑選其想要用來完成該動(dòng)作的應(yīng)用或在商店中查找應(yīng)用。
該系統(tǒng)可基于過去的使用來推斷要使用哪個(gè)提供者來完成針對(duì)特定聯(lián)系人的特定動(dòng)作類型。該系統(tǒng)可基于用戶的使用行為來學(xué)習(xí)用戶的習(xí)慣和模式。用戶可按需覆蓋所學(xué)習(xí)的行為。
例如,如果whatsapp是用戶偏好的用于消息收發(fā)的提供者,并且用戶總是使用sms應(yīng)用來向john發(fā)消息,則該系統(tǒng)可在發(fā)生了n次(例如,10次等)后,關(guān)聯(lián)sms應(yīng)用作為向john發(fā)消息的默認(rèn)提供者。
可經(jīng)由cortana筆記本(例如,在偏好設(shè)置用戶界面等中)向用戶示出推斷出的提供者。
已注冊(cè)了第三方提供者的特定cortana動(dòng)作的技巧可包括建議與提供者名稱有關(guān)的使用的技巧。例如,如果skype是用于呼叫動(dòng)作的經(jīng)注冊(cè)提供者,則“嘗試在skype上呼叫john”可被示出。
示例41–示例特征:發(fā)現(xiàn)-在商店中并在cortana內(nèi)
這些技術(shù)可幫助用戶從應(yīng)用商店內(nèi)發(fā)現(xiàn)應(yīng)用提供者。
這些技術(shù)可幫助用戶從cortana內(nèi)發(fā)現(xiàn)并使用應(yīng)用提供者。在用戶安裝也注冊(cè)為用于cortana動(dòng)作的提供者的應(yīng)用時(shí),用戶可被通知。
示例42–示例計(jì)算系統(tǒng)
圖9示出了在其中可實(shí)現(xiàn)若干所描述的創(chuàng)新的合適的計(jì)算系統(tǒng)或環(huán)境900的一般化示例。計(jì)算系統(tǒng)900并不旨對(duì)使用范圍或功能提出任何限制,因?yàn)檫@些創(chuàng)新可以在不同的通用或?qū)S糜?jì)算系統(tǒng)中實(shí)現(xiàn)。如在此所述的移動(dòng)設(shè)備、可穿戴設(shè)備或其它設(shè)備可以采用所述的計(jì)算系統(tǒng)900的形式。
參考圖9,計(jì)算系統(tǒng)900包括一個(gè)或多個(gè)處理單元910、915和存儲(chǔ)器920、925。在圖9中,該基本配置930被包括在虛線內(nèi)。處理單元910、915執(zhí)行計(jì)算機(jī)可執(zhí)行的指令。處理單元可以是通用中央處理單元(cpu)、專用集成電路(asic)中的處理器或者任何其他類型的處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。例如,圖9示出中央處理單元910以及圖形處理單元或協(xié)處理單元915。有形存儲(chǔ)器920、925可以是可由(諸)處理單元存取的易失性存儲(chǔ)器(例如,寄存器、高速緩存、ram)、非易失性存儲(chǔ)器(例如,rom、eeprom、閃存等)或者兩者的某一組合。存儲(chǔ)器920、925可以適合被(諸)處理單元執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的形式,存儲(chǔ)實(shí)現(xiàn)此處描述的一個(gè)或多個(gè)發(fā)明的軟件980。
計(jì)算系統(tǒng)可具有附加的特征。例如,計(jì)算系統(tǒng)900包括存儲(chǔ)940、一個(gè)或多個(gè)輸入設(shè)備950、一個(gè)或多個(gè)輸出設(shè)備960以及一個(gè)或多個(gè)通信連接970。諸如總線、控制器或網(wǎng)絡(luò)之類的互連機(jī)制(未示出)將計(jì)算系統(tǒng)900的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計(jì)算系統(tǒng)900中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計(jì)算系統(tǒng)900的各組件的活動(dòng)。
有形存儲(chǔ)940可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、cd-rom、dvd或可用于以非瞬態(tài)方式儲(chǔ)存信息并可在計(jì)算系統(tǒng)900內(nèi)訪問的任何其他介質(zhì)。存儲(chǔ)器940可存儲(chǔ)用于軟件980的指令,所述軟件980實(shí)現(xiàn)此處描述的一個(gè)或多個(gè)發(fā)明。
(一個(gè)或多個(gè))輸入設(shè)備950可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標(biāo)、筆或跟蹤球)、語音輸入設(shè)備、掃描設(shè)備或向計(jì)算系統(tǒng)900提供輸入的另一設(shè)備。對(duì)于視頻編碼,(一個(gè)或多個(gè))輸入設(shè)備950可以是相機(jī)、視頻卡、tv調(diào)諧卡或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備,或?qū)⒁曨l樣本讀入計(jì)算系統(tǒng)900的cd-rom或cd-rw。(一個(gè)或多個(gè))輸出設(shè)備960可以是顯示器、打印機(jī)、揚(yáng)聲器、cd刻錄機(jī)或提供來自計(jì)算系統(tǒng)900的輸出的另一設(shè)備。
(諸)通信連接970允許在通信介質(zhì)上到另一計(jì)算實(shí)體的通信。通信介質(zhì)傳達(dá)諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號(hào)中的其他數(shù)據(jù)之類的信息。已調(diào)制數(shù)據(jù)信號(hào)是使其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式設(shè)置或改變的信號(hào)。作為示例而非限制,通信介質(zhì)可以使用電的、光學(xué)的、rf或其它載體。
各創(chuàng)新可以在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì)是可在計(jì)算環(huán)境內(nèi)訪問的任何可用有形介質(zhì)。作為示例而非局限,對(duì)于計(jì)算系統(tǒng)900,計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器920、925、存儲(chǔ)940、和以上任意的組合。
各創(chuàng)新可在計(jì)算機(jī)可執(zhí)行指令(諸如包括在程序模塊中的在(例如最終在硬件中執(zhí)行的)目標(biāo)現(xiàn)實(shí)或虛擬處理器上在計(jì)算系統(tǒng)中執(zhí)行的那些計(jì)算機(jī)可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實(shí)施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對(duì)各程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算系統(tǒng)中執(zhí)行。
術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對(duì)計(jì)算系統(tǒng)或計(jì)算設(shè)備的類型的任何限制。一般說來,計(jì)算系統(tǒng)或計(jì)算設(shè)備可以是本地的或分布式的,并且可以包括具有實(shí)現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
為了呈現(xiàn)起見,本詳細(xì)描述使用了如“確定”和“使用”等術(shù)語來描述計(jì)算系統(tǒng)中的計(jì)算機(jī)操作。這些術(shù)語是對(duì)由計(jì)算機(jī)執(zhí)行的操作的高級(jí)描述,且不應(yīng)與人類所執(zhí)行的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語的實(shí)際的計(jì)算機(jī)操作取決于實(shí)現(xiàn)而不同。
示例43–示例移動(dòng)設(shè)備
在本文中的任一示例中,設(shè)備可采用移動(dòng)設(shè)備的形式。圖10是描述一示例移動(dòng)設(shè)備1000的系統(tǒng)示意圖,該示例移動(dòng)設(shè)備1000包括在1002概括示出的各種任選的硬件和軟件組件。該移動(dòng)設(shè)備中的任何組件1002可與任何其他組件通信,但出于容易例示的目的而未示出所有連接。該移動(dòng)設(shè)備可以是各種移動(dòng)計(jì)算設(shè)備(例如,蜂窩電話、智能電話、平板、手持式計(jì)算機(jī)、無人機(jī)、個(gè)人數(shù)字助理(pda)等)中的任一個(gè),并且可允許與諸如蜂窩、衛(wèi)星或其他網(wǎng)絡(luò)的一個(gè)或多個(gè)移動(dòng)通信網(wǎng)絡(luò)1004進(jìn)行無線雙向通信。還支持(例如在wi-fi或其他網(wǎng)絡(luò)上的)ip語音的場(chǎng)景。在此所述的通信設(shè)備可以采取所描述的移動(dòng)設(shè)備1000的形式。
圖示的移動(dòng)設(shè)備1000可以包括用于執(zhí)行任務(wù)的控制器或處理器1010(例如,信號(hào)處理器、微處理器、asic或者其他控制和處理邏輯電路),所述任務(wù)諸如信號(hào)編碼、數(shù)據(jù)處理、輸入/輸出處理、功率控制、和/或其他功能。操作系統(tǒng)1012可以控制各組件1002的分配和使用,并且支持一個(gè)或多個(gè)應(yīng)用程序1014。應(yīng)用程序1014可包括公共移動(dòng)計(jì)算應(yīng)用(例如,電子郵件應(yīng)用、日歷、聯(lián)系人管理器、web瀏覽器、消息收發(fā)應(yīng)用)、或任何其他計(jì)算應(yīng)用。用于訪問應(yīng)用存儲(chǔ)的功能性1013還可以用于獲取和更新應(yīng)用1014。
所例示的移動(dòng)設(shè)備1000可包括存儲(chǔ)器1020。存儲(chǔ)器1020可以包括不可移動(dòng)存儲(chǔ)器1022和/或可移動(dòng)存儲(chǔ)器1024。不可移動(dòng)存儲(chǔ)器1022可以包括ram、rom、閃存、硬盤或者其他公知的存儲(chǔ)器存儲(chǔ)技術(shù)??梢苿?dòng)存儲(chǔ)器1024可以包括閃存或訂戶身份模塊(sim)卡,這在gsm通信系統(tǒng)或者其他公知的存儲(chǔ)器存儲(chǔ)技術(shù)中是公知的,諸如“智能卡”。存儲(chǔ)器1020可用于存儲(chǔ)運(yùn)行操作系統(tǒng)1012和應(yīng)用1014的數(shù)據(jù)和/或代碼。示例數(shù)據(jù)可以包括要經(jīng)由一個(gè)或多個(gè)有線或無線網(wǎng)絡(luò)被發(fā)送至和/或接收自一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)器或其他設(shè)備的網(wǎng)頁、文本、圖像、聲音文件、視頻數(shù)據(jù)或者其他數(shù)據(jù)集。存儲(chǔ)器1020可用于存儲(chǔ)訂戶標(biāo)識(shí)符和設(shè)備標(biāo)識(shí)符,所述訂戶標(biāo)識(shí)符諸如國(guó)際移動(dòng)訂戶身份(imsi),所述設(shè)備標(biāo)識(shí)符諸如國(guó)際移動(dòng)設(shè)備標(biāo)識(shí)符(imei)。這種標(biāo)識(shí)符可以被發(fā)射至網(wǎng)絡(luò)服務(wù)器以標(biāo)識(shí)用戶和設(shè)備。
移動(dòng)設(shè)備1000可支持諸如觸摸屏1032、話筒1034、相機(jī)1036、物理鍵盤1038、和/或跟蹤球1040等一個(gè)或多個(gè)輸入設(shè)備1030,以及諸如揚(yáng)聲器1052和顯示器1054等一個(gè)或多個(gè)輸出設(shè)備1050。其他可能的輸出設(shè)備(未示出)可以包括壓電或其他觸覺輸出設(shè)備。一些設(shè)備可以用于多于一個(gè)輸入/輸出功能。例如,觸摸屏1032和顯示器1054可被組合在單個(gè)輸入/輸出設(shè)備中。
無線調(diào)制解調(diào)器1060可以耦合至天線(未示出)并且可以支持處理器1010和外部設(shè)備之間的雙向通信,如本領(lǐng)域已知的。調(diào)制解調(diào)器1060被一般示出,并且可以包括用于與移動(dòng)通信網(wǎng)絡(luò)1004通信的蜂窩調(diào)制解調(diào)器和/或其他基于無線電的調(diào)制解調(diào)器(例如,藍(lán)牙1064或wi-fi1062等)。無線調(diào)制解調(diào)器1060通常被配置用于與一個(gè)或多個(gè)蜂窩網(wǎng)絡(luò)(諸如,用于在單個(gè)蜂窩網(wǎng)絡(luò)內(nèi)、蜂窩網(wǎng)絡(luò)之間、或移動(dòng)設(shè)備與公共交換電話網(wǎng)絡(luò)(pstn)之間的數(shù)據(jù)和語音通信的gsm或cdma網(wǎng)絡(luò))進(jìn)行通信。
移動(dòng)設(shè)備1000還可以包括至少一個(gè)輸入/輸出端口1080、電源1082、衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)1084(諸如全球?qū)Ш叫l(wèi)星系統(tǒng)(gnss)(例如,全球定位系統(tǒng)或即gps)接收機(jī))、加速度計(jì)1086、和/或物理連接器1090,物理連接器1090可以是usb端口、ieee1394(火線)端口和/或rs-232端口。圖示的組件1002不是必須的或全包含的,因?yàn)槿魏谓M件可以被刪除且其他組件可以被添加。
示例44–示例云支持環(huán)境
在圖11的示例環(huán)境1100中,云1110為具有各種屏幕能力的連接的設(shè)備1130、1140、1150提供服務(wù)。所連接的設(shè)備1130代表具有計(jì)算機(jī)屏幕1135(例如,中等尺寸屏幕)的設(shè)備。例如,所連接的設(shè)備1130可以是諸如臺(tái)式計(jì)算機(jī)、膝上型電腦、筆記本、上網(wǎng)本等個(gè)人計(jì)算機(jī)。所連接的設(shè)備1140代表具有移動(dòng)設(shè)備屏幕1145(例如,小尺寸屏幕)的設(shè)備。例如,連接的設(shè)備1140可以是移動(dòng)電話、智能電話、個(gè)人數(shù)字助理、平板計(jì)算機(jī)等。所連接的設(shè)備1150代表具有大屏幕1155的設(shè)備。例如,所連接的設(shè)備1150可以是電視機(jī)屏幕(例如,智能電視機(jī))或連至電視機(jī)的另一設(shè)備(例如,機(jī)頂盒或游戲控制臺(tái))等等。相連接的設(shè)備1130、1140、1150中的一個(gè)或多個(gè)可包括觸摸屏能力。觸摸屏可按不同的方式接受輸入。例如,電容式觸摸屏在對(duì)象(例如,指尖或觸筆)跨表面上流動(dòng)的電流扭曲或中斷時(shí)檢測(cè)到觸摸輸入。舉另一個(gè)示例,觸摸屏可以使用光學(xué)傳感器在來自光學(xué)傳感器的波束被中斷時(shí)檢測(cè)到觸摸輸入。對(duì)于一些觸摸屏所檢測(cè)的輸入而言,與屏幕表面的物理接觸不是必要的。在示例環(huán)境1100中也可以使用沒有屏幕能力的設(shè)備。例如,云1110可以為沒有顯示器的一個(gè)或多個(gè)計(jì)算機(jī)(例如,服務(wù)器計(jì)算機(jī))提供服務(wù)。
服務(wù)可由云1110通過服務(wù)提供者1120提供、或通過其他在線服務(wù)提供者(未圖示)而提供。例如,云服務(wù)可被定制成對(duì)應(yīng)于特定相連接的設(shè)備(例如,相連接的設(shè)備1130、1140、1150)的屏幕大小、顯示能力、和/或觸摸屏能力。
在示例環(huán)境1100中,云1110至少部分地使用服務(wù)提供者1120來向各個(gè)連接的設(shè)備1130、1140、1150提供此處描述的技術(shù)和解決方案。例如,服務(wù)提供者1120可以為各種基于云的服務(wù)提供集中式解決方案。服務(wù)提供者1120可以管理對(duì)于各用戶和/或設(shè)備(例如,對(duì)于所連接的設(shè)備1130、1140、1150和/或它們相應(yīng)的用戶)的服務(wù)預(yù)訂。
示例45–示例實(shí)現(xiàn)
盡管以特定的順序次序描述所公開方法的一些的操作以便于方便呈現(xiàn),但應(yīng)當(dāng)理解,這一描述方式包含重排,除非以下提出的具體語言要求特定的次序。例如,順序描述的操作可以在一些情況下并行地重排或同時(shí)執(zhí)行。此外,為簡(jiǎn)潔起見,附圖可能不示出所公開的方法可以結(jié)合其他方法使用的各種方式。
所公開的方法中的任一個(gè)可被實(shí)現(xiàn)為存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),諸如一個(gè)或多個(gè)光學(xué)介質(zhì)盤、易失性存儲(chǔ)器組件(諸如dram或sram)或非易失性存儲(chǔ)器組件(諸如硬驅(qū)動(dòng)器))上并且在計(jì)算機(jī)(例如,任何可購買的計(jì)算機(jī),包括智能電話或包含計(jì)算硬件的其它移動(dòng)設(shè)備)上執(zhí)行的計(jì)算機(jī)可執(zhí)行指令。用于實(shí)現(xiàn)所公開的技術(shù)的計(jì)算機(jī)可執(zhí)行指令中的任一個(gè)以及在所公開的實(shí)施例的實(shí)現(xiàn)期間創(chuàng)建和使用的任何數(shù)據(jù)可被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,非瞬態(tài)計(jì)算機(jī)可讀介質(zhì))上。計(jì)算機(jī)可執(zhí)行指令可以是例如專用軟件應(yīng)用或者經(jīng)由web瀏覽器或其他軟件應(yīng)用(諸如遠(yuǎn)程計(jì)算應(yīng)用)訪問和下載的軟件應(yīng)用的一部分。這種軟件可以例如在單個(gè)本地計(jì)算機(jī)(例如,任何適當(dāng)?shù)纳虡I(yè)可購買計(jì)算機(jī))上或者使用一個(gè)或多個(gè)網(wǎng)絡(luò)計(jì)算機(jī)在網(wǎng)絡(luò)環(huán)境(例如,經(jīng)由互聯(lián)網(wǎng)、廣域網(wǎng)、局域網(wǎng)、客戶端-服務(wù)器網(wǎng)絡(luò)(諸如云計(jì)算網(wǎng)絡(luò))、或者其他這樣的網(wǎng)絡(luò))中執(zhí)行。
為清楚起見,僅描述了基于軟件的實(shí)現(xiàn)方式的特定所選方面。省略了本領(lǐng)域公知的其他細(xì)節(jié)。例如,應(yīng)當(dāng)理解,所公開的技術(shù)不限于任何具體的計(jì)算機(jī)語言或程序。例如,所公開的技術(shù)可以通過以c++、java、perl、javascript、adobeflash或者任何其他適當(dāng)?shù)木幊陶Z言編寫的軟件來實(shí)現(xiàn)。同樣,所公開的技術(shù)不限于任何特定的計(jì)算機(jī)或硬件類型。適當(dāng)計(jì)算機(jī)和硬件的特定細(xì)節(jié)是公知的,并且不需要在本公開中詳細(xì)提出。
而且,基于軟件的實(shí)施例(包括例如用于使計(jì)算機(jī)執(zhí)行所公開方法的任一種的計(jì)算機(jī)可執(zhí)行指令)中的任一者可以通過適當(dāng)?shù)耐ㄐ攀侄伪簧陷d、下載或遠(yuǎn)程地訪問。這種適當(dāng)?shù)耐ㄐ攀侄伟ɡ缁ヂ?lián)網(wǎng)、萬維網(wǎng)、內(nèi)聯(lián)網(wǎng)、軟件應(yīng)用、電纜(包括光纖電纜)、磁通信、電磁通信(包括rf、微波和紅外通信)、電子通信或者其他這樣的通信手段。
所公開的方法、裝置和系統(tǒng)不應(yīng)以任何方式被限制。相反,本公開針對(duì)各種公開的實(shí)施例(單獨(dú)和彼此的各種組合和子組合)的所有新穎和非顯而易見的特征和方面。所公開的方法、裝置和系統(tǒng)不限于任何具體方面或特征或它們的組合,所公開的實(shí)施例也不要求存在任一個(gè)或多個(gè)具體優(yōu)點(diǎn)或者解決問題。
非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)
在此的任何計(jì)算機(jī)可讀介質(zhì)可以是非瞬態(tài)的(例如,存儲(chǔ)器、磁性存儲(chǔ)、光學(xué)存儲(chǔ)等等)。
在計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)
此處描述的存儲(chǔ)動(dòng)作中的任一個(gè)可通過存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或其他有形介質(zhì))中來實(shí)現(xiàn)。
被描述為被存儲(chǔ)的事物中的任一個(gè)可被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或其他有形介質(zhì))中。
在計(jì)算機(jī)可讀介質(zhì)中的方法
此處描述的各方法中的任一方法可通過一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或其他有形介質(zhì))中(例如,在其上編碼)的計(jì)算機(jī)可執(zhí)行指令來實(shí)現(xiàn)。這樣的指令可以使得計(jì)算系統(tǒng)執(zhí)行該方法。此處描述的技術(shù)可用各種編程語言來實(shí)現(xiàn)。
在計(jì)算機(jī)可讀存儲(chǔ)設(shè)備中的方法
此處描述的方法中的任一個(gè)可由存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)設(shè)備(例如,存儲(chǔ)器、磁性存儲(chǔ)、光學(xué)存儲(chǔ)等等)中的計(jì)算機(jī)可執(zhí)行指令來實(shí)現(xiàn)。這樣的指令可以使得計(jì)算機(jī)執(zhí)行該方法。
其他實(shí)施例
條款1.一種控制多個(gè)經(jīng)注冊(cè)的動(dòng)作提供者中的哪個(gè)動(dòng)作提供者來執(zhí)行任務(wù)的方法,所述方法包括:
接收由話筒檢測(cè)到的口述的表達(dá);
對(duì)所述口述的表達(dá)執(zhí)行話音識(shí)別,所述話音識(shí)別識(shí)別所述口述的表達(dá)中的任務(wù);以及
響應(yīng)于識(shí)別出所述任務(wù),并基于經(jīng)注冊(cè)的動(dòng)作提供者的存儲(chǔ)的注冊(cè)以及存儲(chǔ)的任務(wù)到提供者關(guān)聯(lián)偏好,將所述任務(wù)分配給經(jīng)注冊(cè)的動(dòng)作提供者中的特定動(dòng)作提供者,其中分配所述任務(wù)包括選擇所述特定動(dòng)作提供者來執(zhí)行所述任務(wù),以及向所述特定動(dòng)作提供者發(fā)送執(zhí)行所述任務(wù)的指令。
條款2.如條款1所述的方法,進(jìn)一步包括:
確定針對(duì)動(dòng)作提供者的先決條件沒有被滿足;以及
響應(yīng)于確定針對(duì)所述動(dòng)作提供者的所述先決條件沒有被滿足,標(biāo)識(shí)所述任務(wù)的次要?jiǎng)幼魈峁┱?,并使用所述次要?jiǎng)幼魈峁┱咦鳛樗鎏囟▌?dòng)作提供者來執(zhí)行所述任務(wù)。
條款3.如條款2所述的方法,其中:
所述先決條件指定存在網(wǎng)絡(luò)連接。
條款4.如條款1-3中的任一項(xiàng)所述的方法,其中:
所述任務(wù)到提供者關(guān)聯(lián)偏好指示針對(duì)所述任務(wù)的偏好的動(dòng)作提供者;以及
選擇所述特定動(dòng)作提供者來執(zhí)行所述任務(wù)包括選擇針對(duì)所述任務(wù)的所述偏好的動(dòng)作提供者。
條款5.如條款1-4中的任一項(xiàng)所述的方法,進(jìn)一步包括:
接收包括對(duì)第二動(dòng)作提供者的顯式指示和所述任務(wù)的表達(dá);以及
響應(yīng)于標(biāo)識(shí)出對(duì)所述第二動(dòng)作提供者的顯式指示,將執(zhí)行所述任務(wù)的指令發(fā)送給所述第二動(dòng)作提供者。
條款6.如條款1-5中的任一項(xiàng)所述的方法,進(jìn)一步包括:
基于所述特定動(dòng)作提供者的存儲(chǔ)的注冊(cè),確定所述任務(wù)的參數(shù)槽丟失;以及
在向所述特定動(dòng)作提供者發(fā)送指令之前,提示用于填充所述參數(shù)槽的參數(shù)值;
接收另一口述的表達(dá);
對(duì)所述另一口述的表達(dá)執(zhí)行話音識(shí)別,所述話音識(shí)別識(shí)別口述的參數(shù)值;以及
在將所述任務(wù)分配給所述特定動(dòng)作提供者時(shí),將所述口述的參數(shù)值提交給所述特定動(dòng)作提供者。
條款7.如條款1-6中的任一項(xiàng)所述的方法,其中:
所述話音識(shí)別進(jìn)一步識(shí)別所述口述的表達(dá)中的參數(shù)值;
將所述任務(wù)分配給所述特定動(dòng)作提供者進(jìn)一步包括將所述參數(shù)值發(fā)送給所述動(dòng)作提供者。
條款8.如條款1-7中的任一項(xiàng)所述的方法,進(jìn)一步包括:
向數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)注冊(cè)所述特定動(dòng)作提供者,其中所述注冊(cè)包括存儲(chǔ)所述特定動(dòng)作提供者所支持的一個(gè)或多個(gè)動(dòng)作的指示。
條款9.如條款1-8中的任一項(xiàng)所述的方法,其中:
所述經(jīng)注冊(cè)的動(dòng)作提供者包括非本機(jī)動(dòng)作提供者和本機(jī)動(dòng)作提供者。
條款10.如條款1-9中的任一項(xiàng)所述的方法,進(jìn)一步包括:
經(jīng)由機(jī)器學(xué)習(xí),確定所述特定動(dòng)作提供者是針對(duì)所述任務(wù)的偏好的動(dòng)作提供者;以及
將針對(duì)所述任務(wù)的偏好的動(dòng)作提供者改變?yōu)樗鎏囟▌?dòng)作提供者。
條款11.如條款1-10中的任一項(xiàng)所述的方法,其中:
對(duì)所述口述的表達(dá)執(zhí)行話音識(shí)別包括在所述表達(dá)中識(shí)別聯(lián)系人的聯(lián)系人名稱;
所述任務(wù)包括通信任務(wù);以及
分配所述特定動(dòng)作提供者來執(zhí)行所述任務(wù)包括由所述特定動(dòng)作提供者經(jīng)由通信任務(wù)發(fā)起與所述聯(lián)系人的通信。
條款12.如條款9所述的方法,進(jìn)一步包括:
經(jīng)由機(jī)器學(xué)習(xí),確定所述特定動(dòng)作提供者是針對(duì)所述任務(wù)和聯(lián)系人的偏好的動(dòng)作提供者;以及
將針對(duì)所述任務(wù)和聯(lián)系人的偏好的動(dòng)作提供者改變?yōu)樗鎏囟▌?dòng)作提供者。
條款13.如條款1-12中的任一項(xiàng)所述的方法,進(jìn)一步包括:
響應(yīng)于確定經(jīng)注冊(cè)的動(dòng)作提供者都不支持所述任務(wù),標(biāo)識(shí)支持所述任務(wù)的動(dòng)作提供者,安裝支持所述任務(wù)的所述動(dòng)作提供者,以及注冊(cè)支持所述任務(wù)的所述動(dòng)作提供者。
條款14.如條款1-13中的任一項(xiàng)所述的方法,其中:
特定經(jīng)注冊(cè)動(dòng)作提供者的存儲(chǔ)的注冊(cè)指示在當(dāng)前位置落在邊界內(nèi)時(shí)將呈現(xiàn)消息;以及
所述方法進(jìn)一步包括,響應(yīng)于確定所述當(dāng)前位置落在所述邊界內(nèi),呈現(xiàn)所述消息。
條款15.如條款1-14中的任一項(xiàng)所述的方法,進(jìn)一步包括:
由所述特定動(dòng)作提供者執(zhí)行所述任務(wù)。
條款16.一種電子設(shè)備,包括:
處理器;
存儲(chǔ)經(jīng)注冊(cè)的動(dòng)作提供者的多個(gè)存儲(chǔ)的注冊(cè)的存儲(chǔ)器,其中所述存儲(chǔ)的注冊(cè)包括特定經(jīng)注冊(cè)動(dòng)作提供者的指示所述特定經(jīng)注冊(cè)動(dòng)作提供者所支持的任務(wù)的存儲(chǔ)的注冊(cè);
存儲(chǔ)經(jīng)注冊(cè)的動(dòng)作提供者的多個(gè)存儲(chǔ)的偏好的存儲(chǔ)器,其中所述存儲(chǔ)的偏好包括將特定經(jīng)注冊(cè)動(dòng)作提供者指示為被偏好用于特定任務(wù)的偏好;
識(shí)別引擎,所述識(shí)別引擎被配置成識(shí)別由所述設(shè)備的話筒接收到的口述的表達(dá)或由所述設(shè)備的文本輸入硬件接收到的鍵入的命令中的任務(wù);以及
個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù),所述個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù)被配置成基于所述存儲(chǔ)的注冊(cè)和所述存儲(chǔ)的偏好來控制將所述任務(wù)定向到哪個(gè)動(dòng)作提供者來完成。
條款17.如條款12所述的電子設(shè)備,其中:
所述特定經(jīng)注冊(cè)動(dòng)作提供者的存儲(chǔ)的注冊(cè)包括所述特定經(jīng)注冊(cè)動(dòng)作提供者所支持的任務(wù)的先決條件;以及
所述數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)被配置成評(píng)估所述先決條件并且如果所述先決條件沒有被滿足則選擇不同的動(dòng)作提供者。
條款18.如條款13所述的電子設(shè)備,其中:
所述先決條件指定存在數(shù)據(jù)連接。
條款19.如條款12-18中的任一項(xiàng)所述的電子設(shè)備,其中:
所述個(gè)人數(shù)字助理基礎(chǔ)結(jié)構(gòu)服務(wù)支持對(duì)針對(duì)所述任務(wù)的偏好的動(dòng)作提供者的顯式覆蓋。
條款20.一個(gè)或多個(gè)機(jī)器可讀介質(zhì),包括機(jī)器可執(zhí)行指令,所述機(jī)器可執(zhí)行指令使得電子設(shè)備執(zhí)行一種控制多個(gè)經(jīng)注冊(cè)的通信動(dòng)作提供者中的哪個(gè)通信動(dòng)作提供者執(zhí)行數(shù)字個(gè)人助理基礎(chǔ)結(jié)構(gòu)服務(wù)所支持的通信任務(wù)的方法,所述方法包括:
對(duì)表達(dá)執(zhí)行話音識(shí)別,所述話音識(shí)別包括識(shí)別所述表達(dá)中的支持的通信任務(wù)以及聯(lián)系人名稱;以及
基于經(jīng)注冊(cè)的通信動(dòng)作提供者的存儲(chǔ)的注冊(cè)、存儲(chǔ)的動(dòng)作到提供者關(guān)聯(lián)偏好及用于發(fā)起所述聯(lián)系人名稱的通信任務(wù)的聯(lián)系人信息的可用性,選擇特定經(jīng)注冊(cè)通信動(dòng)作提供者,并使用所選擇的特定經(jīng)注冊(cè)通信動(dòng)作提供者經(jīng)由支持的通信任務(wù)發(fā)起與所述聯(lián)系人名稱所標(biāo)識(shí)的聯(lián)系人的通信;
其中選擇特定經(jīng)注冊(cè)通信動(dòng)作提供者包括最初考慮第一通信動(dòng)作提供者,但響應(yīng)于確定所述第一通信動(dòng)作提供者的聯(lián)系人信息的可用性丟失,選擇第二通信動(dòng)作提供者。
替換方案
來自任何示例的技術(shù)可以與在任何一個(gè)或多個(gè)其他示例中所描述的技術(shù)相組合。鑒于可應(yīng)用所公開的本技術(shù)的原理的許多可能的實(shí)施例,應(yīng)當(dāng)認(rèn)識(shí)到,所示實(shí)施例僅是所公開的技術(shù)的示例,并且不應(yīng)被用作是對(duì)所公開的技術(shù)的范圍的限制。相反,本公開的技術(shù)的范圍由后續(xù)的權(quán)利要求來覆蓋。我們要求作為我們的發(fā)明保護(hù)落入這些權(quán)利要求范圍和精神內(nèi)的所有內(nèi)容。