以對(duì)話為目的的應(yīng)用抽象的制作方法

            文檔序號(hào):6601181閱讀:305來(lái)源:國(guó)知局
            專(zhuān)利名稱(chēng):以對(duì)話為目的的應(yīng)用抽象的制作方法
            技術(shù)領(lǐng)域
            本發(fā)明一般涉及執(zhí)行特殊應(yīng)用的編碼計(jì)算機(jī)。更具體地,本發(fā)明涉及多個(gè)控制,用于限定執(zhí)行識(shí)別和/或聽(tīng)覺(jué)提示的應(yīng)用,諸如產(chǎn)生由識(shí)別和/或聽(tīng)覺(jué)提示啟動(dòng)的客戶端標(biāo)記的服務(wù)器。
            背景技術(shù)
            在人們的日常生活中,諸如個(gè)人數(shù)字助理(PDA)、裝置和便攜式電話的小型計(jì)算裝置的使用不斷增加。隨著現(xiàn)在微處理器可用于運(yùn)行這些裝置的處理能力的提高,這些裝置的功能性也提高了,且在某些情況下合并了。例如,現(xiàn)在,許多便攜式電話可以被用于訪問(wèn)和瀏覽互聯(lián)網(wǎng),并可以被用于存儲(chǔ)諸如地址、電話號(hào)碼等的個(gè)人信息。
            從這些計(jì)算裝置被用于瀏覽互聯(lián)網(wǎng)或被用在其它服務(wù)器/客戶機(jī)結(jié)構(gòu)中來(lái)看,就有必要將信息輸入計(jì)算裝置。遺憾的是,由于要將這些裝置保持得盡量小以便容易攜帶,由于該計(jì)算裝置外殼上可用的表面面積受限,通常不可能用所有字母作為分開(kāi)按鈕的常規(guī)鍵盤(pán)。
            對(duì)于這一問(wèn)題,人們的興趣增加了,并采取用語(yǔ)音或話音經(jīng)諸如互聯(lián)網(wǎng)的廣域網(wǎng)存取信息。例如,諸如通過(guò)使用VoiceXML(語(yǔ)音擴(kuò)展標(biāo)記語(yǔ)言)的語(yǔ)音入口已經(jīng)發(fā)展到允許只用電話就訪問(wèn)互聯(lián)網(wǎng)內(nèi)容。該結(jié)構(gòu)中,文本服務(wù)器(例如,網(wǎng)絡(luò)服務(wù)器)處理經(jīng)VoiceXML解釋器來(lái)自客戶機(jī)的請(qǐng)求。網(wǎng)絡(luò)服務(wù)器可以回應(yīng)產(chǎn)生VoiceXML文本,用VoiceXML解釋器處理這些文本并出聲地反應(yīng)給用戶。通過(guò)語(yǔ)音識(shí)別的語(yǔ)音命令,用戶可以瀏覽網(wǎng)頁(yè)。
            通常,有“話音啟動(dòng)”信息或網(wǎng)絡(luò)內(nèi)容這兩種技術(shù)。在第一種技術(shù)中,現(xiàn)有通??梢杂糜酗@示器的裝置來(lái)看的視覺(jué)標(biāo)記語(yǔ)言頁(yè)被翻譯和反應(yīng)為聽(tīng)覺(jué)的。然而,因?yàn)閷?duì)視覺(jué)相互作用有意義的頁(yè)通常沒(méi)有足夠的信息來(lái)自動(dòng)產(chǎn)生可感知的聽(tīng)覺(jué)對(duì)話,所以這種方法的效果總是很差。另外,語(yǔ)音相互作用易于出錯(cuò),尤其是經(jīng)過(guò)諸如電話的有噪聲的信道時(shí)。不使用視覺(jué)或其它形式的持久反饋,用戶就會(huì)很難經(jīng)網(wǎng)絡(luò)服務(wù)器應(yīng)用程序來(lái)導(dǎo)航。因此這種方法要求諸如幫助信息的機(jī)制,這些機(jī)制也被出聲地反映給用戶以便幫助他們經(jīng)網(wǎng)站導(dǎo)航。這些機(jī)制通常稱(chēng)為“語(yǔ)音對(duì)話”,當(dāng)用戶響應(yīng)聽(tīng)覺(jué)的問(wèn)題而提供不正確的信息或不提供信息時(shí),它們也會(huì)出錯(cuò)。由于這些機(jī)制不是共同基于網(wǎng)頁(yè)的視覺(jué)內(nèi)容,不自動(dòng)產(chǎn)生這些機(jī)制,因而應(yīng)用程序開(kāi)發(fā)者通常要求大量的開(kāi)發(fā)時(shí)間。
            話音啟動(dòng)網(wǎng)絡(luò)內(nèi)容的第二種方法包括以新的語(yǔ)言編寫(xiě)特殊的語(yǔ)音頁(yè)。該種方法的優(yōu)勢(shì)是話音啟動(dòng)頁(yè)包含聽(tīng)覺(jué)對(duì)話所需的所有機(jī)制,如修復(fù)和導(dǎo)航幫助。然而,顯著的缺點(diǎn)是應(yīng)用程序頁(yè)就必須適于包括視覺(jué)內(nèi)容頁(yè)中的應(yīng)用邏輯。換句話說(shuō),視覺(jué)內(nèi)容頁(yè)的應(yīng)用邏輯必須以話音啟動(dòng)語(yǔ)言重寫(xiě)。甚至在用從相同標(biāo)準(zhǔn)產(chǎn)生視覺(jué)和聽(tīng)覺(jué)頁(yè)的工具使該過(guò)程自動(dòng)化時(shí),視覺(jué)和話音啟動(dòng)頁(yè)的保持通常難以同步。另外,該方法不易于允許多模態(tài)應(yīng)用,例如,在網(wǎng)頁(yè)上同時(shí)提供視覺(jué)和話音相互作用時(shí)。由于視覺(jué)頁(yè)和話音啟動(dòng)頁(yè)無(wú)關(guān),所以不易于輸入和輸出邏輯相互一致工作。
            到此為止,由于當(dāng)前用作接口的組織和格式,話音相互作用也很麻煩。通常,話音接口與應(yīng)用程序的商業(yè)邏輯聯(lián)系過(guò)緊,這制約了其它應(yīng)用程序中話音接口單元(element)的再利用,或者話音接口被過(guò)分簡(jiǎn)單的對(duì)話模式(例如,格式和字段)限制過(guò)死。
            因此,目前需要改善用于在應(yīng)用中提供話音識(shí)別的的結(jié)構(gòu)和方法,如服務(wù)器/客戶機(jī)結(jié)構(gòu),如互聯(lián)網(wǎng)。尤其是,需要針對(duì)上述一個(gè)、幾個(gè)或全部缺點(diǎn)的方法、系統(tǒng)或程序設(shè)計(jì)工具,以在應(yīng)用中提供產(chǎn)生話音啟動(dòng)識(shí)別和/或話音啟動(dòng)提示。

            發(fā)明內(nèi)容
            提供對(duì)網(wǎng)絡(luò)服務(wù)器的控制,以產(chǎn)生包括識(shí)別和/或聽(tīng)覺(jué)提示的客戶端標(biāo)記。這些控制包含諸如問(wèn)題、回答、確認(rèn)、命令或陳述的對(duì)話元素。一個(gè)模塊用這些控制攜帶的信息形成對(duì)話。
            每個(gè)控制在對(duì)話中起一個(gè)作用。例如,陳述控制被用來(lái)產(chǎn)生用于客戶機(jī)裝置的標(biāo)記以將信息呈現(xiàn)給用戶,同時(shí)詢問(wèn)控制產(chǎn)生用于客戶機(jī)裝置的標(biāo)記以便問(wèn)問(wèn)題?;卮鹂刂飘a(chǎn)生用于客戶機(jī)裝置的標(biāo)記以便用于識(shí)別的語(yǔ)法與涉及所問(wèn)的問(wèn)題的輸入字段關(guān)聯(lián)。如果識(shí)別結(jié)果是否正確不清楚的話,確認(rèn)控制可以被激活,產(chǎn)生標(biāo)記以確認(rèn)識(shí)別結(jié)果。命令控制產(chǎn)生允許用戶提供命令的標(biāo)記,否則產(chǎn)生對(duì)特定問(wèn)題的預(yù)期回答,這樣,允許用戶經(jīng)例如網(wǎng)絡(luò)服務(wù)器應(yīng)用程序?qū)Ш?。每個(gè)控制包括表示相關(guān)控制是否可以被激活的屬性。比如在客戶端執(zhí)行的模塊產(chǎn)生對(duì)話來(lái)征求或提供信息作為激活控制的功能。


            圖1是計(jì)算裝置操作環(huán)境的第一實(shí)施例的平面圖;圖2是圖1的計(jì)算裝置的框圖;圖3是通用計(jì)算機(jī)的框圖;圖4是用于客戶機(jī)/服務(wù)器系統(tǒng)的結(jié)構(gòu)的框圖;圖5是用于獲得信用卡信息的顯示;圖6是可以在具有顯示和語(yǔ)音識(shí)別能力的客戶端執(zhí)行的標(biāo)記語(yǔ)言示例頁(yè);圖7是說(shuō)明用于提供客戶端標(biāo)記中的識(shí)別和聽(tīng)覺(jué)提示的第一種方法框圖;圖8是說(shuō)明用于提供客戶端標(biāo)記中的識(shí)別和聽(tīng)覺(jué)提示的第二種方法框圖;圖9是說(shuō)明用于提供客戶端標(biāo)記中的識(shí)別和聽(tīng)覺(jué)提示的第三種方法框圖;圖10是說(shuō)明伴隨控制的框圖;圖11是說(shuō)明伴隨控制的詳細(xì)框圖。
            具體實(shí)施例方式
            在描述基于網(wǎng)絡(luò)的識(shí)別結(jié)構(gòu)和用于實(shí)現(xiàn)它的方法之前,描述該結(jié)構(gòu)中起作用的普通計(jì)算裝置會(huì)很有用?,F(xiàn)在參考圖1,30說(shuō)明了數(shù)據(jù)管理裝置(PIM,PDA等)的示例形式。然而,要知道本發(fā)明也可以利用下面的討論的其它計(jì)算裝置來(lái)實(shí)現(xiàn),尤其是,那些對(duì)于輸入按鈕等表面面積有限的計(jì)算裝置。例如,電話和/或數(shù)據(jù)管理裝置也可以從本發(fā)明受益。與已有便攜式個(gè)人計(jì)算機(jī)信息管理裝置和其它便攜式電子裝置相比,這種裝置實(shí)用性更強(qiáng),這種裝置的功能和小尺寸會(huì)更促使用戶隨時(shí)攜帶。因此,本文中描述的結(jié)構(gòu)的范圍不會(huì)被本文中所公開(kāi)說(shuō)明的示例數(shù)據(jù)管理或PIM裝置、電話或計(jì)算機(jī)所限制。
            數(shù)據(jù)管理移動(dòng)裝置30的示例形式如圖1所示。移動(dòng)裝置30包括外殼32和用戶接口,用戶接口包括顯示器34,它結(jié)合輸入筆33使用觸摸式顯示屏。輸入筆33用于在制定坐標(biāo)按壓或接觸顯示器34以便選擇區(qū)域,從而選擇性地移動(dòng)光標(biāo)的開(kāi)始位置,或者例如經(jīng)手勢(shì)或手寫(xiě)提供命令信息。或者(或另外),可以在裝置30上包括一個(gè)或多個(gè)按鈕35用于導(dǎo)航。另外,也可以提供諸如轉(zhuǎn)輪、滾子等的其它輸入機(jī)制。然而,應(yīng)當(dāng)注意,本發(fā)明不會(huì)被這些形式的輸入機(jī)制所限制。例如,其它形式的輸入可以包括視覺(jué)輸入,例如經(jīng)計(jì)算機(jī)視覺(jué)。
            現(xiàn)在參考圖2,框圖說(shuō)明了包含移動(dòng)裝置30的功能成分。中央處理單元(CPU)50實(shí)現(xiàn)軟件控制功能,CPU50與顯示器34連接以便根據(jù)出現(xiàn)在顯示器34上控制軟件產(chǎn)生的文本和圖標(biāo)。通常可以用數(shù)-模轉(zhuǎn)換器59將揚(yáng)聲器43連接到CPU50以便提供聽(tīng)覺(jué)輸出。用戶下載或輸入到移動(dòng)裝置30中的數(shù)據(jù)被存儲(chǔ)在非易失性讀/寫(xiě)隨機(jī)存取存儲(chǔ)器54中,非易失性讀/寫(xiě)隨機(jī)存取存儲(chǔ)器54雙向連接到CPU50。隨機(jī)存取存儲(chǔ)器(RAM)54提供用于由CPU50執(zhí)行的指令的易失性存儲(chǔ)和用于臨時(shí)數(shù)據(jù)的存儲(chǔ),諸如登記數(shù)據(jù)。配置選擇和其它變量的缺省值被存儲(chǔ)在只讀存儲(chǔ)器(ROM)58中。ROM58也可以被用于存儲(chǔ)操作系統(tǒng)軟件,操作系統(tǒng)軟件用于控制移動(dòng)裝置30的基本功能和其它操作系統(tǒng)核芯函數(shù)(例如將軟件成分安裝到RAM54中)。
            RAM54也起用于代碼存儲(chǔ)的作用,其方式類(lèi)似于PC上用于存儲(chǔ)應(yīng)用程序的硬驅(qū)的功能。應(yīng)當(dāng)注意,雖然非易失性存儲(chǔ)器被用于存儲(chǔ)代碼,但是,它也可被存儲(chǔ)在不用于執(zhí)行這些代碼的易失性存儲(chǔ)器中。
            可以用移動(dòng)裝置經(jīng)無(wú)線收發(fā)信機(jī)52發(fā)射/接收無(wú)線信號(hào),無(wú)線收發(fā)信機(jī)52與CPU50連接。也可以按需要提供選擇通信接口60來(lái)直接從計(jì)算機(jī)(例如臺(tái)式計(jì)算機(jī))或從有線網(wǎng)絡(luò)下載數(shù)據(jù)。因此,接口60可以包含多種形式的通信裝置,例如紅外鏈路、調(diào)制解調(diào)器、網(wǎng)卡等。
            移動(dòng)裝置30包括麥克風(fēng)29、模-數(shù)(A/D)轉(zhuǎn)換器37和存儲(chǔ)在存儲(chǔ)54中的選擇識(shí)別程序(話音,DTMF,手寫(xiě),手勢(shì)或計(jì)算機(jī)視覺(jué))。用實(shí)例的方式,響應(yīng)聽(tīng)覺(jué)信息,來(lái)自裝置30、麥克風(fēng)29的指令或命令提供話音信號(hào),話音信號(hào)被A/D轉(zhuǎn)換器37數(shù)字化。話音識(shí)別程序可以執(zhí)行對(duì)數(shù)字化的話音信號(hào)執(zhí)行標(biāo)準(zhǔn)化和/或特征提取以獲得中間話音識(shí)別結(jié)果。利用無(wú)線收發(fā)信機(jī)52或通信接口60,話音數(shù)據(jù)可以被發(fā)射到下面要討論的遠(yuǎn)端識(shí)別服務(wù)器204,如圖5的結(jié)構(gòu)所示。然后將識(shí)別結(jié)果回復(fù)到移動(dòng)裝置30以反映(例如視覺(jué)和/或聽(tīng)覺(jué))在上面,最后發(fā)射到網(wǎng)絡(luò)服務(wù)器202(圖5),其中,網(wǎng)絡(luò)服務(wù)器202和移動(dòng)裝置30以客戶機(jī)/服務(wù)器關(guān)系操作。類(lèi)似的處理可以被用于其它形式的輸入。例如,可以經(jīng)或不經(jīng)裝置30上的預(yù)處理而將手寫(xiě)輸入數(shù)字化。象話音數(shù)據(jù)那樣,可以將該形式的輸入發(fā)射到識(shí)別服務(wù)器204用于識(shí)別,其中,將識(shí)別結(jié)果回復(fù)到裝置30和/或網(wǎng)絡(luò)服務(wù)器202中的至少一個(gè)。類(lèi)似地,DTMF數(shù)據(jù)、手勢(shì)數(shù)據(jù)和視覺(jué)數(shù)據(jù)可以進(jìn)行類(lèi)似地處理。按輸入形式,裝置30(和下面要討論的其它形式客戶機(jī))應(yīng)包括必要的硬件,如用于視覺(jué)輸入的照相機(jī)。
            除了上述便攜式或移動(dòng)計(jì)算裝置,要知道,可以用諸如普通臺(tái)式計(jì)算機(jī)的其它計(jì)算裝置來(lái)利用本發(fā)明。例如,當(dāng)諸如全字母數(shù)字鍵盤(pán)的常規(guī)輸入裝置難以操作時(shí),本發(fā)明會(huì)允許具有物理能力的用戶向計(jì)算機(jī)或其它裝置輸入或送入文本。
            本發(fā)明也可以用多種其它通用計(jì)算機(jī)或?qū)S糜?jì)算系統(tǒng)環(huán)境或結(jié)構(gòu)來(lái)操作。適用于本發(fā)明的周知計(jì)算系統(tǒng)、環(huán)境和/或結(jié)構(gòu)的實(shí)例包括(但不限于)無(wú)線或蜂窩電話、常規(guī)電話(無(wú)屏幕)、個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或手提式裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、電視機(jī)頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何上述系統(tǒng)或裝置的分布式計(jì)算環(huán)境等。
            下文是對(duì)圖3所示通用計(jì)算機(jī)120的簡(jiǎn)要描述。然而,計(jì)算機(jī)120也只是適當(dāng)?shù)挠?jì)算環(huán)境的一個(gè)實(shí)例而不是限制本發(fā)明的使用范圍或功能。計(jì)算機(jī)120也不應(yīng)被看作是與本文中所述的任何成分或其組合有關(guān)的從屬性或要求。
            可以在計(jì)算機(jī)可執(zhí)行指令的普通前后關(guān)系下描述本發(fā)明,計(jì)算機(jī)可執(zhí)行指令如計(jì)算機(jī)可執(zhí)行的程序模塊。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、成分、數(shù)據(jù)結(jié)構(gòu)等。也可以在經(jīng)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)端處理裝置執(zhí)行任務(wù)的分布計(jì)算環(huán)境下實(shí)踐本發(fā)明。在分布計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)裝置的本地和遠(yuǎn)端計(jì)算機(jī)存儲(chǔ)媒體中。下面結(jié)合附圖描述程序和模塊所執(zhí)行的任務(wù)。本領(lǐng)域的技術(shù)人員可以將描述和圖作為處理器可執(zhí)行指令來(lái)實(shí)現(xiàn),處理器可執(zhí)行指令可以被寫(xiě)在任何形式的計(jì)算機(jī)可讀媒體上。
            參考圖3,計(jì)算機(jī)120的部件包括(但不限于)處理單元140、系統(tǒng)存儲(chǔ)器150和將包括系統(tǒng)存儲(chǔ)器的多個(gè)系統(tǒng)部件連接到處理單元140的系統(tǒng)總線141。系統(tǒng)總線141可以是以下幾種類(lèi)型總線中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外設(shè)總線和利用多種總線結(jié)構(gòu)中任何一種的局域總線。用實(shí)例的方式而不是限制本發(fā)明,這種結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、通用串行總線(USB)、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)總線和外設(shè)部件互連(PCI)總線,它也稱(chēng)為中層總線。計(jì)算機(jī)120通常包括多個(gè)計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能用計(jì)算機(jī)120訪問(wèn)的任何一種介質(zhì),包括易失性和非易失性的介質(zhì)、可移動(dòng)或不可移動(dòng)媒體。用實(shí)例的方式而不是限制本發(fā)明,計(jì)算機(jī)可讀介質(zhì)可以包含計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)媒體包括以用于存儲(chǔ)信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì),信息諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不限于)RAM、ROM、EEPROM、閃存存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多用途光盤(pán)(DVD)或其它光盤(pán)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁性存儲(chǔ)裝置或可以用于存儲(chǔ)預(yù)期信息和可被計(jì)算機(jī)120訪問(wèn)的任何其它介質(zhì)。
            通信媒體通常體現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳送機(jī)制的調(diào)制后數(shù)據(jù)信號(hào)中的其它數(shù)據(jù),并包括任何信息傳送媒體。術(shù)語(yǔ)“調(diào)制后數(shù)據(jù)信號(hào)”的意思是為了編碼信號(hào)中的信息而設(shè)定或改變了一個(gè)或多個(gè)信號(hào)特性的信號(hào)。用實(shí)例的方式而不是限制本發(fā)明,通信媒體包括諸如有線網(wǎng)絡(luò)或直接線連接的有線介質(zhì)、諸如聲、FR、紅外的無(wú)線介質(zhì)和其它無(wú)線介質(zhì)。上述任何一種的組合也可以包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
            系統(tǒng)存儲(chǔ)器150包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)151和隨機(jī)存取存儲(chǔ)器(RAM)152。包含基本例程的基本輸入/輸出系統(tǒng)153(BIOS)通常存儲(chǔ)在ROM151中,基本例程有助于例如在起動(dòng)時(shí)在計(jì)算機(jī)120的元件之間傳送信息。RAM152通常包含用處理單元140立即訪問(wèn)和/或即時(shí)操作的數(shù)據(jù)和/或程序模塊。用實(shí)例的方式而不是限制本發(fā)明,圖3說(shuō)明了操作系統(tǒng)54、應(yīng)用程序155、其它程序模塊156和程序數(shù)據(jù)157。
            計(jì)算機(jī)120也可包括其它可移動(dòng)/不可移動(dòng)易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。只用實(shí)例方式,圖3說(shuō)明了從不可移動(dòng)、非易失性磁性介質(zhì)讀取或向其寫(xiě)入的硬盤(pán)驅(qū)動(dòng)器161,從可移動(dòng)、非易失性磁盤(pán)172讀取或向其寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器172,和從諸如CD-ROM或其它光學(xué)介質(zhì)的可移動(dòng)、非易失性光盤(pán)176讀取或向其寫(xiě)入的光盤(pán)驅(qū)動(dòng)器175。其它可以在示例操作環(huán)境下使用的可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不限于)盒式磁帶、閃存存儲(chǔ)卡、數(shù)字多用途光盤(pán)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤(pán)驅(qū)動(dòng)器161通常經(jīng)諸如接口160的不可移動(dòng)存儲(chǔ)接口與系統(tǒng)總線141連接,磁盤(pán)驅(qū)動(dòng)器171和光盤(pán)驅(qū)動(dòng)器175通常用諸如接口170的可移動(dòng)存儲(chǔ)接口與系統(tǒng)總線141連接。
            圖3中說(shuō)明的上述驅(qū)動(dòng)器和與它們相關(guān)的計(jì)算機(jī)存儲(chǔ)媒體提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和由于計(jì)算機(jī)120的其它數(shù)據(jù)。圖3中,例如,硬盤(pán)驅(qū)動(dòng)器161被示為存儲(chǔ)操作系統(tǒng)164、應(yīng)用程序165、其它程序模塊166和程序數(shù)據(jù)167。注意,這些部件可以與操作系統(tǒng)154、應(yīng)用程序155、其它程序模塊156和程序數(shù)據(jù)157相同或不同。這里,操作系統(tǒng)164、應(yīng)用程序165、其它程序模塊166和程序數(shù)據(jù)167被給予不同的數(shù)字以便說(shuō)明它們至少是不同的拷貝。
            用戶可以經(jīng)諸如鍵盤(pán)182、麥克風(fēng)183和定點(diǎn)設(shè)備181(如鼠標(biāo),跟蹤球或觸摸墊)的輸入裝置向計(jì)算機(jī)120輸入命令和信息。其它輸入裝置(沒(méi)畫(huà))可以包括游戲操縱桿、游戲墊、圓盤(pán)式衛(wèi)星電視天線、掃描儀等。這些和其它輸入裝置常經(jīng)與系統(tǒng)總線連接的用戶輸入接口180連接到處理單元140,但是,可以用諸如并行端口、游戲端口或通用串行總線(USB)的其它接口和總線結(jié)構(gòu)來(lái)連接。監(jiān)視器185或其它類(lèi)型的顯示裝置也經(jīng)諸如視頻接口185的接口與系統(tǒng)總線141連接。除了監(jiān)視器,計(jì)算機(jī)也可以包括其它外設(shè)輸出裝置,如揚(yáng)聲器187和打印機(jī)186,它們可經(jīng)輸出外部接口188來(lái)連接。
            計(jì)算機(jī)120可以在利用與諸如遠(yuǎn)端計(jì)算機(jī)194的一個(gè)或多個(gè)遠(yuǎn)端計(jì)算機(jī)邏輯連接的網(wǎng)絡(luò)環(huán)境下操作。遠(yuǎn)端計(jì)算機(jī)194可以是個(gè)人計(jì)算機(jī)、手持裝置、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等裝置或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括與計(jì)算機(jī)120有關(guān)的上述多個(gè)和所有元件。圖3中描繪的邏輯連接包括局域網(wǎng)(LAN)191和廣域網(wǎng)(WAN)193,但是也可以包括其它網(wǎng)絡(luò)。這種網(wǎng)絡(luò)環(huán)境在辦公室里、企業(yè)計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)部網(wǎng)絡(luò)和互聯(lián)網(wǎng)中很常見(jiàn)。
            當(dāng)用在LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)120經(jīng)網(wǎng)絡(luò)接口或適配器190與LAN191連接。當(dāng)用在WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)120通常包括調(diào)制解調(diào)器192或用于經(jīng)諸如互聯(lián)網(wǎng)的WAN193建立通信的其它裝置。內(nèi)置或外置的調(diào)制解調(diào)器192可以經(jīng)用戶輸入接口180或其它適當(dāng)機(jī)制與系統(tǒng)總線141連接。在網(wǎng)絡(luò)環(huán)境中,所描繪的關(guān)于計(jì)算機(jī)120的程序模塊或其多個(gè)部分可以存儲(chǔ)在遠(yuǎn)端存儲(chǔ)器存儲(chǔ)裝置中。用實(shí)例的方式而不是限制本發(fā)明,圖3說(shuō)明了位于遠(yuǎn)端計(jì)算機(jī)194上的遠(yuǎn)端應(yīng)用程序195。要注意,所示的網(wǎng)絡(luò)連接是示例性的,可以使用在多個(gè)計(jì)算機(jī)之間建立通信鏈接的其它裝置。
            示例結(jié)構(gòu)圖4說(shuō)明了可以使用本發(fā)明的用于基于網(wǎng)絡(luò)的識(shí)別的結(jié)構(gòu)200。通常,可以通過(guò)移動(dòng)裝置30(本文中也表示根據(jù)所要求的輸入形式具有顯示屏幕、麥克風(fēng)、照相機(jī)、觸摸感知面板等其它形式的計(jì)算裝置)、或通過(guò)電話80訪問(wèn)存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器202中的信息,其中,響應(yīng)按鍵聽(tīng)覺(jué)地或通過(guò)電話80產(chǎn)生的音調(diào)請(qǐng)求信息,且其中,只將來(lái)自網(wǎng)絡(luò)服務(wù)器202的信息聽(tīng)覺(jué)地供回給用戶。
            本示例實(shí)施例中,結(jié)構(gòu)200被統(tǒng)一為通過(guò)利用話音識(shí)別的裝置30還是電話80獲得信息,單個(gè)識(shí)別服務(wù)器204可以支持兩種操作模式中的任何一種。另外,結(jié)構(gòu)200用周知的標(biāo)記語(yǔ)言(例如,HTML,XHTML,cHTML,XML,WML等)的擴(kuò)展來(lái)操作。因此,也可以用這些標(biāo)記語(yǔ)言中周知的GUI方法來(lái)訪問(wèn)存儲(chǔ)網(wǎng)絡(luò)服務(wù)器202上的信息。用周知的標(biāo)記語(yǔ)言的擴(kuò)展,易于在網(wǎng)絡(luò)服務(wù)器202上編寫(xiě),現(xiàn)有的法定應(yīng)用易于被修改成包括語(yǔ)音或其它形式的識(shí)別。
            通常,裝置30執(zhí)行網(wǎng)絡(luò)服務(wù)器202提供的HTML+腳本等。當(dāng)要求語(yǔ)音識(shí)別時(shí),用實(shí)例的方式,將話音數(shù)據(jù)提供給具有語(yǔ)法或語(yǔ)言模型指示的識(shí)別服務(wù)器204以在話音識(shí)別期間使用,該話音數(shù)據(jù)可以被數(shù)據(jù)化成音頻信號(hào)或話音特征,其中音頻信號(hào)已經(jīng)被裝置30進(jìn)行了上述預(yù)處理??梢圆扇《喾N形式實(shí)現(xiàn)識(shí)別服務(wù)器204,說(shuō)明了其中之一,但是通常包括識(shí)別器211。如果是預(yù)期的或適當(dāng)?shù)脑捑蛯⒆R(shí)別結(jié)果供回給裝置30用于局部反映。通過(guò)識(shí)別和可能用到的圖形用戶界面匯編之后,裝置30將所有信息發(fā)送到網(wǎng)絡(luò)服務(wù)器202用于處理和接收其它HTML腳本,如果需要的話。
            如圖4所述,裝置30、網(wǎng)絡(luò)服務(wù)器202和識(shí)別服務(wù)器204公共連接,且可通過(guò)網(wǎng)絡(luò)205在諸如互聯(lián)網(wǎng)的廣域網(wǎng)中分別尋址。因而這些裝置不必在物理上都相互接近。尤其是,網(wǎng)絡(luò)服務(wù)器202不必包括識(shí)別服務(wù)器204。以這種方式,在網(wǎng)絡(luò)服務(wù)器202的編寫(xiě)可以集中在應(yīng)用上,編寫(xiě)者不用知道識(shí)別服務(wù)器204的復(fù)雜結(jié)構(gòu)。相反,識(shí)別服務(wù)器204可以被獨(dú)立設(shè)計(jì)和連接到網(wǎng)絡(luò)205,因而,不要求再對(duì)網(wǎng)絡(luò)服務(wù)器202進(jìn)行改變來(lái)更新和改善識(shí)別服務(wù)器204。如下所述,網(wǎng)絡(luò)服務(wù)器202也可以包括可以動(dòng)態(tài)產(chǎn)生客戶端標(biāo)記和腳本的編寫(xiě)機(jī)制。在另一實(shí)施例中,可以根據(jù)實(shí)現(xiàn)機(jī)器的性能將網(wǎng)絡(luò)服務(wù)器202、識(shí)別服務(wù)器204和客戶機(jī)30組合起來(lái)。例如,如果客戶機(jī)包含通用計(jì)算機(jī),例如個(gè)人計(jì)算機(jī),客戶機(jī)可以包括識(shí)別服務(wù)器204。類(lèi)似地,按需要,網(wǎng)絡(luò)服務(wù)器202和識(shí)別服務(wù)器204可以被包括在一個(gè)機(jī)器中。
            通過(guò)電話80對(duì)網(wǎng)絡(luò)服務(wù)器202的訪問(wèn)包括將電話80連接到有線或無(wú)線電話網(wǎng)絡(luò)208,再將電話80連接到第三方網(wǎng)關(guān)210。網(wǎng)關(guān)210將電話80連接到電話語(yǔ)音瀏覽器212。電話語(yǔ)音瀏覽器212包括媒體服務(wù)器214,媒體服務(wù)器214提供電話接口和語(yǔ)音瀏覽器216。象裝置30那樣,電話語(yǔ)音瀏覽器212從網(wǎng)絡(luò)服務(wù)器202接收HTML腳本等。在一個(gè)實(shí)施例中,HTML腳本是類(lèi)似于被提供給裝置30的HTML腳本的形式。以這種方式,網(wǎng)絡(luò)服務(wù)器202不需分別支持裝置30和電話80,或者分別支持標(biāo)準(zhǔn)GUI客戶機(jī)。甚至可以使用普通標(biāo)記語(yǔ)言。另外,象裝置30那樣,例如,用TCP/IP,來(lái)自電話80發(fā)送的聽(tīng)覺(jué)信號(hào)的語(yǔ)音識(shí)別被通過(guò)網(wǎng)絡(luò)205或?qū)S镁€路207從語(yǔ)音瀏覽器216提供給識(shí)別服務(wù)器204。網(wǎng)絡(luò)服務(wù)器202、識(shí)別服務(wù)器204和電話語(yǔ)音瀏覽器212可以體現(xiàn)在任何適當(dāng)?shù)挠?jì)算環(huán)境中,如圖3所示的普通目的臺(tái)式計(jì)算機(jī)。
            然而,應(yīng)當(dāng)注意,如果利用DTMF識(shí)別,通常在媒體服務(wù)器214而不是在識(shí)別服務(wù)器204執(zhí)行這種形式的識(shí)別。換句話說(shuō),DTMF語(yǔ)法要用媒體服務(wù)器214來(lái)使用。
            再看圖4,網(wǎng)絡(luò)服務(wù)器202可以包括服務(wù)器端插件編寫(xiě)工具或模塊209(例如,微軟公司的ASP、ASP+、ASP.Net,JSP,Javabeans等)。服務(wù)器端插件209可以動(dòng)態(tài)產(chǎn)生客戶端標(biāo)記、甚至用于訪問(wèn)網(wǎng)絡(luò)服務(wù)器202的客戶機(jī)類(lèi)型的特殊形式標(biāo)記。隨著客戶機(jī)/服務(wù)器關(guān)系的建立,客戶機(jī)信息可以被提供給網(wǎng)絡(luò)服務(wù)器202,或者網(wǎng)絡(luò)服務(wù)器202可以包括模塊或例程來(lái)檢測(cè)客戶機(jī)裝置的性能。以這種方式,服務(wù)器端插件209可以產(chǎn)生用于每個(gè)語(yǔ)音識(shí)別場(chǎng)景的客戶端標(biāo)記,即,只通過(guò)電話80或用于裝置30的多模態(tài)語(yǔ)音。用恒定客戶端模型,用于多個(gè)不同的客戶機(jī)的應(yīng)用編寫(xiě)顯然更容易了。
            除了動(dòng)態(tài)產(chǎn)生客戶端標(biāo)記之外,可以將下述高級(jí)對(duì)話模塊作為存儲(chǔ)在存儲(chǔ)器211中的服務(wù)器端控制來(lái)實(shí)現(xiàn),供開(kāi)發(fā)者在應(yīng)用編寫(xiě)時(shí)使用。通常,高級(jí)對(duì)話模塊211會(huì)根據(jù)開(kāi)發(fā)者指定的參數(shù)在純語(yǔ)音和多模態(tài)場(chǎng)景中都動(dòng)態(tài)產(chǎn)生客戶端標(biāo)記和腳本。高級(jí)對(duì)話模塊211可以包括多個(gè)參數(shù)以產(chǎn)生客戶端標(biāo)記來(lái)符合開(kāi)發(fā)者的需要。
            示例客戶端擴(kuò)展描述本發(fā)明所注重的客戶端腳本的動(dòng)態(tài)產(chǎn)生之前,先討論對(duì)基于網(wǎng)絡(luò)的識(shí)別用使用的標(biāo)記語(yǔ)言的示例形式的擴(kuò)展是會(huì)有幫助的。
            如上所述,諸如HTML、XHTML、cHTML、XML、WML或其它SGML-派生標(biāo)記的標(biāo)記語(yǔ)言被擴(kuò)展為包括多個(gè)控制和/或在客戶機(jī)/服務(wù)器結(jié)構(gòu)中提供識(shí)別的對(duì)象,這些標(biāo)記語(yǔ)言用于網(wǎng)絡(luò)服務(wù)器202和客戶機(jī)裝置30之間的相互作用。通常,多個(gè)控制和/或多個(gè)對(duì)象可以包括一個(gè)或多個(gè)下述功能用于識(shí)別器構(gòu)成的識(shí)別器控制和/或?qū)ο?,識(shí)別器執(zhí)行和/或后處理;用于合成器構(gòu)成和即時(shí)播放的合成器控制和/或?qū)ο螅挥糜谥付ㄝ斎胝Z(yǔ)法源的語(yǔ)法控制和/或?qū)ο?;?或用于處理識(shí)別結(jié)果的捆綁控制和/或?qū)ο?。擴(kuò)展被設(shè)計(jì)成輕權(quán)標(biāo)記層,它向現(xiàn)有標(biāo)記語(yǔ)言添加聽(tīng)覺(jué)、視覺(jué)、手寫(xiě)等接口能力。這樣,擴(kuò)展可以仍獨(dú)立于它們所在的高級(jí)頁(yè),例如HTML;低級(jí)格式,擴(kuò)展用它來(lái)參考語(yǔ)言資源,例如文本-話音和語(yǔ)法格式;和被用在識(shí)別服務(wù)器204中的識(shí)別和話音合成平臺(tái)的單獨(dú)性質(zhì)。雖然下面討論了話音識(shí)別,但是,要知道,下文要描述的技術(shù)、標(biāo)簽(tag)和服務(wù)器控制可以被類(lèi)似地應(yīng)用在手寫(xiě)識(shí)別、手勢(shì)識(shí)別和圖像識(shí)別中。
            在示例實(shí)施例中,擴(kuò)展(也就是“標(biāo)簽”)是一小組具有相關(guān)屬性和DOM對(duì)象性質(zhì)的XML元素、事件和方法,可以結(jié)合源標(biāo)記文檔使用這些方法來(lái)將識(shí)別和/或聽(tīng)覺(jué)提示接口、DTMF或調(diào)入控制應(yīng)用于源頁(yè)(source page)。擴(kuò)展的格式和語(yǔ)義于源文檔的本質(zhì)無(wú)關(guān),所以擴(kuò)展可以被等效地用在HTML、SHTML、cHTML、XML、WML或其它任何SGML-派生標(biāo)記中。擴(kuò)展遵循文檔對(duì)象模型,其中提供了可以被分級(jí)的新的功能對(duì)象或元素。在附錄中詳細(xì)討論了每個(gè)元素,但是,通常元素可以包括屬性、性質(zhì)、方法、事件和/或其它“子”元素。
            這時(shí),也應(yīng)當(dāng)注意,可以根據(jù)執(zhí)行瀏覽的裝置的性能用兩種不同的“模式”解釋擴(kuò)展。第一模式,即“對(duì)象模式”下,可以使用完全性能。由應(yīng)用進(jìn)行的擴(kuò)展的綱領(lǐng)性操縱被裝置上的瀏覽器啟動(dòng)的任何機(jī)制所執(zhí)行,這些機(jī)制例如XHTML瀏覽器中的Jscript解釋器、或WML瀏覽器中的WMLScript解釋器。因此,只需要定義一小組擴(kuò)展的核芯特性和方法,這些被任何綱領(lǐng)性(programmatic)機(jī)制所操縱的性質(zhì)和方法位于裝置或客戶端。對(duì)象模式提供了事件和腳本,并可提供更強(qiáng)的功能以經(jīng)話音相互作用給予對(duì)話編寫(xiě)者更精細(xì)的客戶端控制。如本文中所用的那樣,支持完全事件和腳本的瀏覽器被稱(chēng)為“上級(jí)瀏覽器”。這種形式的瀏覽器支持?jǐn)U展的所有屬性、性質(zhì)、方法和事件。上級(jí)瀏覽器常見(jiàn)于具有更強(qiáng)處理能力的裝置中。
            也可以在“聲明性(declarative)模式”下執(zhí)行擴(kuò)展。如本文中所用的那樣,以宣言模式操作的瀏覽器被稱(chēng)為“下級(jí)瀏覽器”,且不支持完全事件和腳本能力。相反,這一形式的瀏覽器支持給定擴(kuò)展的聲明性方面(即核芯元素和屬性),但是不支持所有DOM(文檔對(duì)象模式)對(duì)象性質(zhì)、方法和事件。該模式利用專(zhuān)用的聲明性語(yǔ)法,還可以結(jié)合諸如SMIL(同步多媒體集成語(yǔ)言)2.0的聲明性多媒體同步和同位機(jī)制(同步標(biāo)記語(yǔ)言)來(lái)使用。下級(jí)瀏覽器常見(jiàn)于處理能力有限的裝置中。
            這時(shí),應(yīng)討論一種特殊的進(jìn)入模式。尤其是,使用話音識(shí)別時(shí)結(jié)合至少一個(gè)顯示器且在另一實(shí)施例中還結(jié)合定位設(shè)備是很有用的,定位設(shè)備能協(xié)調(diào)多種輸入模式,例如指示數(shù)據(jù)進(jìn)入的區(qū)域。具體地說(shuō),這一數(shù)據(jù)進(jìn)入模式下,用戶通常能協(xié)調(diào)定位設(shè)備和話音輸入的作用,所以,例如用戶在選擇區(qū)域和提供與該區(qū)域有關(guān)的相應(yīng)信息時(shí)是受控制的。例如,圖5說(shuō)明了信用卡提交圖形用戶界面(GUI),用戶可以先決定在區(qū)域252中輸入信用卡號(hào)再在區(qū)域254中輸入到期日。類(lèi)似地,用戶可以回到區(qū)域252并修改錯(cuò)誤的輸入,如果需要的話。當(dāng)與話音識(shí)別結(jié)合時(shí),提供了一種簡(jiǎn)易和自然的導(dǎo)航形式。如本文中所用的那樣,這一同時(shí)使用屏幕顯示和識(shí)別的輸入形式被稱(chēng)為“多模態(tài)”,屏幕顯示允許定位設(shè)備在屏幕上自由形式的作用,例如選擇。
            參考圖6,說(shuō)明HTML標(biāo)記語(yǔ)言代碼。HTML代碼包括主體部分270和腳本部分272。在每個(gè)區(qū)域250、252和254中的信息輸入分別由代碼部分280、282或284來(lái)控制或執(zhí)行。先參考代碼部分280,例如用裝置30的輸入筆在區(qū)域250上選擇時(shí),啟動(dòng)了事件“onClick”,它在腳本部分272中調(diào)入或執(zhí)行“談話”。該作用激活了用于話音識(shí)別的語(yǔ)法,該話音識(shí)別與區(qū)域250中的通常預(yù)期數(shù)據(jù)類(lèi)型有關(guān)。這一包括一種以上輸入技術(shù)(例如語(yǔ)音和筆點(diǎn)/滾子)類(lèi)型的相互作用稱(chēng)為“多模態(tài)”。
            現(xiàn)在再返回語(yǔ)法,該語(yǔ)法是諸如上下文無(wú)關(guān)語(yǔ)法、N-語(yǔ)法或混合語(yǔ)法的合成語(yǔ)法,但不限于這些。(當(dāng)然,當(dāng)利用相應(yīng)形式的識(shí)別時(shí)會(huì)使用DTMF語(yǔ)法、手寫(xiě)語(yǔ)法、手勢(shì)語(yǔ)法和圖像語(yǔ)法。如本文中所用的那樣,“語(yǔ)法”包括用于執(zhí)行識(shí)別的信息;在另一實(shí)施例中還包括相應(yīng)于預(yù)期輸入的信息,例如,在特殊區(qū)域中)。控制290(本文中識(shí)別為“reco”)包括多個(gè)元素,說(shuō)明了它們中的兩個(gè),即語(yǔ)法元素“語(yǔ)法”和“聯(lián)編”元素。通常,象從網(wǎng)絡(luò)服務(wù)器202下載到客戶機(jī)的代碼那樣,可以在網(wǎng)絡(luò)服務(wù)器202產(chǎn)生語(yǔ)法并被下載到客戶機(jī)和/或傳給用于話音處理的遠(yuǎn)端服務(wù)器。然后,語(yǔ)法可以被局部存儲(chǔ)在高速緩存中。結(jié)果,將語(yǔ)法提供給識(shí)別服務(wù)器204,在識(shí)別中使用。語(yǔ)法元素被用于指定語(yǔ)法,內(nèi)聯(lián)或用屬性來(lái)參考。
            一從相應(yīng)于所識(shí)別的話音的識(shí)別服務(wù)器204收到識(shí)別結(jié)果,就提供手寫(xiě)、手勢(shì)、圖像等語(yǔ)法的reco控制290來(lái)接收相應(yīng)結(jié)果和使它與相應(yīng)區(qū)域關(guān)聯(lián),該區(qū)域可包括顯示器34上反映的文本。在所說(shuō)明的實(shí)施例中,一用被發(fā)回到客戶機(jī)的結(jié)果完成話音識(shí)別,就使reco對(duì)象無(wú)效并將所識(shí)別的文本與相應(yīng)區(qū)域關(guān)聯(lián)。部分282和284的操作類(lèi)似,其中為每個(gè)區(qū)域252和254調(diào)入唯一的reco對(duì)象和語(yǔ)法,并隨著收到所識(shí)別的文本使每個(gè)區(qū)域252和254相關(guān)聯(lián)。對(duì)應(yīng)于卡號(hào)區(qū)域252的接收,功能“handle”對(duì)應(yīng)卡類(lèi)型檢查卡號(hào)的長(zhǎng)度。
            客戶端標(biāo)記的產(chǎn)生如上所述,當(dāng)從客戶機(jī)裝置30發(fā)出請(qǐng)求時(shí),服務(wù)器端插件209輸出客戶端標(biāo)記。簡(jiǎn)言之,服務(wù)器端插件209允許網(wǎng)站,從而允許定義和構(gòu)建應(yīng)用和應(yīng)用所提供的服務(wù)。服務(wù)器端插件209中的指令由編譯代碼構(gòu)成。當(dāng)網(wǎng)絡(luò)請(qǐng)求到達(dá)網(wǎng)絡(luò)服務(wù)器202時(shí)運(yùn)行該代碼。然后,服務(wù)器端插件209輸出新的客戶端標(biāo)記頁(yè),該頁(yè)被發(fā)送到客戶機(jī)裝置30。眾所周知,該過(guò)程常被稱(chēng)為反映。服務(wù)器端插件209對(duì)“控制”進(jìn)行操作,該“控制”抽象和壓縮了標(biāo)記語(yǔ)言,從而抽象和壓縮了客戶端標(biāo)記頁(yè)代碼。這種抽象和壓縮標(biāo)記語(yǔ)言并在網(wǎng)絡(luò)服務(wù)器202上操作的的控制包括或相當(dāng)于“服務(wù)器插件”或“服務(wù)器端插件”等幾例。
            已知,已有技術(shù)的服務(wù)器端插件可以為視覺(jué)反映和與客戶機(jī)裝置30的相互作用產(chǎn)生客戶端標(biāo)記。本說(shuō)明書(shū)提供了3個(gè)不同種方法,用于擴(kuò)展服務(wù)器端插件209以包括識(shí)別和聽(tīng)覺(jué)提示擴(kuò)展,如上面討論的示例客戶端擴(kuò)展,它們也分為本發(fā)明的幾個(gè)方面。圖7示意性說(shuō)明了第一種方法,當(dāng)前的視覺(jué)服務(wù)器端控制(包括用于視覺(jué)顯示的參數(shù),諸如反映的位置、字體、前景顏色、背景顏色等)被擴(kuò)展為包括用于識(shí)別的參數(shù)和屬性以及用于相關(guān)識(shí)別的聽(tīng)覺(jué)提示。用實(shí)例方式的話音識(shí)別和相關(guān)聽(tīng)覺(jué)提示,屬性通常與聽(tīng)覺(jué)提示參數(shù)有關(guān),如提示是否包含用于文本-話音轉(zhuǎn)換的內(nèi)聯(lián)文本、預(yù)記錄聽(tīng)覺(jué)文件(例如wave文件)的播放、用于聽(tīng)覺(jué)反映的數(shù)據(jù)(用于文本-話音轉(zhuǎn)換或預(yù)記錄聽(tīng)覺(jué)文件的文本)的位置等。對(duì)于識(shí)別,參數(shù)或?qū)傩钥梢园ㄗR(shí)別期間要用的語(yǔ)法位置、信用度閾值等。由于服務(wù)器端插件209產(chǎn)生客戶端標(biāo)記,所以,用于對(duì)服務(wù)器端插件209的控制的參數(shù)和屬性與用于識(shí)別和/或聽(tīng)覺(jué)提示的客戶端標(biāo)記中提供的擴(kuò)展有關(guān)。
            圖7中300A所指示的控制是在網(wǎng)站應(yīng)用開(kāi)發(fā)或編寫(xiě)工具中周知的控制,編寫(xiě)工具諸如ASP、ASP+、ASP.Net、JSP、Javabeans等。這種控制一般形成在庫(kù)中并被控制302用來(lái)執(zhí)行特殊視覺(jué)任務(wù)。庫(kù)300A包括用于產(chǎn)生預(yù)期客戶機(jī)標(biāo)記、事件處理程序等的方法。視覺(jué)控制302的實(shí)例包括“標(biāo)簽”控制,它在視覺(jué)顯示器上提供所選擇的文本標(biāo)簽,諸如圖5中的標(biāo)簽“信用卡提交”304。較高級(jí)視覺(jué)控制302的實(shí)例是“文本框”,它允許在諸如圖5中250所示的數(shù)據(jù)區(qū)域中輸入數(shù)據(jù)。現(xiàn)有視覺(jué)控制302也是周知的。在對(duì)將服務(wù)器端插件模塊控制擴(kuò)展成包括識(shí)別和/或聽(tīng)覺(jué)提示的第一種方法中,除了一組與視覺(jué)反映有關(guān)的屬性外,每個(gè)視覺(jué)控制302應(yīng)再包括與識(shí)別或聽(tīng)覺(jué)提示有關(guān)的參數(shù)或?qū)傩?。在“?biāo)簽”控制的情況下(否則就在視覺(jué)顯示器上提供被選擇的文本),其它屬性可以包括要反映聽(tīng)覺(jué)數(shù)據(jù)或是利用文本-話音轉(zhuǎn)換和該數(shù)據(jù)文件的位置。庫(kù)300B與庫(kù)300A類(lèi)似,還包括用于執(zhí)行識(shí)別和/或聽(tīng)覺(jué)提示的標(biāo)記信息。每個(gè)視覺(jué)控制302被編碼成將該信息適當(dāng)提供給控制300B以執(zhí)行關(guān)于識(shí)別或聽(tīng)覺(jué)提示的特殊任務(wù)。
            作為另一實(shí)施例,在視覺(jué)顯示器上產(chǎn)生且允許客戶機(jī)裝置30的用戶輸入信息的“文本框”控制也應(yīng)包括適當(dāng)?shù)淖R(shí)別或聽(tīng)覺(jué)提示參數(shù)或?qū)傩裕T如識(shí)別要用的語(yǔ)法。應(yīng)當(dāng)注意,識(shí)別或聽(tīng)覺(jué)提示是可選的,如果不希望識(shí)別或聽(tīng)覺(jué)提示就無(wú)須使用。
            通常,如果在級(jí)302的控制包括關(guān)于視覺(jué)方面的參數(shù),該控制就訪問(wèn)和使用庫(kù)300。類(lèi)似地,如果該控制包括關(guān)于識(shí)別和/或聽(tīng)覺(jué)提示的參數(shù),該控制就訪問(wèn)和使用庫(kù)300B。應(yīng)當(dāng)注意,已經(jīng)分別說(shuō)明了庫(kù)300A和300B以便強(qiáng)調(diào)庫(kù)300B中的附加信息,以及可以實(shí)現(xiàn)具有庫(kù)300A和300B的信息的單個(gè)庫(kù)。
            這種方法中,每個(gè)當(dāng)前或已有技術(shù)視覺(jué)控制302被擴(kuò)展成包括適當(dāng)識(shí)別/聽(tīng)覺(jué)提示屬性??梢栽趲?kù)中形成控制302。服務(wù)器端插件209訪問(wèn)訪問(wèn)庫(kù)找標(biāo)記信息。執(zhí)行控制用所提供的參數(shù)產(chǎn)生了客戶端標(biāo)記頁(yè)或其部分。
            圖8所示的第二種方法中,提供了新的視覺(jué)識(shí)別/聽(tīng)覺(jué)提示控制304以便控制304成為與視覺(jué)控制302有關(guān)的子類(lèi),其中,在控制304提供識(shí)別/聽(tīng)覺(jué)提示功能或標(biāo)記信息。換句話說(shuō),為識(shí)別/聽(tīng)覺(jué)提示提供新的一組控制304,它包括適當(dāng)?shù)膮?shù)和屬性以在客戶機(jī)裝置30上執(zhí)行預(yù)期識(shí)別或與識(shí)別任務(wù)有關(guān)的聽(tīng)覺(jué)提示。控制304將現(xiàn)有視覺(jué)控制302用于經(jīng)顯示器反映或獲得視覺(jué)信息的范圍。例如,級(jí)304的控制“話音標(biāo)簽”在級(jí)302使用“標(biāo)簽”控制以提供聽(tīng)覺(jué)反映和/或視覺(jué)文本反映。類(lèi)似地,,“話音文本框”控制應(yīng)使語(yǔ)法和相關(guān)控制資源和處理與輸入?yún)^(qū)域關(guān)聯(lián)。象第一種方法那樣,用于控制304的屬性包括用于識(shí)別的語(yǔ)法位于何處,用于文本-話音轉(zhuǎn)換的內(nèi)聯(lián)文本,或者直接反映或要經(jīng)文本-話音轉(zhuǎn)換的文本文件來(lái)反映的預(yù)記錄音頻數(shù)據(jù)文件的位置。第二種方法的優(yōu)勢(shì)在于具有視覺(jué)控制302的識(shí)別控制304通過(guò)參數(shù)或?qū)傩詠?lái)相互作用,這樣,只要控制304和302之間的參數(shù)或?qū)傩越涌诩夹g(shù)仍然適當(dāng),改變視覺(jué)控制302就可以不要求在識(shí)別控制304中有任何改變。然而,隨著又一視覺(jué)控制302的產(chǎn)生,級(jí)304的相應(yīng)識(shí)別/聽(tīng)覺(jué)提示控制也可能要被寫(xiě)入。
            圖9說(shuō)明第三種方法。通常,第三種方法的控制306與視覺(jué)控制302是分開(kāi)的,但是,如下所述其中有選擇性關(guān)聯(lián)。以這種方式,控制306不直接建立在視覺(jué)控制302之上,但是還提供識(shí)別/聽(tīng)覺(jué)提示啟動(dòng)而不必重寫(xiě)視覺(jué)控制302??刂?06象控制302那樣,使用庫(kù)300。本實(shí)施例中,庫(kù)300包括視覺(jué)和識(shí)別/聽(tīng)覺(jué)提示標(biāo)記信息,它同樣是圖7的庫(kù)300A和庫(kù)300B的組合。
            第三種方法有顯著的優(yōu)勢(shì)。第一,視覺(jué)控制302不必在內(nèi)容上有所改變。第二,控制306可以形成一致的單個(gè)模塊且不需根據(jù)話音啟動(dòng)控制302的本質(zhì)而改變。第三,話音啟動(dòng)的過(guò)程,即,在設(shè)計(jì)時(shí)控制306與視覺(jué)控制302的明顯關(guān)聯(lián)完全在開(kāi)發(fā)者的控制之下,由于它是明顯的選擇性的關(guān)聯(lián)。這也就使視覺(jué)控制的標(biāo)記語(yǔ)言有可能經(jīng)諸如控制306產(chǎn)生的標(biāo)記語(yǔ)言提供的識(shí)別、或者經(jīng)諸如鍵盤(pán)的常規(guī)輸入裝置從多個(gè)源接收輸入值。簡(jiǎn)言之,控制306可以被添加到服務(wù)器端插件209的視覺(jué)編寫(xiě)頁(yè)的現(xiàn)有應(yīng)用編寫(xiě)頁(yè)上??刂?06為客戶機(jī)裝置30的用戶提供新形式的相互作用(即,識(shí)別和/或聽(tīng)覺(jué)提示),同時(shí)重利用視覺(jué)控制的應(yīng)用邏輯和視覺(jué)輸入/輸出能力。從控制302可以與可以編碼應(yīng)用邏輯的視覺(jué)控制302相關(guān)聯(lián)來(lái)看,控制306在下文中可稱(chēng)為“伴隨控制306”,視覺(jué)控制302被稱(chēng)為“基本控制302”。應(yīng)當(dāng)注意,為了區(qū)分控制302和306而提供了這些參考名稱(chēng)而不是要限制它們。例如,伴隨控制306可以被用于開(kāi)發(fā)或編寫(xiě)網(wǎng)站,該網(wǎng)站不包括諸如純語(yǔ)音網(wǎng)站的視覺(jué)反映。在這種情況下,可以在伴隨控制邏輯中體現(xiàn)某種應(yīng)用邏輯。
            圖10進(jìn)一步說(shuō)明了示例組的伴隨控制306。這組伴隨控制306可以被分組為輸出控制308和輸入控制310。輸出控制308提供“提示”客戶端標(biāo)記,它通常包括預(yù)記錄音頻文件的播放、或用于文本-話音轉(zhuǎn)換的文本、包括在標(biāo)記中直接或經(jīng)URL參考的數(shù)據(jù)。雖然可以用參數(shù)定義單個(gè)輸出控制以管理所有的聽(tīng)覺(jué)提示,這樣就要考慮本發(fā)明的另一方面,在示例性實(shí)例中,人物對(duì)話中的聽(tīng)覺(jué)提示形式或類(lèi)型被形成為分別的控制。尤其是,輸出控制308可以包括“問(wèn)題”控制308A、“確認(rèn)”控制308B和“陳述”控制308C,這些將在下文詳細(xì)討論。類(lèi)似地,輸入控制310也可以形成或遵循人物對(duì)話并包括“回答”控制310A和“命令”控制310B。下面討論輸入控制310,但是,通常輸入控制310將命令和來(lái)自客戶機(jī)裝置30的用戶的預(yù)期和可能輸入關(guān)聯(lián)起來(lái)。
            雖然關(guān)于用作伴隨控制306詳細(xì)討論了詢問(wèn)控制308A、確認(rèn)控制308B、陳述控制308C、回答控制310A、命令控制310B、也有這些控制的普通結(jié)構(gòu)的其它控制、參數(shù)和事件處理程序,但是要知道這些控制、普通結(jié)構(gòu)、參數(shù)和事件處理程序可以適于在上述關(guān)于圖7和8討論的其它兩個(gè)種方法中提供識(shí)別和/或聽(tīng)覺(jué)提示。例如,參數(shù)“ClientToSpeechEnable”包括一個(gè)示例機(jī)制以形成伴隨控制和視覺(jué)控制之間的關(guān)聯(lián),當(dāng)在圖7和8的種方法中體現(xiàn)時(shí)可以不需要該參數(shù)。
            多模態(tài)應(yīng)用中,輸出控制308中的至少一個(gè)或輸入控制310中的一個(gè)與基本或視覺(jué)控制302關(guān)聯(lián)。在所說(shuō)明的實(shí)施例中,在“問(wèn)題/回答”(下文也稱(chēng)為“QA”)控制320的控制下配置和組織輸出控制308和輸入控制310。在網(wǎng)絡(luò)服務(wù)器202上執(zhí)行QA控制320,這意味著用服務(wù)器端標(biāo)記體系在網(wǎng)絡(luò)服務(wù)器上的應(yīng)用開(kāi)發(fā)網(wǎng)頁(yè)上定義它,但不把它作為不同形式的標(biāo)記輸出到客戶機(jī)裝置30。雖然在QA控制表現(xiàn)為由所有輸出控制308和輸入控制310形成的圖10說(shuō)明了這一點(diǎn),但是,要知道,這些僅僅是包括在可用于QA控制的選擇中的一種或多種選擇。
            這時(shí),按應(yīng)用場(chǎng)景解釋控制308和310的使用會(huì)有幫助。參考圖11,在純語(yǔ)音應(yīng)用中,QA控制320可以包含單個(gè)詢問(wèn)控制308A和回答控制310A。詢問(wèn)控制308A包含一個(gè)或多個(gè)提示對(duì)象或控制322,同時(shí),回答控制310A可以通過(guò)用于輸入數(shù)據(jù)的識(shí)別和該輸入的相關(guān)處理的語(yǔ)法對(duì)象或控制324來(lái)定義語(yǔ)法。線326表示QA控制320與相應(yīng)基本控制302的關(guān)聯(lián),如果會(huì)用到的話。在客戶機(jī)裝置30的用戶可以觸摸視覺(jué)文本框(例如TapEvent)的多模態(tài)場(chǎng)景中,例如,對(duì)于包含文本框的基本控制(文本框具有形成了指示的視覺(jué)文本,指示客戶機(jī)裝置的用戶應(yīng)向相應(yīng)區(qū)域輸入些什么),相應(yīng)QA控制320可以或不可以有諸如音頻重放或文本-話音轉(zhuǎn)換的相應(yīng)提示,但是,應(yīng)當(dāng)有相應(yīng)于用于識(shí)別的預(yù)期值的語(yǔ)法、和處理輸入的事件處理程序328,或者處理諸如未檢測(cè)到話音、未識(shí)別話音或超時(shí)取消事件的其它識(shí)別器事件(如下述“事件”)。
            通常,通過(guò)輸出控制308和輸入控制310和附加邏輯QA控制可以執(zhí)行下述過(guò)程中的一個(gè)或多個(gè)提供輸出聽(tīng)覺(jué)提示,收集輸入數(shù)據(jù),執(zhí)行輸入結(jié)果的信用證實(shí),允許附加類(lèi)型的輸入諸如“幫助”命令、或允許客戶機(jī)裝置的用戶導(dǎo)航網(wǎng)站的其它選擇區(qū)域的命令,允許確認(rèn)輸入數(shù)據(jù)和控制網(wǎng)站的對(duì)話流,這里僅舉幾例。簡(jiǎn)言之,QA控制320包含所有與指定題目有關(guān)的控制。以這種方式,通過(guò)用對(duì)于題目的控制產(chǎn)生對(duì)話,以便通知獲得信息、確認(rèn)有效性或修復(fù)對(duì)話或改變交流題目。
            在包含本發(fā)明另一方面的開(kāi)發(fā)方法中,應(yīng)用開(kāi)發(fā)者可以用視覺(jué)控制302定義應(yīng)用的視覺(jué)布局。然后,應(yīng)用開(kāi)發(fā)者可以用伴隨控制306(體現(xiàn)為QA控制320或輸出控制308和輸入控制310)來(lái)定義應(yīng)用的講話接口。如圖10和11所示,然后每個(gè)伴隨控制306被鏈接或與相應(yīng)基本或視覺(jué)控制302關(guān)聯(lián)以提供識(shí)別和聽(tīng)覺(jué)提示。當(dāng)然,如果需要的話,應(yīng)用開(kāi)發(fā)者可以通過(guò)在視覺(jué)控制302和伴隨控制306之間轉(zhuǎn)換來(lái)定義或編碼應(yīng)用,直到完全定義或編碼應(yīng)用,在視覺(jué)控制302和伴隨控制306之間形成鏈接。
            這時(shí),提供對(duì)每個(gè)輸出控制308和輸入控制310的簡(jiǎn)短說(shuō)明會(huì)有幫助。在附錄B中提供的詳細(xì)描述。
            詢問(wèn),回答和命令通常,如上所述,QA控制320中的詢問(wèn)控制308A保持與基本控制302有關(guān)的提示和語(yǔ)法資源,并使聯(lián)編(使識(shí)別結(jié)果和客戶端標(biāo)記頁(yè)的輸入?yún)^(qū)域關(guān)聯(lián))和處理邏輯相關(guān)。詢問(wèn)控制308A和回答控制310A的存在與否確定了是否在激活時(shí)啟動(dòng)了話音輸出或識(shí)別輸出。命令控制310B和用戶初始回答被回答控制310A和命令控制310B的范圍性質(zhì)的指定所激活。
            在簡(jiǎn)單的純語(yǔ)音應(yīng)用中,QA控制320通常保持一個(gè)詢問(wèn)控制或?qū)ο?08A和一個(gè)回答控制或?qū)ο?10A。雖然在下面的實(shí)例中沒(méi)顯示,但是,命令控制310B也可以被指定,例如幫助、重復(fù)、取消等,以使用戶能輸入不與特殊詢問(wèn)的回答直接相關(guān)的輸入。
            用于純語(yǔ)音對(duì)話的通常的“常規(guī)”QA控制如下<pre listing-type="program-listing"> <SpeechQA id=″QA_WhichOne″ ControlsToSpeechEnable=″textBox1″ runat=″server″> <Question>&lt;dp n="d16"/&gt;<prompt>W(wǎng)hich one do you want?</prompt> </Question> <Answer><grammar src=″whichOne.gram″/> </Answer> </SpeechQA></pre>(本文中提供的實(shí)例被寫(xiě)為ASP.Net框架,這只是例子而不是限制本發(fā)明)該實(shí)例中,QA控制可以用它的“id”來(lái)識(shí)別,同時(shí),通過(guò)參數(shù)“ControlsToSpeechEnable”獲得QA控制與預(yù)期基本或視覺(jué)控制的關(guān)聯(lián),它用各自的標(biāo)識(shí)符識(shí)別一個(gè)或多個(gè)基本控制。如果需要的話,可以使用其它周知的控制來(lái)形成關(guān)聯(lián)。例如,通過(guò)上述第一和第二種方法可以得到直接、隱含的關(guān)聯(lián),或者,可以產(chǎn)生分別的表格用于保持關(guān)聯(lián)。參數(shù)“runat”指示網(wǎng)絡(luò)服務(wù)器應(yīng)在網(wǎng)絡(luò)服務(wù)器202執(zhí)行該代碼以產(chǎn)生正確的標(biāo)記。
            QA控制也可以只保持陳述控制308C,這種情況下,它只是提示控制而無(wú)活動(dòng)語(yǔ)法(active grammar)(例如用于歡迎提示)。類(lèi)似地,QA控制可以保持多模態(tài)控制,作為來(lái)自GUI的事件的結(jié)果,其回答控制310A直接激活它的語(yǔ)法或用于用戶初始的范圍機(jī)制(在下面討論)。
            也應(yīng)當(dāng)注意,QA控制320也可以保持多個(gè)輸出控制308和輸入控制310,諸如多個(gè)詢問(wèn)控制308A和多個(gè)回答控制310A。這允許編寫(xiě)者描述關(guān)于相同QA控制中的相同輸入的相互作用流。它對(duì)于更復(fù)雜的純語(yǔ)音對(duì)話尤其有用。所以,可以在與表示對(duì)話輸入的視覺(jué)控制有關(guān)的QA控制包裹(wrapper)中指定可能包括多種詢問(wèn)和回答(例如,提問(wèn)、確認(rèn)、給予幫助等)的小對(duì)話。圖11說(shuō)明了一個(gè)復(fù)雜的QA控制。
            上文表示了QA控制的主要特點(diǎn)。從下面的功能觀點(diǎn)描述每個(gè)特點(diǎn)。
            回答控制回答控制310A將語(yǔ)法概念、聯(lián)編和其它識(shí)別處理抽取到一個(gè)對(duì)象或控制中?;卮鹂刂?10A可以被用于指定一組與問(wèn)題有關(guān)的可能語(yǔ)法以及聯(lián)編聲明和相關(guān)腳本。對(duì)多模態(tài)應(yīng)用的回答控制,如“Tap-and-Talk”被GUI瀏覽事件激活或失效。下面的實(shí)例說(shuō)明了回答控制310A被用在多模態(tài)應(yīng)用中以便在文本框“txtDepCity”的“mouseDown”事件中選擇離開(kāi)城市,并將其值寫(xiě)入基本文本框控制
            <pre listing-type="program-listing"> <SpeechQA controlsToSpeechEnable=″txtDepCity″ runat=″server″> <Answer id=″AnsDepCity″StartEvent=″onMouseDown″StopEvent=″onMouseUp″/&gt; <grammar src=″/grammars/depCities.gram″/> <bind value=″//sml/DepCity″ targetElement=″txtCity″/> </Answer> </SpeechQA></pre>純語(yǔ)音應(yīng)用中的標(biāo)準(zhǔn)回答控制310A被下述詢問(wèn)控制308A直接激活。
            回答控制還包括一種機(jī)制用來(lái)使收到的結(jié)果與基本控制相關(guān)聯(lián)。本文中,聯(lián)編將多個(gè)值放在基本控制中;然而,在另一實(shí)施例中,關(guān)聯(lián)機(jī)制可以允許基本控制看到或訪問(wèn)被識(shí)別的結(jié)果。
            詢問(wèn)控制詢問(wèn)控制308A將提示標(biāo)簽(附錄A)的概念抽取到包含可能提供選擇的對(duì)象和要響應(yīng)問(wèn)題的回答控制310A中。每個(gè)詢問(wèn)控制308A都能指定在其執(zhí)行中激活了哪個(gè)回答控制310A。它許可適當(dāng)?shù)捻憫?yīng)語(yǔ)法被塞進(jìn)回答控制310A中,它反映了相關(guān)詢問(wèn)控制308A。
            下面的詢問(wèn)控制308A可以被用在純語(yǔ)音應(yīng)用中以請(qǐng)求離開(kāi)城市<pre listing-type="program-listing"> <SpeechQA id=″QADepCity″controlsToSpeechEnable=″txtDepCity″runat=″server″><Question id=″Q1″Answers=″AnsDepCity″> <prompt>Please give me the departure city. </prompt></Question><Answer id=″AnsDepCity″.../> </SpeechQA></pre>在下面的實(shí)例中,可以根據(jù)詢問(wèn)控制308A的內(nèi)部條件調(diào)入不同的提示。在詢問(wèn)控制308A內(nèi)的提示上指定條件測(cè)試的能力意味著在詢問(wèn)控制308A的相同功能單元中可以容許用詞改變。
            <pre listing-type="program-listing"><SpeechQA id=″QADepCity″ controlsToSpeechEnable=″txtDepCity″ runat=″server″> <Question id=″Q1″Answers=″AnsDepCity″> <prompt count=″1″> Now I need to get the departure city. Where would you like to fly from? </prompt> <prompt count=″2″> Which departure city? </prompt> </Question> <Answer id=″AnsDepCity″.../></SpeechQA></pre>條件QA控制下面的實(shí)例說(shuō)明了如何根據(jù)應(yīng)用已知的信息來(lái)確定是否要激活QA控制。實(shí)例是調(diào)查應(yīng)用的一部分。調(diào)查就是從員工們收集他們用來(lái)工作的傳送模式。
            調(diào)查部分首先要問(wèn)用戶是否搭公共汽車(chē)來(lái)上班。如果回答是——是,下面的問(wèn)題就問(wèn)用戶上周搭了幾天公共汽車(chē)。
            ——否,就繞過(guò)“搭公共汽車(chē)天數(shù)”的問(wèn)題。
            <pre listing-type="program-listing"><aspLabel id=″lblDisplay1″ text=″Do you ride the bus to work?″ runat=″server″/> <aspDropDownList id=″lstRodeBusYN″runat=″server″> <aspListItemselected=″true″>No</aspListItem> <aspListItem>Yes</aspListItem></aspDropDownList><SpeechQA id=″QA_RideBus ControlsToSpeechEnable=″lstRodeBusYN″ runat=″server″><SDNQuestion id=″Q_RideBus″> <prompt bargeIn=″False″> Do you ride the bus to work? </prompt></SDNQuestion><SDNAnswer id=″A_RideBus″ autobind=″False″ StartEvent=″onMouseDown″ StopEvent=″onMouseUp″ runat=″server″&lt;dp n="d19"/&gt; onClientReco=″ProcessRideBusAnswer″ <grammar src=″...″/><--!″yes/no″grammar--> </SDNAnswer></SpeechQA><aspLabel id=″lblDisplay2″ enabled=″False″ text=″How many days last week did you ride the bus to work?″ runat=″server″/><aspDropDownList id=″lstDaysRodeBus″e(cuò)nabled=″False″runat=″server″><aspListItem selected=″true″>0</aspListItem><aspListItem>1</aspListItem><aspListItem>2</aspListItem><aspListItem>3</aspListItem><aspListItem>4</aspListItem><aspListItem>5</aspListItem><aspListItem>6</aspListItem><aspListItem>7</aspListItem> </aspDropDownList><SpeechQA id= QA_DaysRodeBus″ControlsToSpeechEnable=″lstDaysRodeBus″ClientTest=″RideBusCheck″runat=″server″> <Question id=″Q_DaysRodeBus″> <prompt bargeIn=″False″> How many days last week did you ride the busto work? </prompt> </SDNQuestion> <SDNAnswer id=″A_DaysRodeBus″ autobind=″False″ StartEvent=″onMouseDown″ StopEvent=″onMouseUp″ runat=″server″ onClientReco=″ProcessDaysRodeBusAnswer″ <grammar src=″...″/><--!″numbers″grammar--> </SDNAnswer></SpeechQA>&lt;dp n="d20"/&gt; <script language=″jscript″>function ProcessRideBusAnswer(){<--!using SML attribute of the Event object, determine yes or no answer--><--!then select the appropriate item in the dropdown listbox<--!and enable the next label and dropdown listbox if answer is″yes″-->if<--!Answer is″yes″-->{ lstRodeBusYN.selectedIndex=2 lblDisplay2.enabled=″true″ lstDaysRodeBus.enabled=″true″} } function RideBusCheck(){ if lstRodeBusYN.selectedIndex=″1″<--!thisis no--> then return″False″ endif } function ProcessDaysRodeBusAnswer(){ <--!case statement to select properdropdown item --> }</script></pre>在上面的實(shí)例中,根據(jù)布爾參數(shù)“ClientTest”執(zhí)行QA控制“QA DaysRodeBus”,在本實(shí)施例中,根據(jù)函數(shù)RideBusChech()設(shè)定該參數(shù)。如果函數(shù)返回偽條件(false condition),就不激活QA控制,而如果返回真條件,就激活QA控制。使用激活機(jī)制允許在所產(chǎn)生的客戶端標(biāo)記頁(yè)中增大靈活性、改善對(duì)話流。如附錄B中所述,許多控制和對(duì)象包括激活機(jī)制。
            命令控制命令控制310B是純語(yǔ)音對(duì)話中常見(jiàn)的用戶說(shuō)法,純語(yǔ)音對(duì)話通常幾乎沒(méi)有關(guān)于所問(wèn)的問(wèn)題的語(yǔ)義輸入,而有搜索助理或效果導(dǎo)航,例如幫助、取消、重復(fù)等。QA控制306中的命令控制310B不僅可被用于指定關(guān)于識(shí)別的語(yǔ)法和相關(guān)處理(不象回答控制310A那樣沒(méi)有結(jié)果到輸入?yún)^(qū)域的聯(lián)編),而且指定上下文的“范圍”和類(lèi)型。這允許在客戶端標(biāo)記上編寫(xiě)整體和上下文敏感行為。
            從上文描述,本領(lǐng)域的技術(shù)人員可以了解,可以用類(lèi)似于視覺(jué)控制302中的樹(shù)狀結(jié)構(gòu)來(lái)組織控制306。由于每個(gè)控制306也與所選擇的視覺(jué)控制302關(guān)聯(lián),所以控制306的組織可以與控制302的結(jié)構(gòu)關(guān)聯(lián)。
            QA控制302可以被用于話音啟動(dòng)自動(dòng)控制(文本框、標(biāo)簽等)和容器控制(形式、面板等)。這提供了一種規(guī)定行為范圍和獲得子對(duì)話控制的模塊化的方法。例如,該范圍允許客戶機(jī)裝置的用戶導(dǎo)航其它客戶端標(biāo)記沒(méi)有完成對(duì)話的其它部分。
            在一個(gè)實(shí)施例中,“范圍”被確定為基本控制樹(shù)的節(jié)點(diǎn)。下面是“幫助”命令的實(shí)例,它是在“Pnl1”容器控制的水平上,包含兩個(gè)文本框<pre listing-type="program-listing"> <asppanel id=″Pnl1″...> <asptextbox id=″tb1″.../> <asptextbox id=″tb2″.../> </asppanel> 原 <SpeechQA...> <Commandid=″HelpCmd1″scope=″Pnl1″type=″help″onClientReco=″GlobalGiveHelp()″><Grammar src=″grammars/help.gram″/> </Command> </SpeechQA> <script>function GlobalGiveHelp(){...} </script></pre>如所說(shuō)明的那樣,在關(guān)于“Pnl1”的每個(gè)QA控制及其內(nèi)容中“幫助”語(yǔ)法是激活的。每次識(shí)別到“幫助”時(shí)就執(zhí)行GlobalGiveHelp子例程。為了克服它并實(shí)現(xiàn)上下文敏感行為,可以將相同類(lèi)型的命令放到所要求級(jí)別的上下文范圍中<pre listing-type="program-listing"><SpeechQA...> <Command id=″HelpCmd2″ scope=″Tb2″ type=″help″&lt;dp n="d22"/&gt; onClientReco=″SpecialGiveHelp()″ > <Grammar src=″grammars/help.gram″/></Command></SpeechQA><script> function SpecialGiveHelp() ... }</script></pre>確認(rèn)控制QA控制320也可以包括用于簡(jiǎn)化公共確認(rèn)子對(duì)話的編寫(xiě)的方法。下面的QA控制以先提問(wèn)再確認(rèn)值的常規(guī)子對(duì)話為例<pre listing-type="program-listing"> <SpeechQA id=″qaDepCity″ controlsToSpeechEnable=″txtDepCity″ runat=″server″> <!--asking for a value--> <Question id=″AskDepCity″type=″ask″Answers=″AnsDepCity″> <prompt> Which city?</prompt> </Question> <Answer id=″AnsDepCity″ confirmThreshold=″60″> <grammar src=″grammars/depCity.gram″/> </Answer> <!--confirming the value--> <Confirm id=″ConfirmDepCity″Answers=″AnsConfDepCity″> <prompt>Did you say<value targetElement=″txtDepCity/Text″>? </prompt> </Confirm> <Answer id=″AnsConfDepCity″><grammar src=″grammars/YesNoDepCity.gram″/> </Answer> </SpeechQA></pre>
            該實(shí)例中,用戶響應(yīng)“哪個(gè)城市?”與AnsDepCity語(yǔ)法匹配但其信用度不超出confirmationThreshold值,該用戶響應(yīng)引發(fā)確認(rèn)控制308。編寫(xiě)者可以使用的更靈活的確認(rèn)方法包括利用多個(gè)詢問(wèn)控制和多個(gè)回答控制的機(jī)制。
            在另一實(shí)施例中,關(guān)于確認(rèn)控制的附加輸入控制包括認(rèn)可控制、否定控制和校正控制。這些控制都可以別相應(yīng)確認(rèn)控制激活(以類(lèi)似于其它控制的方式)并分別包括認(rèn)可、否認(rèn)或校正結(jié)果的語(yǔ)法。例如,用戶可能會(huì)說(shuō)“不”來(lái)否認(rèn)、說(shuō)“是”或“是+當(dāng)前值”來(lái)認(rèn)可(例如“你想去西雅圖嗎?”“是,去西雅圖”)、說(shuō)“不”+新的值來(lái)校正(例如,“你想去西雅圖嗎?”“不,去匹茲堡”)。
            陳述控制陳述控制允許當(dāng)不要求來(lái)自客戶機(jī)裝置30的用戶的響應(yīng)時(shí),應(yīng)用開(kāi)發(fā)者提供關(guān)于客戶端標(biāo)記執(zhí)行的輸出。可以是例如在開(kāi)始執(zhí)行客戶端標(biāo)記頁(yè)時(shí)播放“歡迎”提示。
            可以在陳述控制中提供屬性以便區(qū)分要提供給客戶機(jī)裝置的用戶的不同類(lèi)型信息。例如,可以提供屬性以便指示警告消息或幫助消息。這些類(lèi)型信息有不同的內(nèi)在性質(zhì),如不同的語(yǔ)音。如果需要的話,可以提供不同形式的陳述控制,即,幫助控制、警告控制等。無(wú)論是作為分別控制還是陳述控制的屬性來(lái)提供,不同類(lèi)型的陳述在所產(chǎn)生的對(duì)話中起不同的作用,但是,它們共享向客戶機(jī)裝置的用戶提供信息而不期望回答的基本作用。
            事件圖11所示的事件管理程序設(shè)在QA控制320、輸出控制308和輸入控制310中,它們用于客戶機(jī)裝置30用戶的有效/無(wú)效、用于識(shí)別服務(wù)器204的操作等,附錄B中指明了其它事件。例如,QA控制320詳細(xì)說(shuō)明了話音檢測(cè)器檢測(cè)到用戶在含糊說(shuō)、但不能識(shí)別詞和沒(méi)檢測(cè)到話音的靜音的情況。這些事件參考編寫(xiě)者定義的客戶端腳本函數(shù)。在上文說(shuō)明的多模態(tài)應(yīng)用中,可以將在文本框中放入錯(cuò)誤消息的一個(gè)簡(jiǎn)單的含糊處理程序?qū)憺橄旅孢@樣<pre listing-type="program-listing"> <SpeechQA controlsToSpeechEnable=″txtDepCity″onClientNoReco=″OnMumble()″runat=″server″> <Answer id=″AnsDepCity″ StartEvent=″onMouseDown″ StopEvent=″onMouseUp″ >&lt;dp n="d24"/&gt; <grammar src=″/grammars/depCities.gram″/> <bind value=″//sml/DepCity″targetElement=″txtCity″/> </Answer></SpeechQA><script> function OnMumble(){ txtDepCity.value=″...recognition error...″; }</script></pre>控制執(zhí)行算法在一個(gè)實(shí)施例中,向客戶機(jī)裝置提供客戶端腳本或模塊(本文中稱(chēng)為“RunSpeech”)。該腳本的目的是經(jīng)邏輯執(zhí)行對(duì)話流,在客戶機(jī)裝置30上執(zhí)行時(shí)、即激活關(guān)于控制的腳本以便按其中包含的值來(lái)執(zhí)行時(shí)的腳本中詳細(xì)說(shuō)明了該邏輯。該腳本允許在頁(yè)面請(qǐng)求之間的多次對(duì)話往來(lái),因而,對(duì)于諸如經(jīng)電話瀏覽器216的純語(yǔ)音對(duì)話控制尤其有用。在客戶機(jī)裝置30上以環(huán)路方式執(zhí)行客戶端腳本RunSpeech,直到發(fā)送完成的形式或從客戶機(jī)裝置30請(qǐng)求新的頁(yè)。
            應(yīng)當(dāng)注意,在一個(gè)實(shí)施例中,多個(gè)控制可以按在客戶機(jī)上執(zhí)行時(shí)的值相互激活(例如,詢問(wèn)控制激活所選擇回答控制)。然而,在另一實(shí)施例中,多個(gè)控制可以相互“激活”以便產(chǎn)生適當(dāng)?shù)臉?biāo)記,這種情況下可以實(shí)現(xiàn)服務(wù)器端處理。
            通常,在一個(gè)實(shí)施例中,算法通過(guò)輸入話音和識(shí)別用戶輸入產(chǎn)生對(duì)話往來(lái)。算法的整個(gè)邏輯如下用于純語(yǔ)音場(chǎng)景1.發(fā)現(xiàn)下一激活輸出伴隨控制;2.如果是陳述,就播放陳述并回到1;如果是問(wèn)題或確認(rèn)就到3;3.收集預(yù)期的回答;4.收集命令;5.播放輸出控制并聽(tīng)到它以便輸入;6.激活識(shí)別回答或命令對(duì)象,或者,如果沒(méi)有識(shí)別到什么,就發(fā)布事件;7.回到1。
            在多模態(tài)情況下,邏輯被簡(jiǎn)化為下面的算法1.等候引發(fā)事件——即,用戶在控制上輕敲;2.收集預(yù)期回答;3.聽(tīng)到它以便輸入;4.激活所識(shí)別的回答對(duì)象,或者,如果沒(méi)識(shí)別到什么,就丟棄(throw)事件。
            5.回到1。
            算法相對(duì)簡(jiǎn)單是因?yàn)槿缟纤?,控制包含關(guān)于何時(shí)可以激活它們的內(nèi)置信息。算法也利用對(duì)話中控制的作用。例如,立即播放陳述,同時(shí)一旦已經(jīng)收集到了預(yù)期回答就播放詢問(wèn)和確認(rèn)。
            在另一實(shí)施例中,可以提供隱含確認(rèn)從而系統(tǒng)確認(rèn)一條信息并同時(shí)提問(wèn)。例如,系統(tǒng)可以確認(rèn)飛機(jī)到達(dá)城市并以一種說(shuō)法來(lái)要求旅行日期“你想什么時(shí)候去西雅圖?”(即,問(wèn)“什么時(shí)候”和隱含確認(rèn)“目的地西雅圖”)。如果用戶給出了日期,那么,由于如果城市是錯(cuò)的,用戶就會(huì)立即有疑問(wèn),所以認(rèn)為是暗示認(rèn)可了該城市。該場(chǎng)景下,顯然用戶要獲得的知識(shí)是極其重要的他們要問(wèn)問(wèn)題、或者他們要校正值、或者他們要求幫助嗎?通過(guò)利用在對(duì)話中用戶輸入的作用,系統(tǒng)可以直到何時(shí)暗示認(rèn)可值。
            總之,因?qū)υ捴锌刂频淖饔煤团c其它控制的關(guān)系產(chǎn)生對(duì)話,其中,算法執(zhí)行控制并因而管理對(duì)話。每個(gè)控制包含基于其類(lèi)型的信息,執(zhí)行算法用該類(lèi)型根據(jù)它在客戶機(jī)對(duì)話中是否起有用的用途來(lái)選擇(即,使執(zhí)行有效)給定控制。例如,只有在有值來(lái)進(jìn)行確認(rèn)和系統(tǒng)沒(méi)有使值繼續(xù)進(jìn)行的足夠信用度時(shí)確認(rèn)控制才有效。在另一實(shí)現(xiàn)中,這些內(nèi)置信息中的大多數(shù)可以被忽略或被應(yīng)用開(kāi)發(fā)者改編。
            下面的表格總結(jié)了多個(gè)控制、它們?cè)趯?duì)話中相應(yīng)作用和與其它控制的關(guān)系。

            通過(guò)說(shuō)明簡(jiǎn)單的人/機(jī)對(duì)話來(lái)解釋這些控制的使用。下面的對(duì)話中,每個(gè)對(duì)話打開(kāi)一部分系統(tǒng)或根據(jù)反映其在對(duì)話中目的的控制(用括號(hào)來(lái)表示)賦予用戶特征。
            1.系統(tǒng)(陳述)“歡迎來(lái)到旅行訂購(gòu)服務(wù)”。
            2.系統(tǒng)(詢問(wèn))“您想去哪?”3.用戶(回答)“舊金山”。
            4.系統(tǒng)(確認(rèn))“您是想說(shuō)西雅圖嗎?”5.用戶(否認(rèn))“不”。
            6.系統(tǒng)(問(wèn)題)“您想去哪?”7.用戶(回答)“舊金山”。
            8.系統(tǒng)(確認(rèn))“您想去西雅圖嗎?”9.用戶(校正)“我說(shuō)的是舊金山”。
            10.系統(tǒng)(確認(rèn))“您說(shuō)的是舊金山嗎?”11.用戶(校正)“是”。
            12.系統(tǒng)(問(wèn)題)“您想什么時(shí)候出發(fā)?”13.用戶(命令)“幫助”。
            順序1是系統(tǒng)部分上的陳述。由于陳述控制在響應(yīng)中不激活回答控制,系統(tǒng)就不期望輸入。系統(tǒng)在順序2繼續(xù)激活詢問(wèn)控制。它再激活一組可能的回答控制,包括持有通過(guò)服務(wù)可以使用的城市的語(yǔ)法的控制,包括許可用戶在順序3中提供的城市“舊金山”、“西雅圖”等。
            用戶的順序3被系統(tǒng)所誤認(rèn)。雖然系統(tǒng)認(rèn)為它有了一個(gè)來(lái)自用于城市的回答控制的值,但是該值的信用度低(當(dāng)然如此,由于它已經(jīng)誤認(rèn)了)。剛收到的回答控制中的該低信用度值對(duì)于RunSpeech是足以出發(fā)系統(tǒng)部分上的確認(rèn)控制的信息,象在順序4中產(chǎn)生的那樣。確認(rèn)控制再激活否認(rèn)控制、校正控制和認(rèn)可控制,并使它們各自的語(yǔ)法可被用來(lái)識(shí)別用戶的下一輪。用戶順序5、9和11說(shuō)明了對(duì)這些控制的實(shí)例響應(yīng)。用戶的輪5簡(jiǎn)單地否認(rèn)“否”。這會(huì)從系統(tǒng)除去該值,所以RunSpeech的下一作用是再問(wèn)問(wèn)題以重新獲得該值(順序6)。
            順序7和8象用3和4那樣返給我們確認(rèn)控制。
            用戶順序9是校正控制,它被再次激活作為對(duì)確認(rèn)控制的可能響應(yīng)。校正控制不僅否認(rèn)正進(jìn)行確認(rèn)的值,而且提供新的值。所以用戶順序9被系統(tǒng)識(shí)別為具有新值的正確控制,該值這次被正確地識(shí)別為“舊金山”。
            新值中的系統(tǒng)信用度低,然而,在順序10產(chǎn)生又一確認(rèn)控制。這再在響應(yīng)中激活認(rèn)可、否認(rèn)和校正控制,用戶順序11(“是”)與認(rèn)可控制語(yǔ)法匹配。認(rèn)可控制的識(shí)別的效果是在它試圖獲得的值用打下系統(tǒng)信任的“基礎(chǔ)”,所以現(xiàn)在RunSpeech能選擇其它空值來(lái)獲得它。在順序12中,輸出新的詢問(wèn)控制,它要求日期值。這時(shí)的用戶響應(yīng)(順序13)是命令“幫助”。通常以整體風(fēng)格激活命令控制,即,在系統(tǒng)部分上的獨(dú)立的不同的詢問(wèn)控制和確認(rèn)控制。以這種方式,用戶能隨時(shí)要求幫助,象他在順序13中所做的那樣。命令控制也可以被根據(jù)談?wù)撃牟糠只究刂平Y(jié)構(gòu)來(lái)規(guī)定它們的激活范圍的機(jī)制更靈敏地啟動(dòng)。
            再看算法,,在一個(gè)示例性實(shí)施例實(shí)施例中,客戶端腳本RunSpeech檢查每個(gè)基本控制中的值和QA控制的屬性、以及當(dāng)前頁(yè)上的QA控制的任何選擇測(cè)試,并選擇用于執(zhí)行的一個(gè)QA控制。例如,在所選擇的QA控制中,選擇一個(gè)問(wèn)題和它的相應(yīng)提示用于輸出,然后關(guān)于對(duì)相應(yīng)問(wèn)題的常規(guī)回答活動(dòng)語(yǔ)法。也可以并行激活附加語(yǔ)法,允許被表示為可允許的其它命令(或其它回答)。假設(shè)已經(jīng)進(jìn)行了識(shí)別且完成了對(duì)輸入數(shù)據(jù)的任何進(jìn)一步處理,客戶端腳本RunSpeech再次開(kāi)始以便確定下面應(yīng)執(zhí)行那個(gè)QA控制。附錄B中提供了示例性實(shí)現(xiàn)和RunSpeech算法。
            應(yīng)當(dāng)注意,控制和RunSpeech算法或模塊的使用不限于上述客戶機(jī)/服務(wù)器應(yīng)用,還可適于用其它應(yīng)用抽象來(lái)使用。例如,可以想像只在客戶機(jī)裝置30上運(yùn)行的諸如VoiceXML的應(yīng)用包括其它元素和控制,諸如作為上述VonceXML的一部分提供且以相同方式操作的問(wèn)題和回答。這種情況下,上述RunSpeech算法機(jī)制可以被瀏覽器缺省執(zhí)行而不需額外腳本。類(lèi)似地,諸如有限狀態(tài)機(jī)的其它平臺(tái)可以適于包括本文中描述的多個(gè)控制和RunSpeech算法或模塊。
            同步如上所述,伴隨控制306與基本控制302(頁(yè)上現(xiàn)有的控制)相關(guān)聯(lián)。因而伴隨控制306可以重利用基本控制302的商業(yè)邏輯和呈現(xiàn)能力。這用兩種方式來(lái)進(jìn)行在基本控制302中存儲(chǔ)多個(gè)值和通知基本控制改變302。
            伴隨控制306經(jīng)所謂的聯(lián)編機(jī)制使它們的值與基本控制302同步或關(guān)聯(lián)。聯(lián)編將從識(shí)別器收到的多個(gè)值放入基本控制302,例如將文本放入文本框,本文中以回答控制為例。由于基本控制302響應(yīng)視覺(jué)呈現(xiàn),它將視覺(jué)反饋提供給多模態(tài)場(chǎng)景中的用戶。
            多個(gè)伴隨控制306也提供通知基本控制302它們已經(jīng)過(guò)識(shí)別器收到輸入的機(jī)制。這允許基本控制302采取措施,如調(diào)用商業(yè)邏輯。(由于通知伴隨控制306的委托的量達(dá)到它們寫(xiě)入基本控制302的值,所以實(shí)現(xiàn)提供了一種以精細(xì)控制來(lái)控制通知的機(jī)制。該控制是由RejectThreshold和ConfirmThreshold性質(zhì)在回答控制上提供的,回答控制指定了數(shù)字聲音信用值,在該值以下系統(tǒng)會(huì)分別拒絕或試著確認(rèn)一個(gè)值)。
            雖然已經(jīng)參考最佳實(shí)施例描述了本發(fā)明,但是,在不背離本發(fā)明的精神和范圍的情況下,本領(lǐng)域的技術(shù)人員會(huì)知道可以進(jìn)行形式或細(xì)節(jié)上的改變。
            附錄A1.介紹下面的標(biāo)簽是一組允許文檔使用話音作為輸入或輸出媒體的標(biāo)記元素。標(biāo)簽被設(shè)計(jì)成自主式XML,它可以被嵌入到任何SGML派生標(biāo)記語(yǔ)言中,如HTML、XHTML、cHTML、SMIL、WML等。本文中使用的標(biāo)簽類(lèi)似于SAPI5.0,已知它們是可以從Redmond,Washington的微軟公司得到的方法。標(biāo)簽、元素、事件、屬性、性質(zhì)、返回值等只是示例性的,用于話音和DTMF識(shí)別,類(lèi)似的標(biāo)簽可以被提供用于其它形式的識(shí)別。
            本文中討論的主要元素是&lt;prompt...&gt;用于話音合成構(gòu)成和提示播放&lt;reco...&gt;用于識(shí)別器構(gòu)成和識(shí)別執(zhí)行和后處理&lt;grammar...&gt;用于指定輸入語(yǔ)法資源&lt;dtmf...&gt;用于DTMF的構(gòu)成和控制2.識(shí)別識(shí)別元素用于指定可能的用戶輸入和用于處理輸入結(jié)果的方法。因而,它的主要元素是&lt;gramar&gt;和&lt;bind&gt;,它包含用于構(gòu)成識(shí)別器性質(zhì)的資源。
            識(shí)別元素被經(jīng)起動(dòng)和停止方法在上級(jí)瀏覽器中、或用SMIL命令在SMIL-啟動(dòng)瀏覽器中可編程地激活。由于它們呈現(xiàn)在頁(yè)上,被認(rèn)為在下級(jí)瀏覽器(即,非腳本支持瀏覽器)中是聲明性地有效。為了許可并行激活多個(gè)語(yǔ)法,可以同時(shí)認(rèn)為多個(gè)識(shí)別元素有效。
            識(shí)別也可以采取特殊模式——“自動(dòng)”、“單個(gè)”或“多個(gè)”——來(lái)區(qū)分它們啟動(dòng)的識(shí)別場(chǎng)景的種類(lèi)和識(shí)別平臺(tái)的行為。
            2.1識(shí)別內(nèi)容識(shí)別元素包含一種或幾種語(yǔ)法和任選的一組聯(lián)編元素,這些聯(lián)編元素審查識(shí)別結(jié)果和將相關(guān)部分復(fù)制到包含頁(yè)中的值。
            在上級(jí)瀏覽器中,識(shí)別支持各個(gè)語(yǔ)法規(guī)則中的綱領(lǐng)性激活和失效。也要注意,語(yǔ)法中的所有頂級(jí)規(guī)則對(duì)于識(shí)別上下文都是缺省激活的。
            2.1.1&lt;grammar&gt;元素語(yǔ)法元素被用于通過(guò)內(nèi)聯(lián)或利用src屬性參考來(lái)指定語(yǔ)法。通常指定至少一種語(yǔ)法(內(nèi)聯(lián)或參考)。內(nèi)聯(lián)語(yǔ)法可以是基于文本的語(yǔ)法格式,同時(shí)參考語(yǔ)法可以是基于文本的或二進(jìn)制類(lèi)型的。可以指定多個(gè)語(yǔ)法元素。如果指定了一種以上的語(yǔ)法元素,將加入語(yǔ)法中的規(guī)則作為相同語(yǔ)法中的額外規(guī)則??梢灾貙?xiě)具有相同名稱(chēng)的任何規(guī)則。
            屬性·src如果指定內(nèi)聯(lián)語(yǔ)法時(shí)可選。要包括語(yǔ)法的URI。注意,語(yǔ)法中的所有頂級(jí)規(guī)則對(duì)于識(shí)別上下文來(lái)說(shuō)都是缺省激活的。
            ·lang function checkKWBargein(){ news.change(1.0,0.5);//turn down thevolume while verifyingif(keyword.text== ″″){//result is below threshold news.change(1.0,2.0);//restore the volume keyword.Start();//restart the recognition }else{news.Stop();//keyword detected!Stop the prompt//Do whatever that is necessary } } // </script><script for=″window″e(cuò)vent=″onload″> <!--news.Start();keyword.Start();//</script> </head>θbody> <prompt id=″news″bargein=″0″>&lt;dp n="d44"/&gt; Stocks turned in another lackluster performanceWednesday as investors received little incentive tomake any big moves ahead of next week′s FederalReserve meeting.The tech-heavy Nasdaq Composite Indexdropped 42.51 points to close at 2156.26.The DowJones Industrial Average fell 17.05 points to 10866.46after an early-afternoon rally failed. -<!-- </prompt><reco id=″keyword″reject=″70″onReco=″checkKWBargein()″><grammar src=http//denali/news bargein grammar.xml /> </reco></body> </html></pre>3.4提示事件提示DOM對(duì)象支持下面的事件,可以將這些事件的處理程序指定為提示元素的屬性。
            3.4.1 onBookmark在遇到合成書(shū)簽時(shí)激發(fā)。該事件不中止重放。
            語(yǔ)法

            事件對(duì)象信息

            事件屬性雖然事件處理程序不直接接收屬性,但是,該處理程序可以詢問(wèn)用于數(shù)據(jù)的事件對(duì)象。
            3.4.2 onBargein
            當(dāng)檢測(cè)到用戶的闖入事件時(shí)激發(fā)。(注意確定是什么構(gòu)成了闖入事件,例如能量檢測(cè)湖哦關(guān)鍵字識(shí)別,直到平臺(tái))該事件處理程序的指定不自動(dòng)打開(kāi)闖入。
            語(yǔ)法

            事件對(duì)象信息

            事件性質(zhì)雖然事件處理程序不直接接收性質(zhì),但是,該處理程序可以詢問(wèn)用于數(shù)據(jù)的事件對(duì)象。
            3.4.3 onComplete當(dāng)提示重放到達(dá)終點(diǎn)或遇到排除時(shí)(如上定義的那樣)激發(fā)。
            語(yǔ)法

            事件對(duì)象信息

            事件性質(zhì)雖然,事件處理程序不直接接收性質(zhì),但是,該處理程序可以詢問(wèn)用于數(shù)據(jù)的事件對(duì)象。
            3.4.4使用書(shū)簽和事件下面的實(shí)例顯示了按照提示輸出期間發(fā)生的闖入,書(shū)簽事件可以被如何用來(lái)確定用戶響應(yīng)的語(yǔ)義——校正離開(kāi)城市或提供目的城市。該onBargein處理程序調(diào)入一個(gè)腳本,該腳本設(shè)定了可對(duì)于在提示中遇到的最末書(shū)簽變化的整體“標(biāo)志”,并且該“標(biāo)志”的值被用在識(shí)別后處理函數(shù)(‘heard’)以設(shè)定正確的值。
            <pre listing-type="program-listing"> <script><![CDATA[ var mark; function interrupt(){mark=event.srcElement.bookmark; } function ProcessCityConfirm(){confirm.stop();//flush the audiobufferif(mark==″mark_origin_city″)txtBoxOrigin.value=event.srcElement.text; elsetxtBoxDest.value=event.srcElement.text; } ]]></script> <body> <input name=″txtBoxOrigin″value=″Seattle″type=″text″/> <input name=″txtBoxDest″type=″text″/> ... <prompt id=″confirm″onBargein=″interrupt()″bargein=″0″>From<bookmark mark=″mark_origin_city″/><value targetElement=″orgin″targetAttribute=″value″/>, please say <bookmark mark=″mark dest_city″/>the destination city you want to travel to.</prompt><reco onReco=″ProcessCityConfirm()″> <grammar src=″/grm/1033/cities.xml″/></reco> ...</body></pre>4.DTMF產(chǎn)生DTMF識(shí)別對(duì)象。該對(duì)象可以用內(nèi)聯(lián)標(biāo)記語(yǔ)言語(yǔ)法或在腳本中舉例說(shuō)明。當(dāng)被激活時(shí),DTMF可以使提示對(duì)象激發(fā)闖入事件。應(yīng)當(dāng)注意,下面相對(duì)于DTMF識(shí)別討論的標(biāo)簽和事件以及在部分5中討論的調(diào)入控制與語(yǔ)音瀏覽器216和媒體服務(wù)器214之間的相互作用有關(guān)。
            4.1內(nèi)容·dtmfgrammar用于內(nèi)聯(lián)語(yǔ)法。
            ·bind象適當(dāng)?shù)膮^(qū)域分配DTMF轉(zhuǎn)換結(jié)果。
            屬性·targerElement要求。要被分配部分識(shí)別結(jié)果的元素(u W3C SMIL 2.0中相同)。
            ·targetAttribute要被分配識(shí)別結(jié)果的目標(biāo)元素的屬性(與SMIL 2.0中相同)。缺省為“值”。
            ·test用于分配的條件。缺省為真。
            實(shí)例1將鍵映射到文本。
            <pre listing-type="program-listing"> <input type=″text″name=″city″/> <DTMF id=″city_choice″timeout=″2000″numDigits=″1″> <dtmfgrammar> <key value=″1″>Seattle</key> <key value=″2″>Boston</key> </dtmfgrammar> <bind targetElement=″city″targetAttribute=″value″/> </DTMF></pre>當(dāng)激活“city choice”時(shí),如果用戶按下了1,就將“西雅圖”分配到輸入?yún)^(qū)域,如果按下2,就分配“波士頓”,否則什么也不分配。
            實(shí)例2可以如何用多個(gè)區(qū)域來(lái)使用DTMF。
            <pre listing-type="program-listing"><input type=″text″name=″area_code″/><input type=″text″name=″phone_number″/><DTMF id=″areacode″numDigits=″3″onReco=″e(cuò)xtension.Activate()″><bind targetElement=″area_code″/></DTMF><DTMF id=″e(cuò)xtension″numDigits=″7″> <bind targetElement=″phone_number″/&gt;</DTMF></pre>實(shí)例說(shuō)明了如何允許用戶輸入多個(gè)區(qū)域。
            實(shí)例3當(dāng)用戶起動(dòng)DTMF時(shí)如何同時(shí)允許話音和DTMF輸入以及停用話音。
            <pre listing-type="program-listing"> <input type=″text″name=″credit_card number″/> <prompt onBookmark=″dtmf.Start();speech.Start()″ bargein=″0″>please say<bookmark name=″starting″/>or enter your credit card number now </prompt> <DTMF id=″dtmf″e(cuò)scape=″#″length=″16″ interdigitTimeout=″2000″onkeypress=″speech.Stop()″><bind targetElement=″credit_card_number″/> </DTMF> <reco id=″speech″><grammar src=″/grm/1033/digits.xml″/><bind targetElement=″credit_card_number″/> </reco></pre>4.2屬性和性質(zhì)4.2.1屬性·dtmfgrammar要求。DTMF語(yǔ)法的URI。
            4.2.2性質(zhì)·DTMFgrammar讀寫(xiě)一種將DTMF呈現(xiàn)給字符串轉(zhuǎn)換矩陣的SML DOM節(jié)點(diǎn)對(duì)象(也稱(chēng)為DTMF語(yǔ)法)。缺省語(yǔ)法為&lt;dtmfgrammar&gt;
            &lt;key value=“0”&gt;0&lt;/key&gt;
            &lt;key value=“1”&gt;1&gt;&lt;/key&gt;
            ...
            &lt;key value=“0”&gt;0&lt;/key&gt;
            &lt;key value=“9”&gt;9&lt;/key&gt;
            &lt;key value=“*”&gt;*&lt;/key&gt;
            &lt;key value=“#”>#&lt;/key&gt;
            &lt;/dtmfgrammar&gt;
            ·flush寫(xiě)-讀,指示是否在激活之前在下層電話接口卡上自動(dòng)刷新DTMF緩沖的布爾標(biāo)志。缺省為偽以便啟動(dòng)提前鍵入。
            ·escape
            讀-寫(xiě)。結(jié)束DTMF讀取會(huì)話的換碼鍵。換碼鍵是一個(gè)鍵。
            ·numDigits讀寫(xiě)。結(jié)束DTMF讀取會(huì)話的擊鍵數(shù)。如果同時(shí)指定換碼和長(zhǎng)度,DTMF會(huì)話就在滿足條件時(shí)結(jié)束。
            ·dtmfResult只讀字符串,存儲(chǔ)用戶已經(jīng)輸入的DTMF鍵。如果鍵入換碼,它就包括在結(jié)果中。
            ·text只讀字符串,存儲(chǔ)空白分隔符號(hào)串,根據(jù)DTMF語(yǔ)法轉(zhuǎn)換每個(gè)符號(hào)。
            ·initialTimeout讀-寫(xiě)。用于接收第一DTMF擊鍵的幾毫秒超時(shí)期。如果未指定,缺省為電話平臺(tái)的內(nèi)部設(shè)定。
            ·interdigitTimeout讀-寫(xiě)。用于相鄰DTMF擊鍵的幾毫秒超時(shí)期。如果未指定,缺省為電話平臺(tái)的內(nèi)部設(shè)定。
            4.3對(duì)象方法4.3.1起動(dòng)啟動(dòng)DTMF中斷和起動(dòng)DTMF讀取會(huì)話。
            語(yǔ)法Object.Start()返回值無(wú)。
            排除無(wú)。
            4.3.2停止使DTMF失效。然而,用戶輸入的擊鍵仍留在緩存中。
            語(yǔ)法Object.Stop()返回值無(wú)。
            排除無(wú)。
            4.3.3刷新刷新DTMF緩存。不能在DTMF會(huì)話期間調(diào)入刷新。
            語(yǔ)法Object.Flush()返回值無(wú)。
            排除無(wú)。
            4.4事件4.4.1 onkeypress當(dāng)按下DTMF鍵時(shí)激發(fā)。這重寫(xiě)了從HTML控制繼承的缺省事件。當(dāng)用戶點(diǎn)擊換碼鍵時(shí),onRec事件激發(fā),而不是onKeypress。
            語(yǔ)法

            事件對(duì)象信息

            事件性質(zhì)雖然事件處理程序不直接接收性質(zhì),但是,該處理程序可以詢問(wèn)用于數(shù)據(jù)的事件。
            4.4.2 onReco當(dāng)結(jié)束DTMF會(huì)話時(shí)激發(fā)。該事件使當(dāng)前DTMF對(duì)象自動(dòng)失效。
            語(yǔ)法

            事件對(duì)象信息

            事件性質(zhì)雖然事件處理程序不直接接收性質(zhì),但是,處理程序可以詢問(wèn)用于數(shù)據(jù)的事件對(duì)象。
            4.4.3 onTimeout當(dāng)在超時(shí)前沒(méi)接收到階段完成事件(phrase finish event)時(shí)激發(fā)。該事件自動(dòng)停止識(shí)別過(guò)程。
            語(yǔ)法

            事件對(duì)象信息

            事件性質(zhì)雖然事件處理程序不直接接收性質(zhì),但是,該處理程序可以詢問(wèn)用于數(shù)據(jù)的事件對(duì)象。
            5.調(diào)入控制對(duì)象表示電話語(yǔ)音瀏覽器的電話接口(調(diào)入、終端和連接)。該對(duì)象在GUI瀏覽器中象窗口對(duì)象一樣的性質(zhì)。同樣,電話對(duì)象的壽命與瀏覽器實(shí)例自身相同。用于電話的語(yǔ)音瀏覽器舉電話對(duì)象為例,用于每個(gè)調(diào)入。用戶不以對(duì)象為例或處置它。
            此時(shí),通過(guò)該對(duì)象僅暴露與第一方呼叫控制有關(guān)的特征。
            5.1性質(zhì)·address只讀。XML DOM節(jié)點(diǎn)對(duì)象。具體實(shí)現(xiàn)。它是調(diào)入者的地址。對(duì)于PSTN,可以是ANI和ALI的組合。對(duì)于VoIP,它是調(diào)入者的IP地址。
            ·ringsBeforeAnswer回答來(lái)電前的響鈴數(shù)。缺省為無(wú)限,意味著開(kāi)發(fā)者必須專(zhuān)門(mén)使用下面的Answer()方法來(lái)回答電話調(diào)入。當(dāng)調(diào)入中心用ACD等候來(lái)電調(diào)入時(shí),該數(shù)字可以被設(shè)為0。
            5.2方法注這里所有的方法都是同步的。
            5.2.1轉(zhuǎn)移轉(zhuǎn)移該調(diào)入。對(duì)于盲目轉(zhuǎn)移,系統(tǒng)可以終止原始調(diào)入,并且一旦轉(zhuǎn)移完成就釋放系統(tǒng)資源。
            語(yǔ)法telephone.Transfer(strText);參數(shù)○strText要求。計(jì)劃接收器的地址。
            返回值無(wú)。
            排除當(dāng)調(diào)入轉(zhuǎn)移失敗時(shí)丟棄排除。當(dāng)對(duì)方忙時(shí),就沒(méi)有數(shù)字、傳真或回答機(jī)器回答。
            5.2.2 Bridge第三方轉(zhuǎn)移。在調(diào)入被轉(zhuǎn)移后,瀏覽器可以釋放為該調(diào)入分配的資源。直到應(yīng)用恢復(fù)用strUID返回所轉(zhuǎn)移的調(diào)入時(shí)的會(huì)話狀態(tài)。下層電話平臺(tái)可以將返回調(diào)入指路到不同的瀏覽器。調(diào)入可以只在接收者終止調(diào)入時(shí)返回。
            語(yǔ)法
            telephone.Bridge(strText,strUID[imaxtime]);參數(shù)○strText要求。計(jì)劃接收器的地址。
            ○strU //read address,prepare customized stuff if anycallControl.Answer();// </SCRIPT><SCRIPT for=″callControl″e(cuò)vent=″onOffhook″> <!--p_main.Start();g_login.Start();dtmf.Start(); focus=″user″; // </SCRIPT><SCRIPT for=″window″e(cuò)vent=″onload″> <!--if(logon.user.value!=″″){ p_retry.Start(); logon.user.value=″″; logon.pass.value=″″; checkFields();} //</SCRIPT><BODY> <reco id=″g_login″onReco=″login_reco();runSpeech()″ timeout=″5000″ onTimeout=″p_miss.Start();RunSpeech()″><grammar src=http//kokaneel/etradedemo/speechonly/login.xml/></reco> <dtmf id=″dtmf″e(cuò)scape=″#″onkeypress=″g_login.Stop();″onReco=″dtmf_reco();RunSpeech()″interdigitTimeout=″5000″onTimeout=″dtmf.Flush();p_miss.Start();RunSpeech()″/><prompt id=″p_main″>Please say your user I D and pin number</prompt><prompt id=″p_uid″>Please just say your user I D</prompt>&lt;dp n="d57"/&gt; <prompt id=″p_pin″>Please just say your pin number</prompt> <prompt id=″p_miss″>Sorry,I missed that</prompt> <prompt id=″p_thank″>Thank you.Please wait while I verify your identity</prompt> <prompt id=″p_retry″>Sorry,your user I D and pin number do not match</prompt> <H2>Login</H2>form id=″logon″>U comspeech″> <head> <style>.time{behaviorurl(#default#time2);} </style> </head> <body> <input name=″txtBoxOrigin″type=″text″/> <input name=″txtBoxDest″type=″text″/><spprompt class=″time tbegin=″0″> please say the origin and destination cities</spprompt><tpar tbegin=″time.end″trepeatCount=″indefinitely″ <spreco class=″time″> <grammar src=″./city.xml″/> <bind targetElement=″txtBoxOrigin″ value=″//origin_city″/><bind targetElement= ″txtBoxDest″ test=″/sml/dest_city[@confidence $gt$ 40]″ value=″//dest_city″/> </spreco></tpar></body></html></pre>
            附錄B1.QA話音控制QA控制將話音功能添加到它所附加的基本控制。其對(duì)象模型是附錄A中示例標(biāo)簽的內(nèi)容模型的抽象。
            1.1 QA控制<pre listing-type="program-listing"><SpeechQA id=″...″ controlsToSpeechEnable=″...″ speechIndex=″...″ ClientTest=″...″ runat=″server″> <Question...> <Statement...> ... <Answer...> <Confirm...> ... <Command...> ...</SpeechQA></pre>1.1.1核芯特性字符串ControlToSpeechEnalbeControlToSpeechEnalbe指定對(duì)話音使能的主要控制的ID表。ID的公共定義的。
            1.1.2激活機(jī)制SpeechIndex指定QA控制的訂購(gòu)信息——用RunSpeech來(lái)使用它。注如果一個(gè)以上的QA控制有相同的SpeechIndex,RunSpeech會(huì)以源命令(source order)執(zhí)行它們。在一些QA控制具有指定的SpeechIndex和一些QA控制沒(méi)有指定的SpeechIndex的情況下,RunSpeech用SpeechIndex先命令QA控制,然后用源命令來(lái)命令QA控制。
            字符串ClientTestClientTest指定了客戶端腳本函數(shù),它返回布爾值以確定QA控制何時(shí)可以被RunSpeech選擇。因而該系統(tǒng)策略可以通過(guò)用它作為條件來(lái)進(jìn)行改變,以比SpeechIndex更靈敏地激活QA控制或使其失效。如果未指定,QA控制可被認(rèn)為是激活的。
            1.1.3詢問(wèn)、陳述、回答、確認(rèn)和命令Question[]QuestionQA控制包含問(wèn)題對(duì)象或控制陣列,它們由對(duì)話編寫(xiě)者來(lái)定義。每個(gè)詢問(wèn)控制通常涉及系統(tǒng)的一個(gè)函數(shù),例如要求一個(gè)值等。每個(gè)詢問(wèn)控制可以用ClientTest屬性指定一個(gè)激活函數(shù),所以激活QA控制可以在不同的環(huán)境中問(wèn)關(guān)于其基本控制的多種問(wèn)題。例如,用于主要問(wèn)題A_Main的激活條件可以是相應(yīng)基本控制沒(méi)有值,用于Q_GiveHelp的激活條件可以是用戶剛請(qǐng)求幫助。每個(gè)問(wèn)題可以從QA控制中指定回答控制,這些回答控制在輸出詢問(wèn)控制時(shí)被激活。
            Statement[]StatementQA控制包含一個(gè)陳述對(duì)象或控制的陣列。陳述被用于向聽(tīng)者提供信息,如歡迎提示。
            Answer[]AnswerQA控制包含一個(gè)回答對(duì)象或控制的陣列。回答控制被QA控制中的詢問(wèn)控制直接激活。使用多個(gè)回答時(shí),它們通常將回答反映給系統(tǒng)函數(shù),例如,A_Main可以響應(yīng)A_Main提供一個(gè)值,A_Confirm可以向確認(rèn)提供是/否+校正。
            Confirm[]ConfirmQA控制可以包含確認(rèn)對(duì)象或控制。該對(duì)象是提供給對(duì)話編寫(xiě)者的機(jī)制,它簡(jiǎn)化了普通確認(rèn)子對(duì)話的編寫(xiě)。
            Command[]Command命令陣列保持一組命令控制。命令控制可以被認(rèn)為是沒(méi)有詢問(wèn)控制的回答控制,它的識(shí)別行為可以被規(guī)定在控制樹(shù)的下部范圍。
            1.2詢問(wèn)控制詢問(wèn)控制被用于關(guān)于給定的基本控制的話音輸出。它包含一組用于呈現(xiàn)信息或問(wèn)問(wèn)題的提示、和回答控制的id列表,該列表可以回答問(wèn)題。如果指定了多個(gè)回答控制,就在激活問(wèn)題時(shí)并行載入這些語(yǔ)法。如果在詢問(wèn)控制中不指定回答控制就丟棄排除。
            <pre listing-type="program-listing"><Question id=″...″ ClientTest=″...″ Answers=″...″ Count=″...″ initialTimeout=″...″ babbleTimeout=″...″ maxTimeout=″...″ Modal=″...″ PromptFunction=″...″ OnClientNoReco=″...″><prompt.../>... </Question></pre>字符串ClientTestClientTest指定返回布爾值的客戶端腳本函數(shù),布爾值確定在什么環(huán)境下認(rèn)為QA控制中詢問(wèn)控制激活(QA控制對(duì)于要被評(píng)價(jià)的問(wèn)題必須是激活的)。對(duì)于給定QA控制,選擇具有真條件的第一詢問(wèn)控制用于輸出。例如,該函數(shù)可以被用于確定是否要輸出確定要求值(“您想去哪個(gè)城市?”)或試圖確認(rèn)它(“您是說(shuō)倫敦嗎?”)的問(wèn)題。如果未指定,就認(rèn)為問(wèn)題條件為真。
            Prompt[]Prompt提示陣列指定了下面要討論的提示對(duì)象的列表。提示也能指定選擇條件(經(jīng)客戶函數(shù)),且在RunSpeech執(zhí)行期間,只選擇具有真條件的第一提示用于播放。
            String Answer回答是用ID的參考陣列以便控制對(duì)問(wèn)題的可能回答。該行為是要響應(yīng)詢問(wèn)控制所問(wèn)的提示激活來(lái)自每個(gè)有效回答控制的語(yǔ)法。
            Integer initialTimeout在識(shí)別起動(dòng)和檢測(cè)話音之間的幾毫秒時(shí)間。如果超時(shí),該值就被送到識(shí)別平臺(tái),從識(shí)別平臺(tái)丟棄onSilenct事件。如果未指定,話音平臺(tái)就使用缺省值。
            Integer babbleTimeout識(shí)別服務(wù)器或其它識(shí)別器必須在檢測(cè)話音后返回結(jié)果的幾毫秒時(shí)間段。對(duì)于“tap-and-talk”場(chǎng)景中的識(shí)別,它應(yīng)用于話音檢測(cè)和可以使用的識(shí)別結(jié)果之間的時(shí)期。對(duì)于指令場(chǎng)景中的識(shí)別,該超時(shí)應(yīng)用于話音檢測(cè)和每個(gè)識(shí)別返回之間的時(shí)期——即,每次返回結(jié)果或其它事件后重新開(kāi)始的時(shí)期。如果超時(shí),onClientNoReco事件被丟棄但可以有不同的狀態(tài)代碼。如果已經(jīng)可以檢測(cè)到任何一種識(shí)別平臺(tái)錯(cuò)誤且經(jīng)過(guò)了babbleTimeout時(shí)期,那么,onClientNoReco就被丟棄但狀態(tài)代碼為-3?;蛘撸绻R(shí)別器仍處理音頻——例如在超長(zhǎng)說(shuō)法的情況下或者如果用戶已經(jīng)在超時(shí)中繼續(xù)下筆——丟棄onClientNoReco,狀態(tài)代碼為-15。如果未指定babbleTimeout,話音平臺(tái)就缺省為內(nèi)值。
            Integer maxTimeout識(shí)別起動(dòng)和將結(jié)果返回被客戶裝置瀏覽器之間的幾毫秒時(shí)期。如果超時(shí),瀏覽器就丟棄onMaxTimeout事件——它適于內(nèi)部環(huán)境中的網(wǎng)絡(luò)或識(shí)別器故障。對(duì)于指令場(chǎng)景中的識(shí)別,象babbleTimeout那樣,在返回每個(gè)識(shí)別或其它事件后重新開(kāi)始該時(shí)期。注意,maxTimeout屬性應(yīng)大于或等于intialTimeout和babbleTimeout之和。如果未指定,該值就是瀏覽器缺省值。
            bool modal當(dāng)將模態(tài)設(shè)為真時(shí),不激活除了對(duì)問(wèn)題的一組立即回答之外的回答(即,不考慮沒(méi)規(guī)定范圍的回答)。缺省為偽。例如,該屬性允許應(yīng)用開(kāi)發(fā)者使客戶裝置的用戶回答特殊問(wèn)題。
            字符串PromptFunction(prompt)PromptFunction指定一旦已經(jīng)選擇了問(wèn)題但播放提示之前調(diào)入的客戶端函數(shù)。它為開(kāi)發(fā)者執(zhí)行對(duì)可能要求的提示的最后修改提供了機(jī)會(huì)。PromptFunction用目標(biāo)提示的ID作為所要求的參數(shù)。
            字符串onClientNoRecoonClientNoReco指定客戶端函數(shù)的名稱(chēng)在收到NoReco(mumble)時(shí)調(diào)入。
            1.2.1提示對(duì)象提示對(duì)象包含關(guān)于如何播放提示的信息。所定義的所有性質(zhì)是寫(xiě)/讀性質(zhì)。
            <pre listing-type="program-listing"><promptid=“...”count=“...”ClientTest=“...”Source=“...”bargeIn=“...”&lt;dp n="d64"/&gt;onClientBargein=“...”onClientComplete=“...”onClientBookmark=“...”</prompt>int count</pre>Count指示用于提示選擇的整數(shù)。當(dāng)在提示上指定的計(jì)數(shù)值與其詢問(wèn)控制的計(jì)數(shù)值匹配時(shí),就選擇提示用于重放。合法值是0-100。
            &lt;Question id=Q_Ask”&gt;
            &lt;prompt count=“1”&gt;Hello&lt;/prompt&gt;
            &lt;prompt count=“2”&gt;Hello again&lt;/prompt&gt;
            &lt;/Question&gt;
            該實(shí)例中,當(dāng)Q_Ask.count等于1,播放第一提示,如果等于2(即,以前已經(jīng)輸出問(wèn)題),然后播放第二提示。
            字符串ClientTestClientTest指定了返回布爾值的客戶端腳本函數(shù),該函數(shù)確定在什么環(huán)境下選擇激活詢問(wèn)控制中的提示用于輸出。對(duì)于給定詢問(wèn)控制,選擇具有真條件的第一提示。例如,該函數(shù)可以被用于實(shí)現(xiàn)提示漸細(xì),例如(如果是第一次用戶返回真的函數(shù)“您想離開(kāi)哪個(gè)城市?”或用于老手的“哪個(gè)城市?”)如果未指定,就認(rèn)為提示的條件為真。
            字符串InlinePrompt提示性質(zhì)包含要播放的提示的文本。它被定義為提示元素的內(nèi)容。它還可以包含標(biāo)記,象在TTS反映信息中那樣,或者&lt;value&gt;元素。如同頁(yè)的所有部分,它也可以被指定為&lt;script&gt;標(biāo)簽中的腳本代碼,用于提示輸出的動(dòng)態(tài)反映。
            字符串SourceSource指定URL,從該URL檢索要播放的提示的文本。如果指定了內(nèi)聯(lián)提示,就忽略該性質(zhì)。
            Bool BargeInBargeIn被用于指定是否在提示上允許闖入(其中,當(dāng)播放提示時(shí),客戶裝置的用戶開(kāi)始講話)。缺省為真。
            字符串onClientBargein
            onClientBargein指定闖入事件所調(diào)用的客戶端腳本函數(shù)。
            字符串onClientCompleteonClientComplete指定當(dāng)完成提示的播放時(shí)調(diào)用的客戶端腳本函數(shù)。
            字符串onClientBookmarkonClientBookmark在遇到書(shū)簽時(shí)訪問(wèn)要調(diào)入的客戶端函數(shù)的名稱(chēng)。
            1.2.2提示選擇在RunSpeech執(zhí)行時(shí),QA控制以下面的方式選擇其提示ClientTest和每個(gè)提示的計(jì)數(shù)屬性被依次評(píng)價(jià)。播放具有ClientTest和counttrue的第一提示。錯(cuò)過(guò)的計(jì)數(shù)被認(rèn)為是真。錯(cuò)過(guò)ClientTest被認(rèn)為是真。
            1.3陳述控制當(dāng)不要求活動(dòng)語(yǔ)法時(shí),陳述控制被用于信息給出系統(tǒng)輸出。它在純語(yǔ)音對(duì)話中是公用的。如果playOnce屬性為真,陳述就在每頁(yè)只播放依次。
            &lt;Statementid=“...”playOnce=“...”ClientTest=“...”P(pán)romptFunction=“...”&lt;prompt.../&gt;
            &lt;/Statement&gt;
            bool playOnceplayOnce屬性指定每頁(yè)是否可激活1次以上的陳述控制。playOnce是具有TRUE缺省(如果未指定)的布爾屬性,即,只執(zhí)行1次陳述控制。例如,playOnce屬性可以被用在其目的是輸出電子郵件消息到終端用戶的陳述控制。設(shè)定playOnce=“False”會(huì)給對(duì)話編寫(xiě)者提供啟動(dòng)讀取電子郵件消息的頁(yè)上的“repeat”功能的能力。
            字符串ClientTestClientTest指定返回布爾值的客戶端腳本函數(shù),它確定在哪種環(huán)境下選擇陳述控制用于輸出。RunSpeech會(huì)激活ClientTest等于真的第一陳述。如果未指定,ClientTest條件就被認(rèn)為是真。
            字符串PromptFunction
            PromptFunction指定一旦選擇了陳述控制但在播放提示前要調(diào)入的客戶端函數(shù)。它給了編寫(xiě)者對(duì)所要求的提示最后修改的機(jī)會(huì)。
            Prompt[]Prompt提示陣列指定了提示對(duì)象的列表。提示也能指定選擇條件(經(jīng)客戶函數(shù)),在RunSpeech執(zhí)行期間,只選擇具有真條件的第一提示用于重放。
            &lt;SpeechQAid=QA_Welcome”ControlsToSpeechEnable=“Labell”Runat=“server”&lt;Statementid=“WelcomePrompt”&gt;
            &lt;prompt bargeIn=“False”&gt;Welcome&lt;/prompt&gt;
            &lt;/Statement&gt;
            &lt;/SpeechQA&gt;
            1.4確認(rèn)控制確認(rèn)控制是詢問(wèn)控制的特殊類(lèi)型。它們會(huì)保持所有其它詢問(wèn)控制的性質(zhì)和對(duì)象,但是,它們的激活不同。RunSpeech算法會(huì)檢查在ControlsToSpeechEnable的回答控制的confirmThreshold中發(fā)現(xiàn)的信用分。如果信用分太低,就激活確認(rèn)控制。如果回答控制的信用分低于confirmThreshold,那么,就進(jìn)行聯(lián)編但是不調(diào)入onClientReco方法。對(duì)話編寫(xiě)者可以為每個(gè)QA控制指定一個(gè)以上的確認(rèn)控制。RunSpeech會(huì)根據(jù)ClientTest指定的函數(shù)確定要激活哪個(gè)確認(rèn)控制。
            &lt;Answer ConfirmationThreshold=.../&gt;
            &lt;Confirm&gt;
            ...all attributes and objects of Question...
            &lt;/Confirm&gt;
            1.5回答控制回答控制被用于指定話音輸入資源和特點(diǎn)。它包含一組關(guān)于基本控制的語(yǔ)法。注意,可以獨(dú)立于問(wèn)題使用回答,例如在多模態(tài)應(yīng)用且沒(méi)有提示時(shí)、或者額外回答可以啟動(dòng)用戶主動(dòng)(initiative)的電話應(yīng)用中?;卮鹂刂瓶梢员辉儐?wèn)控制、引發(fā)事件或明顯的范圍直接激活。如果在回答控制中不指定語(yǔ)法對(duì)象,就丟棄排除。
            <pre listing-type="program-listing"><Answer id=″...″ scope=″...″ StartEvent=″...″ StopEvent=″...″ ClientTest=″...″ onClientReco=″...″ onClientDTMF=″...″ autobind=″...″ server=″...″ ConfirmThreshold=″...″ RejectThreshold=″...″> <grammar.../> <grammar.../> ... <dtmf.../> <dtmf.../> ... <bind.../> <bind.../> ...</Answer></pre>字符串ScopeScope在頁(yè)上保持任何被命名元素的id。Scope被用在回答控制中用于給用戶主動(dòng)可用性(混合的任務(wù)主動(dòng)即,服務(wù)跳躍離題(service jump digression))語(yǔ)法。如果在回答控制中指定了范圍,那么,就在激活相應(yīng)于上下文控制子樹(shù)中的基本控制的QA控制的任何時(shí)候激活Scope。
            字符串StartEventStartEvent指定了來(lái)自要激活回答控制的基本控制的事件名稱(chēng)(起動(dòng)Reco對(duì)象)。它通常被用在多模態(tài)應(yīng)用中,例如onMouseDown,用于tap-and-talk。
            字符串StopEventStopEvent指定來(lái)自號(hào)使回答控制失效的基本控制的事件名稱(chēng)(停止Reco對(duì)象)。它通常被用在多模態(tài)應(yīng)用中,例如onMouseUp,用于tap-and-talk。
            字符串ClientTestClientTest指定返回布爾值的客戶端腳本函數(shù),它確定在哪種環(huán)境下另外會(huì)被范圍或詢問(wèn)控制選擇的詢問(wèn)控制是激活的。例如,該測(cè)試被用在詢問(wèn)控制激活‘correction’回答控制時(shí)‘correction’回答控制使自己失效的確認(rèn)期間,但是,不希望是混合主動(dòng)(只有認(rèn)可/否認(rèn)回答控制是激活的)?;蛘咴S可服務(wù)跳躍的被規(guī)定范圍的回答控制可以通過(guò)指定一個(gè)測(cè)試來(lái)確定更靈活的激活方法,該測(cè)試的真或偽取決于對(duì)話的另一部分。如果未指定,回答控制的條件被認(rèn)為是真。
            Grammar[]GrammarsGrammars訪問(wèn)語(yǔ)法對(duì)象列表。
            DTMF[]DTMFsDTMFs保持DTMF對(duì)象陣列。
            Bind[]BindsBinds保持需要將回答控制語(yǔ)法結(jié)果(dtmf或講話)映射到控制值中的聯(lián)編對(duì)象列表。所有為回答指定的聯(lián)編都在識(shí)別相關(guān)輸出時(shí)執(zhí)行。如果沒(méi)有指定聯(lián)編,識(shí)別返回的SML輸出就被聯(lián)編到在QA控制的ControlsToSpeechEnable中指定的控制。
            字符串onClientRecoonClientReco指定了在可以使用講話識(shí)別結(jié)果時(shí)要調(diào)入的客戶端函數(shù)名稱(chēng)。
            字符串onClientDTMFonClientDTMF保持在可以使用DTMF識(shí)別結(jié)果時(shí)要調(diào)入的客戶端函數(shù)名稱(chēng)。
            boolean autobindautobind的值確定是否為來(lái)自回答控制的識(shí)別返回實(shí)現(xiàn)系統(tǒng)缺省聯(lián)編。如果未指定,缺省為真。將autobind設(shè)定為偽是讓系統(tǒng)不執(zhí)行自動(dòng)聯(lián)編的指令。
            字符串serverserver屬性是指定要執(zhí)行識(shí)別的服務(wù)器的URI的可選屬性。該屬性重寫(xiě)了整體話音服務(wù)器屬性的URI。
            integer ConfirmThreshold保持表示信用水平的值,在該水平以下在QA控制中識(shí)別回答后確認(rèn)控制問(wèn)題會(huì)被自動(dòng)立即引發(fā)。合法值是0-100。
            注意,同時(shí)指定聯(lián)編陳述和onClientReco腳本時(shí),得到的標(biāo)簽的語(yǔ)義是在onClientReco中指定腳本前實(shí)現(xiàn)的聯(lián)編。
            integer RejectThresholdRejectThreshold指定了考慮返回所識(shí)別的說(shuō)法的最低信用分。如果整個(gè)信用低于該水平,NoReco事件就被丟棄。合法值是0-100。
            1.5.1語(yǔ)法語(yǔ)法對(duì)象包含關(guān)于選擇和語(yǔ)法內(nèi)容的信息以及用于處理結(jié)果的方法。所有被定義的性質(zhì)都是讀/寫(xiě)性質(zhì)。
            &lt;GrammarClientTest=“...”Source=“...”&gt;
            ...grammar rules...
            &lt;/Grammar&gt;
            字符串ClientTestClientTest性質(zhì)參考客戶端布爾函數(shù),它確定在哪種條件下語(yǔ)法是激活的。如果在回答控制中指定了多個(gè)語(yǔ)法(例如,實(shí)現(xiàn)系統(tǒng)混合主動(dòng)策略,或減小進(jìn)行差的對(duì)話時(shí)可能回答的混亂),只選擇具有真ClientTest函數(shù)的第一語(yǔ)法用于RunSpeech執(zhí)行期間的激活。如果,未指定該性質(zhì),就假設(shè)為真。
            字符串SourceSource訪問(wèn)要加載的語(yǔ)法的URI,如果被指定的話。
            字符串InlineGrammarInlineGrammar訪問(wèn)語(yǔ)法的文本,如果內(nèi)聯(lián)指定的話。如果該性質(zhì)不空,Source屬性就被忽略。
            1.5.2聯(lián)編用于聯(lián)編的對(duì)象模型緊密遵循其對(duì)端客戶端標(biāo)簽。聯(lián)編可以被同時(shí)指定給講話語(yǔ)法和在單個(gè)回答控制中返回的DTMF識(shí)別。
            &lt;bindValue=“...”TargetElement=“...”TargetAttribute=“...”Test=“...”/&gt;
            字符串Value
            Value指定要被聯(lián)編到目標(biāo)元素的文本。它被指定為從識(shí)別輸出的SML上的XPath。
            字符串TargetElementTargetElement指定要應(yīng)用聯(lián)編陳述的基本控制的id。如果未指定,就假設(shè)它是相關(guān)QA控制的ControsToSpeechEnable。
            字符串TargetAttributeTargetAttribute指定TargetElement控制上的屬性,在TargetElement中聯(lián)編值。如果未指定,就假設(shè)目標(biāo)元素的文本性質(zhì)。
            字符串TestTest屬性指定在聯(lián)編機(jī)制上必須評(píng)價(jià)為真的條件。它被指定為從識(shí)別輸出的SML受到XML模式。
            1.5.2.1自動(dòng)聯(lián)編識(shí)別上返回到話音啟動(dòng)的基本控制的缺省行為是要將確定性質(zhì)聯(lián)編到該基本控制。這對(duì)于對(duì)話控制以便檢驗(yàn)來(lái)自各輪(甚至各頁(yè))的基本控制的識(shí)別結(jié)果是有用的?;卮鹂刂茖⒏鶕?jù)接收識(shí)別結(jié)果執(zhí)行下面的作用1.將SML輸出樹(shù)聯(lián)編到基本控制的SML屬性中;2.將說(shuō)法的文本聯(lián)編到基本控制的SpokenText屬性中;3.將識(shí)別器返回的信用分聯(lián)編到基本控制的Confidence屬性中。
            除非在回答控制上指定autobind=“False”屬性,回答控制將在基本控制上執(zhí)行下面的作用1.將SML輸出樹(shù)聯(lián)編到SML屬性中;2.將說(shuō)法的文本聯(lián)編到SpokenText屬性中;3.將識(shí)別器返回的信用分聯(lián)編到基本控制的Confidence屬性中。
            屬性中已有的任何值將會(huì)被重寫(xiě)。自動(dòng)聯(lián)編發(fā)生在所有編寫(xiě)者指定聯(lián)編命令前,因此就是在所有onClientReco腳本前(它也可以聯(lián)編到這些屬性)。
            1.5.3 DTMFDTMF可以被回答控制用在電話應(yīng)用中。DTMF對(duì)象主要應(yīng)用于相同回答的不同模態(tài)語(yǔ)法(鍵區(qū)輸入語(yǔ)法而非話音輸入語(yǔ)法)。DTMF內(nèi)容模型與客戶端輸出標(biāo)簽DTMF元素的內(nèi)容模型很匹配。用DTMF對(duì)象的targetAttribute屬性指定用于DTMF返回的聯(lián)編機(jī)制。
            <pre listing-type="program-listing"><DTMFfirstTimeout=“...”interDigitTimeout=“...”numDigits=“...”flush=“...”escape=“...”targetAttribute=“...”ClientTest=“...”></DTMF>integer firstTimeout</pre>在激活和出現(xiàn)超時(shí)事件前的第一鍵入之間的幾毫秒數(shù)。
            Integer interDigitTimeout等候出現(xiàn)超時(shí)事件之前的按鍵之間的幾毫秒數(shù)。
            Int numDigitsDTMF識(shí)別期間許可的最大鍵輸入數(shù)。
            bool flush陳述是否在識(shí)別開(kāi)始前刷新電話服務(wù)器DTMF緩沖的標(biāo)志。設(shè)定刷新為偽許可DTMF鍵輸入被存儲(chǔ)在識(shí)別/頁(yè)調(diào)入之間,它許可用戶‘type-ahead’。
            字符串escape保持將被用于結(jié)束DTMF識(shí)別的鍵的串值(例如‘#’)。
            字符串targetAttributeTargetAttribute指定了要聯(lián)編值的基本控制上的性質(zhì)。如果未指定,就假設(shè)它是基本控制的Text性質(zhì)。
            字符串ClientTestClientTest性質(zhì)參考客戶端布爾函數(shù),該函數(shù)確定在哪種條件下DTMF語(yǔ)法是激活的。如果在DTMF對(duì)象中指定了多個(gè)語(yǔ)法,就只選擇具有真ClientTest函數(shù)的第一語(yǔ)法用于在RunSpeech執(zhí)行期間激活。如果未指定該性質(zhì),就假設(shè)為真。
            1.5.4 DTMF語(yǔ)法DTMF語(yǔ)法將鍵映射到與該鍵有關(guān)的輸出值。下面的例子顯示了如何將“1”和“2”鍵映射到文本輸出值。
            &lt;dtmfgrammar&gt;
            &lt;key value=“1”&gt;Seattle&lt;/key&gt;
            &lt;key value=“2”&gt;Boston&lt;&lt;/key&gt;
            &lt;/dtmfgrammar&gt;
            1.6命令控制命令控制是可以在任何QA控制中定義的回答控制的特殊變量。命令控制由用戶輸入形成,這些命令控制不是對(duì)將來(lái)問(wèn)題的回答(例如,幫助、重復(fù)、取消)且不需將識(shí)別結(jié)果聯(lián)編到基本控制中。如果QA控制指定了激活范圍,命令語(yǔ)法對(duì)于范圍中的每個(gè)QA控制就是激活的。因此,命令不需被問(wèn)題或事件直接激活,它的語(yǔ)法被獨(dú)立于回答控制建立過(guò)程并行激活。在范圍較低的QA控制的相同類(lèi)型命令控制可以用上下文敏感行為來(lái)重寫(xiě)高級(jí)命令(甚至是不同/擴(kuò)展后的語(yǔ)法,如果需要的話)。
            &lt;Commandid=“...”scope=“...”type=“...”RejectThreshold=“...”onClientReco=“...”&gt;
            &lt;Grammar...&gt;
            &lt;dtmf...&gt;
            &lt;/Command&gt;
            字符串ScopeScope保持基本控制的id。Scope被用在命令控制中用于給命令語(yǔ)法的可用性規(guī)定范圍。如果為命令控制指定了范圍,就會(huì)在激活相應(yīng)于上下文控制的子樹(shù)中基本控制的QA控制的任何時(shí)候激活命令的語(yǔ)法。
            字符串typeType指定了命令的類(lèi)型(例如‘幫助’、‘取消’等)以便允許在范圍樹(shù)的低級(jí)重寫(xiě)相同類(lèi)型的命令。在該屬性中任何串值都是可能的,所以是由編寫(xiě)者來(lái)保證類(lèi)型的正確使用。
            Integer RejectThresholdRejectThreshold指定了識(shí)別引發(fā)命令所需的最低識(shí)別信用水平(可能在要求高于普通信用的信用時(shí)用到,例如在執(zhí)行‘取消’命令的結(jié)果前)。合法值是0-100。
            字符串onClientRecoonCommand指定了在命令控制的語(yǔ)法的識(shí)別上執(zhí)行的客戶端腳本函數(shù)。
            Grammar Grammar將聽(tīng)到命令的grammar對(duì)象。
            DTMF []DTMF將激活命令的dtmf對(duì)象。
            2.起始和對(duì)話流的類(lèi)型用上述控制,可以開(kāi)發(fā)多種形式的起始,下面提供了一些實(shí)例。
            2.1混合主動(dòng)對(duì)話混合起始對(duì)話提供了以問(wèn)一個(gè)問(wèn)題來(lái)認(rèn)可對(duì)多個(gè)控制的輸入的能力。例如,對(duì)問(wèn)題“您的旅行計(jì)劃是什么?”的回答可以提供用于初始城市對(duì)話框控制、目的城市對(duì)話框控制和日程控制的值(“在9月30日從普牙盧普飛到雅基馬”)。
            編碼混合起始對(duì)話的固定方法是手寫(xiě)混合起始語(yǔ)法和相關(guān)聯(lián)編陳述,并將它應(yīng)用于單個(gè)控制。
            下面的實(shí)例顯示了用于關(guān)于旅行的簡(jiǎn)單混合起始語(yǔ)音相互作用的單頁(yè)。第一QA控制指定了混合主動(dòng)語(yǔ)法和聯(lián)編以及要求兩項(xiàng)的相關(guān)提示。第二和第三QA控制不是混合主動(dòng),所以用缺省直接聯(lián)編到它們各自的基本控制(所以不要求聯(lián)編陳述)。RunSpeech算法將根據(jù)屬性“SpeechIndex”和它們的基本控制是否保持有效值來(lái)選擇QA控制。
            <pre listing-type="program-listing"><%@Page language=“c#”AutoEventWireup=“false”inherits=“SDN.Page”%>&lt;dp n="d74"/&gt;<body><Form id=″WebForm1″ method=post runat=″server″><ASPLabel id=″Label1″runat=″server″>Departurecity</ASPLabel><ASPTextBox id=″TextBox1″runat=″server″/><br><ASPLabel id=″Label2″runat=″server″>Arrivalcity</ASPLabel><ASPTextBox id=″TextBox2″textchanged=″TextChanged″runat=″server″/><!-speech information--><SpeechQA id=″QAmixed″controlsToSpeechEnable=″TextBox1″speechIndex=″1″ runat=″server″> <Question id=″Q1″Answers=″A1″> <prompt>″Please say the cities you want to flyfrom and to″</prompt> </Question> <Answer id=″A1″> <grammar src=″...″/> <bind targetElement=″TextBox1″value =″/sml/path1″/> <bind targetElement=″TextBox2″value=″/sml/path2″/> </Answer></SpeechQA><SpeechQA id=″QA1″controlsToSpeechEnable=″TextBox1″speechIndex=″2″runat=″server″> <Question id=″Q1″Answers=″A1″> <prompt>″What′s the departure city?″</prompt> </Question> <Answer id=″A1″> <grammar src=″...″/> </Answer></SpeechQA><SpeechQA id=″QA2″controlsToSpeechEnable=″TextBox2″speechIndex=″3″runat=″server″>&lt;dp n="d75"/&gt;<Question id=“Q1”Answer=“A1”><prompt>“What’s the arrival city”</prompt></Question><Answer if=“A1”><grammar src=“...”/&gt;</Answer></SpeechQA></Form></body></html></pre>2.2復(fù)雜混合起始應(yīng)用開(kāi)發(fā)者可以對(duì)具有不同主動(dòng)水平的相同詢問(wèn)控制指定幾個(gè)回答。指定要在問(wèn)問(wèn)題時(shí)選擇一個(gè)問(wèn)題的條件,這取決于它們要求的起始起始設(shè)定。下面提供了一個(gè)實(shí)例<pre listing-type="program-listing"><SpeechQA id=″QA_Panel2″ ControlsToSpeechEnable=″Panel2″ runat=″server″> <Question answers=″systemInitiative,mixedInitiative″ .../> <Answer id=″systemInitiative″ ClientTest=″systemInitiativeCond″ onClientReco=″SimpleUpdate″> <grammar src=″systemInitiative.gram″/> </Answer> <Answer id=″mixedInitiative″ ClientTest=″mixedInitiativeCond″ onClientReco=″MixedUpdate″> <grammar src=″mixedInitiative.gram″/> </Answer></SpeechQA></pre>應(yīng)用開(kāi)發(fā)者可以在一個(gè)QA控制中指定幾個(gè)詢問(wèn)控制。一些詢問(wèn)控制可以允許混合起始起始風(fēng)格的回答,同時(shí)恰詢問(wèn)控制更直接。通過(guò)在這些詢問(wèn)控制上編寫(xiě)條件應(yīng)用開(kāi)發(fā)者可以按對(duì)話狀態(tài)在問(wèn)題之間選擇。
            在下面的實(shí)例中,混合起始問(wèn)題同時(shí)提問(wèn)兩個(gè)文本框的值(例如‘您的旅行計(jì)劃時(shí)什么?’)和調(diào)入混合起始回答(例如‘從倫敦到西雅圖’)。如果失敗了,那么就分別提問(wèn)每個(gè)文本框的值(例如‘您從哪出發(fā)?’和‘您要去哪?’)但是,根據(jù)條件,仍然可以激活混合起始語(yǔ)法,這樣,允許用戶提供兩個(gè)值。
            <pre listing-type="program-listing"><SpeechQA id=″QA_Panel2″ ControlsToSpeechEnable=″TextBox1,TextBox2″ runat=″server″><Question ClientTest=″AllEmpty()″ answers=″AnsAll″ .../><Question ClientTest=″TextBox1IsEmpty()″ answers=″AnsAll,AnsTextBox1″ .../><Question ClientTest=″TextBox2IsEmpty()″ answers=″AnsAll,AnsTextBox2″ .../> <Answer id=″AnsTextBox1″ onClientReco=″SimpleUpdate″> <grammar src=″AnsTextBox1.gram″ /> </Answer> <Answer id=″AnsTextBox2″ onClientReco=″SimpleUpdate″> <grammar src=″AnsTextBox2.gram″/> </Answer><Answerid=“AnsAll”ClientTest=“IsMixedInitAllwed()”onClientReco=“MixedUpdate”><grammar src=“AnsAll.gram”/></Answer></SpeechQA></pre>2.3用戶起始與命令控制類(lèi)似,標(biāo)準(zhǔn)QA控制可以指定與其語(yǔ)法的激活。類(lèi)似于命令控制,該QA控制將激活來(lái)自相關(guān)回答控制的語(yǔ)法,無(wú)論何時(shí)在該語(yǔ)法中激活另一QA控制。注意,它的詢問(wèn)控制只會(huì)被問(wèn)到QA控制是否自激活。
            <pre listing-type="program-listing"><SpeechQAid=“QA_Panel2”ControlsToSpeechEnable=“Panel2”Runat=“server”><Question.../&gt;<Answer id=“AnswerPanel2”scope=“Panel2”onClientReco=“UpdatePanel2()”><grammar src=“src=“Panel2.gram”/&gt;</Answer>&lt;/SpeechQA></pre>這對(duì)于對(duì)話是有用的,這些對(duì)話允許‘服務(wù)跳躍’——關(guān)于不與即將到來(lái)的詢問(wèn)控制直接相關(guān)的對(duì)話的一些部分的用戶響應(yīng)。
            2.4短超時(shí)確認(rèn)應(yīng)用開(kāi)發(fā)者可以如常編寫(xiě)確認(rèn),但是,設(shè)定一個(gè)短超時(shí)。在超時(shí)處理程序中,提供代碼認(rèn)可當(dāng)前值作為準(zhǔn)確值。
            <pre listing-type="program-listing"><SpeechQAid=“QA_Panel2”ControlsTospeechEnablr=“”P(pán)anel2”Runat=“server”><Confirm timeout=“20”onClientTimeout=“AcceptConfirmtion”.../&gt;<Answer id=“CorrectPanel2”onClientReco=“UpdatePanel2()”><grammar src=“Panel2.gram”/&gt;</Answer></SpeechQA></pre>2.5動(dòng)態(tài)提示建立和編輯在選擇詢問(wèn)控制之后但在選取和播放提示之前調(diào)入promptFunction腳本。它讓?xiě)?yīng)用開(kāi)發(fā)者在最后一刻建立或修改提示。在下面的實(shí)例中,它被用于根據(jù)用戶經(jīng)驗(yàn)水平來(lái)改變提示。
            <pre listing-type="program-listing"> <script language=j(luò)avascript> function GetPrompt(){if(experiencedUser==true) Prompt1.Text=″What service do you want?″;else Prompt1.Text=″Please choose between e- mail, calendar and news″;return; } </script> <SpeechQA id=″QA Panel2″ ControlsToSpeechEnable=″Panel2″ runat=″server″> <Question PromptFunction=″GetPrompt″...><Prompt id=″Prompt1″/> </Question><Answer.../&gt;</SpeechQA></pre>2.6利用語(yǔ)義關(guān)系識(shí)別和語(yǔ)義關(guān)系的使用可以通過(guò)研究onReco事件處理程序中識(shí)別器結(jié)果來(lái)進(jìn)行。
            &lt;script language=“javascript”&gt;
            function Reco(){/*應(yīng)用開(kāi)發(fā)者可以訪問(wèn)用識(shí)別器或識(shí)別服務(wù)器返回的SML。如果識(shí)別了語(yǔ)義關(guān)系(象體育新聞),各個(gè)元素的信用就可以增加或采取其它適當(dāng)作用。
            <pre listing-type="program-listing">*/}</script><SpeechQAid=“QA-Panel2”&lt;dp n="d79"/&gt;ControlToSpeechEnable=“Panel2”Runat=“server”><Question.../&gt;<Answer onClientReco=“Reco”><grammar src=“Panel2.gram”/&gt;</Answer></SpeechQA></pre>3.RunSpeech的實(shí)現(xiàn)和應(yīng)用需要一個(gè)機(jī)制來(lái)為純語(yǔ)音客戶提供適當(dāng)反映話音啟動(dòng)頁(yè)所需的信息。這種機(jī)制必須提供對(duì)話邏輯的執(zhí)行和用戶提示的維持狀態(tài)以及應(yīng)用開(kāi)發(fā)者指定的語(yǔ)法激活對(duì)于多模態(tài)客戶不需要這種機(jī)制。在多模態(tài)的情況下,客戶裝置的用戶可以看到包含話音啟動(dòng)控制的頁(yè)。客戶裝置的用戶可以用多模態(tài)范例向任何預(yù)期命令中的視覺(jué)話音啟動(dòng)控制中提供話音輸入。
            純語(yǔ)音客戶用來(lái)反映話音啟動(dòng)頁(yè)的機(jī)制是RunSpeech腳本或算法。RunSpeech腳本依賴于QA控制的SpeechIndex屬性和下面要討論的speechGroup控制。
            3.1 SpeechControl在運(yùn)行期,系統(tǒng)分析控制腳本或具有服務(wù)器控制的網(wǎng)頁(yè)并產(chǎn)生服務(wù)器控制的樹(shù)狀結(jié)構(gòu)。通常,樹(shù)的根是Page控制。如果控制腳本使用該定制或用戶控制,該定制或用戶控制的子樹(shù)就被擴(kuò)展。樹(shù)的每個(gè)節(jié)點(diǎn)有一個(gè)ID且易于在擴(kuò)展時(shí)在樹(shù)中有名稱(chēng)沖突。為了解決可能的名稱(chēng)沖突,該系統(tǒng)包括NamingContainer概念。樹(shù)中的任何節(jié)點(diǎn)可以實(shí)現(xiàn)NamingContainer,其子位于該名稱(chēng)空間中。
            QA控制可以出現(xiàn)在服務(wù)器控制樹(shù)中。為了容易地解決SpeechIndex和管理客戶端反映,提供SpeechGroup控制。應(yīng)用開(kāi)發(fā)者隱瞞了Speechgroup控制。
            產(chǎn)生一個(gè)Speechgroup控制并邏輯地連接到在其子樹(shù)中包含QA控制的每個(gè)NamingContainer節(jié)。QA和SpeechGroup控制被認(rèn)為時(shí)其直接NamingContainer的SpeechGroup的成員。該頂級(jí)SpeechGroup控制被連接到頁(yè)對(duì)象。該成員關(guān)系邏輯地構(gòu)成了QA控制和SpeechGroup控制的一個(gè)樹(shù)——邏輯話音樹(shù)。
            對(duì)于簡(jiǎn)單的話音啟動(dòng)頁(yè)或腳本(即,不包含其它NamingContainer的頁(yè)),只產(chǎn)生根SpeechGroup控制并在將該頁(yè)發(fā)送到純語(yǔ)音客戶之前把它放在頁(yè)的服務(wù)器控制樹(shù)中。SpeechGroup控制維護(hù)關(guān)于在該頁(yè)上QA控制的數(shù)量和反映級(jí)(rendering order)的信息。
            對(duì)于包含一個(gè)或多個(gè)QA控制和一個(gè)或多個(gè)NamingContainer的組合的頁(yè),產(chǎn)生多個(gè)SpeechGroup控制用于頁(yè)的一個(gè)SpeechGroup控制(如上所述)或用于每個(gè)NamingContainer的SpeechGroup控制。對(duì)于包含多個(gè)NamingContainer的頁(yè),頁(yè)水平(page level)的SpeechGroup控制維護(hù)如上所述的QA控制信息以及復(fù)合控制的數(shù)量和反映級(jí)。與每個(gè)NamingContainer有關(guān)的SpeechGroup控制保持每個(gè)組合中的QA數(shù)量和反映級(jí)。
            SpeechGroup控制的主要工作是保持QA控制的列表和每頁(yè)上的SpeechGroup和包含復(fù)合控制的QA控制列。當(dāng)產(chǎn)生客戶端標(biāo)記腳本(例如HTML)時(shí),每個(gè)SpeechGroup在客戶端寫(xiě)出QACollection對(duì)象。QACollection有QA控制和QACollection的列表。它相應(yīng)于邏輯服務(wù)器端話音樹(shù)。RunSpeech腳本將在純語(yǔ)音對(duì)話處理期間詢問(wèn)用于下一QA控制的頁(yè)水平QACollection對(duì)象以便調(diào)用。
            位于每頁(yè)上的頁(yè)水平的SpeechGroup控制也響應(yīng)·確定請(qǐng)求客戶是純語(yǔ)音客戶;和·產(chǎn)生公用腳本和支持用于每頁(yè)上的所有QA控制的結(jié)構(gòu)。
            當(dāng)?shù)谝籗peechGroup控制反映時(shí),它詢問(wèn)用于瀏覽器字符串的System.Web.UI.Page.Request.Browser性質(zhì)。然后,該性質(zhì)被送到用于頁(yè)上的每個(gè)QA控制的RenderSpeechHTML和RenderSpeechScript方法。然后QA控制反映適當(dāng)?shù)目蛻?多模態(tài)或純語(yǔ)音)。
            3.2 SpeechGroup控制的產(chǎn)生在服務(wù)器端頁(yè)加載期間,onLoad事件被發(fā)送到頁(yè)上的每個(gè)控制。接收onLoad事件的第一QA控制產(chǎn)生頁(yè)水平的SpeechGroup控制。以下面的方式產(chǎn)生SpeechGroup控制(假設(shè)頁(yè)包含復(fù)合控制)每個(gè)QA控制從運(yùn)行時(shí)期代碼接收onLoad事件。onLoad用于QA■得到QA的NamingContainer N1■在N1的子中搜索SpeechGroup
            ○如果已經(jīng)存在,就用該SpeechGroup登記該QA控制。onLoad返回。
            ○如果沒(méi)發(fā)現(xiàn)■產(chǎn)生新的speechGroup G1,將它插入N1的子中■如果N1不是頁(yè),就發(fā)現(xiàn)N1的NamingContainer N2■在N2的子中搜索SpeechGroup,如果存在,就說(shuō)G2,將G1加到G2。如果不存在,就產(chǎn)生新的一個(gè)G2,將它插入N2的子中。
            ■依次遞推直到NamingContainer是頁(yè)(頂級(jí))為止。
            在服務(wù)器端頁(yè)反映期間,反映事件被發(fā)送到話音啟動(dòng)頁(yè)。當(dāng)頁(yè)水平的SpeechGroup控制接收Render事件時(shí),它產(chǎn)生客戶端腳本以包括RunSpeech.js并將它插入頁(yè)中,該頁(yè)最后被發(fā)送到客戶裝置。它也調(diào)入所有它的直接子以便反映話音相關(guān)HTML和腳本。如果子是SpeechGroup,該子就再調(diào)入它的子。以這種方式,服務(wù)器反映隨著服務(wù)器端邏輯話音樹(shù)發(fā)生。
            當(dāng)SpeechGroup反映時(shí),它讓自己的子(可以時(shí)QA或SpeechGroup)以它們的SpeechIndex的順序反映話音HTML和腳本。但是,SpeechGroup是被隱藏的且本質(zhì)上沒(méi)有SpeechIndex。實(shí)際上,SpeechContainer會(huì)用相同的SpeechIndex作為它的NamingContainer,即它所連接的NamingContainer。NamingContainer經(jīng)常是UserControl或其它視覺(jué)控制,編寫(xiě)者可以對(duì)它設(shè)定SpeechIndex。
            3.3 RunSpeechRunSpeech的目的是許可經(jīng)在腳本中指定的邏輯或客戶機(jī)上的邏輯的對(duì)話流。在一個(gè)實(shí)施例中,在外部腳本文件中指定Runspeech,用SpeechGroup控制的服務(wù)器端反映產(chǎn)生的單線加載RunSpeech,例如&lt;script language=“javascript”src=“/scripts/RunSpeech.js”/&gt;
            RunSpeech.js腳本文件應(yīng)暴露一種用于在客戶機(jī)上驗(yàn)證(validating)的方法,這里腳本已經(jīng)正確加載和有正確的版本id等。由作為內(nèi)聯(lián)函數(shù)的頁(yè)等級(jí)(pageclass)激活驗(yàn)證腳本,在嘗試加載該文件后執(zhí)行內(nèi)聯(lián)函數(shù)。
            鏈接到外部腳本在功能上相當(dāng)于指定它內(nèi)聯(lián),且它還更有效(由于瀏覽器能隱藏該文件)和清楚(由于頁(yè)不與類(lèi)函數(shù)混淆)。
            3.4事件3.4.1事件連接(event wiring)
            tap-and-talk多模態(tài)可以通過(guò)使語(yǔ)法激活與onMouseDown事件協(xié)作來(lái)啟動(dòng)。頁(yè)根據(jù)多個(gè)控制之間的關(guān)系(如QA控制中的ControlsToSpeechEnable性質(zhì)中指定的那樣)產(chǎn)生這樣做的連接腳本。
            例如,假設(shè)aspTextBox和其伴隨QA控制添加語(yǔ)法,&lt;input&gt;和&lt;reco&gt;元素被每個(gè)控制的反映方法輸出。要添加語(yǔ)法激活命令的連接機(jī)制被頁(yè)產(chǎn)生的客戶端腳本執(zhí)行,它在用于激活事件的任何現(xiàn)有處理程序之前改變要添加激活命令的基本控制&lt;!--Control output--&gt;
            &lt;input id=″TextBox1″type=″text″ .../&gt;
            &lt;reco id=″Reco1″.../&gt;
            &lt;grammar src=″...″/&gt;
            &lt;/reco&gt;
            &lt;!-- Page output --&gt;
            &lt;script&gt;
            TextBox1.onMouseDown=″Reco1.Start();″+TextBox1.onMouseDown;&lt;/script&gt;
            通過(guò)缺省,經(jīng)onmousedown和onmouseup事件接通中心系統(tǒng),但是,StartEvent和StopEvent都可以由網(wǎng)頁(yè)編寫(xiě)者來(lái)設(shè)定。
            文本框輸出保持獨(dú)立于該修改,如果存在其它處理程序就如常處理該事件。
            3.4.2頁(yè)等級(jí)性質(zhì)頁(yè)也包含可以在運(yùn)行時(shí)期用于腳本的下列性質(zhì)。
            SML——用于控制的ID的名/值對(duì),它與識(shí)別返回的SML關(guān)聯(lián)。
            SpokenText——用于控制的ID的名/值對(duì),它與識(shí)別器返回的信用關(guān)聯(lián)。
            4.RunSpeech算法RunSpeech算法被用于驅(qū)動(dòng)驅(qū)動(dòng)客戶裝置上的對(duì)話流。它可以包括系統(tǒng)提示和對(duì)話管理(通常用于純語(yǔ)音對(duì)話),和/或話音輸入的處理(純語(yǔ)音和多模態(tài)對(duì)話)。它被指定為來(lái)自每個(gè)相關(guān)話音啟動(dòng)頁(yè)的URI參考的腳本文件(相當(dāng)于內(nèi)聯(lián)嵌入腳本)。
            以下面的方式進(jìn)行用于純語(yǔ)音瀏覽器的頁(yè)的瀏覽RunSpeech模塊或函數(shù)工作如下(響應(yīng)變?yōu)椤癱omplete”的document.onreadystate調(diào)入RunSpeech)。
            (1)以話音索引排序發(fā)現(xiàn)第一激活QA控制(確定QA控制是否如下是激活的)。
            (2)如果沒(méi)有激活的QA控制,就發(fā)送該頁(yè)。
            (3)否則,運(yùn)行QA控制。
            QA控制被認(rèn)為是激活的條件是如果且僅如果且僅如果(1)QA控制的ClientTest不存在或返回真,和(2)QA控制包含激活詢問(wèn)控制或陳述控制(以源次序測(cè)試),和(3)a.QA控制只包含陳述控制,或b.QA控制的ControlToSpeechEnable所參考的控制中的至少一個(gè)有空或缺省值。
            詢問(wèn)控制被認(rèn)為是激活的條件如果且僅如果(1)詢問(wèn)控制的ClientTest不存在或返回真,和(2)詢問(wèn)控制包含激活提示對(duì)象。
            提示對(duì)象被認(rèn)為是激活的條件是如果且僅如果(1)提示對(duì)象的ClientTest不存在或返回真,和(2)提示對(duì)象的計(jì)數(shù)不存在或小于或等于本源詢問(wèn)控制的計(jì)數(shù)。
            QA控制運(yùn)行如下(1)確定哪個(gè)詢問(wèn)控制或陳述控制是激活的并累積其計(jì)數(shù)。
            (2)如果陳述控制是激活的,就播放提示并退出。
            (3)如果詢問(wèn)控制是激活的,就播放提示并起動(dòng)用于每個(gè)激活的回答控制和命令控制的多個(gè)Reco。
            回答控制被認(rèn)為是激活的條件是如果且僅如果(1)回答控制的ClientTest不存在或返回真,和(2)a.在激活的詢問(wèn)控制的回答字符串中參考回答控制,或b.回答控制在Scope中。
            命令控制被認(rèn)為是激活的條件是如果且僅如果(1)它在Scope中,和(2)在范圍樹(shù)中沒(méi)有更低的同類(lèi)型命令控制。
            RunSpeech依賴于事件以繼續(xù)驅(qū)動(dòng)對(duì)話——如上所述,它會(huì)在運(yùn)行單個(gè)QA控制后停止。事件處理程序因Prompt.onComplete、Reco.onReco、Reco.onSilence、Reco.onMaxTimeout和Reco.onNoReco而被包括在內(nèi)。依次描述Prompt.onComplete、Reco.onReco、Reco.onSilence、Reco.onMaxTimeout和Reco.onNoReco中的每一個(gè)。
            RunSpeechOnComplete工作如下(1)如果激活的Prompt對(duì)象有指定的onClientComplete函數(shù),就調(diào)入它。
            (2)如果激活的Prompt對(duì)象被包含在陳述控制中、或在沒(méi)有激活的回答控制的詢問(wèn)控制中,就調(diào)入RunSpeech。
            RunSpeechOnReco工作如下(1)一些缺省聯(lián)編發(fā)生—SML樹(shù)被聯(lián)編到SML屬性且文本被聯(lián)編到ControlsToSpeechEnable中的每個(gè)控制的SpokenTest屬性。
            (2)如果識(shí)別結(jié)果的信用值低于激活的回答控制的ConfidenceThreshold,就運(yùn)行Confirmation邏輯。
            (3)否則,如果激活的回答控制有指定的onClientReco函數(shù),就調(diào)入它,然后調(diào)入RunSpeech。
            RunSpeechOnReco負(fù)責(zé)產(chǎn)生和設(shè)定ControlsTospeechEnable的SML、spokenText和Confidence性質(zhì)。然后SML、SpokenText和Confidence性質(zhì)可在運(yùn)行時(shí)期用于腳本。
            RunSpeechOnSilence、RunSpeechOnMaxTimeout和RunSpeechOnNoReco都以相同方式工作(1)調(diào)入適當(dāng)?shù)腛nClientXXX函數(shù),如果指定的話。
            (2)調(diào)入RunSpeech。
            最后,Confirmation邏輯工作如下(1)如果激活的回答控制的本源QA控制包含任何確認(rèn)控制,就發(fā)現(xiàn)第一激活確認(rèn)控制(確認(rèn)控制的激活以與詢問(wèn)控制的激活完全相同的方式來(lái)確定)。
            (2)如果沒(méi)發(fā)現(xiàn)激活的確認(rèn)控制,就調(diào)入RunSpeech(3)另外,運(yùn)行QA控制,用所選擇的確認(rèn)控制作為激活的詢問(wèn)控制。
            對(duì)于多重模態(tài)瀏覽器,只執(zhí)行語(yǔ)法加載和事件調(diào)度步驟。
            權(quán)利要求
            1.一種具有指令的計(jì)算機(jī)可讀媒體,當(dāng)在計(jì)算機(jī)上執(zhí)行它時(shí)產(chǎn)生用于客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)的客戶端標(biāo)記,這些指令包括一組控制,用于定義對(duì)話,這些控制包括至少一個(gè)詢問(wèn)控制,它用于產(chǎn)生關(guān)于問(wèn)題的音頻提示的標(biāo)記;和回答控制,用于產(chǎn)生關(guān)于用于識(shí)別的語(yǔ)法的標(biāo)記,每個(gè)控制具有指示相關(guān)控制是否可用于激活的屬性;和模塊,當(dāng)在客戶機(jī)上執(zhí)行它時(shí),產(chǎn)生對(duì)話作為函數(shù),它的控制被激活。
            2.根據(jù)權(quán)利要求1的計(jì)算機(jī)可讀媒體,其中,詢問(wèn)控制激活回答控制。
            3.根據(jù)權(quán)利要求2的計(jì)算機(jī)可讀媒體,其中,這些控制包括命令控制,用于產(chǎn)生關(guān)于語(yǔ)法的標(biāo)記,用于在標(biāo)記中閱覽,幫助任務(wù),并重復(fù)音頻提示。
            4.根據(jù)權(quán)利要求3的計(jì)算機(jī)可讀媒體,其中,這些控制包括確認(rèn)控制,用于產(chǎn)生關(guān)于確認(rèn)所識(shí)別的結(jié)果正確的標(biāo)記。
            5.根據(jù)權(quán)利要求4的計(jì)算機(jī)可讀媒體,其中,確認(rèn)控制被激活作為信用水平或收到的結(jié)果的函數(shù)。
            6.根據(jù)權(quán)利要求5的計(jì)算機(jī)可讀媒體,其中,回答控制包括關(guān)于信用水平的屬性。
            7.根據(jù)權(quán)利要求5的計(jì)算機(jī)可讀媒體,其中,確認(rèn)控制激活認(rèn)可控制以認(rèn)可所識(shí)別的結(jié)果。
            8.根據(jù)權(quán)利要求5的計(jì)算機(jī)可讀媒體,其中,確認(rèn)控制激活否認(rèn)控制以否認(rèn)所識(shí)別的結(jié)果。
            9.根據(jù)權(quán)利要求5的計(jì)算機(jī)可讀媒體,其中,確認(rèn)控制激活校正控制以校正所識(shí)別的結(jié)果。
            10.根據(jù)權(quán)利要求1的計(jì)算機(jī)可讀媒體,其中,詢問(wèn)控制激活回答控制。
            11.根據(jù)權(quán)利要求10的計(jì)算機(jī)可讀媒體,其中,回答控制包括一個(gè)使收到的結(jié)果與第一組控制中的一個(gè)關(guān)聯(lián)的機(jī)制。
            12.根據(jù)權(quán)利要求1的計(jì)算機(jī)可讀媒體,還包括第二組控制,用于產(chǎn)生關(guān)于在客戶機(jī)上的視覺(jué)反映的標(biāo)記,其中,上述第一組控制中的每一個(gè)都與第二組控制中的至少一個(gè)關(guān)聯(lián)。
            13.一種具有指令的計(jì)算機(jī)可讀媒體,在計(jì)算機(jī)上執(zhí)行它時(shí)定義對(duì)話,這些指令包括一組控制,用于定義對(duì)話,這些控制包括至少一個(gè)詢問(wèn)控制,用于產(chǎn)生問(wèn)題的音頻提示;和回答控制,使用用于識(shí)別的語(yǔ)法,每個(gè)控制都有指示有關(guān)控制是否可用于激活的屬性;和模塊,在計(jì)算機(jī)上執(zhí)行它時(shí)產(chǎn)生對(duì)話作為函數(shù),激活該函數(shù)的控制。
            14.根據(jù)權(quán)利要求13的計(jì)算機(jī)可讀媒體,其中,詢問(wèn)控制激活回答控制。
            15.根據(jù)權(quán)利要求14的計(jì)算機(jī)可讀媒體,其中,回答控制包括一個(gè)機(jī)制,它使收到的結(jié)果與第一組控制中的一個(gè)關(guān)聯(lián)。
            16.根據(jù)權(quán)利要求15的計(jì)算機(jī)可讀媒體,其中,機(jī)制包括聯(lián)編識(shí)別值。
            17.根據(jù)權(quán)利要求16的計(jì)算機(jī)可讀媒體,其中,機(jī)制包括發(fā)布與聯(lián)編操作有關(guān)的事件。
            18.一種計(jì)算機(jī)可實(shí)現(xiàn)的方法,用于在計(jì)算機(jī)上執(zhí)行識(shí)別和/或音頻提示,該方法包括用一組控制定義對(duì)話,該組控制包括至少一個(gè)詢問(wèn)控制,用于產(chǎn)生問(wèn)題的音頻提示;和回答控制,使用用于識(shí)別的語(yǔ)法,每個(gè)控制有指示相關(guān)控制是否可用于激活的屬性;和產(chǎn)生一個(gè)對(duì)話,作為執(zhí)行被激活的相關(guān)控制的代碼的函數(shù)。
            19.根據(jù)權(quán)利要求18的計(jì)算機(jī)可實(shí)現(xiàn)方法,其中,產(chǎn)生對(duì)話包括經(jīng)詢問(wèn)控制激活回答控制。
            20.根據(jù)權(quán)利要求19的計(jì)算機(jī)可實(shí)現(xiàn)方法,其中,該組控制包括命令控制,用于產(chǎn)生關(guān)于語(yǔ)法的代碼,用于在標(biāo)記中閱覽,幫助任務(wù),并重復(fù)音頻提示。
            21.根據(jù)權(quán)利要求20的計(jì)算機(jī)可實(shí)現(xiàn)方法,其中,該組控制包括確認(rèn)控制,用于產(chǎn)生關(guān)于確認(rèn)所識(shí)別的結(jié)果正確的代碼。
            22.根據(jù)權(quán)利要求21的計(jì)算機(jī)可實(shí)現(xiàn)方法,其中,產(chǎn)生對(duì)話包括激活確認(rèn)控制作為信用水平或收到的結(jié)果的函數(shù)。
            全文摘要
            提供多個(gè)控制,用于網(wǎng)絡(luò)服務(wù)器產(chǎn)生客戶端標(biāo)記,這些包括包括識(shí)別和/或音頻提示。這些控制包括多個(gè)對(duì)話元素,如詢問(wèn)、回答、確認(rèn)、命令或陳述。一個(gè)模塊通過(guò)利用在控制中攜帶的信息形成對(duì)話。
            文檔編號(hào)G06F3/01GK1417679SQ0215294
            公開(kāi)日2003年5月14日 申請(qǐng)日期2002年10月21日 優(yōu)先權(quán)日2001年10月21日
            發(fā)明者F·M·加蘭尼斯, H·W·洪, J·D·雅各比, R·T·勒庫(kù)切, S·F·泊特 申請(qǐng)人:微軟公司
            網(wǎng)友詢問(wèn)留言 已有0條留言
            • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品