背景
隨著計(jì)算技術(shù)的發(fā)展,越來越強(qiáng)大的移動(dòng)設(shè)備已經(jīng)變得可用。例如,智能電話以及其他計(jì)算設(shè)備已經(jīng)變得普及。此類設(shè)備的處理能力已導(dǎo)致開發(fā)出不同類型的功能性,諸如與數(shù)字個(gè)人助理相關(guān)的功能性。
數(shù)字個(gè)人助理可以被用于執(zhí)行用于個(gè)體的任務(wù)或服務(wù)。例如,數(shù)字個(gè)人助理可以是在移動(dòng)設(shè)備或臺(tái)式計(jì)算機(jī)上運(yùn)行的軟件模塊。此外,實(shí)現(xiàn)在移動(dòng)設(shè)備內(nèi)的數(shù)字個(gè)人助理具有交互式和內(nèi)置會(huì)話理解力以能夠?qū)τ脩魡栴}或語音命令作出響應(yīng)??梢杂蓴?shù)字個(gè)人助理執(zhí)行的任務(wù)和服務(wù)的示例可以包括撥打電話呼叫、發(fā)送電子郵件或文本消息和設(shè)置日歷提醒。
盡管數(shù)字個(gè)人助理可被實(shí)現(xiàn)來使用反應(yīng)型代理執(zhí)行多個(gè)任務(wù),然而編程/定義每個(gè)反應(yīng)型代理可能是耗時(shí)的。因此,在與創(chuàng)建和編輯用于實(shí)現(xiàn)數(shù)字個(gè)人助理的反應(yīng)型代理相關(guān)的技術(shù)中存在充足的改善機(jī)會(huì)。
概述
提供本概述以便以簡(jiǎn)化的形式介紹以下在詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。
根據(jù)一個(gè)或多個(gè)方面,一種計(jì)算設(shè)備可被配置有反應(yīng)型代理開發(fā)環(huán)境(rade)以執(zhí)行用于生成反應(yīng)型代理定義的操作,所述計(jì)算設(shè)備包括處理單元、耦合至所述處理單元的存儲(chǔ)器、一個(gè)或多個(gè)話筒、一個(gè)或多個(gè)揚(yáng)聲器、以及至少一個(gè)顯示器。rade可包括視覺編輯工具(例如,在圖2a-2e中解說的視覺工具,在本文中被稱為rade工具)或替代開發(fā)環(huán)境。所述操作可包括獲得可擴(kuò)展標(biāo)記語言(xml)模式模板。xml模式模板可含有用于定義在該計(jì)算設(shè)備上運(yùn)行的數(shù)字個(gè)人助理的反應(yīng)型代理的多個(gè)xml代碼段。rade工具可接收標(biāo)識(shí)域和針對(duì)該域的至少一個(gè)意圖的輸入。該域可與由該計(jì)算設(shè)備執(zhí)行的功能類別相關(guān)聯(lián)。該至少一個(gè)意圖可與被用來執(zhí)行針對(duì)所標(biāo)識(shí)的域的該功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作相關(guān)聯(lián)。定義該至少一個(gè)意圖的多個(gè)狀態(tài)的多輪對(duì)話流可使用該rade工具的圖形用戶界面來生成。替換地,定義該至少一個(gè)意圖的一個(gè)或多個(gè)狀態(tài)的單輪對(duì)話流也可使用該rade工具來生成。xml模式模板可使用rade工具基于所接收的輸入和多輪對(duì)話流來更新,以產(chǎn)生專用于所標(biāo)識(shí)的域和該至少一個(gè)意圖的經(jīng)更新的xml模式。使該計(jì)算設(shè)備執(zhí)行該至少一個(gè)動(dòng)作的編程代碼可被提供并且與經(jīng)更新的xml模式相組合以生成反應(yīng)型代理定義。
根據(jù)一個(gè)或多個(gè)方面,一種用于生成反應(yīng)型代理定義的方法可包括通過計(jì)算設(shè)備的反應(yīng)型代理開發(fā)環(huán)境(rade)工具獲得用于定義在計(jì)算設(shè)備上運(yùn)行的數(shù)字個(gè)人助理的反應(yīng)型代理的可擴(kuò)展標(biāo)記語言(xml)模式模板。該rade工具可接收標(biāo)識(shí)與該計(jì)算設(shè)備執(zhí)行的功能類別相關(guān)聯(lián)的至少一個(gè)域-意圖對(duì)的輸入。定義與該域-意圖對(duì)相關(guān)聯(lián)的多個(gè)狀態(tài)的多輪對(duì)話流可使用該rade工具的圖形用戶界面來生成。xml模式模板可基于所接收的輸入和該多輪對(duì)話流來更新以產(chǎn)生專用于該域-意圖對(duì)的經(jīng)更新的xml模式。反應(yīng)型代理定義可使用經(jīng)更新的xml模式來生成。
根據(jù)一個(gè)或多個(gè)方面,一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括指令,所述指令在執(zhí)行時(shí)使計(jì)算設(shè)備執(zhí)行用于生成在該計(jì)算設(shè)備上運(yùn)行的數(shù)字個(gè)人代理的反應(yīng)型代理定義的操作。所述操作可包括使用該計(jì)算設(shè)備的反應(yīng)型代理定義編輯(rade)工具來接收標(biāo)識(shí)域、針對(duì)該域的至少一個(gè)意圖、以及針對(duì)該至少一個(gè)意圖的至少一個(gè)時(shí)隙的輸入。該域與由該計(jì)算設(shè)備執(zhí)行的功能類別相關(guān)聯(lián)。該至少一個(gè)意圖與被用來執(zhí)行針對(duì)所標(biāo)識(shí)的域的該功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作相關(guān)聯(lián)。該至少一個(gè)時(shí)隙與被用來發(fā)起對(duì)該至少一個(gè)動(dòng)作的執(zhí)行的值相關(guān)聯(lián)。對(duì)于該至少一個(gè)意圖中的每一個(gè),定義與該至少一個(gè)意圖相關(guān)聯(lián)的多個(gè)狀態(tài)的多輪對(duì)話流可使用該rade工具的圖形用戶界面來生成??蓴U(kuò)展標(biāo)記語言(xml)模式模板可使用該rade工具用該至少一個(gè)xml代碼段來更新。所述更新可基于所接收的輸入和該多輪對(duì)話流,以產(chǎn)生專用于所標(biāo)識(shí)的域、該至少一個(gè)意圖和該至少一個(gè)時(shí)隙的經(jīng)更新的xml模式。使該計(jì)算設(shè)備執(zhí)行該至少一個(gè)動(dòng)作的編程代碼可被生成。經(jīng)更新的xml模式和編程代碼可被組合以生成該反應(yīng)型代理定義。
如本文所述的,各種其它特征和優(yōu)點(diǎn)可按照需要被結(jié)合到所述技術(shù)中。
附圖簡(jiǎn)述
圖1是解說根據(jù)本公開的示例實(shí)施例的反應(yīng)型代理開發(fā)環(huán)境(rade)的示例軟件體系結(jié)構(gòu)的框圖。
圖2a-2e解說根據(jù)本公開的示例實(shí)施例的rade工具的示例用戶界面,其可被用來生成反應(yīng)型代理定義文件。
圖3a-3b解說根據(jù)本公開的示例實(shí)施例的示例xml模式模板,其可被用來生成反應(yīng)型代理定義。
圖4a-4h解說根據(jù)本公開的示例實(shí)施例的在反應(yīng)型代理定義中使用的示例xml模式。
圖5-7是解說根據(jù)一個(gè)或多個(gè)實(shí)施例的反應(yīng)型代理定義的生成的流程圖。
圖8是解說可結(jié)合其來實(shí)現(xiàn)本文中描述的創(chuàng)新的示例移動(dòng)計(jì)算設(shè)備的框圖。
圖9是在其中可實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的示圖。
圖10是可結(jié)合本文中描述的技術(shù)來使用的示例云計(jì)算環(huán)境。
詳細(xì)描述
如本文所述,各技術(shù)和解決方案可被應(yīng)用于使用反應(yīng)型代理開發(fā)環(huán)境(rade)生成反應(yīng)型代理定義。更具體而言,rade可被實(shí)現(xiàn)(例如,作為視覺編輯工具(rade工具)或作為另一替代開發(fā)環(huán)境)在計(jì)算設(shè)備上(例如,作為在計(jì)算設(shè)備上運(yùn)行的軟件)并可使用一個(gè)或多個(gè)圖形用戶界面來構(gòu)建多輪對(duì)話流的顯式表示,包括域、與該域相關(guān)聯(lián)的一個(gè)或多個(gè)意圖、針對(duì)域-意圖對(duì)的一個(gè)或多個(gè)時(shí)隙、針對(duì)意圖的一個(gè)或多個(gè)狀態(tài)、狀態(tài)間的轉(zhuǎn)換、響應(yīng)模板等的表示。域、意圖和時(shí)隙信息可被提供給rade作為輸入。在用于執(zhí)行期望代理功能性的多輪對(duì)話流完成之后,rade可使用被提供給rade工具(或經(jīng)由rade工具輸入)的信息來更新xml模式模板(或另一類型的計(jì)算機(jī)可讀文檔),所述信息諸如是域信息、意圖信息、時(shí)隙信息、狀態(tài)信息、狀態(tài)轉(zhuǎn)換、響應(yīng)串和模板、本地化信息和經(jīng)由rade輸入的任何其它信息,以提供反應(yīng)型代理功能性的視覺/聲明式表示。此外,xml模式模板內(nèi)的xml代碼段可被注釋,以使得該反應(yīng)型代理定義的xml部分可被用戶(例如程序員)容易地解釋,其中每個(gè)xml代碼段類型均在xml代碼列表中被指示。
在本文中詳細(xì)描述了各種方法、進(jìn)程和過程。盡管特定步驟可能是按照特定序列來描述的,然而這種序列主要是為了方便和清楚。特定步驟可被重復(fù)超過一次,可在其它步驟之前或之后發(fā)生(即使那些步驟原本是按另一序列描述的),以及可與其它步驟并行發(fā)生。僅在第一步驟必須在第二步驟開始之前完成時(shí),才要求第二步驟跟在第一步驟之后。在不能從上下文清楚地看出時(shí),這種情形將被具體指出。特定步驟可被省略;僅當(dāng)特定步驟的省略將顯著影響另一步驟時(shí)才需要該特定步驟。
在本文中,使用術(shù)語“和”、“或”以及“和/或”。這些術(shù)語將被解讀為具有相同含義;即,是包含性的。例如,“a和b”可指以下至少一項(xiàng):“a和b兩者”、“僅a”、“僅b”、“至少a和b兩者”。作為另一示例,“a或b”可指以下至少一項(xiàng):“僅a”、“僅b”、“a和b兩者”、“至少a和b兩者”。在想要表達(dá)“異或”時(shí),將對(duì)其明確注明(例如,“a或b之一”、“a和b中最多一個(gè)”)。
在本文中描述了各種計(jì)算機(jī)實(shí)現(xiàn)的方法、進(jìn)程和過程。要理解,各動(dòng)作(接收、存儲(chǔ)、發(fā)送、傳遞、顯示等)是由硬件設(shè)備執(zhí)行的,即使動(dòng)作可被用戶授權(quán)、發(fā)起或觸發(fā),或即使硬件設(shè)備由計(jì)算機(jī)程序、軟件、固件等控制。而且,要理解,硬件設(shè)備對(duì)數(shù)據(jù)進(jìn)行操作,即使數(shù)據(jù)可表示概念或現(xiàn)實(shí)世界對(duì)象,從而如此省略了明確標(biāo)記為“數(shù)據(jù)”。例如,在硬件設(shè)備被描述為“存儲(chǔ)記錄”時(shí),要理解硬件設(shè)備存儲(chǔ)表示該記錄的數(shù)據(jù)。
如本文中所使用的,術(shù)語“反應(yīng)型代理”指代可被數(shù)字個(gè)人助理用來實(shí)現(xiàn)與設(shè)備功能性相關(guān)聯(lián)的一個(gè)或多個(gè)響應(yīng)對(duì)話(例如,語音、文本和/或觸覺響應(yīng))的數(shù)據(jù)/命令結(jié)構(gòu)。該設(shè)備功能性(例如,電子郵件收發(fā)、消息收發(fā)等)可由到數(shù)字個(gè)人助理的用戶輸入(例如,語音命令)來激活。反應(yīng)型代理(或代理)可使用語音代理定義(vad)或反應(yīng)型代理定義(rad)xml文檔(或另一類型的計(jì)算機(jī)可讀文檔)以及用于驅(qū)動(dòng)該代理來通過對(duì)話的編程代碼(例如,c++代碼)來定義。例如,電子郵件反應(yīng)型代理可被用來基于用戶語音命令打開新的電子郵件窗口、基于語音輸入來創(chuàng)作電子郵件以及向由到數(shù)字個(gè)人助理的語音輸入所指定的電子郵件地址發(fā)送電子郵件。反應(yīng)型代理也可被用來在用數(shù)字個(gè)人助理發(fā)起的對(duì)話會(huì)話期間基于用戶輸入提供一個(gè)或多個(gè)響應(yīng)(例如,音頻/視頻/觸覺響應(yīng))。
如本文所使用的,術(shù)語“xml模式”指代具有被用來描述和證實(shí)xml環(huán)境中的數(shù)據(jù)的xml代碼段集合的文檔。更具體而言,xml模式可列出被用來描述xml文檔中的內(nèi)容的元素和屬性,在哪每個(gè)元素被允許,什么類型的內(nèi)容被允許等等。用戶可生成符合xml模式的xml文件(例如,用于在反應(yīng)型代理定義中使用)。
圖1是解說根據(jù)本公開的示例實(shí)施例的反應(yīng)型代理開發(fā)環(huán)境(rade)的示例軟件體系結(jié)構(gòu)100的框圖。參考圖1,客戶端計(jì)算設(shè)備(例如智能電話或其它移動(dòng)計(jì)算設(shè)備,諸如圖8中的設(shè)備800)可執(zhí)行根據(jù)體系結(jié)構(gòu)100組織的軟件以提供反應(yīng)型代理定義的生成和編輯。
體系結(jié)構(gòu)100包括設(shè)備操作系統(tǒng)(os)132和反應(yīng)型代理開發(fā)環(huán)境(rade)102。在圖1中,設(shè)備os132包括用于呈現(xiàn)的組件134(例如,向顯示器呈現(xiàn)視覺輸出、生成揚(yáng)聲器的語音輸出等)、用于聯(lián)網(wǎng)的組件136、以及用戶界面(u/i)引擎138。ui引擎138可被用來與rade102執(zhí)行的反應(yīng)型代理定義編輯功能性相結(jié)合地生成一個(gè)或多個(gè)圖形用戶界面(例如,如圖2a-2e中所示的)??墒褂娩秩窘M件134將用戶界面渲染在顯示器142上。經(jīng)由ui引擎138生成的用戶界面所接收的輸入可被傳遞至反應(yīng)型代理生成器104。設(shè)備os132管理用戶輸入功能、輸出功能、存儲(chǔ)訪問功能、網(wǎng)絡(luò)通信功能、以及設(shè)備800的其他功能。設(shè)備os132向rade102提供對(duì)這些功能的訪問。
rade102可包括適當(dāng)?shù)倪壿?、電路、接口、?或代碼并可以可操作以提供與反應(yīng)型代理定義相關(guān)聯(lián)的功能性(包括生成和編輯這種定義),如本文所述。rade102可包括反應(yīng)型代理生成器104、u/i設(shè)計(jì)塊106、xml模式模板塊108、響應(yīng)/流設(shè)計(jì)塊110、語言生成引擎112、和本地化引擎116。反應(yīng)型代理開發(fā)環(huán)境102可包括用于生成和編輯反應(yīng)型代理的視覺編輯工具(例如,如在圖2a-2e中所示)或替代開發(fā)環(huán)境。關(guān)于此,本文中對(duì)rade工具(例如,rade工具102)的任何指代可指代在結(jié)合視覺編輯工具(諸如圖2a-2e中解說的視覺編輯工具)使用時(shí)的反應(yīng)型代理開發(fā)環(huán)境102。然而,作為替代實(shí)施例,rade102的其它實(shí)現(xiàn)也是可能的。例如,該工具可以是可以或可以不使用視覺編輯功能性來在單輪或多輪流中執(zhí)行編輯的xml編輯器。另一開發(fā)環(huán)境可具有合在一起捕捉代理定義的不同文檔或視圖的組合。作為示例,對(duì)話流可在一獨(dú)立文檔(基于xml的或另一類型的計(jì)算機(jī)可讀文檔)中被捕捉,并隨后在一獨(dú)立文檔中捕捉響應(yīng)。開發(fā)環(huán)境可通過使這些獨(dú)立文檔在一起而幫助流水線化反應(yīng)型代理定義創(chuàng)作體驗(yàn)。
xml模式模板塊108可以可操作以提供xml模式模板,諸如在圖3a-3b中所列的模板。圖3a-b解說根據(jù)本公開的示例實(shí)施例的示例xml模式模板,其可被用來生成反應(yīng)型代理定義。參考圖3a-3b,xml模式模板300可包括多個(gè)xml代碼段,其可被更新(例如通過反應(yīng)型代理生成器104)以創(chuàng)建用于反應(yīng)型代理定義(例如126)的新的/經(jīng)更新的xml模式(例如128)。例如,xml代碼段302可被用來指定域。術(shù)語“域”可被用來指示個(gè)人知識(shí)的一領(lǐng)域或范圍并可與計(jì)算設(shè)備執(zhí)行的功能類別相關(guān)聯(lián)。示例域包括電子郵件(例如,電子郵件反應(yīng)型代理可被數(shù)字個(gè)人助理(dpa)用來生成/發(fā)送電子郵件)、消息(例如,消息反應(yīng)型代理可被dpa用來生成/發(fā)送文本消息)、鬧鐘(鬧鐘反應(yīng)型代理可被用來設(shè)置/刪除/修改鬧鐘)等。
xml代碼段304可被用來指定一個(gè)或多個(gè)意圖。如本文所使用的,術(shù)語“意圖”可被用來指示被用于執(zhí)行所標(biāo)識(shí)域的功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作。例如,“設(shè)置鬧鐘”意圖可被用于鬧鐘域(如在圖2a-2e中所見)。
xml代碼段306a-306b和312可被用來指定與意圖相關(guān)聯(lián)的一個(gè)或多個(gè)時(shí)隙。如本文所使用的,術(shù)語“時(shí)隙”可被用來指示被用于完成給定域-意圖對(duì)的特定動(dòng)作的特定值或值集合。時(shí)隙可與一個(gè)或多個(gè)意圖相關(guān)聯(lián)并可被顯式提供(即,注釋)在xml模式模板中。通常,域、意圖和時(shí)隙構(gòu)成語言理解構(gòu)造,然而在給定代理場(chǎng)景內(nèi),時(shí)隙可跨多個(gè)意圖共享。作為示例,如果域是具有兩個(gè)不同意圖的鬧鐘-設(shè)置一鬧鐘和刪除一鬧鐘,則這兩個(gè)意圖可共享相同的“alarmtime”(鬧鐘時(shí)間)時(shí)隙。關(guān)于此,時(shí)隙可被連接至一個(gè)或多個(gè)意圖。
xml代碼段308可被用來指定一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。一個(gè)或多個(gè)狀態(tài)可與意圖相關(guān)聯(lián)且狀態(tài)轉(zhuǎn)換可基于條件是否被滿足來指示狀態(tài)之間的轉(zhuǎn)換。狀態(tài)可表示對(duì)話流中的特定點(diǎn)。作為示例,在用于創(chuàng)建鬧鐘的對(duì)話流(例如圖2a-2e)中,用戶可在“初始”狀態(tài)開始并隨后如果用戶沒有將時(shí)間指定作為其話語的一部分(例如,用戶說“我想要設(shè)置鬧鐘”),則對(duì)話流將確定所需時(shí)隙值“alarmtime”(鬧鐘時(shí)間)之一缺失且因此將轉(zhuǎn)換至“getalarmtime”(獲得鬧鐘時(shí)間)狀態(tài)。狀態(tài)通常具有某個(gè)處理塊(在代理內(nèi)部),或可具有響應(yīng)(在該響應(yīng)之后跟隨著監(jiān)聽狀態(tài))或可具有其自己的子對(duì)話流。
xml代碼段310可被用來指定一個(gè)或多個(gè)短語列表。如本文所使用的,術(shù)語“短語列表”可被用來指定反應(yīng)型代理在任何給定狀態(tài)將監(jiān)聽的詞語或句子的列表/集合。xml代碼段314可被用來指定一個(gè)或多個(gè)響應(yīng)串。
xml代碼段316可被用來指定一個(gè)或多個(gè)語言生成模板,所述語言生成模板可被(例如,被語言生成引擎112)用來生成提示。例如,如果給定條件被滿足,則文本到語音(tts)響應(yīng)串和/或gui響應(yīng)串(即,所顯示的文本)可被生成/選擇以供輸出。
xml代碼段318可被用來填充動(dòng)態(tài)短語列表(例如,在運(yùn)行時(shí))。xml代碼段320可被用來指定一個(gè)或多個(gè)用戶界面模板。用戶界面模板可包括用于在用戶界面中使用的響應(yīng)串(或響應(yīng)串模板)。
根據(jù)本公開的示例實(shí)施例,xml模式模板108內(nèi)的xml代碼段可基于封裝xml代碼元素的類型被顯式注釋。例如,一些響應(yīng)串可基于預(yù)期用途被注釋——一些響應(yīng)可被用于語言生成(例如,通過語言生成引擎112),一些響應(yīng)可被用于對(duì)話響應(yīng),且一些響應(yīng)可被用于u/i元素。
u/i設(shè)計(jì)模塊106可包括適當(dāng)?shù)倪壿嫛㈦娐?、接口?或代碼并可以可操作以生成用于與反應(yīng)型代理定義(rad)126一起使用的一個(gè)或多個(gè)用戶界面并向反應(yīng)型代理生成器104提供該一個(gè)或多個(gè)用戶界面。u/i設(shè)計(jì)模塊106可從u/i數(shù)據(jù)庫107獲取一個(gè)或多個(gè)用戶界面設(shè)計(jì)并可基于提供有編程規(guī)范118的輸入來生成新用戶界面設(shè)計(jì)。在示例實(shí)施例中,u/i設(shè)計(jì)模塊106可與u/i引擎138一起作為os132或rade工具102的一部分實(shí)現(xiàn)。
響應(yīng)/流設(shè)計(jì)模塊110可包括適當(dāng)?shù)倪壿?、電路、接口?或代碼并可以可操作以提供一個(gè)或多個(gè)響應(yīng)串以供反應(yīng)型代理生成器使用。例如,響應(yīng)串(以及針對(duì)響應(yīng)串的呈現(xiàn)模式)可從響應(yīng)數(shù)據(jù)庫114中選擇。語言生成引擎112可被用來生成一個(gè)或多個(gè)人類可讀響應(yīng),所述響應(yīng)可結(jié)合給定域-意圖-時(shí)隙配置被使用(例如,基于由編程規(guī)范118提供的輸入120-124)。響應(yīng)/流設(shè)計(jì)模塊110還可向反應(yīng)型代理生成器104提供與多輪對(duì)話流相結(jié)合的流設(shè)計(jì)(例如,用于執(zhí)行多輪對(duì)話流中的某個(gè)動(dòng)作所需的步驟)。
在一示例實(shí)現(xiàn)中并且針對(duì)由反應(yīng)型代理生成器104生成的給定rad(例如126),對(duì)響應(yīng)串和/或針對(duì)這些響應(yīng)的呈現(xiàn)模式的選擇可進(jìn)一步基于其它因素,諸如用戶距設(shè)備的距離、用戶的姿態(tài)(例如,躺著、坐著、或站著)、對(duì)用戶周圍的社會(huì)環(huán)境的知識(shí)(例如,是否存在其他用戶)、噪聲水平、以及當(dāng)前用戶活動(dòng)(例如,用戶處于活躍對(duì)話中或正執(zhí)行一物理活動(dòng))。用戶距設(shè)備的距離可基于例如在用戶經(jīng)由免提與設(shè)備通信時(shí)接收到的信號(hào)強(qiáng)度來確定。如果確定用戶超出閾值距離,則該設(shè)備可認(rèn)為該屏幕對(duì)用戶是不可見的,并且因此不可用。關(guān)于此,xml模式模板108可被更新,以使得rad126實(shí)現(xiàn)以上功能性。
在操作中,反應(yīng)型代理生成器104可接收來自編程規(guī)范118的輸入。例如,編程規(guī)范118可分別經(jīng)由輸入120、122和124指定域、一個(gè)或多個(gè)意圖和一個(gè)或多個(gè)時(shí)隙。反應(yīng)型代理生成器(rag)104還可獲取xml模式模板108并基于例如經(jīng)由u/i設(shè)計(jì)模塊106接收的用戶輸入生成經(jīng)更新的xml模式128。來自響應(yīng)/流設(shè)計(jì)模塊110的響應(yīng)/流輸入,以及來自本地化引擎116的本地化輸入,可被rag104用來進(jìn)一步更新xml模式模板108并生成經(jīng)更新的xml模式128。附加編程代碼段130(例如c++文件)也可被生成以實(shí)現(xiàn)并管理數(shù)字個(gè)人助理和/或計(jì)算設(shè)備對(duì)一個(gè)或多個(gè)所請(qǐng)求的功能的執(zhí)行。經(jīng)更新的xml模式128和編程代碼段130可被組合以生成rad126。rad126隨后可被輸出至顯示器142和/或存儲(chǔ)在存儲(chǔ)140中。
即使xml模式模板108是xml文檔,本公開在這方面可不受限制且其它類型的模板可代替xml文檔被使用。根據(jù)本公開的示例實(shí)施例,其它類型的計(jì)算機(jī)可讀文檔(例如,另一類型的模式模板108)可代替本文討論的xml文檔使用。
圖2a-2e解說根據(jù)本公開的示例實(shí)施例的rade工具的示例用戶界面,其可被用來生成反應(yīng)型代理定義文件。參考圖2a-2e,解說了示例用戶界面200,該用戶界面可與rade工具102結(jié)合使用以生成用于“鬧鐘”域的反應(yīng)型代理定義。例如,在202,可指定“鬧鐘”域。用戶界面200可包括用戶界面對(duì)話流工具204和意圖工具206,其可被用于進(jìn)一步指定及限定用于定義“鬧鐘”反應(yīng)型代理的反應(yīng)型代理定義的多輪對(duì)話流。此外,對(duì)于每個(gè)被輸入的域(例如202),一個(gè)或多個(gè)域?qū)傩?08也可被輸入/提供。示例域?qū)傩园ㄓ螂[私政策、域版本、域所需的連接類型等。
對(duì)話流工具204可被用來提供用于指定人類和數(shù)字個(gè)人助理之間的會(huì)話/對(duì)話的的多輪對(duì)話流的狀態(tài)、轉(zhuǎn)換和轉(zhuǎn)換條件的流圖式表示。對(duì)話流工具204可包括以下命令:
“決定”-表示邏輯決定塊;
“對(duì)話”-數(shù)字個(gè)人助理的狀態(tài),其中該助理正活躍地尋找特定用戶輸入(可任選地包括響應(yīng));
“初始”、“最終”、“返回”、“流連接器”-啟動(dòng)/終止對(duì)話流的狀態(tài)以及相關(guān)聯(lián)的中間狀態(tài)連接(返回狀態(tài)表示流的非終止地轉(zhuǎn)移回對(duì)話狀態(tài)的調(diào)用方);
“共享模塊”-對(duì)話流中跨多個(gè)意圖共享的狀態(tài);
“進(jìn)程”-其中系統(tǒng)執(zhí)行操作的狀態(tài);以及
“響應(yīng)”-其中數(shù)字個(gè)人助理要么應(yīng)答要么在ui中顯示文本要么通過任何可用模態(tài)向用戶提供反饋(例如,音頻/視覺/觸覺輸出)的狀態(tài)。
意圖工具206可包括以下命令:
“示例”-每個(gè)對(duì)話流可具有多個(gè)示例(例如,圖2e中的222),其可捕捉用戶為激活特定對(duì)話狀態(tài)可以說的短語集合(例如,如果用戶正嘗試設(shè)置鬧鐘,則示例將是“設(shè)置鬧鐘”、“請(qǐng)?jiān)O(shè)置鬧鐘”、“將鬧鐘設(shè)置為上午7點(diǎn)”、“在上午7點(diǎn)叫醒我”等等);
“意圖”-被用來執(zhí)行所標(biāo)識(shí)域的功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作。例如,“設(shè)置鬧鐘”意圖210和刪除鬧鐘意圖212可被用于鬧鐘域202(如在圖2a-2e中所見)。
“時(shí)隙”-用于完成給定域-意圖對(duì)的特定動(dòng)作的特定值或值集合。例如,“鬧鐘時(shí)間”時(shí)隙214可針對(duì)“設(shè)置鬧鐘”意圖210被指定。
“狀態(tài)”-狀態(tài)可表示對(duì)話流中的特定點(diǎn)。作為示例,在用于創(chuàng)建鬧鐘的對(duì)話流(例如圖2a-2e)中,用戶可在“初始”狀態(tài)(在圖2d中的216-218處)開始并隨后如果用戶沒有將時(shí)間指定作為其話語的一部分(例如,用戶說“我想要設(shè)置鬧鐘”),則對(duì)話流將確定所需時(shí)隙值“alarmtime”(鬧鐘時(shí)間)之一缺失且因此將轉(zhuǎn)換至“getalarmtime”(獲得鬧鐘時(shí)間)狀態(tài)。狀態(tài)通常具有某個(gè)處理塊(在代理內(nèi)部),或可具有響應(yīng)(在該響應(yīng)之后跟隨著監(jiān)聽狀態(tài))或可具有其自己的子對(duì)話流。多輪對(duì)話流220可使用對(duì)話流工具204和意圖工具206來指定。更具體而言,多輪對(duì)話流220可被用來指定與意圖(例如,設(shè)置鬧鐘意圖210)相關(guān)聯(lián)的一個(gè)或多個(gè)狀態(tài)之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換,且所述狀態(tài)轉(zhuǎn)換可基于條件是否已被滿足(例如,鬧鐘時(shí)間是否被指定)來指示狀態(tài)間的轉(zhuǎn)換。
圖4a-4h解說根據(jù)本公開的示例實(shí)施例的在反應(yīng)型代理定義中使用的示例xml模式。參考圖4a-4h,xml模式400-407可代表用于“鬧鐘”反應(yīng)型代理的rad126的經(jīng)更新的xml模式128。
圖5-7是解說根據(jù)一個(gè)或多個(gè)實(shí)施例的反應(yīng)型代理定義的生成的流程圖。參考圖1-5,示例方法500可開始于502處,此時(shí)rade工具102可獲取可擴(kuò)展標(biāo)記語言(xml)模式模板(例如108)。xml模式模板108可含有用于定義在該計(jì)算設(shè)備上運(yùn)行的數(shù)字個(gè)人助理的反應(yīng)型代理的多個(gè)xml代碼段(例如302-320)。在504,rade工具102可接收標(biāo)識(shí)域120和針對(duì)該域120的至少一個(gè)意圖122的輸入。域120可與由該計(jì)算設(shè)備執(zhí)行的功能的一類別相關(guān)聯(lián)。該至少一個(gè)意圖122可與被用來執(zhí)行針對(duì)所標(biāo)識(shí)的域120的該功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作相關(guān)聯(lián)。在506,rade工具102可生成(例如使用如在圖2a-2e中所見的圖形用戶界面200)定義針對(duì)該至少一個(gè)意圖(例如,設(shè)置鬧鐘意圖210)的多個(gè)狀態(tài)的多輪對(duì)話流(例如220)。在508,xml模式模板108可基于所接收的輸入和多輪對(duì)話流來被更新,以產(chǎn)生專用于所標(biāo)識(shí)的域(例如120)和該至少一個(gè)意圖(例如122)的經(jīng)更新的xml模式(例如128)。在510,rade工具102可生成使計(jì)算設(shè)備執(zhí)行該至少一個(gè)動(dòng)作的編程代碼(例如130)(例如,對(duì)于鬧鐘反應(yīng)型代理,編程代碼段130可被用來實(shí)現(xiàn)通過該計(jì)算設(shè)備設(shè)置鬧鐘)。在512,rade工具102可將經(jīng)更新的xml模式128與編程代碼段130相組合以生成反應(yīng)型代理定義126。
參考圖1-4和6,示例方法600可在602開始,此時(shí)rade工具102可獲取用于定義在計(jì)算設(shè)備上運(yùn)行的數(shù)字個(gè)人助理的反應(yīng)型代理的可擴(kuò)展標(biāo)記語言(xml)模式模板(例如108)。在604,rade工具102可(例如從編程規(guī)范118)接收標(biāo)識(shí)與計(jì)算設(shè)備所執(zhí)行的功能類別相關(guān)聯(lián)的至少一個(gè)域-意圖對(duì)(例如120-122)的輸入。在606,rade工具102可生成(例如使用如在圖2a-2e中所見的圖形用戶界面200)定義與該域-意圖對(duì)(例如,設(shè)置鬧鐘意圖210)相關(guān)聯(lián)的多個(gè)狀態(tài)的多輪對(duì)話流(例如220)。在608,rade工具120可基于所接收的輸入和多輪對(duì)話流來更新xml模式模板108,以產(chǎn)生專用于該域-意圖對(duì)(例如120-122)的經(jīng)更新的xml模式(例如128)。在610,rade工具102可使用經(jīng)更新的xml模式(例如128)生成反應(yīng)型代理定義(例如126)。
參考圖1-4和7,示例方法700可開始于702,此時(shí)計(jì)算設(shè)備(例如800)的rade工具102可接收標(biāo)識(shí)域(120)、針對(duì)該域的至少一個(gè)意圖(122)、以及針對(duì)該至少一個(gè)意圖的至少一個(gè)時(shí)隙(124)的輸入。該域與由該計(jì)算設(shè)備執(zhí)行的功能類別相關(guān)聯(lián)(例如鬧鐘域202)。該至少一個(gè)意圖(例如,設(shè)置鬧鐘意圖210)可與被用來執(zhí)行針對(duì)所標(biāo)識(shí)的域的該功能類別的至少一個(gè)功能的至少一個(gè)動(dòng)作相關(guān)聯(lián)。該至少一個(gè)時(shí)隙(例如,鬧鐘時(shí)隙214)與被用來發(fā)起對(duì)該至少一個(gè)動(dòng)作的執(zhí)行的值相關(guān)聯(lián)。在704,針對(duì)該至少一個(gè)意圖的每個(gè)意圖,rade工具可生成定義與該至少一個(gè)意圖相關(guān)聯(lián)的多個(gè)狀態(tài)的多輪對(duì)話流(例如,如在圖2a-2e中所見)。在706,rade工具102可用至少一個(gè)xml代碼段更新可擴(kuò)展標(biāo)記語言(xml)模式模板(例如108)(例如,xml代碼段302-320可基于針對(duì)與域120相關(guān)聯(lián)的一個(gè)或多個(gè)意圖122的所生成的多輪對(duì)話流而被更新)。所述更新可基于所接收的輸入(例如120-124)和該多輪對(duì)話流(例如202-222),以產(chǎn)生專用于所標(biāo)識(shí)的域(120)、該至少一個(gè)意圖(122)和該至少一個(gè)時(shí)隙(124)的經(jīng)更新的xml模式(例如128)。在708,rade工具102可生成使計(jì)算設(shè)備執(zhí)行該至少一個(gè)動(dòng)作的編程代碼(例如130)。在710,rade工具可將經(jīng)更新的xml模式(128)與編程代碼(130)相組合以生成反應(yīng)型代理定義(例如126)。
圖8是解說可結(jié)合其來實(shí)現(xiàn)本文中描述的創(chuàng)新的示例移動(dòng)計(jì)算設(shè)備的框圖。移動(dòng)設(shè)備800包括各種任選的硬件和軟件組件,其通常在802處示出。一般來說,移動(dòng)設(shè)備中的組件802可與該設(shè)備的任何其他組件通信,但出于容易說明的目的未示出所有連接。移動(dòng)設(shè)備800可以是各種計(jì)算設(shè)備(例如,蜂窩電話、智能電話、手持式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、平板設(shè)備、上網(wǎng)本、媒體播放器、個(gè)人數(shù)字助理(pda)、相機(jī)、攝像機(jī)等)中的任何一個(gè),并且可允許與諸如無線保真(wi-fi)、蜂窩、或衛(wèi)星網(wǎng)絡(luò)之類的一個(gè)或多個(gè)移動(dòng)通信網(wǎng)絡(luò)804進(jìn)行無線雙向通信。
所解說的移動(dòng)設(shè)備800可包括用于執(zhí)行如信號(hào)編碼、數(shù)據(jù)處理(包括分配權(quán)重和對(duì)諸如搜索結(jié)果之類的數(shù)據(jù)進(jìn)行排名)、輸入/輸出處理、電源控制和/或其他功能等任務(wù)的控制器或處理器810(例如,信號(hào)處理器、微處理器、asic、或其他控制和處理邏輯電路)。操作系統(tǒng)812控制各組件802的分配和使用,并且支持一個(gè)或多個(gè)應(yīng)用程序811。操作系統(tǒng)812可包括反應(yīng)型代理定義編輯(rade)工具813,該rade工具可具有與參考圖1-7描述的rade工具120的功能性類似的功能性。
所示的移動(dòng)設(shè)備800包括存儲(chǔ)器820。存儲(chǔ)器820可以包括不可移動(dòng)存儲(chǔ)器822和/或可移動(dòng)存儲(chǔ)器824。不可移動(dòng)存儲(chǔ)器822可以包括ram、rom、閃存、硬盤或者其他公知的存儲(chǔ)器存儲(chǔ)技術(shù)??梢苿?dòng)存儲(chǔ)器824可包括閃存或訂戶身份模塊(sim)卡——其在全球移動(dòng)通信系統(tǒng)(gsm)等通信系統(tǒng)中是眾所周知的,或者其他眾所周知的存儲(chǔ)器存儲(chǔ)技術(shù),諸如“智能卡”。存儲(chǔ)器820可用于存儲(chǔ)運(yùn)行操作系統(tǒng)812和應(yīng)用811的數(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ǔ)器820可用于存儲(chǔ)訂戶標(biāo)識(shí)符和設(shè)備標(biāo)識(shí)符,所述訂戶標(biāo)識(shí)符諸如國際移動(dòng)訂戶身份(imsi),所述設(shè)備標(biāo)識(shí)符諸如國際移動(dòng)設(shè)備標(biāo)識(shí)符(imei)。這種標(biāo)識(shí)符可以被發(fā)射至網(wǎng)絡(luò)服務(wù)器以標(biāo)識(shí)用戶和設(shè)備。
移動(dòng)設(shè)備800可支持一個(gè)或多個(gè)輸入設(shè)備830以及一個(gè)或多個(gè)輸出設(shè)備850,一個(gè)或多個(gè)輸入設(shè)備830為諸如觸摸屏832(例如,能夠捕捉手指輕擊輸入、手指姿勢(shì)輸入或虛擬鍵盤或小鍵盤的鍵擊輸入)、話筒834(例如,能夠捕捉語音輸入)、相機(jī)836(例如,能夠捕捉靜止圖片和/或視頻圖像)、物理鍵盤838、按鈕和/或跟蹤球840,一個(gè)或多個(gè)輸出設(shè)備850為諸如揚(yáng)聲器852和顯示器854。其他可能的輸出設(shè)備(未示出)可以包括壓電或其他觸覺輸出設(shè)備。一些設(shè)備可以用于多于一個(gè)輸入/輸出功能。例如,觸摸屏832和顯示器854可以在單個(gè)輸入/輸出設(shè)備內(nèi)被組合。移動(dòng)設(shè)備800可提供一個(gè)或多個(gè)自然用戶界面(nui)。例如,操作系統(tǒng)812或應(yīng)用811可包括多媒體處理軟件,諸如音頻/視頻播放器。
無線調(diào)制解調(diào)器860可被耦合至一個(gè)或多個(gè)天線(未示出),并且可支持處理器810與外置設(shè)備間的雙向通信,如本領(lǐng)域中充分理解的那樣。調(diào)制解調(diào)器860一般被示為并可包括例如用于通過移動(dòng)通信網(wǎng)絡(luò)804進(jìn)行長(zhǎng)程通信的蜂窩式調(diào)制解調(diào)器、可兼容藍(lán)牙的調(diào)制解調(diào)器864、或用于通過外置的配備有藍(lán)牙的設(shè)備或者本地的無線數(shù)據(jù)網(wǎng)絡(luò)或路由器來進(jìn)行短程通信的可兼容wi-fi的調(diào)制解調(diào)器862。無線調(diào)制解調(diào)器860一般被配置成與一個(gè)或多個(gè)蜂窩網(wǎng)絡(luò)(諸如gsm網(wǎng)絡(luò))通信,用于單個(gè)蜂窩網(wǎng)絡(luò)內(nèi)、多個(gè)蜂窩網(wǎng)絡(luò)之間、或者在移動(dòng)設(shè)備和公共交換電話網(wǎng)(pstn)之間的數(shù)據(jù)和語音通信。
移動(dòng)設(shè)備可進(jìn)一步包括至少一個(gè)輸入/輸出端口880、電源882、衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)884(諸如全球定位系統(tǒng)(gps)接收機(jī))、傳感器886(諸如,用于檢測(cè)設(shè)備800的方向和運(yùn)動(dòng)并用于接收姿勢(shì)命令來作為輸入的加速度計(jì)、陀螺儀或紅外鄰近傳感器)、收發(fā)機(jī)888(用于無線發(fā)射模擬或數(shù)字信號(hào))和/或物理連接器890,它可以是usb端口、ieee1394(火線)端口、和/或rs-232端口。所示的組件802不是必需的或所有都包括的,因?yàn)榭蓜h除所示的組件中的任何一個(gè)并可添加其他組件。
移動(dòng)設(shè)備可基于通過衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)884(例如,gps接收機(jī))接收到的信息來確定指示移動(dòng)設(shè)備的位置的位置數(shù)據(jù)。或者,移動(dòng)設(shè)備可以另一方式來確定指示移動(dòng)設(shè)備的位置的位置數(shù)據(jù)。例如,可以通過蜂窩網(wǎng)絡(luò)的各蜂窩塔之間的三角測(cè)量來確定移動(dòng)設(shè)備的位置。或者,可基于在移動(dòng)設(shè)備附近的wi-fi路由器的已知位置來確定移動(dòng)設(shè)備的位置。可以每秒鐘或以其他為基礎(chǔ)來更新位置數(shù)據(jù),這取決于實(shí)現(xiàn)和/或用戶設(shè)置。不管位置數(shù)據(jù)的源如何,移動(dòng)設(shè)備都可以向地圖導(dǎo)航工具提供位置數(shù)據(jù)以供在地圖導(dǎo)航中使用。
作為客戶端計(jì)算設(shè)備,移動(dòng)設(shè)備800可以向服務(wù)器計(jì)算設(shè)備(例如,搜索服務(wù)器、路由服務(wù)器等)發(fā)送請(qǐng)求,并且作為回報(bào)從服務(wù)器計(jì)算設(shè)備接收地圖圖像、距離、方向、其他地圖數(shù)據(jù)、搜索結(jié)果(例如,基于指定搜索區(qū)域內(nèi)的poi搜索的poi)或其他數(shù)據(jù)。
移動(dòng)設(shè)備800可以是實(shí)現(xiàn)環(huán)境的一部分,在實(shí)現(xiàn)環(huán)境中各種類型的服務(wù)(例如,計(jì)算服務(wù))是通過計(jì)算“云”來提供的。例如,云可包括可位于中央或是分布式的計(jì)算設(shè)備集,其向經(jīng)由諸如因特網(wǎng)等網(wǎng)絡(luò)連接的各種類型的用戶和設(shè)備提供基于云的服務(wù)。一些任務(wù)(例如,處理用戶輸入和呈現(xiàn)用戶界面)可在本地計(jì)算設(shè)備(例如,連接的設(shè)備)上執(zhí)行,而其他任務(wù)(例如,對(duì)將在后繼處理中使用的數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的加權(quán)和數(shù)據(jù)的排名)可在云中執(zhí)行。
雖然圖8示出了移動(dòng)設(shè)備800,但更一般地本文中描述的創(chuàng)新可以通過具有其他屏幕能力和設(shè)備形成因素的設(shè)備來實(shí)現(xiàn),諸如臺(tái)式計(jì)算機(jī)、電視屏幕或連接到電視機(jī)的設(shè)備(例如,機(jī)頂盒或游戲控制臺(tái))??捎稍仆ㄟ^服務(wù)提供商、或通過其他在線服務(wù)的提供商來提供服務(wù)。此外,由于本文中描述的技術(shù)可涉及音頻流傳輸,可能不需要或使用設(shè)備屏幕(在音頻/視頻內(nèi)容正被流傳輸?shù)骄哂幸曨l回放能力的多媒體端點(diǎn)設(shè)備時(shí)的實(shí)例中,可使用顯示器)。
圖9是可用于實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的示圖。計(jì)算系統(tǒng)900并不旨對(duì)使用范圍或功能提出任何限制,因?yàn)檫@些創(chuàng)新可以在不同的通用或?qū)S糜?jì)算系統(tǒng)中實(shí)現(xiàn)。
參考圖9,計(jì)算環(huán)境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或可用于儲(chǔ)存信息并可在計(jì)算系統(tǒng)900內(nèi)訪問的任何其他介質(zhì)。存儲(chǔ)器940存儲(chǔ)用于軟件980的指令,所述軟件980實(shí)現(xiàn)此處描述的一個(gè)或多個(gè)發(fā)明。
(諸)輸入設(shè)備950可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標(biāo)、筆或跟蹤球)、語音輸入設(shè)備、掃描設(shè)備或向計(jì)算系統(tǒng)900提供輸入的另一設(shè)備。對(duì)于視頻編碼,(諸)輸入設(shè)備950可以是相機(jī)、視頻卡、tv調(diào)諧卡或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備,或?qū)⒁曨l樣本讀入計(jì)算系統(tǒng)900的cd-rom或cd-rw。(諸)輸出設(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í)行指令(諸如包括在程序模塊中的在目標(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)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
圖10是可結(jié)合本文中描述的技術(shù)來使用的示例云計(jì)算環(huán)境。云計(jì)算環(huán)境1000包括云計(jì)算服務(wù)1010。云計(jì)算服務(wù)1010可包括各種類型的云計(jì)算資源,諸如計(jì)算機(jī)服務(wù)器、數(shù)據(jù)存儲(chǔ)倉庫、聯(lián)網(wǎng)資源等。云計(jì)算服務(wù)1010可集中式定位(例如,由公司或組織的數(shù)據(jù)中心提供)或分布式定位(例如,由位于不同位置(諸如不同數(shù)據(jù)中心)和/或位于不同城市或國家的各計(jì)算資源提供)。此外,云計(jì)算服務(wù)1010可實(shí)現(xiàn)rade工具102和本文描述的與反應(yīng)型代理定義生成和編輯有關(guān)的其它功能性。
云計(jì)算服務(wù)1010被各種類型的計(jì)算設(shè)備(例如客戶端計(jì)算設(shè)備)(諸如計(jì)算設(shè)備1020、1022和1024)使用。例如,計(jì)算設(shè)備(例如1020、1022和1024)可以是計(jì)算機(jī)(例如臺(tái)式或膝上型計(jì)算機(jī))、移動(dòng)設(shè)備(例如平板計(jì)算機(jī)或智能電話)、或其它類型的計(jì)算設(shè)備。例如,計(jì)算設(shè)備(例如1020、1022和1024)可利用云計(jì)算服務(wù)1010來執(zhí)行計(jì)算操作(例如,數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、反應(yīng)型代理定義生成和編輯等)。
出于介紹的目的,本詳細(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)而不同。
盡管以特定的順序次序描述所公開方法的一些的操作以便于方便呈現(xiàn),但應(yīng)當(dāng)理解,這一描述方式包含重排,除非以下提出的具體語言要求特定的次序。例如,順序描述的操作可以在一些情況下并行地重排或同時(shí)執(zhí)行。此外,為簡(jiǎn)潔起見,附圖可能不示出所公開的方法可以結(jié)合其他方法使用的各種方式。
所公開的方法中的任何方法可被實(shí)現(xiàn)為被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并在計(jì)算設(shè)備(例如任何可用計(jì)算設(shè)備,包括智能電話或其他包括計(jì)算硬件的移動(dòng)設(shè)備)上執(zhí)行的計(jì)算機(jī)可執(zhí)行指令或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是在計(jì)算環(huán)境內(nèi)可訪問的任何可用的有形介質(zhì)(例如,諸如dvd或cd之類的一個(gè)或多個(gè)光學(xué)介質(zhì)盤、易失性存儲(chǔ)器組件(諸如dram或sram)或非易失性存儲(chǔ)器組件(諸如閃存或硬件驅(qū)動(dòng)器))。作為示例并參考圖9,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括存儲(chǔ)器920和925以及存儲(chǔ)940。術(shù)語“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”不包括信號(hào)和載波。此外,術(shù)語“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”不包括通信連接(例如,970)。
用于實(shí)現(xiàn)所公開技術(shù)的計(jì)算機(jī)可執(zhí)行指令中的任一個(gè)以及在實(shí)現(xiàn)所公開的實(shí)施例期間創(chuàng)建和使用的任何數(shù)據(jù)可以被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(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)或者解決問題。
來自任何示例的技術(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)利要求書的范圍和精神來覆蓋。