專利名稱:用于web啟動(dòng)的識(shí)別的標(biāo)記語(yǔ)言擴(kuò)展的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)諸如Internet的廣域網(wǎng)上的信息進(jìn)行訪問。具體地說,本發(fā)明涉及WEB啟動(dòng)的識(shí)別,該識(shí)別將允許使用各種方法進(jìn)入在客戶端上的信息和控制。
在人們的日常生活中越來越多地使用諸如個(gè)人信息管理器(PIM)、設(shè)備以及便攜式電話的小型計(jì)算設(shè)備。伴隨著現(xiàn)在可以得到用于運(yùn)行這些設(shè)備的微處理器的處理能力的增加,這些設(shè)備的功能也正在增加,并且,在某些情況下,當(dāng)前的很多便攜式電話能夠被用于訪問和瀏覽Internet以及能夠被用于存儲(chǔ)諸如地址、電話號(hào)等的個(gè)人信息。
這些計(jì)算設(shè)備一直被用于瀏覽Internet,或者被用于其他服務(wù)器或客戶機(jī)結(jié)構(gòu),因此,必須使信息進(jìn)入所述計(jì)算設(shè)備。遺憾的是由于按照這些設(shè)備容易攜帶的順序保持他們的可能性很小,所以,具有所有作為孤立按鈕的字母表的字符的傳統(tǒng)鍵盤由于在所述計(jì)算設(shè)備的殼體上可以得到的表面區(qū)域有限而通常是不可能的。
最近,諸如借助于使用VoiceXML(聲音可擴(kuò)展的標(biāo)記語(yǔ)言)的聲音入口已經(jīng)發(fā)展到允許僅僅使用電話對(duì)所述Internet的內(nèi)容進(jìn)行訪問。在這種結(jié)構(gòu)中,文檔服務(wù)器(例如,Web服務(wù)器)對(duì)來自一個(gè)客戶機(jī)并經(jīng)過VoiceXML翻譯機(jī)的應(yīng)用程序進(jìn)行處理。作為應(yīng)答,所述Web服務(wù)器能夠產(chǎn)生由所述VoiceXML翻譯機(jī)處理、并且能夠可聽地重發(fā)給所述用戶的VoiceXML文檔。使用經(jīng)過聲音識(shí)別的聲音命令,所述用戶能夠?qū)Ш剿鯳eb。
VoiceXML是一種具有流控標(biāo)記的標(biāo)記語(yǔ)言;但是,所述流控不能跟蹤包括事件和單獨(dú)腳本在內(nèi)的HTML(超級(jí)文本標(biāo)記語(yǔ)言)流控模塊。相反,VoiceXML通常包括一種特別適用于僅僅基于電話的語(yǔ)音交互、和從所述用戶獲得的信息在所述系統(tǒng)或應(yīng)用程序控制之下的場(chǎng)合的格式解釋算法。將voiceXML直接插入到其中也在地理上提供了用戶接口的客戶機(jī)-服務(wù)器關(guān)系中可以得到的應(yīng)用程序中,將需要開發(fā)器以控制兩種格式的Web創(chuàng)作,一種用于VoiceXML,另一種使用HTML(或與其類似的),每一種都遵循不同的流控模塊。
由此,需要改善用于在諸如Internet的服務(wù)器/客戶機(jī)結(jié)構(gòu)中提供語(yǔ)音識(shí)別的結(jié)構(gòu)和方法。用于語(yǔ)音識(shí)別的所述創(chuàng)作工具能夠很容易地適用于諸如PIM以及電話等的小型計(jì)算設(shè)備。特別需要致力于克服一個(gè)、多個(gè)或全部上述缺點(diǎn)的Web創(chuàng)作的結(jié)構(gòu)或方法。
發(fā)明概述用于在客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)設(shè)備上執(zhí)行的標(biāo)記語(yǔ)言包括一條用于指示與經(jīng)過客戶機(jī)進(jìn)入的輸入數(shù)據(jù)相關(guān)的語(yǔ)法的指令。
由于可以得到這個(gè)擴(kuò)展和本發(fā)明的其他方面,客戶機(jī)能夠執(zhí)行多個(gè)指令,以便從具有一個(gè)用于輸入數(shù)據(jù)的字段的Web服務(wù)器中接收標(biāo)記語(yǔ)言頁(yè)。所述客戶機(jī)設(shè)備然后能夠從與所述字段相關(guān)的用戶中接收輸入數(shù)據(jù),并將所述數(shù)據(jù)和一個(gè)用于識(shí)別的所述語(yǔ)法的指示傳送給通常位于遠(yuǎn)離處理位置處的一個(gè)識(shí)別服務(wù)器。
所述識(shí)別服務(wù)器能夠執(zhí)行多個(gè)指令來接收所述輸入數(shù)據(jù)和所述語(yǔ)法的指示以便執(zhí)行識(shí)別。識(shí)別的結(jié)果然后被傳送回所述客戶機(jī)設(shè)備或Web服務(wù)器以便執(zhí)行進(jìn)一步的處理。
附圖簡(jiǎn)述
圖1的平面視圖示出了一個(gè)計(jì)算設(shè)備操作環(huán)境的第一實(shí)施例。
圖2的框圖示出了圖1的計(jì)算設(shè)備。
圖3是一個(gè)電話的平面視圖。
圖4的框圖示出了一個(gè)通用計(jì)算機(jī)。
圖5的框圖示出了一個(gè)用于客戶機(jī)/服務(wù)器系統(tǒng)的結(jié)構(gòu)。
圖6示出了一個(gè)用于獲得信用卡信息的顯示。
圖7示出了可在客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言的一個(gè)頁(yè)。
圖8示出了可在具有顯示和語(yǔ)音識(shí)別能力的一個(gè)客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言的一個(gè)范例頁(yè)。
圖9A和9B示出了可以在僅僅具有可聽播放和系統(tǒng)啟動(dòng)的客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言的范例頁(yè)。
圖10A和10B示出了可在僅僅具有可聽播放和混合啟動(dòng)的客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言的范例頁(yè)。
圖11示出了可由服務(wù)器側(cè)插件模塊執(zhí)行的腳本。
圖12示出了識(shí)別服務(wù)器的第一運(yùn)行模式。
圖13示出了所述識(shí)別服務(wù)器的第二運(yùn)行模式。
圖14示出了所述識(shí)別服務(wù)器的第三運(yùn)行模式。
圖15A和15B示出了可在沒有腳本的客戶機(jī)上執(zhí)行的陳述標(biāo)記語(yǔ)言的范例頁(yè)。
所述實(shí)施例的詳細(xì)描述在描述一個(gè)基于Web的識(shí)別結(jié)構(gòu)和用于實(shí)現(xiàn)同一個(gè)結(jié)構(gòu)的方法之前,描述能夠在所述結(jié)構(gòu)中起作用的通用計(jì)算設(shè)備可能是有用的。參看圖1,標(biāo)號(hào)30示出了一個(gè)數(shù)據(jù)管理設(shè)備(PIM、PDA等)的范例格式。但是,可以預(yù)期本發(fā)明也能夠使用下述的其他計(jì)算設(shè)備、特別是具有有限表面區(qū)域用于輸入按鈕等的這些計(jì)算設(shè)備實(shí)現(xiàn)。例如,電話和/或數(shù)據(jù)管理設(shè)備將從本發(fā)明中獲得益處。與現(xiàn)存的便攜式個(gè)人信息管理設(shè)備和其它便攜式電子設(shè)備比較,這種設(shè)備將具有增強(qiáng)的實(shí)用性,這種設(shè)備的功能和緊湊尺寸將鼓勵(lì)所述用戶全天攜帶所述設(shè)備。因此,這里所描述的所述結(jié)構(gòu)范圍并不受這里所描述的范例數(shù)據(jù)管理或PIM設(shè)備、電話或計(jì)算機(jī)的限制。
圖1中示出了一種數(shù)據(jù)管理移動(dòng)設(shè)備30。移動(dòng)設(shè)備30包括殼體32并具有一個(gè)用戶界面,該用戶界面包括一個(gè)使用帶有指示筆33的觸敏顯示屏的顯示器34。所述指示筆33被用于在指定坐標(biāo)處按壓或接觸顯示器34以選擇一個(gè)字段以便選擇性地移動(dòng)光標(biāo)的起始位置,或反之提供諸如直通手勢(shì)或手寫的命令信息。另外,或者此外,可以在設(shè)備30上包括一個(gè)或多個(gè)用于導(dǎo)航的按鈕35。另外,也可以提供諸如旋轉(zhuǎn)輪和滾柱等的其他輸入機(jī)構(gòu)。但是,應(yīng)當(dāng)說明,這些輸入機(jī)構(gòu)的形式并不對(duì)本發(fā)明構(gòu)成限制。例如,其他形式的輸入包括諸如直通計(jì)算機(jī)視覺的虛擬輸入。
參看圖2,其框圖示出了一個(gè)包括移動(dòng)設(shè)備30的功能部件??刂铺幚韱卧?0執(zhí)行軟件控制功能。CPU50被連接到顯示器34上,從而使依據(jù)控制軟件產(chǎn)生的文本和圖形、圖標(biāo)出現(xiàn)在顯示器34上。揚(yáng)聲器43被連接到通常具有數(shù)/模轉(zhuǎn)換器59的CPU50上以提供可聽輸出。由用戶下載或輸入移動(dòng)設(shè)備30中的數(shù)據(jù)被存儲(chǔ)在被雙向連接到CPU50上的非易失性讀/寫隨機(jī)存取存儲(chǔ)器54中。隨機(jī)存取存儲(chǔ)器(RAM)54對(duì)由CPU50執(zhí)行的指令提供易失存儲(chǔ),并存儲(chǔ)諸如登錄值的暫存數(shù)據(jù)。用于結(jié)構(gòu)選擇和其他變量的缺省值存儲(chǔ)在只讀存儲(chǔ)器(ROM)58中。ROM58也能夠用于為設(shè)備存儲(chǔ)控制移動(dòng)設(shè)備30基本功能相關(guān)設(shè)備和其他操作系統(tǒng)的核心程序功能(例如將軟件組件下載到RAM54中)的操作系統(tǒng)軟件。
RAM54還可以用做一個(gè)存儲(chǔ)器,用于以和在用于存儲(chǔ)應(yīng)用程序的PC機(jī)上的硬件設(shè)備的功能類似的方式存儲(chǔ)代碼。應(yīng)當(dāng)注意,雖然非易失性存儲(chǔ)器被用于存儲(chǔ)所述代碼,所述代碼也可以存儲(chǔ)在不用于執(zhí)行所述代碼的易失性存儲(chǔ)器中。
利用移動(dòng)設(shè)備經(jīng)過連接到CPU50上的無線收發(fā)信機(jī)52可以發(fā)送/接收無線信號(hào)。也可以提供一個(gè)任選的通信接口60,用于如果需要的話從一個(gè)計(jì)算機(jī)(例如臺(tái)式計(jì)算機(jī))或從一個(gè)有線網(wǎng)絡(luò)直接下載數(shù)據(jù)。因此,接口60可以包括各種形式的通信設(shè)備,例如,紅外連接、調(diào)制解調(diào)器、網(wǎng)卡等等。
移動(dòng)設(shè)備30包括耳機(jī)29、模/數(shù)(A/D)轉(zhuǎn)換器37和存儲(chǔ)在存儲(chǔ)器54中的可選識(shí)別程序(語(yǔ)音、DTMF、手寫、手勢(shì)或計(jì)算機(jī)視覺)。借助于舉例,響應(yīng)來自設(shè)備30的用戶的可聽信息、指令或命令,耳機(jī)29提供被A/D轉(zhuǎn)換器37數(shù)字化的多個(gè)語(yǔ)音信號(hào)。該語(yǔ)音識(shí)別器可以在數(shù)字化的信號(hào)上執(zhí)行正規(guī)化和/或特征提取功能,以便獲得中間語(yǔ)音識(shí)別結(jié)果。使用無線收發(fā)信機(jī)52或通信接口60,語(yǔ)音數(shù)據(jù)被發(fā)送給下面將要討論并示于圖5結(jié)構(gòu)中的遠(yuǎn)程識(shí)別服務(wù)器204。然后,識(shí)別結(jié)果被返回到移動(dòng)設(shè)備30用于在其上面實(shí)現(xiàn)(例如,可視或者可聽的),并最后發(fā)送給Web服務(wù)器202(圖5),其中,Web服務(wù)器202和移動(dòng)設(shè)備30以客戶機(jī)/服務(wù)器的關(guān)系運(yùn)行。類似的處理可以用于其他形式的輸入。例如,可以在設(shè)備30上在進(jìn)行或不進(jìn)行預(yù)處理的情況下數(shù)字化手寫輸入。與語(yǔ)音數(shù)據(jù)類似,這個(gè)形式的輸入能夠被發(fā)送給識(shí)別服務(wù)器204用于識(shí)別其中所述識(shí)別結(jié)果被返回到設(shè)備30和/或Web服務(wù)器202中的至少一個(gè)。同樣,DTMF數(shù)據(jù)、手勢(shì)數(shù)據(jù)和可視數(shù)據(jù)也能夠被進(jìn)行類似的處理。取決于輸入的形式,設(shè)備30(和下面將要描述的其他形式的客戶機(jī))應(yīng)當(dāng)包括諸如用于可視輸入的攝象機(jī)的必要硬件。
圖3是一個(gè)平面圖,它示出了便攜式電話80的一個(gè)示例實(shí)施例。電話80包括顯示器82和鍵盤84。通常,圖2的框圖可應(yīng)用到圖3所示的電話中,盡管可能需要執(zhí)行其他功能的附加電路。例如,圖2所示的實(shí)施例需要作為電話運(yùn)行的必要收發(fā)信機(jī)。但是,這種電路與本發(fā)明不相關(guān)。
應(yīng)當(dāng)理解,除了上述便攜或移動(dòng)計(jì)算設(shè)備以外,本發(fā)明能夠和諸如通用臺(tái)式計(jì)算機(jī)的多種其他計(jì)算設(shè)備一起使用。例如,當(dāng)諸如全字母-數(shù)字鍵盤的傳統(tǒng)輸入設(shè)備操作太困難時(shí),本發(fā)明允許具有有限物理能力的用戶將文本輸入或進(jìn)入到計(jì)算機(jī)或其他計(jì)算設(shè)備中。
本發(fā)明還可以和多種其他通用或?qū)S糜?jì)算系統(tǒng)、環(huán)境或結(jié)構(gòu)共同操作。適于和本發(fā)明一起使用但不作為限制的公知計(jì)算系統(tǒng)、環(huán)境和/或結(jié)構(gòu)的例子包括常用的電話(沒有任何屏幕)、個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程的消費(fèi)電子、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、巨型計(jì)算機(jī)和包括任意上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等。
下面簡(jiǎn)要描述圖4所示通用計(jì)算機(jī)120。但是,計(jì)算機(jī)120僅僅是適當(dāng)計(jì)算環(huán)境的一個(gè)例子,并不對(duì)本發(fā)明的使用或者功能范圍作出限定。計(jì)算機(jī)120將不會(huì)被解釋為相對(duì)于這里所述部件的任何一個(gè)或組合具有相關(guān)性或要求。
本發(fā)明可以在諸如正由一個(gè)計(jì)算機(jī)執(zhí)行的程序模塊的計(jì)算機(jī)可執(zhí)行指令的一般上下文進(jìn)行描述。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明還可以用于分布式計(jì)算環(huán)境中,在這種環(huán)境中,使用經(jīng)過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)。在一個(gè)分布式計(jì)算環(huán)境中,程序模塊可以被置于包含存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒體中。下面結(jié)合附圖描述由所述程序和模塊執(zhí)行的任務(wù)。本領(lǐng)域的普通技術(shù)人員可以把這些描述和附圖實(shí)現(xiàn)為處理器可執(zhí)行指令,所述處理器可執(zhí)行指令能寫入到以任何形式的計(jì)算機(jī)可讀介質(zhì)上。
參看圖4,計(jì)算機(jī)120的部件可以但不作為限制地包括處理單元140、系統(tǒng)存儲(chǔ)器140、將包括所述系統(tǒng)存儲(chǔ)器的各種系統(tǒng)部件連接到處理單元140上的系統(tǒng)總線141。系統(tǒng)總線141可以是包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用各種總線結(jié)構(gòu)中任何一種的局部總線中的任何一種總線。借助于舉例和不作為限制,這種結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、通用串行總線(USB)、微信道結(jié)構(gòu)(MCA)總線、增強(qiáng)的ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)關(guān)聯(lián)(VESA)局部總線和也被公知為Mezzanine總線的外設(shè)部件互聯(lián)(PCI)總線。計(jì)算機(jī)120通常包括各種計(jì)算機(jī)可讀的媒體。計(jì)算機(jī)可讀介質(zhì)可以是能夠被計(jì)算機(jī)120訪問并包括易失和非易失媒體、可拆卸和不可拆卸媒體的任用媒體。借助于舉例并不作為限制,所述計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)媒體和通信媒體。計(jì)算機(jī)存儲(chǔ)媒體包括易失和非易失、可拆卸和不可拆卸的媒體,其以任一方法或技術(shù)實(shí)現(xiàn)用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)指令、程序模塊或其他數(shù)據(jù)的信息。計(jì)算機(jī)存儲(chǔ)媒體包含但不局限于RAM、ROM、EEPROM、閃速存儲(chǔ)器或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其他光盤存儲(chǔ)器、卡式磁帶、磁帶、磁盤存儲(chǔ)器或其他磁存儲(chǔ)設(shè)備、或其他任何能夠用于存儲(chǔ)所需要的信息和能夠被計(jì)算機(jī)120訪問的媒體。
通信媒體通常包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或以諸如載波或其他傳輸機(jī)構(gòu)的模塊化數(shù)據(jù)信號(hào)形式的數(shù)據(jù)并包括任一信息傳送媒體。術(shù)語(yǔ)“模塊化數(shù)據(jù)信號(hào)”的意思是指具有一個(gè)或多個(gè)特征集或者以這樣的方式進(jìn)行不會(huì)、對(duì)信號(hào)中的信息進(jìn)行編碼的信號(hào)。借助于不作為限制的舉例,通信媒體包括諸如有線網(wǎng)絡(luò)或直接有線連接的有線媒體和諸如聲學(xué)、FR、紅外和其他無線媒體的無線媒體。上述任一個(gè)的相互結(jié)合也可以包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)150包括以諸如只讀存儲(chǔ)器(ROM)151和隨機(jī)存取存儲(chǔ)器(RAM)152的易失和/或非易失存儲(chǔ)器形式出現(xiàn)的計(jì)算機(jī)存儲(chǔ)媒體。包含諸如在啟動(dòng)期間,幫助在計(jì)算機(jī)120內(nèi)的單元之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)153(BIOS)通常被存儲(chǔ)在ROM151中。RAM152通常包含可以被處理單元140直接訪問或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。借助于不作為限制的舉例,圖4示出了操作系統(tǒng)54、應(yīng)用程序155、其他的程序模塊156和程序數(shù)據(jù)157。
計(jì)算機(jī)120還可以包括其它可拆卸/不可拆卸、易失/非易失計(jì)算機(jī)存儲(chǔ)媒體。作為例子,圖4示出了一個(gè)從或向不可拆卸非易失磁存儲(chǔ)媒體讀出或?qū)懭氲挠脖P驅(qū)動(dòng)161、從或向可拆卸非易失磁盤172讀出或?qū)懭氲拇疟P驅(qū)動(dòng)171、以及從或向諸如CD ROM或其他光媒體的可拆卸、非易失光盤176讀出或?qū)懭氲墓獗P驅(qū)動(dòng)175。能夠在范例操作環(huán)境中使用的其他可拆卸/不可拆卸、易失/非易失計(jì)算機(jī)存儲(chǔ)媒體不作為限制地包括卡式磁帶、閃速存儲(chǔ)器卡、數(shù)字通用盤、數(shù)字視頻磁帶、固態(tài)RAM和固態(tài)RAM等。硬盤驅(qū)動(dòng)161通常經(jīng)過一個(gè)諸如接口160的不可拆卸的存儲(chǔ)器接口連接到系統(tǒng)總線141上,磁盤驅(qū)動(dòng)器171和光盤驅(qū)動(dòng)器175通常經(jīng)過一個(gè)諸如接口170的可拆卸存儲(chǔ)器接口連接到系統(tǒng)總線141上。
上述圖4所示設(shè)備和其相關(guān)的計(jì)算機(jī)存儲(chǔ)媒體提供計(jì)算機(jī)可讀信息、數(shù)據(jù)結(jié)構(gòu)、程序模塊和用于計(jì)算機(jī)120的其他數(shù)據(jù)的存儲(chǔ)。在圖4中,例如,硬盤驅(qū)動(dòng)器161被表示為一個(gè)存儲(chǔ)操作系統(tǒng)164、一個(gè)應(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在這里被給予不同的號(hào)碼以最低限度地表示它們不同的拷貝。
用戶可以經(jīng)過諸如鍵盤182、耳機(jī)183的輸入設(shè)備和諸如鼠標(biāo)、跟蹤球或觸摸板的定點(diǎn)設(shè)備181將命令和信息輸入到計(jì)算機(jī)120中。其它的輸入設(shè)備(未示出)可以包括游戲桿、游戲操縱桿、衛(wèi)星盤、掃描器等。這些和其他的輸入設(shè)備經(jīng)常經(jīng)過連接到所述系統(tǒng)總線上的用戶輸入接口180連接到處理單元140上,但是也可以由諸如并行端口、游戲端口或通用串形總線(USB)的其他接口和總線結(jié)構(gòu)連接。監(jiān)視器184或其他類型的顯示設(shè)備也經(jīng)過諸如視頻接口185的一個(gè)接口連接到系統(tǒng)總線141上。除了所述監(jiān)視器以外,所述計(jì)算機(jī)還可以包括諸如揚(yáng)聲器187和打印機(jī)186的外圍輸出設(shè)備,他們可以經(jīng)過輸出外設(shè)接口188進(jìn)行連接。
計(jì)算機(jī)120可以使用到一個(gè)或多個(gè)諸如遠(yuǎn)程計(jì)算機(jī)194的遠(yuǎn)程計(jì)算機(jī)的邏輯連接工作在一個(gè)網(wǎng)絡(luò)環(huán)境中。遠(yuǎn)程計(jì)算機(jī)194可以是個(gè)人計(jì)算機(jī)、手持設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點(diǎn),通常包括很多或全部上述與計(jì)算機(jī)120相關(guān)的元素。在圖4中描述的邏輯連接包括局域網(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ò)和Internet中是普遍的。
當(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或其他裝置用于在所述諸如Internet的WAN193上建立通信。可以是內(nèi)部或外部的調(diào)制解調(diào)器192可以經(jīng)過用戶輸入接口180或其他的適當(dāng)機(jī)構(gòu)連接到系統(tǒng)總線141上。在一個(gè)網(wǎng)絡(luò)環(huán)境中,相對(duì)于計(jì)算機(jī)120描述的程序模塊或它的一部分可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器設(shè)備中。借助于不作為限制的舉例,圖4示出了作為駐留在遠(yuǎn)程計(jì)算機(jī)194中的遠(yuǎn)程應(yīng)用程序195。很明顯,所示網(wǎng)絡(luò)連接是范例性的而且也可以使用在計(jì)算機(jī)之間建立通信鏈接的其他裝置。
圖5示出了能夠在本發(fā)明中實(shí)施的用于以Web為基礎(chǔ)的識(shí)別的總體結(jié)構(gòu)200。通常,存儲(chǔ)在Web服務(wù)器202中的信息能夠經(jīng)過移動(dòng)設(shè)備30(當(dāng)需要基于輸入的形式時(shí),這里也表示具有顯示屏幕、耳機(jī)、攝象機(jī)、觸敏面板等其它形式的計(jì)算設(shè)備)、或者經(jīng)過其中信息是可聽地請(qǐng)求的電話80、或者經(jīng)過響應(yīng)被按壓的鍵由電話80產(chǎn)生的音調(diào)進(jìn)行訪問并且其中來自Web服務(wù)器202的信息僅僅是可聽地提供回到所述用戶。
更加重要的是,總體結(jié)構(gòu)200是統(tǒng)一的,而不管信息是經(jīng)過設(shè)備30還是經(jīng)過電話80使用語(yǔ)音識(shí)別獲得的,單個(gè)的識(shí)別服務(wù)器204可以支持其中的每一種操作模式。另外,總體結(jié)構(gòu)200使用一個(gè)公知標(biāo)記語(yǔ)言(例如,HTML、XHTML、cHTML、XML、WML等)的擴(kuò)展進(jìn)行工作。由此,存儲(chǔ)在Web服務(wù)器202中的信息也能夠使用在這些標(biāo)記語(yǔ)言中獲得的公知GUI方法進(jìn)行訪問。通過使用公知標(biāo)記語(yǔ)言的擴(kuò)展,對(duì)Web服務(wù)器202的創(chuàng)作將變得容易,和當(dāng)前存在的傳統(tǒng)應(yīng)用程序能夠容易地進(jìn)行修改以包括聲音識(shí)別。
通常,設(shè)備30執(zhí)行由Web服務(wù)器202提供的HTML頁(yè)、腳本等。舉例來說,當(dāng)需要聲音識(shí)別時(shí),能夠被數(shù)字化成音頻信號(hào)或其中音頻信號(hào)已經(jīng)被設(shè)備30如上所述預(yù)處理過的語(yǔ)音特征被提供給具有語(yǔ)法指示或語(yǔ)言模塊在語(yǔ)音識(shí)別期間使用的識(shí)別服務(wù)器204。識(shí)別服務(wù)器204的實(shí)現(xiàn)可以有多種形式,只示出了其中的一種,但是它們通常包括識(shí)別器211。如果需要和適當(dāng)?shù)脑?,識(shí)別的結(jié)果被返回提供給設(shè)備30,以便進(jìn)行局部潤(rùn)色。在經(jīng)過識(shí)別和如果使用的任一圖形用戶界面對(duì)信息進(jìn)行編譯的基礎(chǔ)上,設(shè)備30將所述信息傳送給web服務(wù)器202以便做進(jìn)一步的處理,而且如果需要?jiǎng)t進(jìn)一步接收HTML頁(yè)/腳本。
如圖5所示,設(shè)備30、web服務(wù)器202和識(shí)別服務(wù)器204經(jīng)過網(wǎng)絡(luò)205被共同鏈接而且可單獨(dú)尋址,這里,網(wǎng)絡(luò)205是諸如Internet的廣域網(wǎng)。因此,不需要使這些設(shè)備彼此位置相鄰。特別是,所述web服務(wù)器不需要包括識(shí)別服務(wù)器204。以這種方式,在web服務(wù)器處的創(chuàng)作可以被集中到他想要的應(yīng)用程序上而創(chuàng)作者不需要了解復(fù)雜的識(shí)別服務(wù)器204。此外,識(shí)別服務(wù)器可以被獨(dú)立地設(shè)計(jì)和連接到網(wǎng)絡(luò)205上,并借此可以在不需要進(jìn)一步改變web服務(wù)器202處請(qǐng)求的基礎(chǔ)上得到更新和改善。如下面將要描述的,web服務(wù)器202也能夠包括一個(gè)創(chuàng)作機(jī)構(gòu),該創(chuàng)作機(jī)構(gòu)能夠動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記和腳本。在另一個(gè)實(shí)施例中,web服務(wù)器202、識(shí)別服務(wù)器204和客戶機(jī)30可以取決于實(shí)現(xiàn)機(jī)構(gòu)的能力相互組合。例如,如果所述客戶機(jī)包括一個(gè)例如個(gè)人計(jì)算機(jī)的通用計(jì)算機(jī),那么,所述客戶機(jī)可以包括識(shí)別服務(wù)器204。類似的,如果需要的話,web服務(wù)器202和識(shí)別服務(wù)器204可以構(gòu)成一個(gè)整體。
本發(fā)明的一個(gè)方面是一種用對(duì)客戶機(jī)/服務(wù)器系統(tǒng)中的輸入數(shù)據(jù)進(jìn)行處理的方法,包括從一個(gè)服務(wù)器中接收具有被配置為從一個(gè)客戶機(jī)設(shè)備的用戶中獲得輸入數(shù)據(jù)的擴(kuò)展的標(biāo)記語(yǔ)言頁(yè);在所述客戶機(jī)設(shè)備上執(zhí)行所述標(biāo)記語(yǔ)言頁(yè);將來自所述客戶機(jī)的輸入數(shù)據(jù)(指出從所述用戶處獲得的語(yǔ)音、DTMF、手寫、手勢(shì)和圖象)和相關(guān)語(yǔ)法遠(yuǎn)程發(fā)送給一個(gè)服務(wù)器;在所述客戶機(jī)處接收來自所述識(shí)別服務(wù)器的識(shí)別結(jié)果。其他方面是一種計(jì)算機(jī)可讀介質(zhì),該媒體具有用于在一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言,該標(biāo)記語(yǔ)言具有指出與通過所述客戶機(jī)設(shè)備輸入的輸入數(shù)據(jù)相關(guān)的一個(gè)語(yǔ)法的指令。
經(jīng)過電話80對(duì)web服務(wù)器202的訪問包括將電話80連接到有線或無線電話網(wǎng)絡(luò)208上,然后將電話80連接到第三組網(wǎng)關(guān)210上。網(wǎng)關(guān)210將電話80連接到電話聲音瀏覽器212上。電話聲音瀏覽器212包括用于提供電話接口的媒體服務(wù)器214和聲音瀏覽器216。與設(shè)備30相似,電話聲音瀏覽器212從web服務(wù)器202接收HTML頁(yè)/腳本或類似信息。更重要的是,所述HTML頁(yè)/腳本與提供給設(shè)備30的HTML頁(yè)/腳本具有類似的格式。以這種方式,web服務(wù)器202不需要單獨(dú)地支持設(shè)備30和電話80,或者甚至單獨(dú)地支持標(biāo)準(zhǔn)的GUI客戶機(jī)。相反能夠使用公用的標(biāo)記語(yǔ)言。此外,與設(shè)備30類似,從聲音瀏覽器216經(jīng)過網(wǎng)絡(luò)205或?qū)>€207、例如使用TCP/IP,向識(shí)別服務(wù)器204提供來自由電話80發(fā)送的可聽信號(hào)的聲音識(shí)別。Web服務(wù)器202、識(shí)別服務(wù)器204和電話聲音瀏覽器212能夠在任何適當(dāng)計(jì)算環(huán)境中體現(xiàn),諸如圖4所示的通用臺(tái)式計(jì)算機(jī)。
但是,應(yīng)當(dāng)注意,如果使用DTMF識(shí)別,這種形式的識(shí)別通常應(yīng)當(dāng)在媒體服務(wù)器214中執(zhí)行,而不是在識(shí)別服務(wù)器204中進(jìn)行。換言之,所述DTMF語(yǔ)法應(yīng)當(dāng)由所述媒體服務(wù)器使用。
如上所述,本發(fā)明的一個(gè)方面包括諸如HTML、XHTML、cHTML、XML、WML的標(biāo)記語(yǔ)言或具有任何其它從SGML導(dǎo)出的標(biāo)記語(yǔ)言的擴(kuò)展,以便包括用于在客戶機(jī)/服務(wù)器結(jié)構(gòu)中提供識(shí)別的控制和/或?qū)ο?。以這種方式,創(chuàng)作者可以運(yùn)用在這些標(biāo)記語(yǔ)言中的所有工具和專門知識(shí),所述標(biāo)記語(yǔ)言是在這種結(jié)構(gòu)中使用的主要web開發(fā)平臺(tái)。
通常,控制和/或?qū)ο罂梢园ㄒ粋€(gè)或多個(gè)下述功能用于識(shí)別器配置的識(shí)別器控制和/或?qū)ο?;識(shí)別器執(zhí)行和/或后處理;用于合成器配置和提示播放的合成器控制和/或?qū)ο螅挥糜谝?guī)定輸入語(yǔ)法資源的語(yǔ)法控制和/或?qū)ο?;?或用于處理識(shí)別結(jié)果的匯集控制和/或?qū)ο?。所述擴(kuò)展被設(shè)計(jì)成輕型標(biāo)記層,它將可聽、可視和手寫接口等功能添加到現(xiàn)存的標(biāo)記語(yǔ)言中。如此,所述擴(kuò)展能夠保留并獨(dú)立于它們被包含在內(nèi)的高層頁(yè),例如HTML;低層格式,用于由該擴(kuò)展使用來引用例如上下文-語(yǔ)音和語(yǔ)法格式的語(yǔ)言資源進(jìn)行訪問;和在識(shí)別服務(wù)器204中使用的識(shí)別和語(yǔ)音合成的個(gè)別特征。
在敘述具有適用于識(shí)別的控制和/或?qū)ο蟮臉?biāo)記語(yǔ)言之前,解釋一下用HTMI標(biāo)記語(yǔ)言實(shí)現(xiàn)的簡(jiǎn)單GUI的例子是有用的。參看圖6,一個(gè)簡(jiǎn)單的GUI接口包括將信用卡信息提交給所述web服務(wù)器以便完成在線銷售。在這個(gè)例子中,所述信用卡信息包括用于正在使用信用卡的類型入口的字段250,所述信用卡例如是Visa、MasterCard、或者American Express。第二字段252允許輸入信用卡號(hào);而第三字段254允許輸入失效日期。提供提交(Submit)按鈕264用于提交輸入字段250、252和254的信息。
圖7示出了用于從所述客戶機(jī)獲得前述信用卡的HTML代碼。通常,如在這些形式的標(biāo)記語(yǔ)言中普遍使用的那樣,所述代碼包括主體部分260和腳本部分262。主體部分260包括指出將被執(zhí)行動(dòng)作類型、使用的表單、各種字段的信息250、252和254以及與提交按鈕264相關(guān)的多行代碼(圖6)。這個(gè)例子也示出了事件支持和嵌入式腳本宿主,其中,依據(jù)提交按鈕264的驅(qū)動(dòng),在腳本部分262中調(diào)用或執(zhí)行函數(shù)“verify”。所述“verify”函數(shù)確定用于每個(gè)信用卡(Visa、MasterCard、或者American Express)的卡號(hào)是否具有適當(dāng)?shù)拈L(zhǎng)度。
圖8示出了用于產(chǎn)生與圖6所示相同GUI的客戶機(jī)標(biāo)記,用于獲得將被提供給使用語(yǔ)音識(shí)別的web服務(wù)器204的信用卡信息。雖然語(yǔ)音識(shí)別將在下面結(jié)合附圖8-14于以討論,但是,應(yīng)當(dāng)理解,所述技術(shù)也能夠應(yīng)用于手寫識(shí)別、手勢(shì)識(shí)別和圖象識(shí)別。
通常,擴(kuò)展(公知為“標(biāo)記”)是XML元素的一個(gè)小集,具有相關(guān)的屬性和DOM對(duì)象特征、事件和方法,它們可以與源標(biāo)記文本一起使用以便將識(shí)別接口、DTMF或調(diào)用控制施加到一個(gè)源頁(yè)上。擴(kuò)展的正式格式和語(yǔ)義與所述源文本的特征獨(dú)立,所以,所述擴(kuò)展實(shí)際上可以被等效地應(yīng)用在HTML、XHTML、cHTML、XML、WML或者任何其他從SGML導(dǎo)出的標(biāo)記中。所述擴(kuò)展遵循文檔對(duì)象模型,其中提供了可以被分層的新功能對(duì)象或元素。每個(gè)元素都將在附錄中詳細(xì)討論,但是通常所述元素能夠包括屬性、特征、方法、事件和/或其他“子”元素。
關(guān)于這一點(diǎn),應(yīng)當(dāng)注意,根據(jù)將在上面執(zhí)行瀏覽器的設(shè)備的能力,所述擴(kuò)展可以用兩種不同的“模式”加以解釋。在第一種模式、即對(duì)象模式中,可以得到全部的能力。一個(gè)應(yīng)用程序?qū)U(kuò)展的編程操作是由例如在XHTML瀏覽器中的Jscript解釋程序或在WML瀏覽器中的WMLScript解釋程序、的在所述設(shè)備上的瀏覽器啟動(dòng)的機(jī)構(gòu)執(zhí)行。為此,只需要定義所述擴(kuò)展核心特征和方法的一個(gè)小集,而且這些由存在于所述設(shè)備或客戶機(jī)端的所述處理機(jī)構(gòu)處理。所述對(duì)象模式提供事件和腳本并能夠提供較強(qiáng)的功能以便在語(yǔ)音的交互上給對(duì)話創(chuàng)作者更好的客戶機(jī)端控制。如這里所使用的,支持所有事件和腳本的瀏覽器被稱之為“上層瀏覽器(uplevel browser)”。這種形式的瀏覽器將支持所述擴(kuò)展的所有屬性、特征、方法和事件。通常可以在具有大處理能力的設(shè)備中找到所述上層瀏覽器。
所述擴(kuò)展也可以在“說明模式”中得到支持。如在這里所使用的,以說明模式操作的瀏覽器被稱之為“下層瀏覽器”,其并不支持所有的事件和腳本性能。相反,這種形式的瀏覽器將支持給定擴(kuò)展的說明特征(即核心元素和屬性),但不可能是所有的DOM(文本對(duì)象模型)對(duì)象特征、方法和事件。這種模式使用互斥的說明語(yǔ)法,并可以進(jìn)一步與諸如SMIL2.0(同步多媒體集成語(yǔ)言)的說明多媒體同步和協(xié)作機(jī)構(gòu)(同步的標(biāo)記語(yǔ)言)一起使用。下層瀏覽器通常會(huì)在具有有限處理能力的設(shè)備中找到。
關(guān)于這一點(diǎn),下面將討論一種入口的特定模式。具體地說,結(jié)合至少一個(gè)顯示器、在另一個(gè)實(shí)施例中是一個(gè)定點(diǎn)設(shè)備一起使用語(yǔ)音識(shí)別來指出與數(shù)據(jù)入口相關(guān)的字段是特別有用的。特別是,在這種數(shù)據(jù)進(jìn)入的模式下,所述用戶通常是在什么時(shí)間選擇一個(gè)字段和提供相應(yīng)的信息控制之下。例如,在圖6所示的例子中,用戶應(yīng)當(dāng)首先決定在字段252中輸入所述信用卡號(hào),然后在字段250中輸入所述信用卡的類型,接著是在字段254中的失效日期。類似的,如果需要,所述用戶應(yīng)當(dāng)返回到字段252并糾正錯(cuò)誤的輸入。當(dāng)如下所述和語(yǔ)音識(shí)別相結(jié)合時(shí),可以提供一種很容易和自然的導(dǎo)航形式。如這里所使用的,使用允許以任意形式選擇字段的屏幕顯示器語(yǔ)音識(shí)別的這種輸入形式被稱之為“多重模式”。
回過來參看圖8,這里示出了HTML標(biāo)記語(yǔ)言的一個(gè)例子這個(gè)代碼也包括主體部分270和腳本部分272。另外與圖7所示的代碼相似,圖8所示的代碼包括關(guān)于將被執(zhí)行動(dòng)作類型以及所述表單的位置的指示。代碼部分280、282和284分別控制或執(zhí)行字段250、252和254每一個(gè)中的信息進(jìn)入。首先參考代碼部分280,在例如使用設(shè)備30的指示筆選擇字段250的基礎(chǔ)上,事件“點(diǎn)擊”被啟動(dòng),它調(diào)用或執(zhí)行在腳本部分272中的“talk”函數(shù)。這個(gè)動(dòng)作激活用于語(yǔ)音識(shí)別的語(yǔ)法,所述語(yǔ)音涉及與通常在字段250中希望的數(shù)據(jù)類型相關(guān)。這種包括一項(xiàng)以上輸入(例如聲音和筆點(diǎn)擊/滾柱)技術(shù)的交互類型被稱之為多重模式。
應(yīng)當(dāng)說明,由于對(duì)很多應(yīng)用程序假設(shè)所述創(chuàng)作者將使用所述源頁(yè)中的應(yīng)用程序?qū)S脠D形機(jī)構(gòu)對(duì)所述頁(yè)各種部件的語(yǔ)音啟動(dòng)發(fā)出信號(hào),所以,圖8所列舉的語(yǔ)音識(shí)別擴(kuò)展并不試圖在所述客戶機(jī)的瀏覽器上具有缺省可視表示。然而,如果需要所述可視表示,所述擴(kuò)展也可以進(jìn)行相應(yīng)的修改。
下面反過來參看所述語(yǔ)法,所述語(yǔ)法是一種諸如但不做為限制的上下文無關(guān)語(yǔ)法的語(yǔ)法語(yǔ)法、N-語(yǔ)法或混合語(yǔ)法。(當(dāng)然,當(dāng)使用相應(yīng)形式的識(shí)別時(shí),可以使用DTMF語(yǔ)法、手寫語(yǔ)法、手勢(shì)語(yǔ)法和圖象語(yǔ)法。如這里所使用的那樣,“語(yǔ)法”包括用于執(zhí)行識(shí)別的信息,并且在另一個(gè)實(shí)施例中,例如在一個(gè)規(guī)定字段中對(duì)應(yīng)于所期望輸入的信息),包括所述標(biāo)記語(yǔ)言第一擴(kuò)展的的一個(gè)新控制290(這里被鑒別為“reco”)包括各種元素,示出了其中的兩個(gè),即語(yǔ)法元素“gammar”和“bind”元素。通常,與從web服務(wù)器下載到客戶機(jī)上的代碼相似,所述語(yǔ)法可以起源于web服務(wù)器202并下載到所述客戶機(jī)上和/或提供給一個(gè)遠(yuǎn)程服務(wù)器用于語(yǔ)音識(shí)別。所述語(yǔ)法然后可以被本地存儲(chǔ)在一個(gè)高速緩存中。最后,所述語(yǔ)法被提供給識(shí)別服務(wù)器204以便在識(shí)別過程中使用。所述語(yǔ)法元素被用于使用一個(gè)屬性內(nèi)聯(lián)或關(guān)聯(lián)地規(guī)定語(yǔ)法。
在從識(shí)別服務(wù)器204接收與所識(shí)別的語(yǔ)音、手寫、手勢(shì)和圖象等對(duì)應(yīng)的識(shí)別結(jié)果的基礎(chǔ)上,提供識(shí)別控制290的語(yǔ)法以接收相應(yīng)的結(jié)果并使其與能夠包括在顯示器34上著色所述上下文的的對(duì)應(yīng)字段關(guān)聯(lián)。在所示的實(shí)施例中,在利用返回給所述客戶機(jī)的結(jié)果完成語(yǔ)音識(shí)別的基礎(chǔ)上,解激活所述Reco對(duì)象并使所識(shí)別的上下文與對(duì)應(yīng)的字段關(guān)聯(lián)。282和284部分的動(dòng)作狀態(tài)類似,其中,調(diào)用唯一的Reco對(duì)象和語(yǔ)法用于字段252和254中的每一個(gè),并在接收所識(shí)別結(jié)果的基礎(chǔ)上與字段252和254中的每一個(gè)關(guān)聯(lián)。關(guān)于接收信用卡號(hào)字段252,函數(shù)“處理”以和上述結(jié)合圖7所示類似的方式檢查所述卡號(hào)相對(duì)于所述卡類型的長(zhǎng)度。
通常,結(jié)和結(jié)構(gòu)200以及客戶機(jī)端標(biāo)記語(yǔ)言的語(yǔ)音識(shí)別的使用是如下發(fā)生的首先,指出與將被給定語(yǔ)音相關(guān)的字段。在所示的實(shí)施例中,使用了指示筆33,應(yīng)當(dāng)理解,本發(fā)明并不局限于所述指示筆33,其中,可以使用諸如按鈕、鼠標(biāo)指示器和旋轉(zhuǎn)輪等的任何形式指示。使用眾所周知的可視標(biāo)記語(yǔ)言,可以提供諸如“點(diǎn)擊”的相應(yīng)事件。應(yīng)當(dāng)理解,本發(fā)明并不局限于使用“點(diǎn)擊”事件去指示聲音、手寫和手勢(shì)等命令的開始。任何一種可以得到的GUI事件、諸如“onSelect”,都可以被用于相同的目的。在一個(gè)實(shí)施例中,對(duì)于起指出所述相應(yīng)語(yǔ)音的開始和/或結(jié)束作用來講,這種事件是非常有用的。還應(yīng)當(dāng)說明,引導(dǎo)所述語(yǔ)音的字段可以由所述用戶以及在保持跟蹤用戶交互作用的瀏覽器上運(yùn)行的程序指出。
關(guān)于這一點(diǎn),應(yīng)當(dāng)說明,語(yǔ)音識(shí)別的不同情況說明需要不同的行為和/或來自識(shí)別服務(wù)器204的輸出。雖然,在所有情況下所述識(shí)別處理的開始是標(biāo)準(zhǔn)的-從上層瀏覽器中調(diào)用的顯式start()或在下層瀏覽器中的說明性<reco>元素,但是用于停止語(yǔ)音識(shí)別的裝置是不同的。
在上述的例子中,多重應(yīng)用程序中的用戶將通過例如壓敏顯示器上的抽頭(tapping)和支撐物(holding)來控制對(duì)所述設(shè)備的輸入。然后所述瀏覽器使用例如“pen-up”的GUI事件控制識(shí)別停止的時(shí)間并返回相應(yīng)的結(jié)果。但是,在諸如電話應(yīng)用程序(后述)或在免手提應(yīng)用程序中的僅僅是聲音的的情況下,所述用戶不能在所述瀏覽器上直接進(jìn)行控制,并且識(shí)別服務(wù)器204或客戶機(jī)30必須負(fù)責(zé)決定停止識(shí)別的時(shí)間和返回所述結(jié)果(通常,經(jīng)過所述語(yǔ)法的路徑已經(jīng)被識(shí)別)。另外,其中在識(shí)別停止之前必須返回中間結(jié)果的口述和其他情況(已知為“打開話筒”)不僅需要顯式停止功能,而且還需要在所述識(shí)別被停止之前將多個(gè)識(shí)別結(jié)果返回給客戶機(jī)30和/或web服務(wù)器202。
在一個(gè)實(shí)施例中,所述reco元素可以包括一個(gè)“mode”屬性,用于區(qū)分下述三種用于指令識(shí)別服務(wù)器204如何以及何時(shí)返回所述結(jié)果的識(shí)別模式。結(jié)果的返回意味著在適當(dāng)時(shí)提供“onReco”事件或激活所述“bind”元素。在一個(gè)實(shí)施例中,如果沒有規(guī)定所述模式,那么,缺識(shí)別模式為“自動(dòng)”。
圖12示出了用于語(yǔ)音識(shí)別的“自動(dòng)”模式的操作(類似的模式、事件等可以用于其他形式的識(shí)別)。時(shí)間線281指出何時(shí)識(shí)別服務(wù)器204將被導(dǎo)向在283處進(jìn)行識(shí)別,在285處識(shí)別服務(wù)器204檢測(cè)語(yǔ)音的位置以及在287處確定結(jié)束所述語(yǔ)音。
Reco元素的各種屬性控制識(shí)別服務(wù)器204的行為?!癷nitialTimeout”(啟動(dòng)超時(shí))屬性是一個(gè)位于識(shí)別283的開始和語(yǔ)音檢測(cè)285之間的時(shí)間。如果這個(gè)時(shí)間周期被超過了,將從識(shí)別服務(wù)器204提供一個(gè)“onSlience”事件,從而發(fā)出一個(gè)信號(hào)通知那個(gè)識(shí)別已經(jīng)結(jié)束了。如果識(shí)別服務(wù)器204發(fā)現(xiàn)所述發(fā)音是不可識(shí)別的,將發(fā)出一個(gè)“onNoReco”事件293,它將指出識(shí)別被停止。
可以停止和取消識(shí)別的其他屬性包括“babbleTimeout”(串音超時(shí))屬性295,該屬性295是一個(gè)時(shí)間周期,在該時(shí)間周期中,識(shí)別服務(wù)器204必須在285處在檢測(cè)語(yǔ)音之后返回一個(gè)結(jié)果。如果超過了,則根據(jù)是否發(fā)生了誤差發(fā)布不同的事件。如果識(shí)別服務(wù)器204例如在特長(zhǎng)發(fā)音的情況下仍然在處理音頻,則發(fā)布“onNoReco”屬性293。但是,如果由于任何原因使“babbleTimeout”屬性295被超出,更大可能是產(chǎn)生了識(shí)別器誤差,則發(fā)布“onTimeout”事件297。類似的,也可以提供“maxTimeout”(最大超時(shí))屬性299用于識(shí)別283的開始和所述結(jié)果返回到客戶機(jī)30之間的一個(gè)時(shí)間周期。如果這個(gè)時(shí)間周期被超過,則發(fā)出“onTimeout”事件297。
但是,如果一個(gè)大于“endSilence”(結(jié)束靜默)屬性301的時(shí)間周期被超過了,則意味著所述識(shí)別已經(jīng)完成。識(shí)別服務(wù)器204將自動(dòng)地停止識(shí)別并返回它的結(jié)果。應(yīng)當(dāng)說明,識(shí)別服務(wù)器204能夠執(zhí)行一個(gè)置信度測(cè)量以確定所述識(shí)別結(jié)果是否應(yīng)被返回。如果所述置信度測(cè)量低于一個(gè)閾值,則發(fā)出“onNoReco”事件293,同時(shí),如果所述可信度測(cè)量高于所述閾值,則發(fā)出“onNoReco”屬性303和識(shí)別結(jié)果。圖12借此示出了在“automatic mode”(自動(dòng)模式)中沒有顯式stop()調(diào)用。
圖13示出了識(shí)別服務(wù)器204的“singl mode”(單模式)的操作??梢允褂蒙鲜鲠槍?duì)“automatic mode”的屬性和事件并使用相同的標(biāo)號(hào)表示。但是,在這種模式的操作中,stop()調(diào)用305是在時(shí)間線281上指出的。stop()調(diào)用305與諸如由用戶提供的“pen-up”的事件對(duì)應(yīng)。在這種模式的操作中,識(shí)別結(jié)果的返回是在顯式stop()調(diào)用305的控制下執(zhí)行的。如同所有的操作模式一樣,如果在“initialTimeout”周期289內(nèi)沒有檢測(cè)到語(yǔ)音,則發(fā)布“onSilence”事件291,但對(duì)于這種操作模式不停止識(shí)別。類似的,“onNoReco”事件是在stop()調(diào)用305沒有停止識(shí)別之前由不可識(shí)別的發(fā)音產(chǎn)生的。但是,如果與“babbleTimeout”屬性295或“maxTimeout”屬性299相關(guān)的時(shí)間周期被超過,識(shí)別將停止。
圖14示出了識(shí)別服務(wù)器204的“multipl mode”(多重模式)操作。如上所述,這種操作模式被用于“打開麥克風(fēng)”或口授情況。通常,在這種操作模式下,以一定的間隔返回所述結(jié)果,直到顯式stop()__調(diào)用305被接收或與“babbleTimeout”屬性295或“maxTimeout”屬性299相關(guān)的時(shí)間周期被超過為止。但是應(yīng)當(dāng)注意,在任何一個(gè)不停止識(shí)別的“onSilience”事件291、“onReco”事件303或“onNoReco”事件293之后,用于“babbleTimeout”的定時(shí)器將被復(fù)位。
通常,在這種操作模式下,對(duì)于每個(gè)被識(shí)別的短語(yǔ),發(fā)出“onReco”事件303并返回所述結(jié)果,直到發(fā)出stop()調(diào)用305被接收為止。如果由于一個(gè)不可識(shí)別的發(fā)音而發(fā)出了“onSilence”事件291,那么,這些事件將被報(bào)告但識(shí)別將繼續(xù)。
如上所述,用于所述字段的相關(guān)Reco對(duì)象被激活,包括向所述識(shí)別服務(wù)器204提供至少一個(gè)使用哪種語(yǔ)法的指示。這個(gè)信息可以伴隨有記錄在客戶機(jī)30上、并將其傳送給識(shí)別服務(wù)器204的語(yǔ)音數(shù)據(jù)。如上所述,語(yǔ)音數(shù)據(jù)包括與由用戶輸入的所述語(yǔ)音相關(guān)的流式數(shù)據(jù),或者能夠包括指出在語(yǔ)音識(shí)別期間所使用的語(yǔ)音性質(zhì)的經(jīng)過予處理的語(yǔ)音數(shù)據(jù)。在另一個(gè)實(shí)施例中,客戶機(jī)端的處理還包括所述語(yǔ)音數(shù)據(jù)的規(guī)格化,從而使由識(shí)別服務(wù)器204接收的語(yǔ)音數(shù)據(jù)從客戶機(jī)到客戶機(jī)相對(duì)一致。由于所述識(shí)別服務(wù)器相對(duì)于客戶機(jī)的類型和通信信道來講被制造為無國(guó)家性(stateless),所以這簡(jiǎn)化了識(shí)別服務(wù)器204的語(yǔ)音處理,借此,允許所述識(shí)別服務(wù)器更容易的可測(cè)量性。
在從識(shí)別服務(wù)器204接收所述識(shí)別結(jié)果的基礎(chǔ)上,所述識(shí)別結(jié)果與對(duì)應(yīng)的字段相關(guān),如果需要,可以執(zhí)行客戶機(jī)端的驗(yàn)證或檢查。在完成與由所述客戶機(jī)當(dāng)前提供的代碼相關(guān)的所有字段的基礎(chǔ)上,信息被傳送給web服務(wù)器202以用于應(yīng)用程序的處理。從前面的描述來看,很清楚,雖然web服務(wù)器202已經(jīng)向客戶機(jī)30提供有適于識(shí)別的代碼或頁(yè)/腳本,但是,所述識(shí)別服務(wù)不是由web服務(wù)器202執(zhí)行的,而是由識(shí)別服務(wù)器204執(zhí)行的。但是,本發(fā)明并不排除這樣一種實(shí)現(xiàn)方法,其中,識(shí)別服務(wù)器204和web服務(wù)器202一起配置,或識(shí)別服務(wù)器204是客戶機(jī)30的一部分。換言之,即使當(dāng)識(shí)別服務(wù)器204和web服務(wù)器202或客戶機(jī)30相互結(jié)合,但是由于擴(kuò)展在這些部件之間提供了一個(gè)簡(jiǎn)單和方便的接口,所以,這里所提供的擴(kuò)展是非常有利的。
在沒有借助圖8所示實(shí)施例示出的同時(shí),所述reco控制還可以包括一個(gè)遠(yuǎn)程音頻對(duì)象(RAO),用于將適當(dāng)?shù)恼Z(yǔ)音數(shù)據(jù)傳送給識(shí)別服務(wù)器204。由于聲音接口可能是不同的,所以將RAO制成插接型對(duì)象的益處在于允許用于每個(gè)不同設(shè)備不同的一個(gè)。另外,所述遠(yuǎn)程音頻對(duì)象可以允許在相同時(shí)間處被激活的多個(gè)識(shí)別元素。
圖9A和9B示出了作為具有頁(yè)/腳本的HTML的只有聲音的標(biāo)記語(yǔ)言。如所清楚示出的,所述代碼還可以包括一個(gè)主體部分300和一個(gè)腳本部分302。標(biāo)記語(yǔ)言的另一種擴(kuò)展-包括屬性相象契約(attyibutes like bargein)的提示控制303。但是在圖9A和9B的只有聲音的實(shí)施例中語(yǔ)音識(shí)別的執(zhí)行是不同的。利用所述的腳本功能“checkFilled”整個(gè)地控制所述處理,該腳本功能確定沒有填滿的字段并激活相應(yīng)的提示和新對(duì)象。然而,使用與上述結(jié)合圖8所述相同的上下文激活所述語(yǔ)法,其中.語(yǔ)音數(shù)據(jù)和關(guān)于使用給出的語(yǔ)法指示被提供給識(shí)別服務(wù)器204。類似的,從識(shí)別服務(wù)器204接收的輸出與所述客戶機(jī)(這里是電話聲音瀏覽器212)的字段相關(guān)。
通常對(duì)于只有聲音的應(yīng)用程序來講唯一的其他特征是當(dāng)語(yǔ)音沒有被識(shí)別時(shí)對(duì)所述用戶的一個(gè)指示。在諸如圖8所示的多重模式的應(yīng)用程序中,“onNoReco”簡(jiǎn)單地將一個(gè)零值放入到所顯示的字段中以指示沒有識(shí)別,由此也不需要進(jìn)一步的激活。在所述只有聲音的實(shí)施例中,“onNoReco”305調(diào)用或執(zhí)行功能“mumble”,該功能將一個(gè)字短語(yǔ)傳送給識(shí)別服務(wù)器204,接下來使用適當(dāng)?shù)奈谋?語(yǔ)音系統(tǒng)307將其轉(zhuǎn)換成語(yǔ)音(圖5)。識(shí)別服務(wù)器204把一個(gè)音頻流返回給電話聲音瀏覽器212,接下來傳送給將被用戶收聽的電話80。類似的,在只有聲音應(yīng)用程序中的其他波形提示在需要時(shí)也被識(shí)別服務(wù)器204轉(zhuǎn)換成音頻流。
應(yīng)當(dāng)說明,在這個(gè)例子中,在經(jīng)過功能“wrlcome”播放歡迎提示之后,功能“checkfilled”向用戶提示每個(gè)字段并激活適當(dāng)?shù)恼Z(yǔ)法,包括重復(fù)已經(jīng)進(jìn)入的字段和確認(rèn)所述信息是正確的,這包括“confirmation”語(yǔ)法。注意,在這個(gè)實(shí)施例中,每個(gè)reco控制都是從腳本部分302啟動(dòng)的,而不是從先前所述例子中的主體部分啟動(dòng)的。
作為本發(fā)明的另一個(gè)方面,在不同類型客戶機(jī)設(shè)備上可執(zhí)行的所述標(biāo)記語(yǔ)言(例如諸如電話的以客戶機(jī)設(shè)備為基礎(chǔ)的多重模式和非顯示聲音輸入)統(tǒng)一用于與所述每一個(gè)客戶機(jī)設(shè)備交互的web服務(wù)器的與語(yǔ)音相關(guān)的事件、GUI事件和電話事件中的至少一個(gè)。這對(duì)于允許通常將被寫入或獨(dú)立于客戶機(jī)設(shè)備類型的web服務(wù)器應(yīng)用程序的有效部分是非常有益的。在圖8和圖9A和9B中顯示了具有“handle”函數(shù)的例子。
雖然在圖9中沒有示出,但是,對(duì)于所述標(biāo)記語(yǔ)言還存在兩種以上用于支持電話功能的擴(kuò)展,即DTMF(雙音調(diào)制的頻率)控制和調(diào)用控制元素或?qū)ο蟆TMF的工作情況類似于reco控制。它規(guī)定了一個(gè)從鍵盤字符串到文本輸入的簡(jiǎn)單語(yǔ)法映像。例如,“1”意味著食品雜貨店,“2”表示藥店等。相反,調(diào)用對(duì)象涉及電話功能、相象調(diào)用功能和第三部分調(diào)用。下面將在附錄中詳細(xì)討論屬性、特征、方法和事件。
圖10A和10B也示出了適用于只有是聲音的操作模式的標(biāo)記語(yǔ)言的另一個(gè)實(shí)施例。在這個(gè)實(shí)施例中,所述用戶被允許在整個(gè)信息進(jìn)入和講話期間具有某些控制。換言之,雖然所述系統(tǒng)可以啟動(dòng)或指示所述用戶開始講話,但是該用戶也可以提供比最初被要求更多的信息。這是“混合啟動(dòng)”的一個(gè)例子。通常,在這種對(duì)話交互的形式下,所述用戶被允許與所述系統(tǒng)共享所述對(duì)話交互。除在上面指出和下面將要詳細(xì)討論的、其中用戶通過提示提供比所要求更多的信息的例子,當(dāng)沒有這種提示時(shí),所述用戶也應(yīng)當(dāng)轉(zhuǎn)換任務(wù)。
在圖10A和10B所示的例子中,標(biāo)識(shí)作為“do_field”的語(yǔ)法包括與“g_card_type”、“g_card_num”和“g_expiry_date”語(yǔ)法相關(guān)的信息。在這個(gè)例子中,電話聲音瀏覽器212在接收由“onReco”指示的經(jīng)過識(shí)別的語(yǔ)音的基礎(chǔ)上,將從電話80接收的語(yǔ)音數(shù)據(jù)和一個(gè)使用“do_field”語(yǔ)法的指示傳送給識(shí)別服務(wù)器204,調(diào)用或執(zhí)行功能“handle”,包括使用于從所述語(yǔ)音數(shù)據(jù)識(shí)別的任一或全部字段的值相關(guān)。換言之,從識(shí)別服務(wù)器204獲得的結(jié)果也包括用于每個(gè)字段的指示。根據(jù)在405中規(guī)定的連接規(guī)則對(duì)該信息進(jìn)行語(yǔ)法分析并與相應(yīng)的字段關(guān)聯(lián)。如圖5指出的,識(shí)別服務(wù)器204可以包括語(yǔ)法分析程序309。
從圖7、8、9A、9B、10A和10B可以看出,使用了非常類似的web開發(fā)框架。在這些情況每一個(gè)中的數(shù)據(jù)表示也非常類似。另外,數(shù)據(jù)表示和流控的分開允許不同程序(系統(tǒng)啟動(dòng)和混合啟動(dòng))之間、或不同形式(基于GUI web的、僅僅是聲音和多重模式)之間最大的可重復(fù)使用率。當(dāng)電話包括顯示器和與設(shè)備30類似的功能時(shí),這也允許從僅僅是聲音的操作經(jīng)過電話到多重模式操作的自然擴(kuò)展。附錄A進(jìn)一步提供了上面討論的詳細(xì)的控制和對(duì)象。
如上面所指出的,上層瀏覽器可以使用腳本以便執(zhí)行諸如在上面例子中包括的功能“handle”的各種需要去分配所述識(shí)別結(jié)果。在上面所討論和在附錄2.1.2描述的實(shí)施例中,“bind”元素將分析所述識(shí)別結(jié)果并分配所述值,其中,“bind”元素是“reco”的子元素。
雖然腳本是有用的,但例如由于保密關(guān)系,很多人并不相信它總是瀏覽器的最佳形式。在本發(fā)明的另一個(gè)實(shí)施例或方面中,所述“bind”元素是一種高級(jí)元素(與“reco”類似)并被提供有其他更多的特征,它能夠在沒有腳本自身的情況下有效地模擬所述腳本。
在不使用腳本或不使用下面將要討論的本發(fā)明所述方面的情況下,下面將要討論的某些諸如復(fù)雜對(duì)話效果的能力僅僅伴隨有將一個(gè)頁(yè)發(fā)送回web服務(wù)器202,執(zhí)行在上面的應(yīng)用程序邏輯從而產(chǎn)生一個(gè)新的頁(yè),并將所述頁(yè)傳送回給客戶機(jī)設(shè)備。本發(fā)明的這個(gè)方面允許一個(gè)編程器調(diào)用與所述頁(yè)的對(duì)象相關(guān)的方法而不會(huì)招致服務(wù)器的往返行程(roundtrip)。
在上面討論的實(shí)施例中,“bind”元素僅僅具有用于以web頁(yè)形式向字段分配識(shí)別結(jié)果的屬性“TargetElment”和“TargetAttribute”。在另一個(gè)實(shí)施例中,“bind”元素還包括一個(gè)被添加用于對(duì)象方法調(diào)用的“TargetMethod”?!癟argetMethot”的使用和性能是一種用于模擬腳本的基本技術(shù)。例如,下述語(yǔ)法可以被用于調(diào)用對(duì)象“OBJ1”的“X”方法<bind TargetElement=“OBJ1”TargetMethod=“X”...>。
注意,雖然這里所示的例子遵循HTML/XHTML事件語(yǔ)法,但是,本領(lǐng)域內(nèi)普通技術(shù)人員可以發(fā)現(xiàn)它可以將<bind>用途直接推廣到其他事件機(jī)構(gòu)中,包括但局限于的W3C文本對(duì)象模型層2或?qū)?事件標(biāo)準(zhǔn)、ECMA公共語(yǔ)言信息基礎(chǔ)設(shè)施(CLI)事件模型、Java編程語(yǔ)言事件模型、W3C同步多媒體集成語(yǔ)言(SMIL)和突發(fā)W3CXML事件標(biāo)準(zhǔn)協(xié)議。
圖15A和15B示出了可在一個(gè)客戶機(jī)、特別是在一個(gè)下層瀏覽器上執(zhí)行的標(biāo)記語(yǔ)言頁(yè)。在這個(gè)例子中,所述用戶經(jīng)過音頻提示要求一杯飲料。然后,所述系統(tǒng)確認(rèn)點(diǎn)了什么樣的飲料。在識(shí)別結(jié)果的基礎(chǔ)上“bind”元素使用說明邏輯引導(dǎo)執(zhí)行。當(dāng)所述飲料被確認(rèn)時(shí),表單被發(fā)送回給web服務(wù)器202,所有這一切都沒有腳本。
通常,圖15A和15B所示的標(biāo)記示例包括一個(gè)數(shù)據(jù)部分350、一個(gè)語(yǔ)音部分352和用戶接口部分354、356和358。部分354從一般查詢中接收關(guān)于用戶喜歡什么飲料的識(shí)別結(jié)果并將交互識(shí)別流轉(zhuǎn)移到查詢是否需要奶油和糖的再提示、或確認(rèn)所述飲料被點(diǎn)取。特別是,當(dāng)奶油或糖也已經(jīng)被點(diǎn)取時(shí),部分356接收一個(gè)識(shí)別結(jié)果。部分358接收用于確認(rèn)所述飲料的識(shí)別結(jié)果。部分360是一個(gè)使用新消息對(duì)象“SMEX”的調(diào)用控制部分,這將在后面進(jìn)一步討論。
如上面所指出的,本發(fā)明這個(gè)方面的“bind”元素包括對(duì)象方法調(diào)用,當(dāng)在361處執(zhí)行“welcome”對(duì)象上的“start”方法時(shí),它利用“welcome”提示啟動(dòng)圖15A和15B所示的用戶交互。
然后,通過在362處執(zhí)行“asked”對(duì)象的“start”方法,詢問用戶“是希望得到可樂、咖啡還是橘汁?”。然后通過在363處調(diào)用識(shí)別“reco_drink”對(duì)象上的“start”方法執(zhí)行識(shí)別。
然后執(zhí)行部分354中的標(biāo)記,其中識(shí)別服務(wù)器204使用的語(yǔ)法由Xpath語(yǔ)句“./drink types”提供。注意,盡管這個(gè)例子使用了W3C Xpath語(yǔ)言,但是本領(lǐng)域內(nèi)的普通技術(shù)人員可以發(fā)現(xiàn)它也可以被用于其他的標(biāo)準(zhǔn)語(yǔ)言,包括但局限于W3C XML查詢語(yǔ)言(XQL)。如“bind”元素364所規(guī)定的,如果從識(shí)別服務(wù)器204接收的識(shí)別結(jié)果具有小于10的置信分,則在366處執(zhí)行提示對(duì)象“reprompt”,后面跟隨著提示對(duì)象“ask”368,在這一點(diǎn),在370處重新啟動(dòng)識(shí)別對(duì)象“reco_drink”。如果所返回的識(shí)別結(jié)果是具有大于10的置信分的“coffee”,則字段“drink”被分配有在372處識(shí)別結(jié)果的值,且在374處通過提示對(duì)象“craem_sugar”向用戶提示他/她是否喜歡奶油或糖。然后在376調(diào)用部分356中的識(shí)別對(duì)象“reco_cream_sugar”。否則,如果所述識(shí)別結(jié)果的置信分大于10但不是咖啡,則在378處再次分配字段飲料。在380處通過執(zhí)行提示對(duì)象“confirm”提供所述識(shí)別結(jié)果的確認(rèn),后面跟隨在382處在部分358中識(shí)別對(duì)象“reco_yesno”的調(diào)用。如果用戶利用大于10的置信分回答“yes”,那么,在384處顯示提示對(duì)象“thanks”,然后在386處發(fā)送表單。反之,如果用戶回答“no”或識(shí)別結(jié)果的置信分低于10,則在390處執(zhí)行提示對(duì)象“retry”,后面再次跟隨有在392處正在執(zhí)行的提示對(duì)象“ask”和在394處的“reco_drink”識(shí)別對(duì)象的調(diào)用。
從前面的例子可以看出,如在部分354、356或358中所指出的,“bind”元素允許方法的多重調(diào)用。如果需要,能夠說明識(shí)別結(jié)果的多重分配。在所示的實(shí)施例中,當(dāng)所述多重分配和方法調(diào)用被說明時(shí),他們是按照文本順序被執(zhí)行的。
在另一個(gè)實(shí)施例中,還提供了用于傳遞方法參數(shù)的標(biāo)準(zhǔn)。換言之,某些方法需要一個(gè)參數(shù)列表。這是使用“arg”子元素實(shí)現(xiàn)的。例如,給出下述標(biāo)記<bind TargetElement=“OBJ”TargetMethod=“F”><arg>X</arg><arg>Y</arg></bind>
等效于“OBJ.F(X,Y)”,或“OBJ”是一個(gè)具有參數(shù)“X”和“Y”的方法“F”的對(duì)象。
所述“bind”元素還能夠包括一個(gè)“event”屬性,用于說明所述連接元素被試圖用于哪個(gè)事件。例如,標(biāo)記<bind event=“onNoReco”=TargetElement=“prompt1”TargetMethod=“start”/>
意味著“onNoReco”事件被傳送的時(shí)間,對(duì)象“pyompt1”的方法“start”將被調(diào)用??紤]使用“bind”元素作為例如結(jié)合圖8所述的上述“Reco”元素的子元素,用于“bind”元素的缺省屬性是“onReco”。
作為一個(gè)高級(jí)元素,所述“bind”元素可以包括在所述附錄的部分2.4中規(guī)定的任一事件。另外,所述“bind”事件還可以包括具有能夠被訪問和用于指示程序流程的“status”屬性的“onError”事件。為了擴(kuò)展所述“bind”元素的其他事件必須具有“status”屬性,這些都是能夠被訪問的。
除了檢查識(shí)別結(jié)果的狀態(tài)以外,也可以檢查正在執(zhí)行的當(dāng)前文本或頁(yè)本身。具體地說,“test”和“value”兩個(gè)屬性可以被擴(kuò)展成包括被稱為包含文檔的根節(jié)點(diǎn)“host”基元。例如,回過來參看圖15A和15B,其中所包含的例子具有在部分354處的附加邏輯,用于詢問當(dāng)用戶希望得到咖啡時(shí)是否需要奶油或糖。當(dāng)利用標(biāo)記“host()/get_drink/drink=‘coffee’”進(jìn)行規(guī)定時(shí),如果所述飲料字段僅僅是“coffee”,那么,用于添加奶油或糖的標(biāo)記和隨后部分356的調(diào)用將被返回。
應(yīng)當(dāng)說明,“bind”元素不僅可以被應(yīng)用于來自語(yǔ)音服務(wù)器204的識(shí)別結(jié)果和在所述文檔中接收或分配值,還可以被應(yīng)用到消息目標(biāo)(這里由“smex”表示),所述消息目標(biāo)例如來自在所述客戶機(jī)設(shè)備上運(yùn)行的應(yīng)用程序。在圖15A和15B所示的例子中,當(dāng)在所述客戶機(jī)設(shè)備上運(yùn)行的電話應(yīng)用程序檢測(cè)一個(gè)調(diào)用時(shí)執(zhí)行所述頁(yè)。在部分360中,當(dāng)接收到“/Call_connected”消息時(shí),“bind”元素通過執(zhí)行“reco_drink”對(duì)象執(zhí)行或播放“welcome”提示并開始識(shí)別。與從語(yǔ)音服務(wù)器204接收的識(shí)別結(jié)果相似,所接收的消息也非常大。某些消息被很好地定義,以便啟動(dòng)所希望的程序流程。其他的可以被接收和處理(例如,正如接收所述識(shí)別服務(wù)器的識(shí)別結(jié)果被分析語(yǔ)法)。例如,這允許標(biāo)記語(yǔ)言與從鍵盤輸入的自然語(yǔ)言分析程序相似被使用。附錄A中的識(shí)別元素包括與執(zhí)行這個(gè)功能相關(guān)的特征。類似的,所述提示元素通過使用特征“innertext”可以被用于提供用于動(dòng)態(tài)內(nèi)容或音頻波文件的文本消息并在附錄A中給予解釋。事件可以與用于識(shí)別結(jié)果的事件類似。例如,所述事件可以包括當(dāng)所述消息源(例如運(yùn)行于所述客戶機(jī)設(shè)備上的應(yīng)用程序)具有可用于所述瀏覽器的消息時(shí)得到傳送的“onReceived”。
然后,“smex”或消息對(duì)象允許這里所討論的標(biāo)記語(yǔ)言標(biāo)記被擴(kuò)展到運(yùn)行于所述客戶機(jī)設(shè)備上的其它部件或應(yīng)用程序。作為另外一個(gè)例子,所述消息對(duì)象可以被用于對(duì)與聽取在所述客戶機(jī)上運(yùn)行受到損害相關(guān)的TTY組件通信。所述TTY組件將不使用語(yǔ)音識(shí)別提供用戶已經(jīng)鍵入的消息。這個(gè)消息然后被使用,就象已經(jīng)從所述識(shí)別服務(wù)器中接收了一個(gè)識(shí)別結(jié)果一樣,其中,所述消息能夠被語(yǔ)法分析和分配給所述表單的字段,或使用上面討論的“reco”、“grammar”或“bind”元素進(jìn)行其他處理。在附錄A中提供了消息或“smex”對(duì)象的進(jìn)一步討論。
所述“bind”元素還可以包括一個(gè)“for”屬性,該屬性允許它的作用被附加到所述頁(yè)的其它對(duì)象上。例如,當(dāng)對(duì)象“prompt 1”傳送事件“onComplete”時(shí),諸如<bind for=“prompt 1”event=“onComplet targetElement”=“prompt 2”=targetMethod=“start”/>的標(biāo)記將調(diào)用對(duì)象“prompt 2”的start方法。
回過來參看圖5,web服務(wù)器202能夠包括服務(wù)器端插接說明創(chuàng)作工具或模塊320(例如,Microsoft Corporation的ASP或ASP+,或JSP等)。服務(wù)器端插入模塊320可以動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記,甚至是用于訪問web服務(wù)器202的客戶機(jī)類型的特殊形式的標(biāo)記。在最初建立客戶機(jī)/服務(wù)器關(guān)系的基礎(chǔ)上,所述客戶機(jī)信息可以被提供給web服務(wù)器202,或web服務(wù)器202可以包括多個(gè)模塊或例行程序以檢測(cè)所述客戶機(jī)的性能。利用這種方式,服務(wù)器端插接模塊320可以為每個(gè)聲音識(shí)別方案產(chǎn)生客戶機(jī)端標(biāo)記,即僅僅通過電話80的聲音或用于設(shè)備30的多重模塊。通過使用一致的客戶機(jī)端的模塊(能夠在每個(gè)應(yīng)用程序中使用的reco和prompt控制),用于多個(gè)不同客戶機(jī)的創(chuàng)作更加容易。
除了動(dòng)態(tài)產(chǎn)生客戶機(jī)端的標(biāo)記以外,與使用圖8、9A和9B所示標(biāo)記例子獲得圖6所示信用卡信息類似,上層對(duì)話模塊被構(gòu)成為服務(wù)器端的控制并被存儲(chǔ)在存儲(chǔ)器324中,以便由開發(fā)者在應(yīng)用程序創(chuàng)作中使用。通常,上層對(duì)話模塊324將在由開發(fā)者規(guī)定的參數(shù)基礎(chǔ)上在只有聲音的和多重模塊方案中動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記和腳本。所述上層對(duì)話模塊能夠包括多個(gè)參數(shù),用于產(chǎn)生客戶機(jī)端的標(biāo)記,以適應(yīng)開發(fā)者的需要。例如,信用卡信息模塊可以包括一個(gè)用于指出客戶機(jī)端標(biāo)記腳本能夠允許的信用卡的類型參數(shù)。在服務(wù)器端插接模塊320中使用的簡(jiǎn)單的ASP+頁(yè)被示于圖11。
雖然已經(jīng)結(jié)合最佳實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到在形式和細(xì)節(jié)上可以作出很多變化而不脫離本發(fā)明的精神和范圍。
附錄A1引言下面的標(biāo)記是一集標(biāo)記元素,它們?cè)试S文檔使用語(yǔ)音作為輸入或輸出媒體。所述標(biāo)記被設(shè)計(jì)成自包含的XML,它們能夠被放入諸如HTML、XHTML、CHTML、SMIL、WML等任何一種從SGML導(dǎo)出的標(biāo)記語(yǔ)言中。這里所使用的標(biāo)記與可從Washington Redmond微軟公司得到的已知方法SAPI5.0類似。所述標(biāo)記、元素、事件、屬性、特征、返回值等僅僅都是范例,并不作為限制。雖然這里解釋了語(yǔ)音和DTMF識(shí)別,但是,也可以提供類似的標(biāo)記用于其他形式的識(shí)別。
這里所討論的主要元素是<prompt......>用于語(yǔ)音合成結(jié)構(gòu)和提示播放<reco......> 用于識(shí)別器配置和識(shí)別執(zhí)行和后處理<grammar......> 用于規(guī)定輸入語(yǔ)法資源<bind......> 用于識(shí)別結(jié)果的處理<dtmf......> 用于DTMF的配置和控制2RecoReco元素被用于規(guī)定可能的用戶輸入,而且是用于處理輸入結(jié)果的裝置。其主要元素可以是<grammar>和<bind>,且它包含用于配置識(shí)別器特征的資源。
Reco元素是在上層瀏覽器中經(jīng)過Start和Stop方法、或在SMIL啟用的瀏覽器中使用SMIL命令被編程激活的。它們被認(rèn)為通過它們?cè)谒鲰?yè)上的出現(xiàn)在下層瀏覽器中起說明作用(即不支持腳本的瀏覽器)。為了允許并行激活多種語(yǔ)法,可以考慮同時(shí)使多個(gè)Reco元素活動(dòng)。
Reco還可以采用一種特定的模式-‘a(chǎn)utomatic’,‘single’或‘multiple’-以區(qū)分它們?cè)试S的識(shí)別方案的種類和識(shí)別平臺(tái)的行為。
2.1 Reco內(nèi)容Reco元素包含一個(gè)或多個(gè)語(yǔ)法和任選的一組bind連接元素,它檢查識(shí)別的結(jié)果并將相關(guān)部分拷貝到所述包含頁(yè)的值上。
在上層瀏覽器中,Reco支持按程序設(shè)計(jì)的各個(gè)語(yǔ)法規(guī)則的激活和去激活。還要說明,通過用于識(shí)別環(huán)境的缺省激活一個(gè)語(yǔ)法中所有的頂層規(guī)則。
2.1.1<gramma(語(yǔ)法)>元素所述語(yǔ)法元素被用于使用src屬性規(guī)定語(yǔ)法,聯(lián)機(jī)或被關(guān)聯(lián)。通常至少規(guī)定一種語(yǔ)法(聯(lián)機(jī)或被關(guān)聯(lián))。聯(lián)機(jī)語(yǔ)法可以是以文本為基礎(chǔ)的語(yǔ)法格式,被關(guān)聯(lián)的語(yǔ)法可以是以文本為基礎(chǔ)或二進(jìn)制類型的??梢砸?guī)定多個(gè)語(yǔ)法元素。如果規(guī)定了一個(gè)以上的語(yǔ)法元素,所述語(yǔ)法內(nèi)的規(guī)則被添加作為在相同語(yǔ)法中的額外規(guī)則。具有相同名稱的任何規(guī)則將被重寫。
屬性(Attributes)·src如果規(guī)定了聯(lián)機(jī)語(yǔ)法,則該項(xiàng)是可選的。包括所述語(yǔ)法的URI。注意,通過用于識(shí)別環(huán)境的缺省激活一個(gè)語(yǔ)法中的所有頂層規(guī)則。
·langID可選。字符串,用于指出將使用哪種語(yǔ)言語(yǔ)音引擎。所述字符串格式遵循xmllang定義。例如,lang ID=“en-us”表示美國(guó)英語(yǔ)。這個(gè)屬性只有在所述langID不在語(yǔ)法URI中規(guī)定時(shí)才有效。如果沒有規(guī)定,則缺省值為美國(guó)英語(yǔ)。
如果在多個(gè)地方規(guī)定了所述langID,那么,langID遵循來自最低分的先前順序-遠(yuǎn)程語(yǔ)法文件(即在所語(yǔ)法文件內(nèi)規(guī)定的語(yǔ)言標(biāo)識(shí)),所屬遠(yuǎn)程語(yǔ)法文件后面跟隨有一個(gè)語(yǔ)法元素,而該語(yǔ)法元素后面跟隨有reco元素。
<pre listing-type="program-listing"><![CDATA[<grammar src=“EromCity.xml”/> 或<grammar> ?。紃ule toplevel=“active”> ?。紁>from</p> <ruleref name=“cities”/> ?。?rule> <rule name=“cities”><l> ?。紁>Cambridge</p> ?。紁>Seattle</p> ?。紁>London</p> ?。?l> ?。?rule> </grammar>]]></pre>如果規(guī)定了引用src的語(yǔ)法和聯(lián)機(jī)語(yǔ)法,則所述聯(lián)機(jī)規(guī)則被添加到所述引用的規(guī)則中,并且任一具有相同名稱的規(guī)則都將被重寫。
2.1.2<bind(連接)>元素所述連接元素被用于把來自識(shí)別結(jié)果的值連接到所述頁(yè)中。
由所述連接元素假設(shè)的識(shí)別結(jié)果可以是包含用于規(guī)定識(shí)別結(jié)果的語(yǔ)義標(biāo)記語(yǔ)言(SML)的XML文檔。它的內(nèi)容包括語(yǔ)義值、所說的實(shí)際字和置信分。
SML也可以包括另外的識(shí)別選擇(像在N個(gè)最佳識(shí)別結(jié)果中一樣)。下面示出了“I”d like to travel from Seattle to Boston”這一語(yǔ)句的樣板XML文本<pre listing-type="program-listing"><![CDATA[ <sml confidenc=“40”> <travel text=“I’d like to travel from Seattle to Boston”><o(jì)rigin_city confidence=“15”>Seattle</origin_city><dest_city confidence=“35”>Boston</dest_city></travel></sml>]]></pre>由于假設(shè)語(yǔ)法內(nèi)的識(shí)別產(chǎn)生一個(gè)XML文檔,所以,在語(yǔ)義標(biāo)記語(yǔ)言或者在SML中,使用Xpath查詢參考將從所述SML文檔連接的值。并且由于在所述值被連接進(jìn)入的頁(yè)中的所述元素被唯一地識(shí)別(它們可能將被形成控制),所以,這些目標(biāo)元素被直接關(guān)聯(lián)。
屬性·targetElement必須。將分配來自于SML的值內(nèi)容的元素(如在W3CSMIL2.0中)。
·targetAttribute任選。將分配來自于SML值內(nèi)容的目標(biāo)元素的屬性(如在SMIL2.0中的attributeName屬性一樣)。如果未規(guī)定,默認(rèn)為“value”。
·test任選。一個(gè)用于指出條件的XML Pattern字符串,在所述條件下將分配所述識(shí)別結(jié)果。缺省條件是真。
·value必須。用于規(guī)定將被分配給所述目標(biāo)元素的、來自于識(shí)別結(jié)果文檔的值的XPATH字符串(如在所述W3C XML DOM說明中說明的)。
例子如此給出上述SML返回,隨后的reco元素使用連接將origin_city和dest_city中的值傳輸?shù)剿瞿繕?biāo)頁(yè)元素txtBoxOrigin和txtBoxDest<pre listing-type="program-listing"><![CDATA[ ?。糹nput name=“txtBoxOrigin”type=“text”/> <input name=“txtBoxDest”type=“text”/> ?。紃eco id=“travel”> ?。糶rammar src=“./city.xml”/> ?。糱ind targetElement=“txtBoxOrigin” value=“orogin_city”/> ?。糱ind TargetElement=“txtBoxDest” value=“//dest_city”/> ?。?reco>]]></pre>如在下面的例子中所描述的,這個(gè)連接是有條件的,其中,在作為一個(gè)預(yù)定條件加給所述連接操作的所述dest_city結(jié)果的語(yǔ)義屬性上執(zhí)行一個(gè)測(cè)試<bind targetElement=“txtBoxDest”
value=“//dest_city”test=“/sml_/“dest_city[@confidence$gt$ 40]”/>
所述連接元素是一個(gè)在下層瀏覽器或上層瀏覽器上處理識(shí)別結(jié)果的簡(jiǎn)單說明性裝置。對(duì)于更復(fù)雜的處理來講,由上層瀏覽器所支持的recoDOM對(duì)象實(shí)現(xiàn)了onReco事件處理程序以執(zhí)行編程的腳本分析和所述識(shí)別返回的后處理。
2.2屬性和特征下述屬性被所有瀏覽器所支持,所述特征被上層瀏覽器所支持。
2.2.1屬性下述Reco屬性用來配置用于一個(gè)對(duì)話回合的語(yǔ)音識(shí)別器。
·initialTimeout任選。在識(shí)別開始和語(yǔ)音檢測(cè)之間微秒級(jí)的時(shí)間。這個(gè)值被傳送給識(shí)別平臺(tái),如果被超過,則將從所述識(shí)別平臺(tái)提供一個(gè)onSilence事件(見2.4.2)。如果未規(guī)定,則所述語(yǔ)音平臺(tái)將將使用缺省值。
·babbleTimeout任選。微秒級(jí)的時(shí)間周期,在該周期中,在檢測(cè)語(yǔ)音之后所述識(shí)別器必須返回一個(gè)結(jié)果。就在自動(dòng)和單模式情況下的reco來說,這適于在語(yǔ)音檢測(cè)和停止調(diào)用之間的所述周期。就在‘多重’模式下的reco來說,這個(gè)超時(shí)適于在到語(yǔ)音檢測(cè)和每個(gè)識(shí)別結(jié)果之間的所述周期上,即在每個(gè)結(jié)果返回或其他事件之后重新開始所述周期。如果被超過,根據(jù)是否發(fā)生了誤差產(chǎn)生不同的事件。如果所述識(shí)別器仍然在處理音頻,即處于特別長(zhǎng)發(fā)言情況下,則利用狀態(tài)代碼13產(chǎn)生onNoReco事件。但是,如果由于任何原因所述超時(shí)被超過,則將產(chǎn)生一個(gè)識(shí)別器誤差,并產(chǎn)生onTimeout事件。如果未規(guī)定,則所述語(yǔ)音平臺(tái)將默認(rèn)一個(gè)初始植。
·maxTimeout任選。在識(shí)別開始和返回到所述瀏覽器的結(jié)果之間的微秒級(jí)時(shí)間周期。如果被超過,則通過所述瀏覽器產(chǎn)生onTimeout事件-這為分布式環(huán)境中的網(wǎng)絡(luò)和識(shí)別器故障提供了必要的條件。就在‘多重’模式下的reco來說,和babbleTimeout一樣,在每個(gè)識(shí)別或其他事件之后重新開始所述周期。注意,maxTimeout屬性應(yīng)當(dāng)大于或等于initialTimeout和babbleTimeout的總和。如果未規(guī)定,則該值將是瀏覽器故障。
·endSilence任選。就在自動(dòng)模式下的reco來說,是在此后必須沒有所述識(shí)別返回的語(yǔ)音的發(fā)言后微秒級(jí)的靜默周期。除自動(dòng)模式外忽略模式的reco。如果未規(guī)定,缺省值默認(rèn)為平臺(tái)內(nèi)部值。
·reject任選。識(shí)別拒絕閾值,低于該閾值,所述平臺(tái)將產(chǎn)生‘no reco’事件。如果未規(guī)定,所述語(yǔ)音平臺(tái)將使用缺省值。置信分在0和100(整數(shù))之間。拒絕值位于其間。
·server任選。語(yǔ)音平臺(tái)的URI(當(dāng)標(biāo)記解釋程序和識(shí)別平臺(tái)沒有合并在一起時(shí)使用)。舉例值可以是server=protocol//yourspeechplatform。應(yīng)用程序?qū)懭肫饕材軌蛲ㄟ^將一個(gè)查詢字符串添加到URI字符串上以向語(yǔ)音平臺(tái)提供特定設(shè)置,例如protocol//yourspeechplatform?bargeinEnergyThreshold=0.5·langID任選。字符串,用于指出使用哪一種語(yǔ)言語(yǔ)音引擎。該字符串格式遵循所述xmllang規(guī)定。例如,langID=‘en-us’表示美國(guó)英語(yǔ)。只有當(dāng)langID在所述語(yǔ)法元素(見2.1.2)中沒有規(guī)定時(shí)這個(gè)屬性才有效。
·mode任選。用于規(guī)定將被遵循的識(shí)別模式。如果未規(guī)定,默認(rèn)為‘a(chǎn)utomatic’模式。
2.2.2 特征下述特征包含由所述識(shí)別處理返回的結(jié)果(這些由所述上層瀏覽器支持)。
·recoResult只讀。識(shí)別結(jié)果,如2.1.2所述,保持在包含語(yǔ)義標(biāo)記語(yǔ)言(SML)的XML DOM節(jié)點(diǎn)對(duì)象中。在沒有識(shí)別的情況下,所述特征返回null。
·text讀/寫。用于保持被識(shí)別字的文本的字符串(即,在讀模式下在recoResult的SML識(shí)別返回中的最高層元素的文本屬性內(nèi)容的簡(jiǎn)寫。在寫模式下,可以分配一個(gè)字符串并分析該字符串是否與所述識(shí)別結(jié)果對(duì)應(yīng)。所述寫模式允許標(biāo)記語(yǔ)言標(biāo)記的擴(kuò)展,并允許對(duì)所述客戶機(jī)設(shè)備的其他組件和應(yīng)用程序進(jìn)行處理??梢詮摹癝MEX”消息對(duì)象中獲得所述字符串)。
·status只讀。從識(shí)別平臺(tái)返回的狀態(tài)代碼。對(duì)于成功識(shí)別來說可能的值是0,或者錯(cuò)誤值是-1到-4(如在start方法(部分2.3.1)、Activate方法(部分2.3.4)上可能的異常中規(guī)定的那樣),在識(shí)別器事件的接收(見2.4)中被設(shè)置為-11到-15。
2.3Object method(對(duì)象方法)使用在RecoDOM對(duì)象中的下述方法可以控制Reco激活和語(yǔ)法激活。利用這些方法,上層瀏覽器能夠開始和停止Reco對(duì)象,取消進(jìn)行中的識(shí)別,激活和去激活個(gè)別的語(yǔ)法頂層規(guī)則(僅僅是上層瀏覽器)。
2.3.1 start(開始)所述Start方法開始識(shí)別處理,作為激活語(yǔ)法,使用所述頂層規(guī)則,用于沒有被明確去激活的識(shí)別環(huán)境。
語(yǔ)法(語(yǔ)法)Object.Start()Return value(返回值)無。
Exception(例外)所述方法設(shè)置非零狀態(tài)代碼,當(dāng)錯(cuò)誤時(shí)激活一個(gè)onNoReco事件??赡艿腻e(cuò)誤包括沒有語(yǔ)法(reco狀態(tài)=1),對(duì)于加載的一個(gè)錯(cuò)誤是一種語(yǔ)法,該語(yǔ)法可能是與對(duì)于編譯語(yǔ)法、不存在URI(reco狀態(tài)=2)或語(yǔ)音平臺(tái)誤差(reco狀態(tài)=3)類似的各種原因引起的。
2.3.2 stop(停止)所述Stop方法是一個(gè)調(diào)用,用于結(jié)束識(shí)別處理。所述Reco對(duì)象停止記錄音頻,所述識(shí)別器將所接收音頻的識(shí)別結(jié)果返回到記錄被停止的點(diǎn)。釋放由所述Reco使用的所有識(shí)別資源,而且它的語(yǔ)法被去激活。(注意,由于識(shí)別器本身在識(shí)別一個(gè)完全語(yǔ)句之后將停止,所以,在自動(dòng)模式的一般識(shí)別中不需要使用這種方法。)如果所述Reco還沒有開始,那么,所述調(diào)用不起作用。
語(yǔ)法(語(yǔ)法)Object.Stop()Return value(返回值)
無。
Exception(例外)無。
2.3.3 Cancel(取消)所述Cancel方法停止將所述音頻饋送給所述識(shí)別器、去激活所述語(yǔ)法和釋放所述識(shí)別器,并丟棄任何識(shí)別結(jié)果。所述瀏覽器將忽略用于被刪除識(shí)別的識(shí)別結(jié)果。如果所述識(shí)別器沒有被啟動(dòng),則所述調(diào)用無效。
語(yǔ)法Object.concel()Return value(返回值)無。
Exception(例外)無。
2.3.4 Activate(激活)所述Activate方法激活上下文無關(guān)語(yǔ)法(CFG)中的頂層規(guī)則。由于在‘Started’識(shí)別處理期間它將無效,所以,在開始識(shí)別之前必須調(diào)用所述激活。注意,用于還沒有被明顯去激活的識(shí)別上下文的所有語(yǔ)法頂層規(guī)則已經(jīng)被處理為激活。
語(yǔ)法(語(yǔ)法)Object.Activate(strName);Parameters(參數(shù))StrName必須的。將被去激活的規(guī)則名稱。一個(gè)空字符串將去激活所有規(guī)則。
Return value(返回值)無。
Exception(例外)
無。
2.3.5 Deactivate(去激活)該方法去激活在語(yǔ)法中的頂層規(guī)則。如果該規(guī)則不存在,則該方法不起作用。
語(yǔ)法Object.Activate(strName);參數(shù)strName必需的。要被去激活的規(guī)則名稱。一個(gè)空字符串去激活所有規(guī)則。
返回值無例外無2.4 Reco事件所述Reco DOM對(duì)象支持下述事件,這些事件的處理程序可以被規(guī)定為所述Reco元素的屬性。
24.1 onReco當(dāng)所述識(shí)別器具有所述瀏覽器可以得到的一個(gè)識(shí)別結(jié)果時(shí),這個(gè)事件獲得啟動(dòng)。對(duì)于在自動(dòng)模式中的Reco,這個(gè)事件自動(dòng)停止識(shí)別處理并清除資源(見2.3.2)。OnReco通常被用于所述識(shí)別結(jié)果的按程序分析和將所述結(jié)果處理到所述頁(yè)中。
Syntax(語(yǔ)法) Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收所述特征,但該處理程序能查詢與數(shù)據(jù)相關(guān)的事件對(duì)象(見在下面例子中的事件對(duì)象的使用)舉例下面的XHTML段落使用onReco調(diào)用一個(gè)腳本去分析識(shí)別結(jié)果并將所述值指定給適當(dāng)?shù)淖侄巍?br>
<pre listing-type="program-listing"><![CDATA[ <input name=“textBoxorigin”type=“text”/> ?。糹nput name=“txtBoxDest”type=“text”/> ?。糝eco onReco=“processCityRecognition()”/> ?。糶rammar src=“/grammars/cuties.xml”/> ?。?reco> ?。約cript><![CDATA[ >function processCityRecognition(){ smlResult=event.srcElement.recoResult; origNode= smlResult.selectSingleNode(“//origin_city”); if(origNode!=null),txtBixDEST.value= origNode.text; destNode= smlResult.selectSinglNode(“//dest_city”); if(destNode?。娇?,txtBoxDestvalue=destNode.text; } ]]></script>]]></pre>
2.4.2 onSileneeonSilence用于在所述Reco上的initialTimeout屬性(見2.2.1)中規(guī)定的時(shí)間周期之前對(duì)由所述識(shí)別平臺(tái)檢測(cè)的無語(yǔ)音事件進(jìn)行處理。這個(gè)事件自動(dòng)取消了與自動(dòng)識(shí)別模式相關(guān)的識(shí)別處理。 Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
2.4.3 onTimeoutonTimeout處理通常反映了來自所述語(yǔ)音平臺(tái)的誤差的兩類事件。
·它處理由所述標(biāo)記解釋程序發(fā)出的事件,所述標(biāo)記解釋程序發(fā)信號(hào)通知在所述識(shí)別被完成之前在maxtime屬性(見2.2.1)中規(guī)定的周期到期了。這個(gè)事件將反映在分布式結(jié)構(gòu)中所發(fā)生的問題。
·當(dāng)識(shí)別已經(jīng)開始但處理還沒有停止并且在由babbleTimeout規(guī)定的所述周期中沒有識(shí)別時(shí),它還處理(ii)由所述語(yǔ)音識(shí)別平臺(tái)發(fā)出的事件(見2.2.1)。
這個(gè)事件自動(dòng)刪除所述識(shí)別處理。
Syntax(語(yǔ)法) Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
2.4.4 onNoRecoonNoReco是一個(gè)當(dāng)它不能返回有效識(shí)別結(jié)果時(shí)用于由所述語(yǔ)音識(shí)別平臺(tái)發(fā)出的事件的處理程序。其中可能發(fā)生的情況由狀態(tài)代碼識(shí)別。該事件自動(dòng)停止識(shí)別處理。
Syntax(語(yǔ)法) Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
3 Prompt(提示)所述提示元素被用于規(guī)定系統(tǒng)輸出。它的內(nèi)容包括下述中的一個(gè)或多個(gè)·聯(lián)機(jī)或參考文本,它可以利用韻律學(xué)或其他語(yǔ)音輸出信息進(jìn)行標(biāo)記;·從所包含的文本中隨機(jī)提取的可變值;·鏈接到音頻文件。
提示元素可以由下層瀏覽器(或被SMIL命令激活的)或由在上層瀏覽器上的對(duì)象進(jìn)行說明性的解釋。
3.1 Prompt content(提示內(nèi)容)所述提示元素包含用于系統(tǒng)輸出的資源,所述系統(tǒng)輸出可以是文本、對(duì)音頻文件的參考或兩者。
簡(jiǎn)單的提示僅僅需要規(guī)定輸出所需要的文本,例如,<prompt id=“Welcome”>
Thank you for calling ACME weather report.
</prompt>
這個(gè)簡(jiǎn)單的文本還可以進(jìn)一步包含下述類型之一的標(biāo)記。
3.1.1 語(yǔ)音合成標(biāo)記(Speech Synthesis markup)在提示元素中可以使用任何格式的語(yǔ)音合成標(biāo)記語(yǔ)言。(這個(gè)格式在3.2.1中描述的‘tts’屬性中規(guī)定)下述的例子示出了具有用于強(qiáng)調(diào)其中某些字的指令的文本<prompt id=“giveBalance”>
you have<emph>five dollars</emph>left in your accont</prompt>
3.1.2 動(dòng)態(tài)內(nèi)容可能是恰恰在輸出所述提示之前需要在所述客戶機(jī)上計(jì)算所述提示的實(shí)際內(nèi)容。為了確認(rèn)一個(gè)特定值,例如在一個(gè)變量中需要解除引用所述值。所述值元素可以被用于這個(gè)目的。
value元素value任選。提取文檔中一個(gè)元素的值。
屬性·targetElement任選。必須規(guī)定href或(targetElement)。該元素的id包含將被提取的值。
·targetAttribute任選。將從中提取所述值的所述元素的屬性。
·href任選。一個(gè)音頻段的URI。如果兩個(gè)都存在,那么,href將取代targetElement。
所述targetElement屬性被用于引用位于包含文檔中的一個(gè)元素。其id由targetElement規(guī)定的元素的內(nèi)容被插入到將被合成的文本中。如果所希望的內(nèi)容被保持在所述元素的一個(gè)屬性中,所述targetAttribute屬性可以被用于規(guī)定在targetElement上所需的屬性。對(duì)于在HTML格式控制中解除引用所述值是有用的。例如,在下面的表述中,“txtBoxOrigin”和“txtBoxDest”的“value”屬性在輸出所示提示之前被插入到所述文本中<prompt id=“Confirm”>
do you want to travel from<value targetElement=“txtBoxOrigin”targetAttribute=“value”/>
?</prompt>
3.1.3 Audio files(音頻文件)所述值元素也可以被用于指用于播放在在一個(gè)合成提示外或者在其內(nèi)的預(yù)先記錄的音頻文件。下面的例子在所述提示結(jié)束處播放一個(gè)笛音<prompt>
after the beep,please record your message.
<value href=“/way/beep.wav/”>
</prompt>
3.1.4 Referenced prompt(被引用的提示)不是規(guī)定內(nèi)容聯(lián)機(jī),而是所述src屬性可以經(jīng)過URI利用一個(gè)空元素去引用外部?jī)?nèi)容,如下<prompt id=“welcome”src=“/ACMEWeatherPrompts#Welcome”/>
所述sre屬性的目標(biāo)可以保持規(guī)定用于聯(lián)機(jī)提示的任何一個(gè)或所有的上述內(nèi)容。
3.2 Attributes和Properties(屬性和特征)所述提示元素保持下述屬性(下層瀏覽器)和特征(下層和上層瀏覽器)。
3.2.1 Attributes(屬性)·tts任選。用于文本-語(yǔ)音合成的標(biāo)記語(yǔ)言類型。缺省值為“SAPI5”。
·src如果規(guī)定了引用提示,則任選。一個(gè)引用提示的URI(見3.1.4)。
·bargein任選。整數(shù)。從提示開始到提示所述播放可能被聽眾中斷時(shí)的一個(gè)微秒級(jí)的時(shí)間周期。缺省值不限定,即,不允許任何契約(bargein)。契約=0允許直接的契約。它被用于判斷哪種契約受到平臺(tái)的支持。根據(jù)在所述reco開始時(shí)哪一種被允許,利用這種方式可以配置關(guān)鍵字或以能量為基礎(chǔ)的契約次數(shù)。
·prefetch任選。布爾標(biāo)記,用于當(dāng)加載所述頁(yè)時(shí)指出所述提示是否應(yīng)當(dāng)被立即合成并被高速緩存在瀏覽器處。
3.2.2 Properties(特征)上層瀏覽器支持下述所述提示的DOM對(duì)象的特征。
·bookmark只讀。字符串對(duì)象,用于記錄所遇到的最后一個(gè)合成書簽的文本。
·status只讀。從所述語(yǔ)音平臺(tái)返回的狀態(tài)代碼。
·Innertext只讀。這個(gè)特征將提供所述提示的文本轉(zhuǎn)錄,該文本轉(zhuǎn)錄將被傳送給所述合成器。例如,如果一個(gè)提示包括驅(qū)動(dòng)音頻波文件,那么,這個(gè)特征提供那個(gè)提示的文本版本(通常是利用所述音頻波文件存儲(chǔ)的),然后它將被顯示,或者例如通過將所述提示的文本版本提供給運(yùn)行于所述客戶機(jī)設(shè)備上的一個(gè)組件或應(yīng)用程序加以使用。該innertext特征還能夠被用于提供包含動(dòng)態(tài)內(nèi)容的提示的文本版本。
3.3 Prompt methods(提示方法)在所述提示的DOM對(duì)象中可以使用下述方法控制提示播放。利用這種方式,上層瀏覽器可以開始和停止提示對(duì)象。在進(jìn)行中暫停和恢復(fù)所述提示,改變被合成語(yǔ)音的速度和音量。
3.3.1 Start(開始)開始重放所述提示。除非給定一個(gè)參數(shù),否則所述方法播放所述對(duì)象的內(nèi)容。在一個(gè)給定時(shí)間,僅僅有一個(gè)單一的提示對(duì)象被認(rèn)為是‘開始’,因此,如果連續(xù)調(diào)用Start,所有的重放都將被按順序進(jìn)行。
語(yǔ)法Objects.Start([strText]);Parameters(參數(shù))o strText將被傳送給所述合成器的文本。如果存在,這個(gè)參數(shù)將取代所述對(duì)象的內(nèi)容。
Return value(返回值)無。
Exception(例外)如果服務(wù)器已經(jīng)釋放了音頻緩沖器,則將狀態(tài)設(shè)置為-1,并啟動(dòng)onComplete事件。
3.3.2 Pause(暫停)不用刷新所述音頻緩存器的情況下暫停重放。如果重放被暫?;蛲V沽?,則這個(gè)方法不起作用。
Syntax(語(yǔ)法)Object.Pause();Return value(返回值)無。
例外無。
3.3.3 Resume(恢復(fù))不用刷新所述緩存器的情況下恢復(fù)重放。如果所述重放并沒有被暫停,這個(gè)方法不起作用。
Syntax(語(yǔ)法)Object.Resume();Return value(返回值)無。
Exception(例外)當(dāng)恢復(fù)失敗時(shí)產(chǎn)生一個(gè)例外。
3.3.4 Stop(停止)如果沒有準(zhǔn)備好,停止重放,并刷新所述音頻緩存器。如果重放已經(jīng)被停止,則該方法簡(jiǎn)單地刷新所述音頻緩存器。
Syntax(語(yǔ)法)Object.Stop();Return value(返回值)無。
Exception(例外)無。
3.3.5 Change(改變)改變重放的速度和/或音量。所述改變可以在播放期間被調(diào)用。
Syntax(語(yǔ)法)Object.Change(speed,volume);Parameters(參數(shù))o Speed(速度)必須。用于改變的因數(shù)。Speed=2.0表示當(dāng)前速率的兩倍,Speed=0.5表示當(dāng)前速率的一半,Speed=0表示恢復(fù)所述缺省值。
o volume(音量)必須。用于改變的因數(shù)。Volume=2.0表示當(dāng)前音量的兩倍,volume=0.5表示當(dāng)前音量的一半,volume=0表示恢復(fù)所述缺省值。
Return value(返回值)無。
Exception(例外)無。
3.3.6 提示控制的例子下述的例子示出了使用上述方法的所述提示控制如何被創(chuàng)作用于不支持鍵盤契約機(jī)構(gòu)的一個(gè)平臺(tái)。
<pre listing-type="program-listing"><![CDATA[<html> ?。紅itle>prompt control</title> ?。糷ead> <script> ?。?!— function checkKWBargein(){ news.change(1.0,0.5);//turn down the volume while verifying if(keyword.text==””){//result is below threshold news.change(1.0,2.0);//restore the volumekeyword.Start();//restart the recognition }else{ news.Stop();//keyword detected!Stop the prompt //Do whatever that is necessary } } // ?。?script> <script for=“window”event=“onload”> ?。迹?- news.Start();keyword.Start(); // ?。?script> ?。?head> body> ?。紁rompt id=“news”bargein=“0”> Stocks turnd in another lackluster performance Wednesday as inyestors receivedlittle incentive to make any big moves ahead of next week’s Fedsral Reservemeeting.The tech-heavy Nasdaq Composition Index dropped 42.51 points to close at2156.26.The Dow Jones Industrial Average fell 17,05 points to 10866.46 after anearly-afternoon rally failed. -<!— </prmpt> ?。紃eco id=“keyword” reject=“70” onReco=“checkKWBargein()”> ?。糶rammer src=http//denali/news bargein grammer.xml/> ?。?reco> </body> ?。?html>]]></pre>
3.4 提示事件所述提示DOM對(duì)象支持下述事件,它們的處理程序可以被規(guī)定為所述提示元素的屬性。
3.4.1 onBookmark當(dāng)遇到一個(gè)合成書簽時(shí)激活。所述事件不暫停重放。
Syntax(語(yǔ)法) Event Object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序能夠查詢與數(shù)據(jù)相關(guān)的所述事件對(duì)象。
3.4.2 onBargein當(dāng)檢測(cè)到一個(gè)用戶的契約事件時(shí)激活。(注意,什么構(gòu)成了例如能量檢測(cè)或關(guān)鍵字識(shí)別的一個(gè)契約事件的確定被傳送到所述平臺(tái)。)這個(gè)事件處理程序的說明不會(huì)自動(dòng)地打開所述契約。
Syntax(語(yǔ)法) Event Object Info(事件對(duì)象信息) Event Properties(事件特征)雖然事件處理程序沒有直接接收特征,但所述事件處理程序可以查詢與數(shù)據(jù)相關(guān)的所述事件的對(duì)象。
3.4.3 onComplete當(dāng)所述提示重放達(dá)到終點(diǎn)或遇到例外時(shí)(如上面所規(guī)定的)激活。
Syntax(語(yǔ)法) Event Object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
3.4.4使用bookmarks和events下面的例子示出了書簽事件如何能夠被用于確定用戶響應(yīng)的語(yǔ)義-按照在所述提示輸出期間發(fā)生契約的時(shí)間順序的出發(fā)城市的校正或目標(biāo)城市的提供。所述onBargein處理程序調(diào)用一個(gè)將全局‘mark’變量設(shè)置為在所述提示中遇到的最后一個(gè)書簽的腳本,這個(gè)‘mark’的值被用在所述reco的后處理功能(“heard”)中以設(shè)置所述正確的值。
<pre listing-type="program-listing"><![CDATA[ ?。約cript><![CDADA[ var mark; function interrupt(){ mark=event.srcElement.bookmark; } function ProcessCityConfirm(){ confirm stop();//flush the audio buffer if(mark==“mark_origin_city”) txtBoxOrigin.value= event.srcElement.text; else txtBoxDest.value= event srcElement>text;} ]]></script> <body> ?。糹nput name=“txtBoxOrigin”value=“Seattle” type=“text”/> ?。糹nput name=“txtBoxDest”type=“text”/> ........ ?。紁rompt id=“confirm”onBargein=“interrupt()” bargein=“0”> From<bookmark mark=“mark_origin_city”/> ?。紇alue targetElement=“origin” targetAttribute=“value”/> please say<bookmark mark=“mark_dest-city”/>the destination city you want to travel to. ?。?prompt> <reco onReco=“ProcessCityConfirm()”> ?。糶rammar src=“/grm/1033/cities.xml”/> ?。?reco> </body>]]></pre>4DTMF創(chuàng)建DTMF的識(shí)別對(duì)象。所述對(duì)象可以使用聯(lián)機(jī)標(biāo)記語(yǔ)言語(yǔ)法或通過編制腳本實(shí)例化。當(dāng)被激活時(shí),DTMF能夠使得提示對(duì)象啟動(dòng)一個(gè)契約對(duì)象。應(yīng)當(dāng)注意,下面結(jié)合在第五部分中討論的DTMF識(shí)別和調(diào)用控制所討論的所述標(biāo)記和事件通常適用于在聲音瀏覽器216和媒體服務(wù)器214之間的相互作用。
4.1 Content(內(nèi)容)
·dtmfgrammar用于聯(lián)機(jī)語(yǔ)法。
·bind將DTMF轉(zhuǎn)換結(jié)果分配給適當(dāng)?shù)淖侄巍?br>
Attributes(屬性)·targetElement必須。將分配部分識(shí)別結(jié)果的元素(與W3C SMIL 2.0相同)。
·targetAttribute將分配所述識(shí)別結(jié)果的所述目標(biāo)元素的屬性(與SMIL 2.0相同).缺省值是“value”。
·test與所述分配相關(guān)的條件。缺省值是真。
例1將多個(gè)鍵映像到文本上。
<MDTF 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>
當(dāng)“city_choice”被激活時(shí),如果用戶按壓1,則“Seattle”將被分配給輸入字段,如果用戶按壓2,則“Boston”將被分配給輸入字段,反之,則沒有。
例2DTMF如何與多個(gè)字段一起使用。
<pre listing-type="program-listing"><![CDATA[ <input type=“text”name=“area_code”/> ?。糹nput type=“text”name=“phone_number”/> ?。糄TMF id=“area_code”numDigits=“3” onReco=“extension.Actuvate()”><bind targetElement=“area_code”/> ?。?DTMF> <DTMF id=“extension”numDigits=“7”> ?。糱ind targetElement=“phone_number”/> ?。糄TMF>]]></pre>這個(gè)例子表明了如何允許用戶輸入到多個(gè)字段。
例3當(dāng)用戶開始DTMF時(shí)如何允許語(yǔ)音和DTMF輸入以及禁止所述語(yǔ)音。
<pre listing-type="program-listing"><![CDATA[ ?。糹nput 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> ?。糄TMF id=“dtmf’escape=“#”length=“16” interdigitTimeout=“2000” onkeypress=“speech.Stop()”> ?。糱ind targetElement=“credit_card_number”/> ?。?DTMF> ?。紃eco id=“speech”> ?。糶rammar src=“/grm/1033/digits.xml”/> <bind targetElement=“credit_card_number”/> ?。?reco>]]></pre>4.2 屬性和特征4.2.1 屬性
·dtmfgrammar必須。DTMF語(yǔ)法的URI。
4.2.2 特征·DTMFgrammar讀-寫。
一個(gè)XML DOM節(jié)點(diǎn)對(duì)象,表示到字符串轉(zhuǎn)換矩陣的DTMF(也被稱之為DEMF語(yǔ)法)。缺省語(yǔ)法是<pre listing-type="program-listing"><![CDATA[ ?。糳tmGrammar> ?。糼ey value=“0”>0</key> ?。糼ey value=“1”>1</key> … <key value=“9”>9</key> ?。糼ey value=“*”>*</key> ?。糼ey value=“#”>#</key> ?。?dtmfgrammar> ·flush]]></pre>讀/寫,布爾標(biāo)記,用于指出在激活之前是否自動(dòng)刷新基礎(chǔ)電話接口上的DTMF緩存器。缺省值是假,用于使能超前鍵入。
·escape讀-寫。該escape鍵用于結(jié)束所述DRMF讀對(duì)話。escape鍵是一個(gè)鍵。
·numDigits讀-寫。擊鍵的數(shù)量,用于結(jié)束所述DTMF讀對(duì)話。如果規(guī)定了所述escape和長(zhǎng)度,那么,當(dāng)滿足其中任何一個(gè)條件時(shí),所述DTMF對(duì)話結(jié)束。
·dtmfResult只讀字符串。用于存儲(chǔ)用戶已經(jīng)輸入的DTMF鍵。如果擊鍵,則結(jié)果中包括所述escape。
·text用于存儲(chǔ)白空間隔離的符號(hào)串的只讀字符串,其中根據(jù)DTMF語(yǔ)法轉(zhuǎn)換每個(gè)符號(hào)。
·initialTimeout讀-寫。用于接收第一次DTMF擊鍵的微秒級(jí)的超時(shí)周期。如果未規(guī)定,則缺省值為所述電話平臺(tái)的內(nèi)部設(shè)置。
·interdigitTimeout讀-寫。用于相鄰DTMF擊鍵的微秒級(jí)的超時(shí)周期。如果未規(guī)定,缺省值為所述電話平臺(tái)的內(nèi)部設(shè)置。
4.3 Object methods(對(duì)象方法)4.3.1 Start允許DTMF中斷和開始DTMF閱讀對(duì)話。
語(yǔ)法;Object.Start();返回值無例外無4.3.2 Stop禁止DTMF。由所述用戶輸入的擊鍵,但是保存在所述緩存器中。
語(yǔ)法
Object.Stop();返回值無例外無4.3.3 Flush刷新所述DTMF緩存器。在DTMF對(duì)話可以不調(diào)用所述Flush。
語(yǔ)法object.Flush();返回值無例外無4.4 事件4.4.1 onkeypress當(dāng)按壓DTMF鍵時(shí)激活。這取代遺傳自所述HTMF控制的缺省事件。當(dāng)用戶擊打所屬escape鍵時(shí),是onReco事件、而不是onKeypress事件被激活。
語(yǔ)法 事件對(duì)象信息 事件特征雖然所屬事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
4.4.2 onReco當(dāng)所述DTMF對(duì)話結(jié)束時(shí)激活。所述事件自動(dòng)禁止當(dāng)前DTMF對(duì)象。
語(yǔ)法 事件對(duì)象信息 事件特征雖然所述事件處理程序沒有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
4.4.3 onTimeout當(dāng)在超時(shí)之前沒有接收到短語(yǔ)完成事件時(shí)激活。該事件自動(dòng)停止識(shí)別處理過程。
語(yǔ)法 事件特征信息; 事件特征雖然所述事件處理程序沒有直接接收到特征,但是,所述處理程序能查詢與數(shù)據(jù)相關(guān)的時(shí)間對(duì)象。
5 CallControl object(呼叫控制)對(duì)象表示電話聲音瀏覽器的電話接口(呼叫、終端和連接)。該對(duì)象的出處與GUI瀏覽器中的窗口對(duì)象相同。因此,所述電話對(duì)象的壽命與所述瀏覽器示例本身相同。用于所述電話的聲音瀏覽器用具體例子說明所述電話對(duì)象,即用于每個(gè)呼叫的一個(gè)。用戶不能實(shí)例化或處理所述對(duì)象。
關(guān)于這一點(diǎn),只有和第一方呼叫控制相關(guān)的特性經(jīng)過這個(gè)對(duì)象顯露出來。
5.1特征·address(地址)只讀。XML DOM節(jié)點(diǎn)對(duì)象。實(shí)施專用。這是呼叫者的地址。對(duì)于PSTN,可以是ANI和ALI的一個(gè)組合。對(duì)于VOIP,可以是所述呼叫者的IP地址。
·ringsBeforeAnswer在對(duì)輸入呼叫的應(yīng)答之前震鈴的數(shù)量。缺省無限制,這意味著所述開發(fā)者必須使用下面的Answer()方法回答所述電話呼叫。當(dāng)呼叫中心使用ACD查詢所輸入的電話呼叫時(shí),這個(gè)數(shù)量可以被設(shè)置為0。
5.2 Methods(方法)注意這里所有的方法都是同步的。
5.2.1 transfer(傳輸)傳輸所述呼叫。對(duì)于盲區(qū)傳輸,所述系統(tǒng)可以終止原始呼叫,一旦所述傳輸完成,則解放系統(tǒng)資源。
語(yǔ)法telephone.Transfer(strText);參數(shù)o strText必須。想要的接收器地址。
返回值無例外當(dāng)所述呼叫傳輸失敗時(shí)產(chǎn)生一個(gè)例外。例如,當(dāng)終端方正在忙、沒有這個(gè)號(hào)、傳真或應(yīng)答機(jī)構(gòu)應(yīng)答時(shí)。
5.2.2 Bridge第三方傳輸。在所述呼叫被傳輸之后,所述瀏覽器可以釋放分配給所述呼叫的資源。當(dāng)使用strUID返回所傳輸?shù)暮艚袝r(shí),它可以一直到達(dá)所述應(yīng)用程序以恢復(fù)所述對(duì)話狀態(tài)?;A(chǔ)電話平臺(tái)可以將返回的呼叫傳送給不同的瀏覽器。只有當(dāng)接收者終止所述呼叫時(shí)才可以返回所述呼叫。
語(yǔ)法telephone.Bridge(strText,strUID,[imaxTime]);參數(shù)
o strText必須。想要的接收器的地址。
o strUID必須。專用于識(shí)別當(dāng)前呼叫的對(duì)話ID。當(dāng)所傳輸?shù)暮艚斜粋魉突貋頃r(shí),在地址屬性中將出現(xiàn)所述srtUID。
o imaxTime任選。被傳輸呼叫的秒級(jí)最大持續(xù)時(shí)間。如果未規(guī)定,缺省值為平臺(tái)內(nèi)部值。
返回值無。
例外無。
5.2.3 Answer(應(yīng)答)應(yīng)答所述電話呼叫。
語(yǔ)法telephone.Answer();返回值無。
例外當(dāng)不存在連接時(shí)產(chǎn)生一個(gè)例外。在這種情況下將不激活onAnswer事件。
5.2.4 Hangup(掛機(jī))結(jié)束電話呼叫。如果當(dāng)前沒有呼叫在進(jìn)行,則不起作用。
語(yǔ)法telephone.Hangup();返回值無。
例外無。
5.2.5 Connect(連接)開始第一方向外訪問的電話喊叫。
語(yǔ)法telephone.Connect(strText,[iTimeout]);參數(shù)o strText必須。希望的接收器的地址。
o iTimeout任選。在放棄所述嘗試之前微秒級(jí)的時(shí)間。如果未規(guī)定,缺省值為平臺(tái)內(nèi)部值。
返回值無。
例外當(dāng)所述呼叫不能被完成時(shí)產(chǎn)生一個(gè)例外,包括遇到忙信號(hào)或到達(dá)一個(gè)FAX或應(yīng)答機(jī)構(gòu)(注意硬件可能不支持這個(gè)特性)。
5.2.6 Record(記錄)將用戶的音頻記錄到文件中。
語(yǔ)法telephone.Record(uel,endSilence,[maxTimeout],[initialTimeout]);參數(shù)o url必須。所述記錄結(jié)果的url。
o endSilence必須。微秒級(jí)的時(shí)間,用于在檢測(cè)到寂靜之后停止所述記錄。
o maxTimeout任選。用于記錄的秒級(jí)最大時(shí)間。缺省值為平臺(tái)規(guī)定。
o initialTimeout任選。在記錄開始時(shí)允許的寂靜最大時(shí)間(微秒級(jí))。
返回值無。
例外當(dāng)所述記錄不能被寫入所述url時(shí)產(chǎn)生一個(gè)例外。
5.3 事件處理程序使用電話聲音瀏覽器的APP開發(fā)者可以執(zhí)行下述事件處理程序。
5.3.1 onIncoming()當(dāng)聲音瀏覽器接收到一個(gè)輸入聲音呼叫時(shí)被調(diào)用。所有的開發(fā)者都能夠使用這個(gè)處理程序去讀取呼叫者的地址和在應(yīng)答所述電話呼叫之前調(diào)用定制的特性。
5.3.2 onAnswer()當(dāng)所述聲音瀏覽器應(yīng)答所輸入的電話呼叫時(shí)被調(diào)用。
5.3.3 onhangup()當(dāng)用戶掛起電話時(shí)被調(diào)用。當(dāng)所述程序調(diào)用Hungup或Transfer方法時(shí),這個(gè)事件這個(gè)時(shí)間不能自動(dòng)產(chǎn)生。
5.4 例子這個(gè)例子示出了編制的一個(gè)腳本,用于鏈接到所述呼叫控制事件以操縱所述電話對(duì)話。
<pre listing-type="program-listing"><![CDATA[ <HTML> <HEAD> <TITLE>Logon page</TITLE> </HEAD> <SCRIPT> var focus; function RunSpeech(){ if(logon.user.value==“”){focus=“user”; p_uid.Start();g_login.Start();dtmf.Start(); return; } if(logon.pass.value==“”){ focus=“pin”; p_pin.Start();g_lodin,Start();dtmf.Start(); return; } p_thank.Start(0;logon.submit(); } function logon_reco(){ res=event.srcElement.recoResult; Pnode=res.selectSingleNode(“//uid”); If(Pnode?。絥ull) Logon.user.value=Pnode.xml; Pnode=res.selectSingleNode(“//password”); If(Pnode?。絥ull) Logon.pass.value=Pnode.xml; } function dtmf_reco(){ res=event.srcElement.dtmfResult; if(focus==“user”) logon.user.value=res; else logon.pin.value=res; } </SCRIPT> ?。糞CRIPT for=“callControl”event=“onIncoming”> ?。迹?//read address,prepare customized stuffif any callControl.Answer(); // ?。?SCRIPT> <SCRIPT for=“callControl”event=“onOffhook”> ?。?!-- p_main.Start();g_login,Start();dtmf.Start(); focuse=“user”; // <SCRIPT> ?。糞CRIPT for=“window”event=“onload”> ?。?!-- if(logon.user.value?。健啊?{ p_retry.Start(); logon.user.value=“” checkFields(); } // ?。?SCRIPT> ?。糂ODY> <reco id=“g_login”> oReco=“l(fā)ogin_reco();runSpeech()” timeout=“5000” onTimeout=“p_miss.Start();runSpeech()”> ?。糶rammar src=http//kokaneei/etradedemo/speechonly/login.xml/> <reco> ?。糳tmfid=“dtmf” escape=“#” onkeypress=“g_login.Stop();”onreco=“dtmf_reco();RunSpeech()” interdigitTimeout=“5000” onTimeout“dtmf.Flush();p_miss.Start();RunSpeech”/> ?。紁rompt id=“p_main”>please say your user ID and pin number</prompt> ?。紁rompt id=“p_uid”>please just say your user ID</prompt> <prompt id=“p_pin”>please just say your pin number</prompt> ?。紁rompt id=“p_miss”>Sorry,I missed that</prompt> ?。紁rompt id=“p_thank”>thank you.please wait while I verify your identity</prompt> ?。紁rompt id=“p_retry”>sorry,your user ID and pin number do not match</prompt> ?。糎2>login<“l(fā)ogon”> ?。糵orm id=“l(fā)ogon”> UID<input name=“user”type=“text”> OnChange=“runSpeech()”/> Pin<input name=“pass”type=“password” OnChange=“runSpeech()”/> </form> </BODY> ?。?HTML>]]></pre>6控制對(duì)話流程6.1 使用HTML和腳本執(zhí)行對(duì)話流程這個(gè)例子示出了如何執(zhí)行一個(gè)簡(jiǎn)單的對(duì)話流程,所述流程查找與輸入框相關(guān)的值并提供用于所述輸入的與上下文敏感的幫助。它使用在所述HTML輸入機(jī)構(gòu)(在作為“工具觸點(diǎn)”的可視瀏覽器中使用的)上的題目屬性幫助形成所述幫助提示的內(nèi)容。
<pre listing-type="program-listing"><![CDATA[ <html> ?。紅itle>Contex Sensitive help</title> <head> ?。約cript> var focus; function RunSpeech(){ if(trade.stock.value=””){ focus=“trade.stock”; p_stock,Start(); return; } if(trade.op.value=“”){ focus=“trade.op”; p_op.Start(); return; } //..repeat above for all fields trade.submit(); } function handl(){ res=event.srcElement.recoResult; if(res.text=“help”){ text=“please just say”; text+=document.all[focus].title; p_help.Start(text); } else { //proceed with value assignments } }</script> ?。?help> ?。糱ody> <prompt id=“p_help”onComplete=“checkFileds()”/> ?。紁rompt id=“p_stock”onComplete=“g_stock.start()”>please say the stock name</peompt> <peompt id-“p_op””onComplete=“g_op”.Start()>Do you want to buy orsell</prompt> ?。紁rompt id=“p_quantity”onComplete=“g_quantity.Start()”>how many shares?</prompt> ?。紁rompt ie=“p_peice”onComplete=“g_price.Start()”>W(wǎng)hat’s the price</prompt> ?。紃eco id=“gz-stock”onReco=“handle();checkFields()”> ?。糶rammar src=“g_tock.xml”/> ?。?reco> ?。紃eco id=“g_op”onReco=“handle()”;checkFields()/> ?。糶rammar src=“./g_op.xml”/> </reco> ?。紃eco id=“g-quantity”onReco=“handle();checkFields()”/> ?。糶rammar src=“./g_quant.sml”/> ?。?reco> ?。紃eco id=“g_price”onReco=“handle();checkFields()”/> ?。糶eammar src=“./guant.xml”/> ?。?reco> <form id=“trade”> ?。糹nput name=“op”title=“stock name”/> ?。約elect name=“op”title=“buy or sell”> <o(jì)ption value=“buy”/> ?。紀(jì)ption value=“sell”/></select> ?。糹nput name=“quantity”title=“numeber of shares”/> <input name=“price”titie=“price”/> ?。?form> </body> ?。?html>]]></pre>6.2 使用SMIL下面的例子示出了使用SMIL機(jī)構(gòu)激活提示和reco元素。
<pre listing-type="program-listing"><![CDATA[ ?。糷tml xmlnst=“urnschemas-microsoft-comtime” xmlnssp=“runschemas-microsoft-comspeech”> ?。糷ead> ?。約tyle> .time{behaciorurl(#default#time2);} ?。?style> ?。糷ead> <body> ?。糹nput name=“txtBoxOrigin”type=“text”> ?。糹nput name=“txtBoxDest”type=“text”/> ?。約pprompt class=“time”tbegin=“0”> Please say the origin and destination cities ?。?spprompt> <tpar tbegin=“time.end”trepeatCount=“indefinitely” ?。約preco class=“time”> ?。糶rammar src=./fity.xml /> ?。糱ind targetElement=“txtBoxOrigin” value=“//origin_city”/><bind targetElement=“txtBoxDest” test=“/sml/dest_city[@confidence$gt$ 40]” value=“//dest_city”/> </spreco> ?。?tpar> ?。?body> ?。?html>]]></pre>7 SMEX(消息)元素/對(duì)象作為簡(jiǎn)單消息交換/擴(kuò)展的簡(jiǎn)稱,SMEX是一個(gè)與外部組件或客戶機(jī)設(shè)備平臺(tái)上的應(yīng)用程序進(jìn)行通信的對(duì)象。它可以被插入到XML或類似的以標(biāo)記為基礎(chǔ)的文本中作為具有標(biāo)記名<smex>的元素。該消息對(duì)象的范例用途可以包括登錄和電話控制。該對(duì)象表示當(dāng)它允許一個(gè)新的功能通過發(fā)消息被添加時(shí)以標(biāo)記為基礎(chǔ)的識(shí)別和提示的可擴(kuò)展性。
在舉例說明的基礎(chǔ)上,所述對(duì)象被用于利用平臺(tái)組件或應(yīng)用程序經(jīng)過它自己的配置參數(shù)或?qū)傩砸?guī)范建立一個(gè)同步消息交換信道。它具有一個(gè)字符串特性,每當(dāng)所述特性是分配操作的接收者(即1值)時(shí),該特性內(nèi)容被傳送給所述平臺(tái)組件或應(yīng)用程序。類似的,它還具有SML DOM Node類型特性,用于保持從所述平臺(tái)組件或應(yīng)用程序中接收的所述消息。所述消息對(duì)象每當(dāng)接收一個(gè)平臺(tái)消息時(shí)都要傳送一個(gè)事件。由于它的基本操作是同步的,所以,該對(duì)象還具有內(nèi)置時(shí)鐘,用于使應(yīng)用程序的開發(fā)者操縱超時(shí)設(shè)置。
對(duì)于所述通信裝置來講,所述消息或smex對(duì)象是不可知的。但是,在一個(gè)實(shí)施例中,所述smex對(duì)象與原始XML或標(biāo)記元素具有相同的壽命,即,當(dāng)它的主機(jī)文檔沒有被加載時(shí),所述smex對(duì)象將被破壞。而在很多情況下,當(dāng)它未被加載時(shí),所述smex對(duì)象能夠執(zhí)行自動(dòng)清除并釋放通信資源??梢杂泻芏嗍褂们闆r,在這些情況下,在標(biāo)記頁(yè)兩端不希望進(jìn)行持久的通信鏈接。對(duì)于這些情況,所述結(jié)構(gòu)將把停止分配資源(即關(guān)閉插座)的責(zé)任放置在所述應(yīng)用程序的開發(fā)者身上。
所述smex對(duì)象在消息格式(方案)方面是中性的。在某些實(shí)施例中,它可能希望要求執(zhí)行者利用對(duì)現(xiàn)存標(biāo)準(zhǔn)消息格式(例如在SIP或CCXML中使用的)的強(qiáng)烈偏愛支持少量的基本方案。實(shí)質(zhì)上,所述結(jié)構(gòu)允許所述平臺(tái)和應(yīng)用程序開發(fā)者采用XML或類似標(biāo)記的標(biāo)準(zhǔn)化可擴(kuò)展性的所有優(yōu)點(diǎn)以便引入其他的特性而不損失平均時(shí)間的相互可操作性。
例1使用smex作為登錄對(duì)象<pre listing-type="program-listing"><![CDATA[ ?。約mex id=“l(fā)ogServer”> <param name=“dserver”xmlnsd=“runMicrosoft.com/COM”> ?。糳protocol>DCOM</dprotocol> ?。糳clsid>2093093029302029320942098432098</dclsid> ?。糳iid>090385930490349853095309094803</diid> ?。?param> ?。?smex> <listen...> ...//other directtices binding reco results to input fields ?。糱ind targetElement=“l(fā)ogServer”targetAttribude=“sent” value=“*[@log$ge$3]”/> ?。?listen>]]></pre>這個(gè)例子說明了如何使用一個(gè)具有它的類id和接口id的com對(duì)象來實(shí)現(xiàn)一個(gè)登錄機(jī)構(gòu)。語(yǔ)音開發(fā)者把一個(gè)指示用于登錄的興趣級(jí)別的屬性“l(fā)og”加到相關(guān)的SML節(jié)點(diǎn)上。在上述實(shí)施例中,app開發(fā)者通過使用單個(gè)連接指示選擇用大于或等于3的登錄值登錄所有節(jié)點(diǎn)。該例子在上層和下層瀏覽器中都可使用。
這個(gè)例子還試圖說明只要不出現(xiàn)smex對(duì)象對(duì)返回到所述識(shí)別文檔的所述平臺(tái)消息的傳送響應(yīng)的混淆,一個(gè)頁(yè)就可以包含與相同平臺(tái)組件通信的多個(gè)smex對(duì)象。上述例子說明一個(gè)組件可以實(shí)現(xiàn)多個(gè)接口,其中的每一個(gè)接口都具有它自己的smex或消息導(dǎo)管。相同的參數(shù)施加到TCP服務(wù)器上以聽取多個(gè)端口。
例2閱讀與輸入呼叫相關(guān)的地址
<pre listing-type="program-listing"><![CDATA[ <input type=“text”id=“remote”/> ?。糹nput type=“text”id=“transfer”/> <input type=“text”id=“l(fā)ocal”/> ?。糹nput type=“hidden”id=“session_id”/> ....... ?。約mex id=“telephone”sent=“start_listening”> ?。紁aram name=“server”>http//tel-scr/whatever</param> <bind targetElement=“session_id”value=“//sid”/> ?。糱ind targetElement=“remote”value=“//remote_addr”/> ?。糱ind targetElement=“transfer” value=“//transfer addr”/> <bind targetElement=“l(fā)ocal”value=“//local_addr”> ...... ?。?smex>]]></pre>這個(gè)例子示出了所述連接指示是如何能夠被用于處理所接收的消息的。這個(gè)例子假設(shè)用于輸入呼叫的消息具有多個(gè)子元素remote_addr、transfer_addr和local_addr,它們的內(nèi)容分別表示所輸入呼叫的遠(yuǎn)程、傳輸和本地地址。
在這個(gè)例子中,以HTTP為基礎(chǔ)的無連接協(xié)議被用于與所述電話服務(wù)器通信。這里所述電話服務(wù)器被設(shè)計(jì)成與一個(gè)以上的瀏覽器通信,因此,當(dāng)app開始時(shí),每個(gè)客戶機(jī)都必須使用由所述服務(wù)器指定的專用id識(shí)別它本身。在這個(gè)例子中,它是通過由所述服務(wù)器傳送“start_listening”消息實(shí)現(xiàn)的。在這個(gè)例子中,雖然其他技術(shù)(例如客戶機(jī)端COOKIE)也可以被用于管理對(duì)話狀態(tài),但是,對(duì)話id被存儲(chǔ)在可以被傳送回給所述Web服務(wù)器并且被傳送給所述應(yīng)用程序的下一頁(yè)的隱藏字段中。與用于Reco的情況相同,對(duì)于每個(gè)平臺(tái)消息來講并不是每個(gè)連接指示都被執(zhí)行。上述例子并不意味著當(dāng)存在一個(gè)輸入電話呼叫時(shí)僅僅接收所述專用id。
7.1特征由于只有所述讀/寫特征被作為與初始值規(guī)定相關(guān)的屬性允許進(jìn)行服務(wù),所以,所述smex對(duì)象可以具有下述特征。
·Sent讀/寫。與將被傳送給所述平臺(tái)組件的消息對(duì)應(yīng)的一個(gè)字符串。每當(dāng)所述傳送被作為1值(lvalue)使用時(shí),它的內(nèi)容被發(fā)送。當(dāng)所述特征被用做r值(rvalue)或當(dāng)一個(gè)空對(duì)象被指定給這個(gè)特征時(shí),它不起作用。
·received只讀,用于指出所接收消息的SML DOM節(jié)點(diǎn)數(shù)據(jù)。在下一個(gè)onRecieve事件被準(zhǔn)備好傳送之前所述消息將可以得到作為所述r值(rvalue)。
·timer讀/寫,微秒級(jí)的、用于指出在觸發(fā)一個(gè)超時(shí)事件之前過去時(shí)間的數(shù)量。當(dāng)所述特征被分配給一個(gè)正值時(shí),所述時(shí)鐘開始啟動(dòng)。當(dāng)正在進(jìn)行向下計(jì)數(shù)時(shí),所述值可以變化。在不觸發(fā)所述超時(shí)事件的情況下,0或負(fù)值停止所述時(shí)鐘。缺省值為0。意味著沒有超時(shí)。
·status只讀,用于指出所述對(duì)象最新狀態(tài)的一個(gè)整數(shù)??赡艿闹凳?、-1和-2,他們分別意味著正常、超時(shí)期滿和不能建立與所述平臺(tái)的通信或已經(jīng)中斷。通過所接收的特征傳送平臺(tái)專用誤差消息。對(duì)于連續(xù)傳送所述誤差消息的情況下,所述狀態(tài)代碼為0。
7.2 Event(事件)所述對(duì)象具有下述特征·onRecieve當(dāng)?shù)玫剿銎脚_(tái)消息時(shí)傳送這個(gè)事件。如果具有通過bind元素傳送的任何命令,那么,在所述事件被啟動(dòng)之前首先評(píng)估這些命令。在傳送之前,所述received特征將被更新。
·onError當(dāng)所述超時(shí)期滿或遇到一個(gè)通信鏈接誤差時(shí)傳送這個(gè)事件。當(dāng)傳送該事件時(shí),如上所述將利用一個(gè)相應(yīng)的誤差碼來更新所述status特征。
7.3 Child Elements(子元素)當(dāng)假設(shè)一個(gè)元素形成時(shí),smex可以具有下述子元素·bind除了所述指令工作于所接收的消息以外,與在reco中的情況相同。
·param與在reco中情況相同,用于提供與所述smex對(duì)象相關(guān)的平臺(tái)專用參數(shù)??梢允褂谩皀ame”屬性,并且param元素的內(nèi)容是該參數(shù)的值。在一個(gè)實(shí)施例中,所述參數(shù)應(yīng)當(dāng)被理解為與名稱空間和XML數(shù)據(jù)類型傳送相關(guān)的標(biāo)準(zhǔn)XML屬性。
7.4 Other Comments(其它命令)一種用于擴(kuò)充與登錄功能相關(guān)的SMEX的理想方式是<smexid=“l(fā)ogSerwer”...>...</smex>
<script>function logMessage(logClass,message){logSerwer.sent=logClass+“|”+message;}</script>
實(shí)際上,這利用其性能可以被定制的(全局)功能擴(kuò)展了所述對(duì)象。在上述的例子中,所述登錄功能被編程以便在所述id和所述消息之間插入字段分割符“|”。
對(duì)于那些不喜歡全局功能的人來講,作為一種對(duì)象方法,他們可以使用ECMAScript的“prototype”屬性。例如<pre listing-type="program-listing"><![CDATA[ ?。約mexid=“l(fā)ogSerwer”onload=“addFunction()”>...</smex> ?。約cript> function my_logMessage(logClass,message){ logSerwer.sent=logClass+“1”+message; } function addFunction(){ logSerwer.prototype.logMessage= my_logMessage; } ?。?script>]]></pre>一個(gè)可以以多種面向?qū)ο蟮姆绞教峁┧龉δ躭ogSerwer.logMessage(RECO_LOG_ERROR,“My message”);應(yīng)當(dāng)注意,為了在上述例子中進(jìn)行擴(kuò)展,雖然所有必須的結(jié)構(gòu)都已經(jīng)被很好地建立了標(biāo)準(zhǔn)結(jié)構(gòu),但是,還需要來自所述smex對(duì)象構(gòu)成中的多項(xiàng)工作。
權(quán)利要求
1.一種具有用于在客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)設(shè)備上執(zhí)行的標(biāo)記語(yǔ)言的計(jì)算機(jī)可讀介質(zhì),所述標(biāo)記語(yǔ)言包括一個(gè)用于指出與經(jīng)過所述客戶機(jī)設(shè)備輸入的輸入相關(guān)的語(yǔ)法的指令。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于指出一個(gè)語(yǔ)法的所述指令提供對(duì)所述語(yǔ)法一個(gè)位置的參考。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述語(yǔ)法被用于語(yǔ)音識(shí)別、手寫識(shí)別、手勢(shì)識(shí)別和可視識(shí)別中的一個(gè)。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)可讀介質(zhì),其特征在于指出一個(gè)語(yǔ)法的指令包括一個(gè)對(duì)與語(yǔ)音識(shí)別相關(guān)的語(yǔ)法的參考。
5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包含用于接收與被識(shí)別語(yǔ)音有關(guān)的識(shí)別結(jié)果并使所述結(jié)果與所述客戶機(jī)設(shè)備上的一個(gè)數(shù)據(jù)字段關(guān)聯(lián)的一個(gè)指令。
6.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述用于接收識(shí)別結(jié)果的指令使所述識(shí)別結(jié)果與多個(gè)數(shù)據(jù)字段關(guān)聯(lián)。
7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包括一個(gè)指令,用于當(dāng)沒有識(shí)別出所述語(yǔ)音時(shí)聽覺地提供一個(gè)指示。
8.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述輸入包括一個(gè)文本字符串。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包括一個(gè)指令,用于從其他的組件中接收所述文本字符串。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言關(guān)聯(lián)所述語(yǔ)法以便對(duì)所述文本字符串進(jìn)行處理。
11.一種包括計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行時(shí),所述指令使所述計(jì)算機(jī)通過執(zhí)行下述步驟處理信息,所述步驟包括從具有與輸入數(shù)據(jù)相關(guān)的一個(gè)字段的web服務(wù)器中接收一個(gè)標(biāo)記語(yǔ)言頁(yè);從與所述字段相關(guān)的一個(gè)用戶中接收輸入;和傳送指出所述輸入的數(shù)據(jù)和用于識(shí)別的語(yǔ)法的指示。
12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述指示提供對(duì)所述語(yǔ)法位置的參考。
13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述指示包括對(duì)語(yǔ)音識(shí)別的語(yǔ)言的參考。
14.一種用于在客戶機(jī)/服務(wù)器網(wǎng)絡(luò)中進(jìn)行識(shí)別的方法,所述方法包括從不同于所述客戶機(jī)設(shè)備的網(wǎng)絡(luò)上的一個(gè)地址處的一個(gè)web服務(wù)器接收具有用于在連接到所述網(wǎng)絡(luò)的所述客戶機(jī)設(shè)備上的輸入數(shù)據(jù)字段的標(biāo)記語(yǔ)言頁(yè);在所述客戶機(jī)設(shè)備上接收來自與所述字段相關(guān)的用戶的輸入;和將指出所述輸入的數(shù)據(jù)和與識(shí)別相關(guān)的語(yǔ)法指示傳送到在不同于所述客戶機(jī)設(shè)備的所述網(wǎng)絡(luò)上的一個(gè)地址處的識(shí)別服務(wù)器。
15.根據(jù)權(quán)利要求14所述的方法,還包括在傳送所述數(shù)據(jù)之前規(guī)格化指出所述輸入的數(shù)據(jù)。
16.根據(jù)權(quán)利要求14所述的方法,還包括在所述客戶機(jī)設(shè)備上接收與所識(shí)別的語(yǔ)音有關(guān)的識(shí)別結(jié)果并將所述結(jié)果與一個(gè)數(shù)據(jù)字段相關(guān)聯(lián)。
17.一種具有用于在客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)設(shè)備上執(zhí)行的標(biāo)記語(yǔ)言的計(jì)算機(jī)可讀介質(zhì),所述標(biāo)記語(yǔ)言包括一個(gè)指令,用于指出具有一個(gè)屬性或者一種用于識(shí)別的方法的對(duì)象模型元素。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述元素被用于語(yǔ)音識(shí)別、手寫識(shí)別、手勢(shì)識(shí)別、DTMF識(shí)別和可視識(shí)別中的一個(gè)。
19.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述元素包括一個(gè)用于識(shí)別的語(yǔ)法的指示。
20.根據(jù)權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述元素與對(duì)文本字符串相似識(shí)別的接收和處理有關(guān)。
21.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)可讀介質(zhì),還包括從其他組件接收文本字符串的第二對(duì)象模型。
22.一種具有用于在客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)設(shè)備上執(zhí)行的標(biāo)記語(yǔ)言的計(jì)算機(jī)可讀介質(zhì),所述標(biāo)記語(yǔ)言包括一個(gè)指令,用于指出具有一個(gè)屬性或用于可聽提示的方法的對(duì)象模型元素。
23.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包括HTML、XHTML、cHTML、XML和WML中的一個(gè)。
24.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包括一個(gè)腳本語(yǔ)言。
25.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述標(biāo)記語(yǔ)言包括一個(gè)同步標(biāo)記語(yǔ)言。
全文摘要
一種用于在客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)設(shè)備上執(zhí)行的標(biāo)記語(yǔ)言包括用于識(shí)別的擴(kuò)展。
文檔編號(hào)H04M3/493GK1392473SQ02127509
公開日2003年1月22日 申請(qǐng)日期2002年4月30日 優(yōu)先權(quán)日2001年5月4日
發(fā)明者王冠三, 洪小文 申請(qǐng)人:微軟公司