两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Web啟用的識(shí)別體系結(jié)構(gòu)的制作方法

文檔序號(hào):2835825閱讀:320來(lái)源:國(guó)知局
專利名稱:Web啟用的識(shí)別體系結(jié)構(gòu)的制作方法
背景技術(shù)
本發(fā)明涉及對(duì)在諸如Internet的廣域網(wǎng)上的信息的訪問(wèn)。具體地說(shuō),本發(fā)明涉及WEB啟用的識(shí)別,該識(shí)別將允許使用各種方法輸入在客戶端上的信息和控制。
在人們的日常生活中越來(lái)越頻繁地使用諸如個(gè)人信息管理器(PIM)、設(shè)備以及便攜式電話的小型計(jì)算設(shè)備。伴隨著現(xiàn)在可以得到用于運(yùn)行這些設(shè)備的微處理器的處理能力的增加,這些設(shè)備的功能也正在增加,并且在某些情況下正在集成在一起。例如,當(dāng)前的很多便攜式電話能夠被用于訪問(wèn)和瀏覽Internet以及能夠被用于存儲(chǔ)諸如地址、電話號(hào)等的個(gè)人信息。
鑒于這些計(jì)算設(shè)備一直被用于瀏覽Internet,或者被用于其他服務(wù)器/客戶機(jī)結(jié)構(gòu),因此,必須輸入信息到所述計(jì)算設(shè)備中。遺憾的是為了讓這些設(shè)備容易攜帶而保持他們盡可能地小,所以,由于在所述計(jì)算設(shè)備的殼體上可以得到的表面區(qū)域有限,因此具有所有字母表字符作為孤立按鈕的傳統(tǒng)鍵盤通常是不可能的。
最近,諸如借助于使用VoiceXML(聲音可擴(kuò)展的標(biāo)記語(yǔ)言)的聲音入口已經(jīng)發(fā)展到允許僅僅使用電話對(duì)所述Internet的內(nèi)容進(jìn)行訪問(wèn)。在這種結(jié)構(gòu)中,文檔服務(wù)器(例如,網(wǎng)絡(luò)服務(wù)器)經(jīng)過(guò)VoiceXML翻譯機(jī)對(duì)來(lái)自一個(gè)客戶機(jī)的請(qǐng)求進(jìn)行處理。作為應(yīng)答,所述網(wǎng)絡(luò)服務(wù)器能夠產(chǎn)生由所述VoiceXML翻譯機(jī)處理、并且能夠可聽(tīng)地發(fā)送給所述用戶的VoiceXML文檔。使用經(jīng)過(guò)聲音識(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)用程序中,將需要開(kāi)發(fā)器精通兩種格式的Web創(chuàng)作,一種用于VoiceXML,另一種使用HTML(或與其類似的),每一種都遵循不同的流控模型。
由此,需要改善用于在諸如Internet的服務(wù)器/客戶機(jī)結(jié)構(gòu)中提供語(yǔ)音識(shí)別的結(jié)構(gòu)或者部分結(jié)構(gòu)和方法。用于語(yǔ)音識(shí)別的所述創(chuàng)作工具能夠很容易地適用于諸如PIM以及電話等的小型計(jì)算設(shè)備。特別需要致力于解決一個(gè)、多個(gè)或全部上述缺點(diǎn)的Web創(chuàng)作的結(jié)構(gòu)或方法。
發(fā)明概述一種用于處理數(shù)據(jù)的服務(wù)器/客戶機(jī)系統(tǒng),包括具有一個(gè)網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò),該網(wǎng)絡(luò)服務(wù)器的信息可被遠(yuǎn)程訪問(wèn)。一個(gè)客戶機(jī)設(shè)備包括話筒和諸如揚(yáng)聲器或顯示器這樣的再現(xiàn)組件。該客戶機(jī)設(shè)備被配置為從網(wǎng)絡(luò)服務(wù)器獲取信息并且記錄與在信息中包含的字段相關(guān)的輸入數(shù)據(jù)。該客戶機(jī)設(shè)備適于把輸入數(shù)據(jù)和用于識(shí)別的語(yǔ)法的一個(gè)指示發(fā)送至遠(yuǎn)程地點(diǎn)。識(shí)別服務(wù)器接收該輸入數(shù)據(jù)和該語(yǔ)法指示。該識(shí)別服務(wù)器將指示輸入了什么的數(shù)據(jù)返回給客戶機(jī)和網(wǎng)絡(luò)服務(wù)器中的至少一個(gè)。
附圖簡(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)播放和系統(tǒng)啟動(dòng)的客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言的范例頁(yè)。
圖10A和10B示出了可在僅僅具有可聽(tīng)播放和混合啟動(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示出了可在沒(méi)有腳本的客戶機(jī)上執(zhí)行的說(shuō)明標(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è)備、特別是那些具有有限表面面積用于輸入按鈕等的計(jì)算設(shè)備實(shí)現(xiàn)。例如,電話和/或數(shù)據(jù)管理設(shè)備也將從本發(fā)明中獲得益處。與現(xiàn)存的便攜式個(gè)人信息管理設(shè)備和其它便攜式電子設(shè)備比較,這種設(shè)備將具有增強(qiáng)的實(shí)用性,這種設(shè)備的功能和緊湊尺寸將很可能鼓勵(lì)所述用戶隨時(shí)攜帶所述設(shè)備。因此,這里所描述的所述結(jié)構(gòu)范圍并不受這里所描述的范例數(shù)據(jù)管理或PIM設(shè)備、電話或計(jì)算機(jī)的限制。
圖1中示出了一種數(shù)據(jù)管理移動(dòng)設(shè)備30的一個(gè)示范形式。移動(dòng)設(shè)備30包括殼體32并具有一個(gè)用戶界面,該用戶界面包括一個(gè)結(jié)合指示筆33使用的觸敏顯示屏的顯示器34。所述指示筆33被用于在指定坐標(biāo)處按壓或接觸顯示器34以選擇一個(gè)字段、選擇性地移動(dòng)光標(biāo)的起始位置,或反之提供諸如通過(guò)手勢(shì)或手寫的命令信息。作為替換或者添加,可以在設(shè)備30上包括一個(gè)或多個(gè)用于導(dǎo)航的按鈕35。另外,也可以提供諸如旋轉(zhuǎn)輪和滾柱等的其他輸入機(jī)制。但是,應(yīng)當(dāng)說(shuō)明,這些輸入機(jī)制的形式并不對(duì)本發(fā)明構(gòu)成限制。例如,其他形式的輸入能夠包括諸如通過(guò)計(jì)算機(jī)視覺(jué)的虛擬輸入。
現(xiàn)在參看圖2,其框圖示出了一個(gè)包括移動(dòng)設(shè)備30的功能組件。中央處理單元(CPU)50執(zhí)行軟件控制功能。CPU50被連接到顯示器34上,從而使依據(jù)控制軟件產(chǎn)生的文本和圖形圖標(biāo)顯示在顯示器34上。揚(yáng)聲器43能夠被連接到通常具有數(shù)/模轉(zhuǎn)換器59的CPU50上以提供可聽(tīng)輸出。由用戶下載或輸入到移動(dòng)設(shè)備30中的數(shù)據(jù)被存儲(chǔ)在一個(gè)被雙向連接到CPU50上的非易失性讀/寫隨機(jī)存取存儲(chǔ)器54中。隨機(jī)存取存儲(chǔ)器(RAM)54對(duì)由CPU50執(zhí)行的指令提供易失存儲(chǔ),并存儲(chǔ)諸如寄存器值的暫存數(shù)據(jù)。用于配置選項(xiàng)和其他變量的缺省值存儲(chǔ)在只讀存儲(chǔ)器(ROM)58中。ROM58也能夠用于為設(shè)備存儲(chǔ)控制移動(dòng)設(shè)備30基本功能性和其他操作系統(tǒng)的核心程序功能的操作系統(tǒng)軟件(例如將軟件組件下載到RAM54中)。
RAM54還可以用做一個(gè)存儲(chǔ)器,用于以和在PC機(jī)上用于存儲(chǔ)應(yīng)用程序的硬件驅(qū)動(dòng)的功能類似的方式存儲(chǔ)代碼。應(yīng)當(dāng)注意,雖然非易失性存儲(chǔ)器被用于存儲(chǔ)所述代碼,所述代碼也可以存儲(chǔ)在不用于執(zhí)行所述代碼的易失性存儲(chǔ)器中。
利用移動(dòng)設(shè)備經(jīng)過(guò)連接到CPU50上的無(wú)線收發(fā)信機(jī)52可以發(fā)送/接收無(wú)線信號(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包括話筒29、模/數(shù)(A/D)轉(zhuǎn)換器37和存儲(chǔ)在存儲(chǔ)器54中的可選識(shí)別程序(語(yǔ)音、DTMF、手寫、手勢(shì)或計(jì)算機(jī)視覺(jué))。借助于舉例,響應(yīng)來(lái)自設(shè)備30的用戶的可聽(tīng)信息、指令或命令,話筒29提供被A/D轉(zhuǎn)換器37數(shù)字化的多個(gè)語(yǔ)音信號(hào)。該語(yǔ)音識(shí)別程序可以在數(shù)字化的信號(hào)上執(zhí)行正規(guī)化和/或特征提取功能,以便獲得中間語(yǔ)音識(shí)別結(jié)果。使用無(wú)線收發(fā)信機(jī)52或通信接口60,語(yǔ)音數(shù)據(jù)被發(fā)送給下面將要討論并示于圖5結(jié)構(gòu)中的一個(gè)遠(yuǎn)程識(shí)別服務(wù)器204。然后,識(shí)別結(jié)果被返回到移動(dòng)設(shè)備30用于在其上面實(shí)現(xiàn)(例如,可視或者可聽(tīng)地),并最終發(fā)送給網(wǎng)絡(luò)服務(wù)器202(圖5),其中,網(wǎng)絡(luò)服務(wù)器202和移動(dòng)設(shè)備30以客戶機(jī)/服務(wù)器的關(guān)系運(yùn)行。類似的處理可以用于其他形式的輸入。例如,可以在設(shè)備30上進(jìn)行或不進(jìn)行預(yù)處理的情況下數(shù)字化手寫輸入。與語(yǔ)音數(shù)據(jù)類似,這種形式的輸入能夠被發(fā)送給識(shí)別服務(wù)器204用于識(shí)別,其中所述識(shí)別結(jié)果被返回到設(shè)備30和/或網(wǎng)絡(luò)服務(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。盡管可能需要執(zhí)行其他功能的附加電路,但是通常圖2的框圖可應(yīng)用到圖3所示的電話中。例如,圖2所示的實(shí)施例將被要求作為電話運(yùn)行所需要的一個(gè)收發(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ì)算機(jī)或其他計(jì)算設(shè)備中。
本發(fā)明還可以和多種其他通用或?qū)S糜?jì)算系統(tǒng)、環(huán)境或結(jié)構(gòu)共同操作。適于和本發(fā)明一起使用但不作為限制的公知計(jì)算系統(tǒng)、環(huán)境和/或結(jié)構(gòu)的例子包括常用的電話(沒(méi)有任何屏幕)、個(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ā)明可以在諸如正由一臺(tái)計(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)過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)。在一個(gè)分布式計(jì)算環(huán)境中,程序模塊可以被定位于包含存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。下面結(jié)合附圖描述由所述程序和模塊執(zhí)行的任務(wù)。本領(lǐng)域的普通技術(shù)人員可以把這些描述和附圖實(shí)現(xiàn)為處理器可執(zhí)行指令,所述處理器可執(zhí)行指令能被寫入到以任何形式的計(jì)算機(jī)可讀介質(zhì)上。
參看圖4,計(jì)算機(jī)120的組件可以包含但不局限于處理單元140、系統(tǒng)存儲(chǔ)器150、將包括所述系統(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ī)可讀的介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能夠被計(jì)算機(jī)120訪問(wèn)并包括易失和非易失介質(zhì)、可拆卸和不可拆卸介質(zhì)的任何介質(zhì)。借助于舉例但不作為限制,所述計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括易失和非易失、可拆卸和不可拆卸的介質(zhì),其以任一方法或技術(shù)實(shí)現(xiàn)用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的信息。計(jì)算機(jī)存儲(chǔ)介質(zhì)包含但不局限于RAM、ROM、EEPROM、閃速存儲(chǔ)器或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其他光盤存儲(chǔ)器、卡式磁帶、磁帶、磁盤存儲(chǔ)器或其他磁存儲(chǔ)設(shè)備、或其他任何能夠用于存儲(chǔ)所需要的信息和能夠被計(jì)算機(jī)120訪問(wèn)的介質(zhì)。
通信介質(zhì)通常包含以諸如載波或其他傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)形式的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)并包括任一信息傳送介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”的意思是指具有一個(gè)或多個(gè)特征集或者以這樣的方式進(jìn)行改變、對(duì)信號(hào)中的信息進(jìn)行編碼的信號(hào)。借助于不作為限制的舉例,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接的有線介質(zhì)和諸如聲學(xué)、FR、紅外和其他無(wú)線介質(zhì)的無(wú)線介質(zhì)。上述任意的組合也可以包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器150包括以諸如只讀存儲(chǔ)器(ROM)151和隨機(jī)存取存儲(chǔ)器(RAM)152的易失和/或非易失存儲(chǔ)器形式出現(xiàn)的計(jì)算機(jī)存儲(chǔ)介質(zhì)。包含諸如在啟動(dòng)期間,幫助在計(jì)算機(jī)120內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)153(BIOS)通常被存儲(chǔ)在ROM151中。RAM152通常包含可以被處理單元140直接訪問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。借助于不作為限制的舉例,圖4示出了操作系統(tǒng)54、應(yīng)用程序155、其他的程序模塊156和程序數(shù)據(jù)157。
計(jì)算機(jī)120還可以包括其它可拆卸/不可拆卸、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅僅作為例子,圖4示出了一個(gè)從或向不可拆卸非易失磁存儲(chǔ)介質(zhì)讀出或?qū)懭氲挠脖P驅(qū)動(dòng)161、從或向可拆卸非易失磁盤172讀出或?qū)懭氲拇疟P驅(qū)動(dòng)171、以及從或向諸如CD ROM或其他光介質(zhì)的可拆卸、非易失光盤176讀出或?qū)懭氲墓獗P驅(qū)動(dòng)175。能夠在范例操作環(huán)境中使用的其它可拆卸/不可拆卸、易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)包含但不局限于,卡式磁帶、閃速存儲(chǔ)器卡、數(shù)字通用盤、數(shù)字視頻磁帶、固態(tài)RAM和固態(tài)RAM等。硬盤驅(qū)動(dòng)161通常經(jīng)過(guò)一個(gè)諸如接口160的不可拆卸的存儲(chǔ)器接口連接到系統(tǒng)總線141上,磁盤驅(qū)動(dòng)器171和光盤驅(qū)動(dòng)器175通常經(jīng)過(guò)一個(gè)諸如接口170的可拆卸存儲(chǔ)器接口連接到系統(tǒng)總線141上。
上述圖4所示的設(shè)備及其相關(guān)的計(jì)算機(jī)存儲(chǔ)介質(zhì)提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和用于計(jì)算機(jī)120的其他數(shù)據(jù)的存儲(chǔ)。在圖4中,例如,硬盤驅(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在這里被給予不同的號(hào)碼以至少表示它們是不同的拷貝。
用戶可以經(jīng)過(guò)諸如鍵盤182、話筒183的輸入設(shè)備和諸如鼠標(biāo)、跟蹤球或觸摸板的定點(diǎn)設(shè)備181將命令和信息輸入到計(jì)算機(jī)120中。其它的輸入設(shè)備(未示出)可以包括游戲桿、游戲操縱桿、衛(wèi)星盤、掃描器等。這些和其他的輸入設(shè)備經(jīng)常經(jīng)過(guò)連接到所述系統(tǒng)總線上的用戶輸入接口180連接到處理單元140上,但是也可以由諸如并行端口、游戲端口或通用串形總線(USB)的其他接口和總線結(jié)構(gòu)連接。監(jiān)視器184或其他類型的顯示設(shè)備也經(jīng)過(guò)諸如視頻接口185的一個(gè)接口連接到系統(tǒng)總線141上。除了所述監(jiān)視器以外,所述計(jì)算機(jī)還可以包括諸如揚(yáng)聲器187和打印機(jī)186的外圍輸出設(shè)備,它們可以經(jīng)過(guò)輸出外設(shè)接口188進(jìn)行連接。
計(jì)算機(jī)120可以使用到一個(gè)或多個(gè)諸如遠(yuǎn)程計(jì)算機(jī)194的遠(yuǎn)程計(jì)算機(jī)的邏輯連接在一個(gè)網(wǎng)絡(luò)環(huán)境中進(jì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ò)。這種聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)部網(wǎng)絡(luò)和Internet中是普遍的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)120經(jīng)過(guò)網(wǎng)絡(luò)接口或適配器190連接到LAN191上。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)120通常包括調(diào)制解調(diào)器192或其他用于在諸如Internet的WAN193上建立通信的裝置??梢允莾?nèi)部或外部的調(diào)制解調(diào)器192可以經(jīng)過(guò)用戶輸入接口180或其他的適當(dāng)機(jī)制連接到系統(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的識(shí)別的體系結(jié)構(gòu)200。通常,存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器202中的信息能夠經(jīng)過(guò)移動(dòng)設(shè)備30(這里也表示具有顯示屏幕、話筒、攝象機(jī)、觸敏面板等其它形式的計(jì)算設(shè)備,如基于這種輸入形式所需要的那樣)、或者經(jīng)過(guò)其中信息被可聽(tīng)地請(qǐng)求的電話80、或者經(jīng)過(guò)響應(yīng)被按壓的鍵由電話80產(chǎn)生的音調(diào)進(jìn)行訪問(wèn),并且其中來(lái)自網(wǎng)絡(luò)服務(wù)器202的信息僅僅是可聽(tīng)地提供回到所述用戶。
更加重要的是,體系結(jié)構(gòu)200是統(tǒng)一的,是因?yàn)樾畔⑹墙?jīng)過(guò)設(shè)備30或經(jīng)過(guò)電話80使用語(yǔ)音識(shí)別獲得的,單個(gè)的識(shí)別服務(wù)器204可以支持其中的每一種操作模式。另外,體系結(jié)構(gòu)200使用一個(gè)公知標(biāo)記語(yǔ)言(例如,HTML、XHTML、cHTML、XML、WML等)的擴(kuò)展進(jìn)行工作。由此,存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器202中的信息也能夠使用在這些標(biāo)記語(yǔ)言中獲得的公知GUI方法進(jìn)行訪問(wèn)。通過(guò)使用公知標(biāo)記語(yǔ)言的擴(kuò)展,在網(wǎng)絡(luò)服務(wù)器202上的創(chuàng)作將變得容易,和當(dāng)前存在的傳統(tǒng)應(yīng)用程序能夠容易地進(jìn)行修改以包括聲音識(shí)別。
通常,設(shè)備30執(zhí)行由網(wǎng)絡(luò)服務(wù)器202提供的HTML頁(yè)、腳本等。舉例來(lái)說(shuō),當(dāng)需要聲音識(shí)別時(shí),能夠被數(shù)字化成音頻信號(hào)或其中音頻信號(hào)已經(jīng)被設(shè)備30如上所述預(yù)處理過(guò)的語(yǔ)音特征的語(yǔ)音數(shù)據(jù),被提供給具有語(yǔ)法指示或語(yǔ)言模塊以在語(yǔ)音識(shí)別期間使用的識(shí)別服務(wù)器204。識(shí)別服務(wù)器204的實(shí)現(xiàn)可以有多種形式,只示出了其中的一種,但是它們通常包括識(shí)別器211。如果需要并且適當(dāng)?shù)脑?,識(shí)別的結(jié)果被返回提供給設(shè)備30,以便進(jìn)行本地顯示。在經(jīng)過(guò)識(shí)別并且如果使用了任一圖形用戶界面對(duì)信息進(jìn)行編譯的基礎(chǔ)上,設(shè)備30將所述信息傳送給網(wǎng)絡(luò)服務(wù)器202以便做進(jìn)一步的處理,而且如果需要?jiǎng)t進(jìn)一步接收HTML頁(yè)/腳本。
如圖5所示,設(shè)備30、網(wǎng)絡(luò)服務(wù)器202和識(shí)別服務(wù)器204經(jīng)過(guò)網(wǎng)絡(luò)205被共同連接,而且可單獨(dú)尋址,這里,網(wǎng)絡(luò)205是諸如Internet的廣域網(wǎng)。因此,不需要使這些設(shè)備彼此位置物理相鄰。特別是,所述網(wǎng)絡(luò)服務(wù)器不需要包括識(shí)別服務(wù)器204。以這種方式,在網(wǎng)絡(luò)服務(wù)器202處的創(chuàng)作可以被集中到想要的應(yīng)用程序上而創(chuàng)作者不需要了解復(fù)雜的識(shí)別服務(wù)器204。此外,識(shí)別服務(wù)器可以被獨(dú)立地設(shè)計(jì)和連接到網(wǎng)絡(luò)205上,并借此可以在不要求網(wǎng)絡(luò)服務(wù)器202處的進(jìn)一步改變時(shí)請(qǐng)求就可得到更新和改善。如下面將要描述的,網(wǎng)絡(luò)服務(wù)器202也能夠包括一個(gè)創(chuàng)作機(jī)制,該創(chuàng)作機(jī)制能夠動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記和腳本。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)服務(wù)器202、識(shí)別服務(wù)器204和客戶機(jī)30可以根據(jù)實(shí)施機(jī)制的能力相互組合。例如,如果所述客戶機(jī)包括一個(gè)例如個(gè)人計(jì)算機(jī)的通用計(jì)算機(jī),那么,所述客戶機(jī)可以包括識(shí)別服務(wù)器204。類似的,如果需要的話,網(wǎng)絡(luò)服務(wù)器202和識(shí)別服務(wù)器204可以被包含在一個(gè)單機(jī)中。
對(duì)于客戶機(jī)設(shè)備,一種用于對(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è);將輸入數(shù)據(jù)(指示了從所述用戶處獲得的語(yǔ)音、DTMF、手寫、手勢(shì)和圖象)和相關(guān)語(yǔ)法發(fā)送給遠(yuǎn)離該客戶機(jī)的一個(gè)服務(wù)器;在所述客戶機(jī)處接收來(lái)自所述識(shí)別服務(wù)器的識(shí)別結(jié)果。可以提供一種計(jì)算機(jī)可讀介質(zhì),該介質(zhì)具有用于在一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)中的客戶機(jī)上執(zhí)行的標(biāo)記語(yǔ)言,該標(biāo)記語(yǔ)言具有用于指出與通過(guò)所述客戶機(jī)設(shè)備輸入的輸入數(shù)據(jù)相關(guān)的一個(gè)語(yǔ)法的指令。
經(jīng)過(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連接到電話聲音瀏覽器212上。電話聲音瀏覽器212包括用于提供電話接口的媒體服務(wù)器214和聲音瀏覽器216。與設(shè)備30相似,電話聲音瀏覽器212從web服務(wù)器202接收HTML頁(yè)/腳本或類似信息。更重要的是,所述HTML頁(yè)/腳本與提供給設(shè)備30的HTML腳本具有類似的格式。以這種方式,網(wǎng)絡(luò)服務(wù)器202不需要單獨(dú)地支持設(shè)備30和電話80,或者甚至單獨(dú)地支持標(biāo)準(zhǔn)的GUI客戶機(jī)。而且能夠使用公用的標(biāo)記語(yǔ)言。此外,與設(shè)備30類似,從聲音瀏覽器216經(jīng)過(guò)網(wǎng)絡(luò)205或?qū)>€207、例如使用TCP/IP,向識(shí)別服務(wù)器204提供對(duì)由電話80傳輸?shù)目陕?tīng)信號(hào)的聲音識(shí)別。網(wǎng)絡(luò)服務(wù)器202、識(shí)別服務(wù)器204和電話聲音瀏覽器212能夠在任何適當(dāng)?shù)挠?jì)算環(huán)境、諸如圖4所示的通用臺(tái)式計(jì)算機(jī)中體現(xiàn)。
但是,應(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ù)器使用。
諸如HTML、XHTML、cHTML、XML、WML的標(biāo)記語(yǔ)言或具有任何其它從SGML導(dǎo)出的標(biāo)記的標(biāo)記語(yǔ)言,可以包括用于在客戶機(jī)/服務(wù)器體系結(jié)構(gòu)中提供識(shí)別的控制和/或?qū)ο?。以這種方式,創(chuàng)作者可以運(yùn)用在這些標(biāo)記語(yǔ)言中的、是在這種結(jié)構(gòu)中使用的主要web開(kāi)發(fā)平臺(tái)的所有工具和專門知識(shí)。
通常,控制和/或?qū)ο罂梢园ㄒ粋€(gè)或多個(gè)下述功能用于識(shí)別器配置、識(shí)別器執(zhí)行和/或后處理的的識(shí)別器控制和/或?qū)ο?;用于合成器配置和提示播放的合成器控制?或?qū)ο螅挥糜谝?guī)定輸入語(yǔ)法資源的語(yǔ)法控制和/或?qū)ο?;?或用于處理識(shí)別結(jié)果的連接控制和/或?qū)ο?。所述擴(kuò)展被設(shè)計(jì)成輕型標(biāo)記層,它將可聽(tīng)、可視和手寫等接口的功能添加到現(xiàn)有的標(biāo)記語(yǔ)言中。如此,所述擴(kuò)展能夠保持獨(dú)立于它們被包含在內(nèi)的高級(jí)頁(yè),例如HTML;低級(jí)格式,使用該擴(kuò)展來(lái)參考例如文本-語(yǔ)音和語(yǔ)法格式的語(yǔ)言資源;和在識(shí)別服務(wù)器204中使用的識(shí)別和語(yǔ)音合成平臺(tái)的獨(dú)特特征。
在描述具有適用于識(shí)別的控制和/或?qū)ο蟮臉?biāo)記語(yǔ)言之前,解釋一下用HTML標(biāo)記語(yǔ)言實(shí)現(xiàn)的簡(jiǎn)單GUI的例子是有用的。參看圖6,一個(gè)簡(jiǎn)單的GUI接口包括將信用卡信息提交給所述網(wǎng)絡(luò)服務(wù)器以便完成在線銷售。在這個(gè)例子中,所述信用卡信息包括用于輸入正在使用的信用卡的類型的字段250,所述信用卡例如是Visa、MasterCard、或者American Express。第二字段252允許輸入信用卡號(hào);而第三字段254允許輸入失效日期。提供提交(Submit)按鈕264來(lái)傳輸在字段250、252和254中輸入的信息。
圖7示出了用于從所述客戶機(jī)獲得前述信用卡信息的HTML代碼。通常,如在這些形式的標(biāo)記語(yǔ)言中普遍使用的那樣,所述代碼包括主體部分260和腳本部分262。主體部分260包括指出將被執(zhí)行的動(dòng)作類型、使用的表單、各種字段的信息250、252和254的多行代碼,以及一個(gè)用于提交按鈕264的代碼(圖6)。這個(gè)例子也示出了事件支持和嵌入式腳本宿主,其中,一旦啟動(dòng)了提交按鈕264,就在腳本部分262中調(diào)用或執(zhí)行函數(shù)“verify”。所述“verify”函數(shù)確定用于每個(gè)信用卡(Visa、MasterCard、或者American Express)的卡號(hào)長(zhǎng)度是否具有適當(dāng)?shù)拈L(zhǎng)度。
圖8示出了用于產(chǎn)生與圖6所示相同GUI的客戶機(jī)標(biāo)記,用于使用語(yǔ)音識(shí)別獲得將被提供給網(wǎng)絡(luò)服務(wù)器204的信用卡信息。雖然語(yǔ)音識(shí)別將在下面結(jié)合附圖8-14予以討論,但是,應(yīng)當(dāng)理解,所述技術(shù)也能夠應(yīng)用于手寫識(shí)別、手勢(shì)識(shí)別和圖象識(shí)別。
通常,擴(kuò)展(也被公稱為“標(biāo)簽(tag)”)是XML元素的一個(gè)小集,具有相關(guān)的屬性和DOM對(duì)象特征、事件和方法,這可以與源標(biāo)記文本結(jié)合使用以便將識(shí)別接口、DTMF或調(diào)用控制應(yīng)用于一個(gè)源頁(yè)上。擴(kuò)展的正式格式和語(yǔ)義與所述源文本的特征獨(dú)立,所以,所述擴(kuò)展實(shí)際上可以被等效地應(yīng)用在HTML、XHTML、cHTML、XML、WML中或者與任何其他從SGML導(dǎo)出的標(biāo)記一起使用。所述擴(kuò)展遵循文檔對(duì)象模型,其中提供了可以被分層的有新功能的對(duì)象或元素。每個(gè)元素都將在附錄中詳細(xì)討論,但是通常所述元素可以包括屬性、特征、方法、事件和/或其他“子(child)”元素。
關(guān)于這一點(diǎn),還應(yīng)當(dāng)注意,根據(jù)正在其上執(zhí)行瀏覽器的設(shè)備的能力,所述擴(kuò)展可以用兩種不同的“模式”加以解釋。在第一種模式、即對(duì)象模式中,可以使用全部的能力。通過(guò)一個(gè)應(yīng)用程序?qū)U(kuò)展的編程操作是由任何在所述設(shè)備上的瀏覽器啟動(dòng)的機(jī)制執(zhí)行的,例如在XHTML瀏覽器中的JScript解釋程序或在WML瀏覽器中的WMLScript解釋程序。為此,只需要定義一個(gè)小集合的所述擴(kuò)展核心特征和方法,而且這些由存在于所述設(shè)備或客戶機(jī)端的任何編程機(jī)制處理。所述對(duì)象模式提供事件發(fā)生和腳本編寫,并能夠提供更強(qiáng)的功能性,以便在語(yǔ)音的交互方面給對(duì)話創(chuàng)作者提供更好的客戶機(jī)端控制。如這里所使用的,支持所有事件和腳本的瀏覽器被稱之為“上層瀏覽器(uplevel browser)”。這種形式的瀏覽器將支持所述擴(kuò)展的所有屬性、特征、方法和事件。通??梢栽诰哂休^大處理能力的設(shè)備中找到所述上層瀏覽器。
所述擴(kuò)展也可以在“說(shuō)明模式”中得到支持。如在這里所使用的,以說(shuō)明模式操作的瀏覽器被稱之為“下層瀏覽器(downlevel browser)”,其并不支持所有的事件發(fā)生和腳本編寫性能。而且,這種形式的瀏覽器將支持給定擴(kuò)展的說(shuō)明方面(即核心元素和屬性),但不可能是所有的DOM(文檔對(duì)象模型)對(duì)象特征、方法和事件。這種模式使用專門的說(shuō)明語(yǔ)法,并可以進(jìn)一步與諸如SMIL2.0(同步的多媒體集成語(yǔ)言)的說(shuō)明性多媒體同步和協(xié)作機(jī)制(同步的標(biāo)記語(yǔ)言)結(jié)合使用。下層瀏覽器通常會(huì)在具有有限處理能力的設(shè)備中找到。
關(guān)于這一點(diǎn),應(yīng)當(dāng)討論一種入口的特定模式。具體地說(shuō),結(jié)合至少一個(gè)顯示器和在進(jìn)一步實(shí)施例中的一個(gè)定點(diǎn)設(shè)備一起使用語(yǔ)音識(shí)別來(lái)指示與數(shù)據(jù)入口相關(guān)的字段,是特別有用的。特別是,在這種數(shù)據(jù)入口的模式下,所述用戶通常是在什么時(shí)間選擇一個(gè)字段和提供相應(yīng)信息的控制之下。例如,在圖6所示的例子中,用戶應(yīng)當(dāng)首先決定在字段252中輸入所述信用卡號(hào),然后在字段250中輸入所述信用卡的類型,接著是在字段254中輸入截止日期。類似的,如果需要,所述用戶可以返回到字段252并糾正錯(cuò)誤的輸入。當(dāng)與如下所述的語(yǔ)音識(shí)別相結(jié)合時(shí),可以提供一種很容易和自然的導(dǎo)航形式。如這里所使用的,這種同時(shí)使用了一個(gè)允許無(wú)需選擇字段的屏幕顯示器和語(yǔ)音識(shí)別的形式被稱之為“多重模式(multi-modal)”。
回過(guò)來(lái)參看圖8,這里示出了HTML標(biāo)記語(yǔ)言代碼的一個(gè)例子。與圖7所示的代碼相似,這個(gè)代碼也包括主體部分270和腳本部分272。另外與圖7所示的代碼相似,圖8所示的代碼包括關(guān)于將執(zhí)行的動(dòng)作類型以及所述表單的位置的指示。由代碼部分280、282和284分別控制或執(zhí)行在字段250、252和254每一個(gè)中的信息輸入。首先參考代碼部分280,在例如使用設(shè)備30中的指示筆33選擇字段250時(shí),事件“onClick”就被啟動(dòng),它調(diào)用或執(zhí)行在腳本部分272中的“talk”函數(shù)。這個(gè)動(dòng)作激活用于語(yǔ)音識(shí)別的語(yǔ)法,所述語(yǔ)音識(shí)別與通常在字段250中希望的數(shù)據(jù)類型相關(guān)。這種包括一項(xiàng)以上輸入技術(shù)(例如聲音和筆點(diǎn)擊/滾柱)的交互類型被稱之為“多重模式”。
應(yīng)當(dāng)說(shuō)明,由于對(duì)很多應(yīng)用程序來(lái)說(shuō),都假設(shè)所述創(chuàng)作者將使用所述源頁(yè)中的應(yīng)用說(shuō)明圖形機(jī)制對(duì)所述頁(yè)中的各種組件的語(yǔ)音啟動(dòng)發(fā)出信號(hào),所以,圖8中所例舉的語(yǔ)音識(shí)別擴(kuò)展并不試圖在所述客戶機(jī)的瀏覽器上具有缺省的可視表示。然而,如果需要所述可視表示,則所述擴(kuò)展也可以進(jìn)行修改。
下面反過(guò)來(lái)參看所述語(yǔ)法,所述語(yǔ)法是一種諸如但不局限于上下文無(wú)關(guān)語(yǔ)法、N-語(yǔ)法或混合語(yǔ)法的一種句法語(yǔ)法(Syntactic grammar)。(當(dāng)然,當(dāng)使用相應(yīng)形式的識(shí)別時(shí),可以使用DTMF語(yǔ)法、手寫語(yǔ)法、手勢(shì)語(yǔ)法和圖象語(yǔ)法。如這里所使用的那樣,“語(yǔ)法”包括用于執(zhí)行識(shí)別的信息,并且在進(jìn)一步的實(shí)施例中,例如在一個(gè)規(guī)定字段中對(duì)應(yīng)于所期望輸入的信息)。包括所述標(biāo)記語(yǔ)言第一擴(kuò)展的的一個(gè)新控制290(這里被標(biāo)識(shí)為“reco”)包括各種元素,示出了其中的兩個(gè),即語(yǔ)法元素“grammar”和“bind”元素。通常,與從網(wǎng)絡(luò)服務(wù)器下載到客戶機(jī)上的代碼相似,所述語(yǔ)法可以在網(wǎng)絡(luò)服務(wù)器202生成,并被下載到所述客戶機(jī)上和/或提供給一個(gè)遠(yuǎn)程服務(wù)器用于語(yǔ)音處理。然后,所述語(yǔ)法可以被本地存儲(chǔ)在一個(gè)高速緩存中。最后,所述語(yǔ)法被提供給識(shí)別服務(wù)器204以便在識(shí)別過(guò)程中使用。所述語(yǔ)法元素被用于使用一個(gè)屬性指定聯(lián)機(jī)的(inline)或被參考的(referenced)語(yǔ)法。
一旦從識(shí)別服務(wù)器204接收了與所識(shí)別的語(yǔ)音、手寫、手勢(shì)和圖象等對(duì)應(yīng)的識(shí)別結(jié)果,就提供reco控制290的文法以接收相應(yīng)的結(jié)果,并使其與能夠包括在顯示器34上顯示的,文本的對(duì)應(yīng)字段關(guān)聯(lián)。在所示的實(shí)施例中,一旦利用返回給所述客戶機(jī)的結(jié)果完成了語(yǔ)音識(shí)別,就去激活所述reco對(duì)象并使所識(shí)別的文本與對(duì)應(yīng)的字段關(guān)聯(lián)。部分282和284的操作類似,其中,調(diào)用唯一的Reco對(duì)象和語(yǔ)法用于字段252和254中的每一個(gè),并在接收所識(shí)別文本時(shí)與字段252和254中的每一個(gè)相關(guān)聯(lián)。關(guān)于接收信用卡號(hào)字段252,函數(shù)“handle”以和上述結(jié)合圖7所示類似的方式相對(duì)于所述卡類型檢查所述卡號(hào)的長(zhǎng)度。
通常,結(jié)合體系結(jié)構(gòu)200以及客戶機(jī)端標(biāo)記語(yǔ)言的語(yǔ)音識(shí)別的使用是如下進(jìn)行的首先,指出與將給定的語(yǔ)音相關(guān)的字段。在所示的實(shí)施例中,使用了指示筆33,然而應(yīng)當(dāng)理解,本發(fā)明并不局限于所述指示筆33,其中,可以使用諸如按鈕、鼠標(biāo)指示器和旋轉(zhuǎn)輪等任何形式的指示。如在可視標(biāo)記語(yǔ)言使用中所周知的,可以提供諸如“onClick”的相應(yīng)事件。應(yīng)當(dāng)理解,本發(fā)明并不局限于使用“onClick”事件去指示聲音、手寫和手勢(shì)等命令的開(kāi)始。任何一種可用的GUI事件、諸如“onSelect”,也都可以被用于相同的目的。在一個(gè)實(shí)施例中,對(duì)于其指出所述相應(yīng)語(yǔ)音的開(kāi)始和/或結(jié)束作用來(lái)講,這種事件是非常有用的。還應(yīng)當(dāng)說(shuō)明,引導(dǎo)所述語(yǔ)音的字段可以由所述用戶以及在保持跟蹤用戶交互作用的瀏覽器上運(yùn)行的程序指出。
關(guān)于這一點(diǎn),應(yīng)當(dāng)說(shuō)明,語(yǔ)音識(shí)別的不同方案需要來(lái)自識(shí)別服務(wù)器204的不同行為和/或輸出。雖然,在所有情況下所述識(shí)別處理的開(kāi)始是標(biāo)準(zhǔn)的--來(lái)自上層瀏覽器中顯式start()調(diào)用或在下層瀏覽器中的說(shuō)明性<reco>元素--但是用于停止語(yǔ)音識(shí)別的裝置是不同的。
在上述的例子中,多重模式應(yīng)用程序中的用戶將通過(guò)例如壓敏顯示器上的敲擊和保持來(lái)控制對(duì)所述設(shè)備的輸入。然后所述瀏覽器使用例如“pen-up”的GUI事件控制識(shí)別應(yīng)當(dāng)停止的時(shí)間并返回相應(yīng)的結(jié)果。但是,在諸如電話應(yīng)用(后述)或在免提應(yīng)用中的只有聲音的方案中,所述用戶不能在所述瀏覽器上直接進(jìn)行控制,并且識(shí)別服務(wù)器204或客戶機(jī)30必須負(fù)責(zé)決定停止識(shí)別和返回所述結(jié)果的時(shí)間(通常,當(dāng)通過(guò)所述語(yǔ)法的路徑已經(jīng)被識(shí)別出時(shí))。另外,其中需要在識(shí)別停止之前返回中間結(jié)果的口述和其他方案(也稱為“開(kāi)放話筒”)不僅要求顯式停止功能,而且還需要在所述識(shí)別被停止之前將多個(gè)識(shí)別結(jié)果返回給客戶機(jī)30和/或網(wǎng)絡(luò)服務(wù)器202。
在一個(gè)實(shí)施例中,所述Reco元素可以包括一個(gè)“mode”屬性,用于區(qū)分下述三種用于指示識(shí)別服務(wù)器204如何以及何時(shí)返回所述結(jié)果的識(shí)別模式。結(jié)果的返回意味著視情況提供“onReco”事件或激活所述“bind”元素。在一個(gè)實(shí)施例中,如果沒(méi)有規(guī)定所述模式,則缺省識(shí)別模式為“automatic(自動(dòng))”。
圖12示出了用于語(yǔ)音識(shí)別的“automatic”模式的操作(類似的模式、事件等可以用于其他形式的識(shí)別)。時(shí)間線281在283處指示識(shí)別服務(wù)器204何時(shí)將被開(kāi)始識(shí)別,在285處指出識(shí)別服務(wù)器204檢測(cè)語(yǔ)音的位置,以及在287處確定所述語(yǔ)音已經(jīng)結(jié)束。
Reco元素的各種屬性控制識(shí)別服務(wù)器204的行為?!癷nitialTimeout”(啟動(dòng)超時(shí))屬性289是在識(shí)別的開(kāi)始283和語(yǔ)音檢測(cè)285之間的時(shí)間。如果這個(gè)時(shí)間周期被超過(guò)了,則將從識(shí)別服務(wù)器204提供一個(gè)“onSlience”事件291,從而發(fā)出一個(gè)信號(hào)通知那個(gè)識(shí)別已經(jīng)結(jié)束了。如果識(shí)別服務(wù)器204發(fā)現(xiàn)所述發(fā)言是不可識(shí)別的,則將發(fā)出一個(gè)“onNoReco”事件293,它也將指出識(shí)別已經(jīng)停止。
可以停止和取消識(shí)別的其他屬性包括“babbleTimeout”(串音超時(shí))屬性295,該屬性295是一個(gè)時(shí)間周期,在該時(shí)間周期中,識(shí)別服務(wù)器204必須在285處語(yǔ)音檢測(cè)之后返回一個(gè)結(jié)果。如果被超過(guò)了,則根據(jù)是否發(fā)生了誤差發(fā)布不同的事件。如果識(shí)別服務(wù)器204仍然在處理音頻,例如在特長(zhǎng)發(fā)言的情況下,則發(fā)布“onNoReco”屬性293。但是,如果由于任何其它原因使“babbleTimeout”屬性295被超出,則更大可能是產(chǎn)生了識(shí)別器誤差,并發(fā)布“onTimeout”事件297。類似的,也可以提供“maxTimeout”(最大超時(shí))屬性299,它是在識(shí)別開(kāi)始283和返回到客戶機(jī)30的所述結(jié)果之間的一個(gè)時(shí)間周期。如果這個(gè)時(shí)間周期被超過(guò)了,則發(fā)出“onTimeout”事件297。
但是,如果一個(gè)大于“endSilence”(結(jié)束靜默)屬性301的時(shí)間周期被超過(guò)了,則意味著所述識(shí)別已經(jīng)完成。識(shí)別服務(wù)器204將自動(dòng)地停止識(shí)別并返回它的結(jié)果。應(yīng)當(dāng)說(shuō)明,識(shí)別服務(wù)器204能夠執(zhí)行一個(gè)置信度測(cè)量以確定所述識(shí)別結(jié)果是否應(yīng)被返回。如果所述置信度測(cè)量低于一個(gè)閾值,則發(fā)布“onNoReco”事件293,而如果所述可信度測(cè)量高于所述閾值,則發(fā)布“onNoReco”屬性303和識(shí)別結(jié)果。圖12借此示出了在“自動(dòng)模式”中沒(méi)有進(jìn)行顯式stop()調(diào)用。
圖13示出了識(shí)別服務(wù)器204的“單模式”的操作。上述針對(duì)“自動(dòng)模式”的屬性和事件仍可用,并因此使用相同的標(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)沒(méi)有檢測(cè)到語(yǔ)音,則發(fā)布“onSilence”事件291,但對(duì)于這種操作模式識(shí)別不被停止。類似的,在stop()調(diào)用305之前的由不可識(shí)別的發(fā)言產(chǎn)生的“onNoReco”事件293并不停止識(shí)別。但是,如果與“babbleTimeout”屬性295或“maxTimeout”屬性299相關(guān)的時(shí)間周期被超過(guò)了,則識(shí)別將停止。
圖14示出了識(shí)別服務(wù)器204的“multiple mode”(多重模式)操作。如上所述,這種操作模式被用于“開(kāi)放話筒”或口述方案。通常,在這種操作模式下,以一定的間隔返回所述結(jié)果直到接收到顯式stop()調(diào)用305或與“babbleTimeout”屬性295或“maxTimeout”屬性299相關(guān)的時(shí)間周期被超過(guò)為止。但是應(yīng)當(dāng)注意,在任何一個(gè)不停止識(shí)別的“onSilience”事件291、“onReco”事件303或“onNoReco”事件293之后,用于“babbleTimeout”和“maxTimeout”的定時(shí)器將被復(fù)位。
通常,在這種操作模式下,對(duì)于每個(gè)被識(shí)別的短語(yǔ),發(fā)布“onReco”事件303并返回所述結(jié)果,直到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ǔ)音特征的預(yù)處理的語(yǔ)音數(shù)據(jù)。在進(jìn)一步的實(shí)施例中,客戶機(jī)端的處理還可以包括所述語(yǔ)音數(shù)據(jù)的正規(guī)化,從而使由識(shí)別服務(wù)器204接收的語(yǔ)音數(shù)據(jù)從客戶機(jī)到客戶機(jī)相對(duì)一致。由于所述識(shí)別服務(wù)器可以與客戶機(jī)和通信信道的類型無(wú)關(guān)(stateless),所以這簡(jiǎn)化了識(shí)別服務(wù)器204的語(yǔ)音處理,借此,允許所述識(shí)別服務(wù)器更容易的可伸縮性。
一旦從識(shí)別服務(wù)器204接收了所述識(shí)別結(jié)果,所述識(shí)別結(jié)果就與對(duì)應(yīng)的字段相關(guān)聯(lián),如果需要,可以執(zhí)行客戶機(jī)端的驗(yàn)證或檢查。一旦完成所有字段與所述客戶機(jī)當(dāng)前提供的代碼的關(guān)聯(lián)后,信息被傳送給網(wǎng)絡(luò)服務(wù)器202以用于應(yīng)用程序的處理。從前面的描述來(lái)看,很清楚,雖然網(wǎng)絡(luò)服務(wù)器202已經(jīng)向客戶機(jī)30提供了適于識(shí)別的代碼或頁(yè)/腳本,但是,所述識(shí)別服務(wù)不是由網(wǎng)絡(luò)服務(wù)器202執(zhí)行的,而是由識(shí)別服務(wù)器204執(zhí)行的。但是,本發(fā)明并不排除這樣一種實(shí)現(xiàn)方法,其中,識(shí)別服務(wù)器204和網(wǎng)絡(luò)服務(wù)器202在同一位置,即識(shí)別服務(wù)器204是客戶機(jī)30的一部分。換言之,即使當(dāng)識(shí)別服務(wù)器204和網(wǎng)絡(luò)服務(wù)器202或客戶機(jī)30相互結(jié)合,但是由于擴(kuò)展在這些組件之間提供了一個(gè)簡(jiǎn)單和方便的接口,所以,這里所提供的擴(kuò)展是非常有利的。
盡管在圖8所示實(shí)施例中沒(méi)有示出,但所述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實(shí)施的只有聲音的標(biāo)記語(yǔ)言。如所清楚示出的,所述代碼還可以包括一個(gè)主體部分300和一個(gè)腳本部分302。標(biāo)記語(yǔ)言還有另一種擴(kuò)展-包括屬性相象bargein(attyibutes like bargein)的提示控制303。但是在圖9A和9B的只有聲音的實(shí)施例中語(yǔ)音識(shí)別的執(zhí)行是不同的。利用所述的腳本功能“checkFilled”整個(gè)地控制所述處理,該腳本功能確定沒(méi)有填滿的字段并激活相應(yīng)的提示和新對(duì)象。然而,使用與上述結(jié)合圖8所述相同的上下文激活所述語(yǔ)法,其中,語(yǔ)音數(shù)據(jù)和關(guān)于使用語(yǔ)法的指示被提供給識(shí)別服務(wù)器204。類似的,從識(shí)別服務(wù)器204接收的輸出與所述客戶機(jī)(這里是電話聲音瀏覽器212)的字段相關(guān)聯(lián)。
通常對(duì)于只有聲音的應(yīng)用程序來(lái)講是唯一的其他特征是當(dāng)語(yǔ)音沒(méi)有被識(shí)別出時(shí)對(duì)所述用戶的一個(gè)指示。在諸如圖8所示的多重模式的應(yīng)用程序中,“onNoReco”簡(jiǎn)單地將一個(gè)零值放入到所顯示的字段中以指示沒(méi)有識(shí)別,由此也不需要進(jìn)一步的動(dòng)作。在所述只有聲音的實(shí)施例中,“onNoReco”305調(diào)用或執(zhí)行函數(shù)“mumble”,該函數(shù)將一個(gè)字短語(yǔ)傳送給識(shí)別服務(wù)器204,接下來(lái)使用適當(dāng)?shù)奈谋?語(yǔ)音系統(tǒng)307將其轉(zhuǎn)換成語(yǔ)音(圖5)。識(shí)別服務(wù)器204把一個(gè)音頻流返回給電話聲音瀏覽器212,接下來(lái)傳送給將被用戶收聽(tīng)的電話80。類似的,在只有聲音的應(yīng)用中的其他波形提示在需要時(shí)也被識(shí)別服務(wù)器204轉(zhuǎn)換成音頻流。
應(yīng)當(dāng)說(shuō)明,在這個(gè)例子中,在經(jīng)過(guò)函數(shù)“welcome”播放歡迎提示之后,函數(shù)“checkFilled”向用戶提示每個(gè)字段并激活適當(dāng)?shù)恼Z(yǔ)法,包括重復(fù)已經(jīng)輸入的字段和確認(rèn)所述信息是正確的,這包括激活“confirmation”語(yǔ)法。注意,在這個(gè)實(shí)施例中,每個(gè)reco控制都是從腳本部分302啟動(dòng)的,而不是從先前所述例子中的主體部分啟動(dòng)的。
該標(biāo)記語(yǔ)言在不同類型客戶機(jī)設(shè)備(例如諸如電話的、基于多重模式和無(wú)顯示的聲音輸入的客戶機(jī)設(shè)備)上可執(zhí)行統(tǒng)一用于與所述每一個(gè)客戶機(jī)設(shè)備交互的網(wǎng)絡(luò)服務(wù)器的與語(yǔ)音相關(guān)的事件、GUI事件和電話事件中的至少一個(gè)。這特別有好處,因?yàn)檫@允許網(wǎng)絡(luò)服務(wù)器應(yīng)用程序中的重要部分可以被屬類相關(guān)的寫入或者是獨(dú)立于客戶設(shè)備。一個(gè)例子在圖8和9A、9B中用”handle”函數(shù)示出。
雖然在圖9中沒(méi)有示出,但是,對(duì)于所述標(biāo)記語(yǔ)言還存在兩種以上用于支持電話功能性的擴(kuò)展,DTMF(雙音調(diào)制頻率)控制和呼叫控制元素或?qū)ο?。DTMF的工作情況類似于reco控制。它規(guī)定了一個(gè)從鍵盤字符串到文本輸入的簡(jiǎn)單語(yǔ)法映像。例如,“1”意味著食品雜貨店,“2”表示藥店等。而另一方面,調(diào)用對(duì)象涉及電話功能、例如呼叫轉(zhuǎn)移和第三方呼叫。下面將在附錄中詳細(xì)討論屬性、特征、方法和事件。
而圖10A和10B示出了適用于僅有聲音的操作模式的標(biāo)記語(yǔ)言的另一個(gè)實(shí)施例。在這個(gè)實(shí)施例中,所述用戶被允許對(duì)整個(gè)信息輸入和講話期間具有某些控制。換言之,雖然所述系統(tǒng)可以啟動(dòng)或指示所述用戶開(kāi)始講話,但是該用戶也可以提供比最初被要求更多的信息。這是“混合啟動(dòng)”的一個(gè)例子。通常,在這種對(duì)話交互的形式下,所述用戶被允許與所述系統(tǒng)共享對(duì)話主動(dòng)權(quán)。除在上面指出和下面將要詳細(xì)討論的、其中用戶提供比提示所要求信息更多的信息的例子之外,當(dāng)沒(méi)有提示時(shí),所述用戶也可以切換任務(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)過(guò)識(shí)別的語(yǔ)音,就把將從電話80接收的語(yǔ)音數(shù)據(jù)和一個(gè)使用“do_field”語(yǔ)法的指示傳送給識(shí)別服務(wù)器204,調(diào)用或執(zhí)行函數(shù)“handle”,它包括將這些值與從所述語(yǔ)音數(shù)據(jù)識(shí)別出的任一或全部字段相關(guān)聯(liá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開(kāi)發(fā)框架。在這些情況每一個(gè)中的數(shù)據(jù)表示也非常類似。另外,數(shù)據(jù)表示和流程控制的分開(kāi)允許不同程序(系統(tǒng)啟動(dòng)和混合啟動(dòng))之間、或不同形式(基于GUI的web、僅有聲音的和多重模式)之間最大的可重復(fù)使用率。當(dāng)電話包括顯示器和與設(shè)備30類似的功能時(shí),這也允許從僅有聲音的操作經(jīng)過(guò)電話到多重模式操作的自然擴(kuò)展。附錄A進(jìn)一步提供了上面討論的控制和對(duì)象進(jìn)一步的細(xì)節(jié)。
如上面所指出的,上層瀏覽器可以使用腳本編寫以便執(zhí)行諸如在上面例子中包括的調(diào)用函數(shù)“handle”的各種需要去分配所述識(shí)別結(jié)果。在上面所討論和在附錄A第2.1.2節(jié)描述的實(shí)施例中,“bind”元素將對(duì)所述識(shí)別結(jié)果進(jìn)行語(yǔ)法分析并分配所述值,其中,“bind”元素是“reco”的子元素(subelement)或子系元素(child element)。
雖然腳本編寫是有用的,但例如由于安全關(guān)系,很多人并不認(rèn)為它總是瀏覽器的最佳形式。在本發(fā)明的另一個(gè)實(shí)施例或方面中,所述“bind”元素是一種高級(jí)元素(與“reco”類似)并被提供有其他更豐富的特征,這實(shí)際上可以模擬腳本化而無(wú)需進(jìn)行腳本化本身。
在不使用腳本或不使用下面將要討論的本發(fā)明所述方面的情況下,下面將要討論的某些諸如復(fù)雜對(duì)話效果的能力僅僅通過(guò)將一個(gè)頁(yè)發(fā)送回網(wǎng)絡(luò)服務(wù)器202、執(zhí)行在上面的應(yīng)用程序邏輯從而產(chǎn)生一個(gè)新的頁(yè)、將所述頁(yè)傳送回給客戶機(jī)設(shè)備來(lái)完成。本發(fā)明的該方面允許一個(gè)程序員對(duì)該頁(yè)中的對(duì)象調(diào)用方法而不會(huì)引起服務(wù)器往返行程(rotndtrip)。。
在上面討論的實(shí)施例中,“bind”元素僅僅具有用于以web頁(yè)形式向字段分配識(shí)別結(jié)果的屬性“TargetElment”和“TargetAttribute”。在進(jìn)一步的實(shí)施例中,“bind”元素還包括一個(gè)被添加以用于對(duì)象方法調(diào)用的“TargetMethod”。“TargetMethod”的使用和性能是用于模擬腳本編寫的原理技術(shù)。例如,下述語(yǔ)法可以被用于調(diào)用對(duì)象“OBJl”的“X”方法<bind TargetElement=“OBJ1”TargetMethod=“X”...>。
注意,雖然這里所示的例子遵循HTML/XHTML事件語(yǔ)法,但是,本領(lǐng)域內(nèi)普通技術(shù)人員應(yīng)當(dāng)發(fā)現(xiàn)將<bind>用途推廣到其他事件發(fā)生機(jī)制中是很容易的,這些機(jī)制包括但不局限于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)過(guò)音頻提示要求一杯飲料。然后,所述系統(tǒng)確認(rèn)點(diǎn)了什么樣的飲料。在識(shí)別結(jié)果的基礎(chǔ)上“bind”元素使用說(shuō)明邏輯引導(dǎo)執(zhí)行。當(dāng)所述飲料被確認(rèn)時(shí),表單被發(fā)送回給網(wǎng)絡(luò)服務(wù)器202,所有這一切都無(wú)需腳本編寫。
通常,圖15A和15B所示的標(biāo)記示例包括一個(gè)數(shù)據(jù)部分350、一個(gè)語(yǔ)音部分352和用戶接口部分354、356和358。部分354從一般查詢中接收關(guān)于用戶喜歡什么飲料的識(shí)別結(jié)果并將交互識(shí)別流程導(dǎo)向查詢是否需要奶油和糖的再提示、或確認(rèn)所述飲料被訂購(gòu)。特別是,當(dāng)奶油或糖也已經(jīng)被訂購(gòu)時(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處通過(guò)執(zhí)行“asked”對(duì)象的“start”方法,詢問(wèn)用戶“是希望得到可樂(lè)、咖啡還是橙汁?”。然后通過(guò)在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ǔ)言,這些語(yǔ)言包括但局限于W3C XML查詢語(yǔ)言(XQL)。如“bind”元素364所規(guī)定的,如果從識(shí)別服務(wù)器204接收的識(shí)別結(jié)果具有小于10的置信分,則在366處執(zhí)行提示對(duì)象“reprompt”,后面跟著執(zhí)行提示對(duì)象“ask”368,在這一點(diǎn),在370處重新啟動(dòng)識(shí)別對(duì)象“reco_drink”。如果所返回的識(shí)別結(jié)果是具有大于10的置信分的“coffee”,則字段“drink”被分配有在372處識(shí)別結(jié)果的值,且在374處通過(guò)提示對(duì)象“craem_sugar”向用戶提示他/她是否喜歡奶油或糖。然后在376調(diào)用部分356中的識(shí)別對(duì)象“reco_cream_sugar”。否則,如果所述識(shí)別結(jié)果的置信分大于10但不是咖啡,則在378處再次分配字段飲料。在380處通過(guò)執(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)用。如果需要,能夠說(shuō)明識(shí)別結(jié)果的多重分配。在所示的實(shí)施例中,當(dāng)所述多重分配和方法調(diào)用被說(shuō)明時(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”屬性,用于說(shuō)明所述連接元素被試圖用于哪個(gè)事件。例如,標(biāo)記<bind event=“onNoReco”=TargetElement=“promptl”TargetMethod=“start”/>
意味著當(dāng)“onNoReco”事件被傳送時(shí),對(duì)象“pyomptl”的方法“start”將被調(diào)用??紤]使用“bind”元素作為例如結(jié)合圖8所述的上述“Reco”元素的子元素,用于“bind”元素的缺省屬性是“onReco”。
作為一個(gè)高級(jí)元素,所述“bind”元素可以包括在所述附錄的部分2.4中規(guī)定的任一事件。另外,所述“bind”元素還可以包括具有能夠被訪問(wèn)和用于指示程序流程的“status”屬性的“onError”事件。在這個(gè)方面所述“bind”元素的其他事件具有“status”屬性,這些都是能夠被訪問(wèn)的。
除了檢查識(shí)別結(jié)果的狀態(tài)以外,也可以檢查正在執(zhí)行的當(dāng)前文本或頁(yè)本身。具體地說(shuō),“test”和“value”兩個(gè)屬性可以被擴(kuò)展成包括一個(gè)被稱為包含文檔的根節(jié)點(diǎn)的“host”基元。例如,回過(guò)來(lái)參看圖15A和15B,其中所包含的例子具有在部分354處的附加邏輯,用于詢問(wèn)當(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)說(shuō)明,“bind”元素不僅可以被應(yīng)用于來(lái)自語(yǔ)音服務(wù)器204的識(shí)別結(jié)果和在所述文檔中接收或分配值,還可以被應(yīng)用到消息對(duì)象(這里由“smex”表示),所述消息對(duì)象例如來(lái)自在所述客戶機(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”元素通過(guò)執(zhí)行“reco_drink”對(duì)象來(lái)執(zhí)行或播放“welcome”提示并開(kāi)始識(shí)別。與從語(yǔ)音服務(wù)器204接收的識(shí)別結(jié)果相似,所接收的消息也非常大。某些消息被很好地定義,以便啟動(dòng)所希望的程序流程。其他的可以被接收和處理(例如,正如接收的所述識(shí)別服務(wù)器的識(shí)別結(jié)果那樣被分析語(yǔ)法)。例如,這允許標(biāo)記語(yǔ)言與從鍵盤輸入的自然語(yǔ)言分析程序相似被使用。附錄A中的reco元素包括與執(zhí)行這個(gè)功能相關(guān)的特征。類似的,所述提示元素通過(guò)使用特征“innertext”可以被用來(lái)提供用于動(dòng)態(tài)內(nèi)容或音頻波文件的文本消息并在附錄A中給予解釋。事件發(fā)布可以與用于識(shí)別結(jié)果的事件發(fā)布類似。例如,所述事件發(fā)布可以包括當(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ì)象可以被用來(lái)與用于在所述客戶機(jī)上運(yùn)行受到損害的聽(tīng)取的TTY組件進(jìn)行通信。所述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”=“prompt2”=targetMethod=“start”/>的標(biāo)記將調(diào)用對(duì)象“prompt 2”的start方法。
回過(guò)來(lái)參看圖5,網(wǎng)絡(luò)服務(wù)器202能夠包括一個(gè)服務(wù)器端的插接說(shuō)明創(chuàng)作工具或模塊320(例如,Microsoft Corporation的ASP或ASP+,或JSP等)。服務(wù)器端插接模塊320可以動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記,甚至是用于訪問(wèn)網(wǎng)絡(luò)服務(wù)器202的客戶機(jī)類型的特殊形式的標(biāo)記。在最初建立客戶機(jī)/服務(wù)器關(guān)系的基礎(chǔ)上,所述客戶機(jī)信息可以被提供給網(wǎng)絡(luò)服務(wù)器202,或網(wǎng)絡(luò)服務(wù)器202可以包括多個(gè)模塊或例行程序以檢測(cè)所述客戶機(jī)的性能。利用這種方式,服務(wù)器端插接模塊320可以為每個(gè)聲音識(shí)別方案產(chǎn)生客戶機(jī)端標(biāo)記,即僅僅通過(guò)電話80的聲音或用于設(shè)備30的多重模塊。通過(guò)使用一致的客戶機(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ì)話模塊被實(shí)現(xiàn)為服務(wù)器端的控制并被存儲(chǔ)在存儲(chǔ)器324中,以便由開(kāi)發(fā)者在應(yīng)用程序創(chuàng)作中使用。通常,上層對(duì)話模塊324將在由開(kāi)發(fā)者規(guī)定的參數(shù)基礎(chǔ)上在只有聲音的和多重模式的方案中動(dòng)態(tài)地產(chǎn)生客戶機(jī)端的標(biāo)記和腳本。所述上層對(duì)話模塊能夠包括多個(gè)參數(shù),用于產(chǎn)生客戶機(jī)端的標(biāo)記,以適應(yīng)開(kāi)發(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)簽(tag)是一組標(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ǔ)音合成配置和提示播放<reco.......> 用于識(shí)別器配置和識(shí)別執(zhí)行和后處理<grammar......>用于規(guī)定輸入語(yǔ)法資源<bind......> 用于識(shí)別結(jié)果的處理<dtmf......> 用于DTMF的配置和控制2RecoReco元素被用于規(guī)定可能的用戶輸入和用于處理輸入結(jié)果的裝置。其主要元素可以是<grammar>和<bind>,且它包含用于配置識(shí)別器特征的資源。
Reco元素是在上層瀏覽器中經(jīng)過(guò)Start和Stop方法、或在SMIL啟用的瀏覽器中使用SMIL命令被編程激活的。它們被認(rèn)為在下層瀏覽器(即不支持腳本的瀏覽器)中通過(guò)它們?cè)谒鲰?yè)上的出現(xiàn)起說(shuō)明作用。為了允許并行激活多種語(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ī)則的激活和去激活。還要說(shuō)明,通過(guò)用于識(shí)別環(huán)境的缺省值激活一個(gè)語(yǔ)法中所有的頂層規(guī)則。
2.1.1<gramma(語(yǔ)法)>元素所述語(yǔ)法元素被用于使用src屬性規(guī)定聯(lián)機(jī)或被參考的語(yǔ)法。通常至少規(guī)定一種語(yǔ)法(聯(lián)機(jī)或被參考)。聯(lián)機(jī)語(yǔ)法可以是基于文本的語(yǔ)法格式,被參考的語(yǔ)法可以是基于文本或二進(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。注意,通過(guò)用于識(shí)別環(huán)境的缺省值激活一個(gè)語(yǔ)法中的所有頂層規(guī)則。
·langID可選。用于指出語(yǔ)音引擎將使用哪種語(yǔ)言的字符串。所述字符串格式遵循xmllang定義。例如,lang ID=“en-us”表示美國(guó)英語(yǔ)。這個(gè)屬性只有在所述langID不在語(yǔ)法URI中規(guī)定時(shí)才有效。如果沒(méi)有規(guī)定,則缺省值為美國(guó)英語(yǔ)。
如果在多個(gè)地方規(guī)定了所述langID,那么,langID遵循來(lái)自最低范圍的先前順序-遠(yuǎn)程語(yǔ)法文件(即,在該語(yǔ)法文件內(nèi)規(guī)定的語(yǔ)言標(biāo)識(shí)(id)),所述遠(yuǎn)程語(yǔ)法文件后面跟隨有一個(gè)語(yǔ)法元素,而該語(yǔ)法元素后面跟隨有reco元素。
<pre listing-type="program-listing"><![CDATA[  <grammar src=“EromCity.xml”/>  或  ?。糶rammar> ?。紃ule toplevel=“active”> ?。紁>from</p> ?。紃uleref name=“cities”/> ?。?rule>  <rule name=“cities”> ?。糽>  <p>Cambridge</p> ?。紁>Seattle</p>  <p>London</p> ?。?l> ?。?rule> ?。?grammar>]]></pre>
如果規(guī)定了一種參考src的語(yǔ)法和一種聯(lián)機(jī)語(yǔ)法,則所述聯(lián)機(jī)規(guī)則被添加到所述被參考的規(guī)則中,并且任一具有相同名稱的規(guī)則都將被重寫。
2.1.2&lt;bind(連接)&gt;元素所述連接元素被用于把來(lái)自識(shí)別結(jié)果的值連接到所述頁(yè)中。
由所述連接元素使用的識(shí)別結(jié)果可以是包含用于規(guī)定識(shí)別結(jié)果的語(yǔ)義標(biāo)記語(yǔ)言(SML)的XML文檔。它的內(nèi)容包括語(yǔ)義值、所說(shuō)的實(shí)際字和置信分。SML也可以包括可替換的識(shí)別選擇(像在N個(gè)最佳識(shí)別結(jié)果中一樣)。下面示出了“I’dlike to travel from Seattle to Boston”這一發(fā)言的示范XML文本&lt;sml confidenc=“40”&gt;
&lt;travel text=“I’d like to travel from Seattle to Boston”&gt;
&lt;origin_city confidence=“15”&gt;Seattle&lt;/origin_city&gt;
&lt;dest_city confidence=“35”&gt;Boston&lt;/dest_city&gt;
&lt;/travel&gt;
&lt;/sml&gt;
由于假設(shè)語(yǔ)法內(nèi)的識(shí)別產(chǎn)生一個(gè)XML文檔,所以,在語(yǔ)義標(biāo)記語(yǔ)言即SML中,使用Xpath查詢參考將從所述SML文檔連接的值。并且由于在所述值被連接進(jìn)入的頁(yè)中的所述元素應(yīng)被唯一地識(shí)別(它們可能將被形成控制),所以,這些目標(biāo)元素被直接參考。
屬性·targetElement必須。將分配來(lái)自于SML的值內(nèi)容的元素(如在W3CSMIL2.0中)。
·targetAttribute可選。將分配來(lái)自于SML值內(nèi)容的目標(biāo)元素的屬性(如在SMIL2.0中的attributeName屬性一樣)。如果未規(guī)定,默認(rèn)為“value”。
·test可選。一個(gè)用于指出條件的XML Pattern字符串,在所述條件下將分配所述識(shí)別結(jié)果。缺省條件是真。
·value必須。用于規(guī)定將被分配給所述目標(biāo)元素的、來(lái)自于識(shí)別結(jié)果文檔的值的XPATH字符串(如在所述W3C XML DOM說(shuō)明中規(guī)定的)。
例子
如此給出上述SML返回,隨后的reco元素使用bind將origin_city和dest_city中的值傳輸?shù)剿瞿繕?biāo)頁(yè)元素txtBoxOrigin和txtBoxDest&lt;input name=“txtBoxOrigin”type=“text”/&gt;
&lt;input name=“txtBoxDest”type=“text”/&gt;
&lt;reco id=“travel”&gt;
&lt;grammar src=“./city.xml”/&gt;
&lt;bind targetElement=“txtBoxOrigin”value=“orogin_city”/&gt;
&lt;bind TargetElement=“txtBoxDest”value=“//dest_city”/&gt;
&lt;/reco&gt;
如在下面的例子中所描述的,這個(gè)連接是有條件的,其中,在作為一個(gè)預(yù)定條件加給所述連接操作的所述dest_city結(jié)果的語(yǔ)義屬性上執(zhí)行一個(gè)測(cè)試&lt;bind targetElement=“txtBoxDest”value=“//dest_city”test=“/sml/“dest_city[@confidence$gt$40]”/&gt;
所述連接元素是一個(gè)在下層瀏覽器或上層瀏覽器上處理識(shí)別結(jié)果的簡(jiǎn)單說(shuō)明性裝置。對(duì)于更復(fù)雜的處理來(lái)講,由上層瀏覽器所支持的recoDOM對(duì)象實(shí)現(xiàn)了onReco事件處理程序以執(zhí)行編程的腳本分析和所述識(shí)別返回的后處理。
2.2屬性和特征下述屬性被所有瀏覽器所支持,所述特征被上層瀏覽器所支持。
2.2.1屬性下述Reco屬性用來(lái)配置用于一個(gè)對(duì)話回合的語(yǔ)音識(shí)別器。
·initialTimeout可選。在識(shí)別開(kāi)始和語(yǔ)音檢測(cè)之間微秒級(jí)的時(shí)間。這個(gè)值被傳送給識(shí)別平臺(tái),如果被超過(guò),則將從所述識(shí)別平臺(tái)提供一個(gè)onSilence事件(見(jiàn)2.4.2)。如果未規(guī)定,則所述語(yǔ)音平臺(tái)將使用缺省值。
·babbleTimeout可選。微秒級(jí)的時(shí)間周期,在該周期中,在檢測(cè)語(yǔ)音之后所述識(shí)別器必須返回一個(gè)結(jié)果。就在autormatic(自動(dòng))和single(單)模式情況下的reco來(lái)說(shuō),這適于在語(yǔ)音檢測(cè)和停止調(diào)用之間的所述周期。就在‘multiple(多重)’模式下的reco來(lái)說(shuō),這個(gè)超時(shí)應(yīng)用于在語(yǔ)音檢測(cè)和每次識(shí)別返回之間的所述周期上,即在每次結(jié)果返回或其他事件之后重新開(kāi)始所述周期。如果被超過(guò),則根據(jù)是否發(fā)生了誤差產(chǎn)生不同的事件。如果所述識(shí)別器仍然在處理音頻,即處于特別長(zhǎng)發(fā)言情況下,則利用狀態(tài)代碼13(見(jiàn)2.4.4)產(chǎn)生onNoReco事件。但是,如果由于任何原因所述超時(shí)被超過(guò),則將產(chǎn)生一個(gè)識(shí)別器誤差,并產(chǎn)生onTimeout事件。如果未規(guī)定,則所述語(yǔ)音平臺(tái)將默認(rèn)一個(gè)初始植。
·maxTimeout可選。在識(shí)別開(kāi)始和返回到所述瀏覽器的結(jié)果之間的微秒級(jí)時(shí)間周期。如果被超過(guò),則通過(guò)所述瀏覽器產(chǎn)生onTimeout事件-這為分布式環(huán)境中的網(wǎng)絡(luò)和識(shí)別器故障提供了必要的條件。就在‘多重’模式下的reco來(lái)說(shuō),和babbleTimeout一樣,在每次識(shí)別返回或其他事件之后重新開(kāi)始所述周期。注意,maxTimeout屬性應(yīng)當(dāng)大于或等于initialTimeout和babbleTimeout的總和。如果未規(guī)定,則該值將是瀏覽器默認(rèn)值。
·endSilence可選。就在自動(dòng)模式下的reco來(lái)說(shuō),是在所述識(shí)別返回以后可能沒(méi)有語(yǔ)音的一次發(fā)言結(jié)束后微秒級(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)沒(méi)有位于一起時(shí)使用)。舉例值可以是server=protocol//yourspeechplatform。應(yīng)用程序?qū)懭肫饕材軌蛲ㄟ^(guò)將一個(gè)查詢字符串添加到URI字符串上以向語(yǔ)音平臺(tái)提供特定設(shè)置,例如protocol//yourspeechplatform?bargeinEnergyThreshold=0.5·langID可選。字符串,用于指出語(yǔ)音引擎應(yīng)使用哪一種語(yǔ)言。該字符串格式遵循所述xmllang規(guī)定。例如,langID=‘en-us’表示美國(guó)英語(yǔ)。只有當(dāng)langID在所述語(yǔ)法元素(見(jiàn)2.1.2)中沒(méi)有規(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ì)象中。在沒(méi)有識(shí)別的情況下,所述特征返回空值。
·text讀/寫。用于保持被識(shí)別的字的文本的字符串(即,在讀模式下在recoResult的SML識(shí)別返回中的最高層元素的文本屬性內(nèi)容的簡(jiǎn)寫。在寫模式下,可以分配一個(gè)字符串,然后對(duì)該字符串進(jìn)行語(yǔ)法分析,如同該字符串與識(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í)別來(lái)說(shuō)可能的值是0,或者錯(cuò)誤值是-1到-4(如在Start方法(2.3.1部分)、Activate方法(2.3.4部分)上可能的異常中規(guī)定的那樣),在識(shí)別器事件的接收(見(jiàn)2.4)中被設(shè)置為-11到-15。
2.3Object method(對(duì)象方法)使用在Reco的DOM對(duì)象中的下述方法可以控制Reco激活和語(yǔ)法激活。利用這些方法,上層瀏覽器能夠開(kāi)始和停止Reco對(duì)象,取消進(jìn)行中的識(shí)別,激活和去激活個(gè)別的語(yǔ)法頂層規(guī)則(僅僅是上層瀏覽器)。
2.3.1 Start(開(kāi)始)所述Start方法開(kāi)始識(shí)別處理,將所有的用于沒(méi)有被明確去激活的識(shí)別環(huán)境的頂層規(guī)則作為有效語(yǔ)法使用,。
Syntax(語(yǔ)法)Object.Start()Retum value(返回值)無(wú)。
Exception(例外)所述方法設(shè)置非零狀態(tài)代碼,當(dāng)錯(cuò)誤時(shí)激活一個(gè)onNoReco事件。可能的錯(cuò)誤包括沒(méi)有語(yǔ)法(reco狀態(tài)=-1),未能加載語(yǔ)法,該錯(cuò)誤可能是與不能編譯語(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還沒(méi)有開(kāi)始,那么,所述調(diào)用不起作用。
Syntax(語(yǔ)法)Object.Stop()Retum value(返回值)無(wú)。
Exception(例外)無(wú)。
2.3.3 Cancel(取消)所述Cancel方法停止將所述音頻反饋給所述識(shí)別器、去激活所述語(yǔ)法和釋放所述識(shí)別器,并丟棄任何識(shí)別結(jié)果。所述瀏覽器將忽略用于被取消的識(shí)別的識(shí)別結(jié)果。如果所述識(shí)別器沒(méi)有被開(kāi)始,則所述調(diào)用無(wú)效。
Syntax(語(yǔ)法)Object.concel()Return value(返回值)無(wú)。
Exception(例外)無(wú)。
2.3.4 Activate(激活)所述Activate方法激活上下文無(wú)關(guān)語(yǔ)法(CFG)中的頂層規(guī)則。由于在‘Started(開(kāi)始的)’識(shí)別處理期間它將無(wú)效,所以,在開(kāi)始識(shí)別之前必須調(diào)用激活。注意,用于還沒(méi)有被明顯去激活的識(shí)別上下文的所有語(yǔ)法頂層規(guī)則已經(jīng)被處理為激活。
Syntax(語(yǔ)法)Object.Activate(strName);Parameters(參數(shù))StrName必須的。將被去激活的規(guī)則名稱。一個(gè)空字符串將去激活所有規(guī)則。
Return value(返回值)無(wú)。
Exception(例外)無(wú)。
2.3.5 Deactivate(去激活)該方法去激活在語(yǔ)法中的頂層規(guī)則。如果該規(guī)則不存在,則該方法不起作用。
Syntax(語(yǔ)法)Object.Activate(strName);Parameters(參數(shù))strName必需的。要被去激活的規(guī)則名稱。一個(gè)空字符串去激活所有規(guī)則。
Return value(返回值)無(wú)Exception(例外)無(wú)2.4 Reco事件所述Reco DOM對(duì)象支持下述事件,這些事件的處理程序可以被規(guī)定為所述Reco元素的屬性。
2.4.1 onReco當(dāng)所述識(shí)別器具有所述瀏覽器可用的一個(gè)識(shí)別結(jié)果時(shí),這個(gè)事件獲得激活。對(duì)于在自動(dòng)模式中的Reco,這個(gè)事件自動(dòng)停止識(shí)別處理并清除資源(見(jiàn)2.3.2)。OnReco通常被用于對(duì)所述識(shí)別結(jié)果的程序分析和將所述結(jié)果處理為所述頁(yè)。
Syntax(語(yǔ)法)
Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收所述特征,但該處理程序能查詢與數(shù)據(jù)相關(guān)的事件對(duì)象(見(jiàn)在下面例子中的事件對(duì)象的使用)舉例下面的XHTML段落使用onReco調(diào)用一個(gè)腳本去分析識(shí)別結(jié)果并將所述值分配給適當(dāng)?shù)淖侄巍?br> <pre listing-type="program-listing"><![CDATA[ ?。糹nput name=“textBoxorigin”type=“text”/> ?。糹nput name=“txtBoxDest”type=“text”/>  <Reco onReco=“processCityRecognition()”/> ?。糶rammar src=“/grammars/cuties.xml”/>  </reco> ?。約cript><![CDATA[ ?。緁unction processCityRecognition(){  smlResult=event.srcElement.recoResult;  origNode=  smlResult.selectSingleNode(“//origin_city”);  if(origNode?。絥ull),txtBixDEST.value=  origNode.text;  destNode=  smlResult.selectSinglNode(“//dest_city”);  if(destNode?。娇?,txtBoxDestvalue=destNode.text;  }  ]]></script>  2.4.2 onSilence]]></pre>onSilence用于在所述Reco上的initialTimeout屬性(見(jiàn)2.2.1)中規(guī)定的持續(xù)時(shí)間周期之前對(duì)由所述識(shí)別平臺(tái)檢測(cè)的無(wú)語(yǔ)音事件進(jìn)行處理。這個(gè)事件自動(dòng)取消了與自動(dòng)識(shí)別模式相關(guān)的識(shí)別處理。 Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
2.4.3 onTimeoutonTimeout處理兩類通常反映了來(lái)自所述語(yǔ)音平臺(tái)的誤差的事件。
·它處理由所述標(biāo)簽解釋程序發(fā)出的事件,所述標(biāo)簽解釋程序發(fā)信號(hào)通知在所述識(shí)別被完成之前在maxtime屬性(見(jiàn)2.2.1)中規(guī)定的周期到期了。這個(gè)事件通常反映在分布式結(jié)構(gòu)中可能發(fā)生的問(wèn)題。
·當(dāng)識(shí)別已經(jīng)開(kāi)始、但處理已經(jīng)停止,而且在由babbleTimeout規(guī)定的所述周期中沒(méi)有識(shí)別時(shí)它還處理(ii)由所述語(yǔ)音識(shí)別平臺(tái)發(fā)出的事件(見(jiàn)2.2.1)。
這個(gè)事件自動(dòng)取消所述識(shí)別處理。
Syntax(語(yǔ)法)
Event object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
2.4.4 onNoRecoonNoReco是一個(gè)當(dāng)它不能返回有效識(shí)別結(jié)果時(shí)用于由所述語(yǔ)音識(shí)別平臺(tái)發(fā)出的事件的處理程序。其中這可能發(fā)生的不同情況由狀態(tài)代碼區(qū)分。該事件自動(dòng)停止識(shí)別處理。
Syntax(語(yǔ)法) Event object Info(事件對(duì)象信息)
Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
3Prompt(提示)所述提示元素被用于規(guī)定系統(tǒng)輸出。它的內(nèi)容包括下述中的一個(gè)或多個(gè)·聯(lián)機(jī)的或被參考的文本,它可以利用韻律學(xué)或其他語(yǔ)音輸出信息進(jìn)行標(biāo)記;·從所包含的文本中隨機(jī)提取的可變值;·鏈接到音頻文件。
提示元素可以由下層瀏覽器(或被SMIL命令激活的)或由在上層瀏覽器上的對(duì)象方法進(jìn)行說(shuō)明性的解釋。
3.1 Prompt content(提示內(nèi)容)所述提示元素包含用于系統(tǒng)輸出的資源,所述系統(tǒng)輸出可以是文本、對(duì)音頻文件的參考或兩者。
簡(jiǎn)單的提示僅僅需要規(guī)定輸出所需要的文本,例如,&lt;promptid=“Welcome”&gt;
Thank you for calling ACME weather report.
&lt;/prompt&gt;
這個(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)其中某些字的指令的文本&lt;promptid=“giveBalance”&gt;
you have&lt;emph&gt;five dollars&lt;/emph&gt;left in your accont&lt;/prompt&gt;
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è)屬性中,則所述tagetAttribute屬性可以被用于規(guī)定在targetElement上所需的屬性。對(duì)于在HTML格式控制中解除參考所述值時(shí)是有用的。例如,在下面的表述中,“txtBoxOrigin”和“txtBoxDest”的“value”屬性在輸出所示提示之前被插入到所述文本中&lt;promptid=“Confirm”&gt;
do you want to travel from&lt;value targetElement=“txtBoxOrigin”targetAttribute=“value”/&gt;
?&lt;/prompt&gt;
3.1.3 Audio files(音頻文件)所述值元素也可以被用于引用一個(gè)代替一個(gè)合成提示或者在該合成提示內(nèi)的用于播放的預(yù)先記錄的音頻文件。下面的例子在所述提示結(jié)束處播放一個(gè)蜂鳴&lt;prompt&gt;
after the beep,please record your message.
&lt;value href=“/way/beep.wav/”&gt;
&lt;/prompt&gt;
3.1.4 Referenced prompt(被參考的提示)
不是規(guī)定內(nèi)容聯(lián)機(jī),而是所述src屬性可以經(jīng)過(guò)URI利用一個(gè)空元素去參考外部?jī)?nèi)容,如下&lt;promptid=“welcome”src=“/ACMEWeatherPrompts#Welcome”/&gt;
所述src屬性的目標(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ī)定了聯(lián)機(jī)提示,則可選。一個(gè)被參考提示的URI(見(jiàn)3.1.4)。
·bargein可選。整數(shù)。從提示開(kāi)始到提示所述重放可能被聽(tīng)眾中斷時(shí)的一個(gè)微秒級(jí)的時(shí)間周期。缺省值是無(wú)限大,即,不允許任何bargein(bargein)。Bargein=0允許直接的bargein。它被用于判斷哪種bargein受到平臺(tái)的支持。根據(jù)在所述reco開(kāi)始時(shí)哪一種被允許,這樣可以配置關(guān)鍵字或基于引擎的bargein次數(shù)。
·prefetch可選。布爾標(biāo)記,用于當(dāng)加載所述頁(yè)時(shí)指出所述提示是否應(yīng)當(dāng)被立即合成并被高速緩存在瀏覽器處。默認(rèn)值為假3.2.2 Properties(特征)上層瀏覽器支持下述所述提示的DOM對(duì)象中的特征。
·bookmark只讀。字符串對(duì)象,用于記錄所遇到的最后一個(gè)合成書簽的文本。
·status只讀。從所述語(yǔ)音平臺(tái)返回的狀態(tài)代碼。
·Innertext只讀。這個(gè)特征將提供所述提示的文本轉(zhuǎn)錄,該文本轉(zhuǎn)錄將被傳送給所述合成器。例如,如果一個(gè)提示包括播放音頻波文件,那么,這個(gè)特征提供那個(gè)提示(通常是作為所述音頻波文件存儲(chǔ)的)的文本版本,然后它將被顯示,或者例如通過(guò)將所述提示的文本版本提供給運(yùn)行于所述客戶機(jī)設(shè)備上的一個(gè)組件或應(yīng)用程序加以使用。該innertext特征還能夠被用于提供包含動(dòng)態(tài)內(nèi)容的提示的文本版本。
3.3 Prompt methods(提示方法)
在所述提示的DOM對(duì)象中可以使用下述方法控制提示播放。利用這種方式,上層瀏覽器可以開(kāi)始和停止提示對(duì)象。在進(jìn)行中暫停和恢復(fù)所述提示,以及改變被合成語(yǔ)音的速度和音量。
3.3.1 Start(開(kāi)始)開(kāi)始重放所述提示。除非給定一個(gè)參數(shù),否則所述方法播放所述對(duì)象的內(nèi)容。在一個(gè)給定時(shí)間,僅僅有一個(gè)單一的提示對(duì)象被認(rèn)為是‘開(kāi)始’,因此,如果連續(xù)調(diào)用Start,所有的重放都將被按順序進(jìn)行。
Syntax(語(yǔ)法)Objects.Start([strText]);Parameters(參數(shù))o strText將被傳送給所述合成器的文本。如果存在,這個(gè)參數(shù)將取代所述對(duì)象的內(nèi)容。
Return value(返回值)無(wú)。
Exception(例外)如果服務(wù)器已經(jīng)釋放了音頻緩沖器,則將狀態(tài)設(shè)置為-1,并激活onComplete事件。
3.3.2 Pause(暫停)不用刷新所述音頻緩存器的情況下暫停重放。如果重放被暫停或停止了,則這種方法不起作用。
Syntax(語(yǔ)法)Object.Pause();Return value(返回值)無(wú)。
例外無(wú)。
3.3.3 Resume(恢復(fù))不用刷新所述緩存器的情況下恢復(fù)重放。如果所述重放并沒(méi)有被暫停,則這種方法不起作用。
Syntax(語(yǔ)法)
Object.Resume();Retum value(返回值)無(wú)。
Exception(例外)當(dāng)恢復(fù)失敗時(shí)產(chǎn)生一個(gè)例外。
3.3.4 Stop(停止)如果沒(méi)有準(zhǔn)備好,則停止重放,并刷新所述音頻緩存器。如果重放已經(jīng)被停止,則該方法簡(jiǎn)單地刷新所述音頻緩存器。
Syntax(語(yǔ)法)Object.Stop();Return value(返回值)無(wú)。
Exception(例外)無(wú)。
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(返回值)無(wú)。
Exception(例外)無(wú)。
3.3.6提示控制的例子下述的例子示出了使用上述方法的所述提示控制如何被創(chuàng)作以用于不支持關(guān)鍵字bargein機(jī)制的一個(gè)平臺(tái)。
<pre listing-type="program-listing"><![CDATA[ ?。糷tml>  <title>prompt control</title> ?。糷ead>  <script> ?。?!-  function checkKWBargein(){  news.change(1.0,0.5);//驗(yàn)證時(shí)關(guān)掉音量  if(keyword.text==””){//結(jié)果低于閾值  news.change(1.0,2.0);//恢復(fù)音量  keyword.Start();//重新開(kāi)始識(shí)別  }else{  news.Stop();//檢測(cè)到關(guān)鍵字!停止該提示  //作任何所需要的事情  }  }  //  </script> ?。約cript for=“window”event=“onload”>  <!--  news.Start();keyword.Start();  // ?。?script> ?。?head>  body> ?。紁romptid=“news”bargein=“0”>  Stocks turnd in another lackluster performance Wednesday as investors 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 Obiect Info(事件對(duì)象信息)

Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序能夠查詢與數(shù)據(jù)相關(guān)的所述事件對(duì)象。
3.4.2 onBargein當(dāng)檢測(cè)到一個(gè)用戶的bargein事件時(shí)激活。(注意,對(duì)什么構(gòu)成了例如能量檢測(cè)或關(guān)鍵字識(shí)別的一個(gè)bargein事件的確定被傳送到所述平臺(tái)。)這個(gè)事件處理程序的說(shuō)明不會(huì)自動(dòng)地打開(kāi)所述bargein。
Syntax(語(yǔ)法) Event Object Info(事件對(duì)象信息) Event Properties(事件特征)雖然事件處理程序沒(méi)有直接接收特征,但所述事件處理程序可以查詢與數(shù)據(jù)相關(guān)的所述事件的對(duì)象。
3.4.3 onComplete當(dāng)所述提示重放達(dá)到終點(diǎn)或遇到例外時(shí)(如上面所定義的)激活。
Syntax(語(yǔ)法) Event Object Info(事件對(duì)象信息) Event Properties(事件特征)雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
3.4.4使用bookmarks(書簽)和events(事件)下面的例子示出了書簽事件如何能夠被用于確定用戶響應(yīng)的語(yǔ)義—對(duì)出發(fā)城市的校正或?qū)δ繕?biāo)城市的提供—按照何時(shí)在所述提示輸出期間發(fā)生bargein。所述onBargein處理程序調(diào)用一個(gè)將全局‘mark’變量設(shè)置為在所述提示中遇到的最后一個(gè)書簽的腳本,并且這個(gè)‘mark’的值被用在所述reco的后處理函數(shù)(“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> ?。糱ody> ?。糹nput name=“txtBoxOrigin”value=“Seattle”  type=“text”/> ?。糹nput name=“txtBoxDest”type=“text”/> ?。紁romptid=“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 trayel to.</prompt> ?。紃eco onReco=“ProcessCityConfirm()”>  <grammar src=“/grm/l033/cities.xml”/> ?。?reco>  ......  </body>  4DTMF]]></pre>創(chuàng)建一個(gè)DTMF識(shí)別對(duì)象。所述對(duì)象可以使用聯(lián)機(jī)標(biāo)記語(yǔ)言語(yǔ)法或通過(guò)腳本編寫被實(shí)例化。當(dāng)被激活時(shí),DTMF能夠使得提示對(duì)象激活一個(gè)bargein對(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)元素的屬性(與SMIL2.0相同)。缺省值是“value”。
·test與所述分配相關(guān)的條件。缺省值是真。
例1將多個(gè)鍵映像到文本上。
&lt;MDTF id=“city_choice”timeout=“2000”numDigits=“1”&gt;
&lt;dtmfgrammar&gt;
&lt;key value=“1”&gt;Seattle&lt;/key&gt;
&lt;key value=“2”&gt;Boston&lt;/key&gt;
&lt;/dtmfgrammar&gt;
&lt;bind targetElement=“city”targetAttribute=“value”&gt;
/&gt;
&lt;/DTMF&gt;
當(dāng)“city_choice”被激活時(shí),如果用戶按壓l,則“Seattle”將被分配給輸入字段,如果用戶按壓2,則“Boston”將被分配給輸入字段,其它情況則什么也不做。
例2DTMF如何與多個(gè)字段一起使用。
&lt;input type=“text”name=“area_code”/&gt;
&lt;input type=“text”name=“phone_number”/&gt;
&lt;DTMF id=“area_code”numDigits=“3”onReco=“extension.Actuvate()”&gt;
&lt;bind targetElement=“area_code”/&gt;
&lt;/DTMF&gt;
&lt;DTMF id=“extension”numDigits=“7”&gt;
&lt;bind targetElement=“phone_number”/&gt;
&lt;DTMF&gt;
這個(gè)例子表明了如何允許用戶輸入到多個(gè)字段。
例3當(dāng)用戶開(kāi)始DTMF時(shí)如何允許語(yǔ)音和DTMF輸入以及禁止所述語(yǔ)音。
<pre listing-type="program-listing"><![CDATA[ ?。糹nput type=“text”name=“credit_card_number”/> ?。紁rompt onBookmark=“dtmf.Start();speech.Start()”  bargein=“0”>  please say<bookmark name=“starting”/>  or enter your credit card number now ?。?prompt>  <DTMF id=“dtmf”escape=“#”length=“16”  interdigitTimeout=“2000”  onkeypress=“speech.Stop()”> ?。糱ind targetElement=“credit_card_number”/> ?。?DTMF> ?。紃eco id=“speech”>  <grammar src=“/grm/1033/digits.xml”/> ?。糱ind 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ì)象,用于將DTMF表示到字符串轉(zhuǎn)換矩陣(也被稱之為DEMF語(yǔ)法)。缺省語(yǔ)法是&lt;dtmGrammar&gt;
&lt;key value=“0”&gt;0&lt;/key&gt;
&lt;key value=“1”&gt;l&lt;/key&gt;
&lt;key value=“9”&gt;9&lt;/key&gt;
&lt;key value=“*”&gt;*&lt;/key&gt;
&lt;key value=“#”&gt;#&lt;/key&gt;
&lt;/dtmfgrammar&gt;
·flush讀/寫,布爾標(biāo)記,用于指出在激活之前是否自動(dòng)刷新在基礎(chǔ)電話接口卡上的DTMF緩存器。缺省值是假,用于啟用超前鍵入。
·escape讀-寫。該escape鍵用于結(jié)束所述DRMF讀對(duì)話。Escape鍵是一個(gè)鍵。
·numDigits讀-寫。用于結(jié)束所述DTMF讀對(duì)話的擊鍵數(shù)量。如果同時(shí)規(guī)定了所述escape和length(),那么,當(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中斷和開(kāi)始一次DTMF讀取對(duì)話。
Syntax(語(yǔ)法);Object.Start();Return(返回值)無(wú)Exception(例外)無(wú)4.3.2 Stop禁止DTMF。然而由所述用戶輸入的擊鍵,仍保留在所述緩存器中。
Syntax(語(yǔ)法)Object.Stop();Return(返回值)無(wú)Exception(例外)無(wú)4.3.3 Flush刷新所述DTMF緩存器。在DTMF對(duì)話期間不可以調(diào)用所述Flush。
Syntax(語(yǔ)法)object.Flush();Return(返回值)無(wú)Exception(例外)無(wú)4.4事件
4.4.1 onkeypress當(dāng)按壓DTMF鍵時(shí)激活。這取代遺傳自所述HTMF控制的缺省事件。當(dāng)用戶擊打所述escape鍵時(shí),是onReco事件、而不是onKeypress事件被激活。
語(yǔ)法 事件對(duì)象信息 事件特征雖然所屬事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
4.4.2 onReco當(dāng)一次DTMF對(duì)話結(jié)束時(shí)激活。所述事件自動(dòng)禁止當(dāng)前DTMF對(duì)象。
語(yǔ)法 事件對(duì)象信息 事件特征雖然所述事件處理程序沒(méi)有直接接收特征,但是,所述處理程序可以查詢與數(shù)據(jù)相關(guān)的事件對(duì)象。
4.4.3 onTimeout當(dāng)在超時(shí)之前沒(méi)有接收到短語(yǔ)完成事件時(shí)激活。該事件自動(dòng)停止識(shí)別處理過(guò)程。
語(yǔ)法 事件特征信息; 事件特征雖然所述事件處理程序沒(méi)有直接接收到特征,但是,所述處理程序能查詢與數(shù)據(jù)相關(guān)的時(shí)間對(duì)象。
5 CallControl object(呼叫控制)對(duì)象表示電話聲音瀏覽器的電話接口(呼叫、終端和連接)。該對(duì)象在GUI瀏覽器中與窗口對(duì)象一樣。因此,所述電話對(duì)象的壽命與所述瀏覽器示例本身相同。用于所述電話的聲音瀏覽器用具體例子將所述電話對(duì)象實(shí)例化,一個(gè)對(duì)應(yīng)每個(gè)呼叫。用戶不能實(shí)例化或處理所述對(duì)象。
關(guān)于這一點(diǎn),只有和第一方呼叫控制相關(guān)的特性經(jīng)過(guò)這個(gè)對(duì)象顯露出來(lái)。
5.1特征·address(地址)只讀。XML DOM節(jié)點(diǎn)對(duì)象。實(shí)施專用。這是呼叫者的地址。對(duì)于PSTN,可以是ANI和ALI的一個(gè)組合。對(duì)于VOIP,可以是所述呼叫者的IP地址。
·ringsBeforeAnswer在對(duì)輸入呼叫應(yīng)答之前震鈴的數(shù)量。缺省無(wú)限制,這意味著開(kāi)發(fā)者必須使用下面的Answer()方法回答所述電話呼叫。當(dāng)呼叫中心使用ACD查詢所輸入的電話呼叫時(shí),這個(gè)數(shù)量可以被設(shè)置為0。
5.2 Methods(方法)注意這里所有的方法都是同步的。
5.2.1 transfer(轉(zhuǎn)移)轉(zhuǎn)移所述呼叫。對(duì)于盲區(qū)轉(zhuǎn)移,所述系統(tǒng)可以終止原始呼叫,并且一旦所述轉(zhuǎn)移完成,則釋放系統(tǒng)資源。
語(yǔ)法telephone.Transfer(strText);參數(shù)o strText必須。想要的接收器地址。
返回值無(wú)例外當(dāng)所述呼叫轉(zhuǎn)移失敗時(shí)例如當(dāng)終端方正在忙、沒(méi)有這個(gè)號(hào)碼、傳真或應(yīng)答機(jī)制應(yīng)答時(shí)產(chǎn)生一個(gè)例外。
5.2.2 Bridge第三方轉(zhuǎn)移。在所述呼叫被轉(zhuǎn)移之后,所述瀏覽器可以釋放分配給所述呼叫的資源。當(dāng)該被轉(zhuǎn)移的呼叫使用strUID返回時(shí),它一直持續(xù)到所述應(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)所轉(zhuǎn)移的呼叫被傳送回來(lái)時(shí),在地址屬性中將出現(xiàn)所述srtUID。
o imaxTime可選。被轉(zhuǎn)移呼叫的秒級(jí)最大持續(xù)時(shí)間。如果未規(guī)定,缺省值為平臺(tái)內(nèi)部值。
返回值無(wú)。
例外無(wú)。
5.2.3 Answer(應(yīng)答)應(yīng)答所述電話呼叫。
語(yǔ)法telephone.Answer();返回值無(wú)。
例外當(dāng)不存在連接時(shí)產(chǎn)生一個(gè)例外。在這種情況下將不激活onAnswer事件。
5.2.4 Hangup(掛機(jī))結(jié)束電話呼叫。如果當(dāng)前沒(méi)有呼叫在進(jìn)行,則不起作用。
語(yǔ)法telephone.Hangup();返回值無(wú)。
例外無(wú)。
5.2.5 Connect(連接)開(kāi)始第一方向外訪問(wèn)的電話喊叫。
語(yǔ)法telephone.Connect(strText,[iTimeout]);參數(shù)o strText必須。希望的接收器的地址。
o iTimeout可選。在放棄嘗試之前微秒級(jí)的時(shí)間。如果未規(guī)定,缺省值為平臺(tái)內(nèi)部值。
返回值無(wú)。
例外當(dāng)所述呼叫不能被完成、包括遇到忙信號(hào)或到達(dá)一個(gè)FAX或應(yīng)答機(jī)制時(shí)產(chǎn)生一個(gè)例外(注意硬件可能不支持這個(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可選。在記錄開(kāi)始時(shí)允許的靜默最大時(shí)間(微秒級(jí))。
返回值無(wú)。
例外當(dāng)所述記錄不能被寫入所述url時(shí)產(chǎn)生一個(gè)例外。
5.3事件處理程序使用電話聲音瀏覽器的APP開(kāi)發(fā)者可以執(zhí)行下述事件處理程序。
5.3.1 onIncoming()當(dāng)聲音瀏覽器接收到一個(gè)輸入電話呼叫時(shí)被調(diào)用。所有的開(kāi)發(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è)事件不能被自動(dòng)激活。
5.4例子這個(gè)例子示出了腳本編制,用于鏈接到所述呼叫控制事件以操縱所述電話對(duì)話。
<pre listing-type="program-listing"><![CDATA[  <HTML> ?。糎EAD>  <TITLE>Logonpage</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.dtmfResif(focus==“user”)  logon.user.value=res;  else  logon.pin.value=res;  } ?。?SCRIPT> ?。糞CRIPT for=“callControl”event=“onIncoming”>  <!-  //read address,prepare customized stuff if 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>  <BODY> ?。紃eco id=“g_login”>  oReco=“l(fā)ogin_reco();runSpeech()”timeout=“5000”  onTimeout=“p_miss.Start();runSpeech()”> ?。糶rammar  src=http//kokaneei/etradedemo/speechonly/login.xml/> ?。紃eco> ?。糳tmfid=“dtmf”  escape=“#”  onkeypress=“g_login.Stop();”  onreco=“dtmf_reco();RunSpeech()”  interdigitTimeout=“5000”  onTimeout“dtmf.Flush();p_miss.Start();RunSpeech”/> ?。紁romptid=“p_main”>please say your user ID and pin  number</prompt>  <promptid=“p_uid”>please just say your user ID</prompt> ?。紁romptid=“p_pin”>please just say your pin number</prompt> ?。紁romptid=“p_miss”>Sorry,I missed that</prompt>  <promptid=“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”>  <formid=“l(fā)ogon”>  UID<inputname=“user”type=“text”>  OnChange=“runSpeech()”/>  Pin<input name=“pass”type=“password”  OnChange=“runSpeech()”/> ?。?form> ?。?BODY> ?。?HTML>]]></pre>6控制對(duì)話流程
6.1使用HTML和腳本實(shí)現(xiàn)對(duì)話流程這個(gè)例子示出了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的對(duì)話流程,所述流程查找與輸入框相關(guān)的值并提供用于所述輸入的與上下文敏感的幫助。它使用在所述HTML輸入機(jī)制(在一可視瀏覽器中作為“tooltip”(工具觸點(diǎn))機(jī)制使用的)上的標(biāo)題屬性幫助形成所述幫助提示的內(nèi)容。
<pre listing-type="program-listing"><![CDATA[ ?。糷tml> ?。紅itle>Contex Sensitive help</title> ?。糷ead> ?。約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> ?。紁rompt id=“p_help”onComplete=“checkFileds()”/> ?。紁rompt id=“p_stock”onComplete=“g_stock.start()”>please say  the stock name</peompt> ?。紁eompt id-“p_op”onComplete=“g_op”.Start()>Do you want to buy orsell</prompt>  <prompt 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()”>  <grammar src=“g_stock.xml”/> ?。?reco> ?。紃eco id=“g_op”onReco=“handle()”;checkFields()/> ?。糶rammar src=“./g_op.xml”/> ?。?reco>  <reco id=“g-quantity”onReco=“handle();checkFields()”/>  <grammar src=“./g_quant.sml”/> ?。?reco>  <reco id=“g_price”onReco=“handle();checkFields()”/> ?。糶eammar src=“./guant.xml”/>  </reco> ?。糵orm 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”/> ?。糹nput name=“price”title=“price”/> ?。?form> ?。?body>  </html>]]></pre>6.2使用SMIL下面的例子示出了使用SMIL機(jī)制激活提示和reco元素。
<pre listing-type="program-listing"><![CDATA[ ?。糷tml xmlnst=“urnschemas-microsoft-comtime”  xmlnssp=“runschemas-microsoft-comspeech”> ?。糷ead> ?。約tyle>  .time{behaciorurl(#default#time2);} ?。?style> ?。糷ead> ?。糱ody> ?。糹nput name=“txtBoxOrigin”type=“text”>  <input name=“txtBoxDest”type=“text”/> ?。約pprompt class=“time”tbegin=“0”>  Please say the origin and destination cities ?。?spprompt> ?。紅par tbegin=“time.end”trepeatCount=“indefinitely” ?。約preco class=“time”> ?。糶rammar sre=./fity.xml/> ?。糱ind targetElement=“txtBoxOrigin”  value=“//origin_city”/> ?。糱ind 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)記的文檔中作為具有標(biāo)簽名&lt;smex&gt;的元素。該消息對(duì)象的范例用途可以包括登錄和電話控制。該對(duì)象表示當(dāng)它允許一個(gè)新的功能性通過(guò)發(fā)消息被添加時(shí)基于標(biāo)記的識(shí)別和提示的可擴(kuò)展性。
在舉例說(shuō)明的基礎(chǔ)上,所述對(duì)象被用于利用平臺(tái)組件或應(yīng)用程序經(jīng)過(guò)它自己的配置參數(shù)或?qū)傩哉f(shuō)明建立一個(gè)異步消息交換信道。它具有一個(gè)字符串特性,每當(dāng)所述特性是分配操作的接收者(即1值)時(shí),該特性的內(nèi)容被傳送給所述平臺(tái)組件或應(yīng)用程序。類似的,它還具有SML DOM節(jié)點(diǎn)類型的特性,用于保持從所述平臺(tái)組件或應(yīng)用程序中接收的所述消息。所述消息對(duì)象每當(dāng)接收一個(gè)平臺(tái)消息時(shí)都要傳送一個(gè)事件。由于它的基礎(chǔ)操作是異步的,所以,該對(duì)象還具有內(nèi)置時(shí)鐘,供應(yīng)用程序的開(kāi)發(fā)者操縱超時(shí)設(shè)置。
對(duì)于所述通信裝置來(lái)講,所述消息或smex對(duì)象是不可知的。但是,在一個(gè)實(shí)施例中,所述smex對(duì)象與原始XML或標(biāo)記元素具有相同的壽命,即,當(dāng)它的主機(jī)文檔沒(méi)有被加載時(shí),所述smex對(duì)象將被破壞。而在很多情況下(例如呼叫控制),當(dāng)它未被加載時(shí),所述smex對(duì)象能夠執(zhí)行自動(dòng)清除并釋放通信資源,可以有很多使用情況,在這些情況下,期望遍布標(biāo)記頁(yè)的持久的通信鏈接。對(duì)于那些情況,所述結(jié)構(gòu)將把放棄分配資源(例如關(guān)閉插座)的責(zé)任付諸于所述應(yīng)用程序的開(kāi)發(fā)者。
所述smex對(duì)象在消息格式(方案)方面是中性的。在某些實(shí)施例中,可能希望要求執(zhí)行者利用對(duì)現(xiàn)存標(biāo)準(zhǔn)消息格式(例如在SIP或CCXML中使用的)的強(qiáng)烈偏愛(ài)支持少量的基本方案。實(shí)質(zhì)上,所述結(jié)構(gòu)允許所述平臺(tái)和應(yīng)用程序開(kāi)發(fā)者采用XML或類似標(biāo)記的標(biāo)準(zhǔn)化可擴(kuò)展性的所有優(yōu)點(diǎn)以便引入其他的特性而不損失平均時(shí)間的相互可操作性。
例l使用smex作為登錄對(duì)象<pre listing-type="program-listing"><![CDATA[ ?。約mexid=“l(fā)ogServer”> ?。紁aram name=“dserver”xmlnsd=“runMicrosoft.com/COM”> ?。糳protocol>DCOM</dprotocol> ?。糳clsid>2093093029302029320942098432098</dclsid> ?。糳iid>090385930490349853095309094803</diid> ?。?param> ?。?smex> ?。糽isten...>  ...//other directtices binding reco results to input  fields  <bind targetElement=“l(fā)ogServer”targetAttribude=“sent”  value=“*[@log$ge$3]”/> ?。?listen>]]></pre>這個(gè)例子說(shuō)明了如何使用一個(gè)具有它的類id和接口id的com對(duì)象來(lái)實(shí)現(xiàn)一個(gè)登錄機(jī)制。語(yǔ)音開(kāi)發(fā)者把一個(gè)指示用于登錄的興趣級(jí)別的屬性“l(fā)og”加到相關(guān)的SML節(jié)點(diǎn)上。在上述實(shí)施例中,app開(kāi)發(fā)者通過(guò)使用單個(gè)連接指示選擇登錄值大于或等于3的所有節(jié)點(diǎn)登錄。該例子在上層和下層瀏覽器中都可使用。
這個(gè)例子還試圖說(shuō)明只要不出現(xiàn)smex對(duì)象對(duì)返回到所述識(shí)別文檔的所述平臺(tái)消息的傳送響應(yīng)的混淆,一個(gè)頁(yè)就可以包含與相同平臺(tái)組件通信的多個(gè)smex對(duì)象。上述例子說(shuō)明一個(gè)組件可以實(shí)現(xiàn)多個(gè)接口,其中的每一個(gè)接口都具有它自己的smex或消息導(dǎo)管。相同的參數(shù)應(yīng)用到TCP服務(wù)器上以聽(tīng)取多個(gè)端口。
例2讀取與輸入呼叫相關(guān)的地址<pre listing-type="program-listing"><![CDATA[ ?。糹nput type=“text”id=“remote”/> ?。糹nput type=“text”id=“transfer”/> ?。糹nput 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=“//transferaddr”/> ?。糱ind targetElement=“l(fā)ocal”value=“//local_addr”>  ...... ?。?smex>]]></pre>這個(gè)例子示出了所述連接指示是如何能夠被用于處理所接收的消息的。這個(gè)例子假設(shè)用于輸入呼叫的消息具有多個(gè)子元素remote_addr、transfer_addr和local_addr,它們的內(nèi)容分別表示所輸入呼叫的遠(yuǎn)程、轉(zhuǎn)移和本地地址。
在這個(gè)例子中,以HTTP為基礎(chǔ)的無(wú)連接協(xié)議被用于與所述電話服務(wù)器通信。這里所述電話服務(wù)器被設(shè)計(jì)成與一個(gè)以上的瀏覽器通信,因此,當(dāng)app開(kāi)始時(shí),每個(gè)客戶機(jī)都必須使用由所述服務(wù)器指定的專用id識(shí)別它本身。在這個(gè)例子中,它是通過(guò)由所述服務(wù)器傳送“start_listening”消息實(shí)現(xiàn)的。在這個(gè)例子中,雖然其他技術(shù)(例如客戶機(jī)端COOKIE)也可以被用于管理對(duì)話狀態(tài),但是,對(duì)話id被存儲(chǔ)在可以被傳送回給所述網(wǎng)絡(luò)服務(wù)器并且被傳送給所述應(yīng)用程序的下一頁(yè)的隱藏字段中。與用于Reco的情況相同,對(duì)于每個(gè)平臺(tái)消息來(lá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í)事件之前過(guò)去時(shí)間的數(shù)量。當(dāng)所述特征被分配給一個(gè)正值時(shí),所述時(shí)鐘開(kāi)始啟動(dòng)。當(dāng)正在進(jìn)行向下計(jì)數(shù)時(shí),所述值可以變化。在不觸發(fā)所述超時(shí)事件的情況下,0或負(fù)值停止所述時(shí)鐘。缺省值為0。意味著沒(méi)有超時(shí)。
·status只讀,用于指出所述對(duì)象最新?tīng)顟B(tài)的一個(gè)整數(shù)??赡艿闹凳?、-l和-2,他們分別意味著正常、超時(shí)期滿和不能建立與所述平臺(tái)的通信或已經(jīng)中斷。通過(guò)所接收的特征傳送平臺(tái)專用誤差消息。對(duì)于連續(xù)傳送所述誤差消息的情況下,所述狀態(tài)代碼為0。
7.2 Event(事件)所述對(duì)象具有下述特征·onRecieve當(dāng)?shù)玫剿銎脚_(tái)消息時(shí)傳送這個(gè)事件。如果具有通過(guò)bind元素傳送的任何命令,那么,在所述事件被啟動(dòng)之前首先評(píng)估這些命令。在傳送之前,所述received特征將被更新。
·onError當(dāng)所述超時(shí)期滿或遇到一個(gè)通信鏈接誤差時(shí)傳送這個(gè)事件。當(dāng)傳送該事件時(shí),如上所述將利用一個(gè)相應(yīng)的誤差碼來(lái)更新所述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的理想方式是&lt;smex id=“l(fā)ogSerwer”...&gt;...&lt;/smex&gt;
&lt;script&gt;function logMessage(logClass,message){logSerwer.sent=logClass+“|”+message;}&lt;/script&gt;
實(shí)際上,這利用其性能可以被定制的(全局)功能擴(kuò)展了所述對(duì)象。在上述的例子中,所述登錄功能被編程以便在所述id和所述消息之間插入字段分割符“|”。
對(duì)于那些不喜歡全局功能的人來(lái)講,作為一種對(duì)象方法,他們可以使用ECMAScript的“prototype”屬性。例如
<pre listing-type="program-listing"><![CDATA[  <smex id=“l(fā)ogSerwer”onload=“addFunction()”>...</smex> ?。約cript>  function my_logMessage(logClass,message){  logSerwer.sent=logClass+“l(fā)”+message;  }  function addFunction(){  logSerwer.prototype.logMessage=  my_logMessage;  } ?。?script>]]></pre>可以以多種面向?qū)ο蟮姆绞綉?yīng)用所述函數(shù)logSerwer.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),但是,還需要來(lái)自所述smex對(duì)象構(gòu)成中的多項(xiàng)工作。
權(quán)利要求
1.一種用于處理數(shù)據(jù)的服務(wù)器/客戶機(jī)系統(tǒng),該系統(tǒng)包括一個(gè)網(wǎng)絡(luò),它包括一個(gè)網(wǎng)絡(luò)服務(wù)器,具有可遠(yuǎn)程訪問(wèn)的信息;一個(gè)客戶機(jī)設(shè)備,具有一個(gè)用于指示將被輸入的字段的再現(xiàn)設(shè)備,該客戶機(jī)設(shè)備被配置為根據(jù)一個(gè)該用戶想要哪一種字段順序輸入的指示,記錄與所述字段中的每一個(gè)相關(guān)的輸入數(shù)據(jù),其中該客戶機(jī)適于將輸入數(shù)據(jù)發(fā)送給一個(gè)遠(yuǎn)程位置;以及一個(gè)識(shí)別服務(wù)器,被配置為接收輸入數(shù)據(jù)并將指示什么被識(shí)別出來(lái)的數(shù)據(jù)返回給該客戶機(jī)和該網(wǎng)絡(luò)服務(wù)器中的至少一個(gè)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于從該網(wǎng)絡(luò)服務(wù)器接收到的、并被提供給該客戶機(jī)設(shè)備的所述信息是一種標(biāo)記語(yǔ)言。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于從該客戶機(jī)設(shè)備接收到的所述標(biāo)記語(yǔ)言包括一個(gè)或若干個(gè)標(biāo)記部分以及一個(gè)或若干個(gè)腳本部分。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于所述標(biāo)記語(yǔ)言包括一個(gè)將一個(gè)語(yǔ)法與一個(gè)字段相關(guān)聯(lián)的指示。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于所述識(shí)別服務(wù)器接收該輸入數(shù)據(jù)以及該語(yǔ)法的指示。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述客戶機(jī)適于在將所述輸入數(shù)據(jù)發(fā)送給所述遠(yuǎn)程服務(wù)器之前對(duì)所述輸入數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。
7.根據(jù)權(quán)利要求2述的系統(tǒng),其特征在于所述網(wǎng)絡(luò)服務(wù)器包括一個(gè)服務(wù)器端插件模塊,用于為該客戶機(jī)設(shè)備動(dòng)態(tài)產(chǎn)生一個(gè)標(biāo)記語(yǔ)言頁(yè)。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括一個(gè)具有話筒和揚(yáng)聲器的第二客戶機(jī)設(shè)備,所述第二客戶機(jī)設(shè)備被配置為響應(yīng)于給客戶的提示,記錄與一組字段中的每一個(gè)相關(guān)聯(lián)的語(yǔ)音數(shù)據(jù),其中所述第二客戶機(jī)設(shè)備適于將該語(yǔ)音數(shù)據(jù)發(fā)送給所述識(shí)別服務(wù)器。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于所述第二客戶機(jī)設(shè)備包括一個(gè)能夠再現(xiàn)來(lái)自所述網(wǎng)絡(luò)服務(wù)器的內(nèi)容的電話和聲音瀏覽器。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于自所述網(wǎng)絡(luò)服務(wù)器接收的、并提供給每一個(gè)客戶機(jī)設(shè)備的所述信息是一種標(biāo)記語(yǔ)言。
11.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于所述網(wǎng)絡(luò)服務(wù)器包括一個(gè)服務(wù)器端插件模塊,用于為所述客戶機(jī)設(shè)備動(dòng)態(tài)產(chǎn)生標(biāo)記語(yǔ)言。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于所述服務(wù)器端插件模塊作為該客戶機(jī)設(shè)備類型的一個(gè)函數(shù)來(lái)動(dòng)態(tài)產(chǎn)生標(biāo)記語(yǔ)言。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于所述服務(wù)器端插件模塊檢測(cè)所述客戶機(jī)設(shè)備的類型。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于所述網(wǎng)絡(luò)服務(wù)器包括若干可由所述服務(wù)器端插件模塊訪問(wèn)的對(duì)話模塊,每一對(duì)話模塊適于使用語(yǔ)音識(shí)別獲得數(shù)據(jù),所述服務(wù)器端插件模塊作為一個(gè)對(duì)話模塊的一個(gè)函數(shù)生成所述標(biāo)記語(yǔ)言。
15.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述網(wǎng)絡(luò)服務(wù)器和所述識(shí)別服務(wù)器位于單個(gè)機(jī)器中。
16.一種用于處理數(shù)據(jù)的服務(wù)器/客戶機(jī)系統(tǒng),該系統(tǒng)包括一個(gè)網(wǎng)絡(luò),它包括一個(gè)網(wǎng)絡(luò)服務(wù)器,具有可遠(yuǎn)程訪問(wèn)的信息;一個(gè)客戶機(jī)設(shè)備,具有一個(gè)話筒和一個(gè)再現(xiàn)組件,該客戶機(jī)設(shè)備被配置為從該網(wǎng)絡(luò)服務(wù)器獲得信息,所述信息具有相應(yīng)的字段,所述客戶機(jī)設(shè)備進(jìn)一步被配置為記錄與所述字段中的每一個(gè)相關(guān)的輸入數(shù)據(jù),并且其中該客戶機(jī)適于將輸入數(shù)據(jù)以及一個(gè)用于輸入識(shí)別的語(yǔ)法的指示發(fā)送給一個(gè)遠(yuǎn)程位置;以及一個(gè)識(shí)別服務(wù)器,被配置為接收所述輸入數(shù)據(jù)和所述語(yǔ)法指示,所述識(shí)別服務(wù)器將指示什么被識(shí)別出來(lái)的數(shù)據(jù)返回給該客戶機(jī)和該網(wǎng)絡(luò)服務(wù)器中的至少一個(gè)。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于從該網(wǎng)絡(luò)服務(wù)器接收到的、并被提供給該客戶機(jī)設(shè)備的所述信息是一種標(biāo)記語(yǔ)言。
18.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于所述客戶機(jī)設(shè)備包括一個(gè)電話,而該再現(xiàn)組件包括一個(gè)揚(yáng)聲器。
19.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于所述再現(xiàn)組件包括一個(gè)顯示所述字段的顯示器。
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于所述客戶機(jī)和所述識(shí)別服務(wù)器位于單個(gè)機(jī)器中。
21.一種用于在一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)中處理聲音識(shí)別的方法,該方法包括從一個(gè)網(wǎng)絡(luò)服務(wù)器向一個(gè)客戶機(jī)設(shè)備傳輸一個(gè)標(biāo)記語(yǔ)言頁(yè),該頁(yè)具有被配置為從該客戶機(jī)設(shè)備的一個(gè)用戶獲得輸入數(shù)據(jù)的擴(kuò)展;在所述客戶機(jī)設(shè)備上再現(xiàn)所述標(biāo)記語(yǔ)言頁(yè);獲得作為從所述用戶輸入的一個(gè)函數(shù)的輸入數(shù)據(jù);將所述輸入數(shù)據(jù)以及一個(gè)相關(guān)語(yǔ)法的指示傳輸給遠(yuǎn)離所述客戶機(jī)設(shè)備的一個(gè)識(shí)別服務(wù)器;在所述客戶機(jī)和所述網(wǎng)絡(luò)服務(wù)器中的至少一個(gè)上接收來(lái)自所述識(shí)別服務(wù)器的、指示什么被輸入的識(shí)別結(jié)果。
22.根據(jù)權(quán)利要求21所述的方法,其特征在于再現(xiàn)所述標(biāo)記語(yǔ)言包括為數(shù)據(jù)入口顯示字段,其中獲得輸入數(shù)據(jù)包括從所述用戶接收一個(gè)關(guān)于后續(xù)輸入與哪一字段相關(guān)聯(lián)的指示。
23.根據(jù)權(quán)利要求21所述的方法,其特征在于再現(xiàn)所述標(biāo)記語(yǔ)言包括可聽(tīng)的提示所述用戶。
24.根據(jù)權(quán)利要求21所述的方法,其特征在于所述標(biāo)記語(yǔ)言模擬腳本編寫。
全文摘要
一種用于處理數(shù)據(jù)的服務(wù)器/客戶機(jī)系統(tǒng)包括一個(gè)網(wǎng)絡(luò),所述網(wǎng)絡(luò)具有一個(gè)帶有可遠(yuǎn)程訪問(wèn)的信息的網(wǎng)絡(luò)服務(wù)器。一個(gè)客戶機(jī)設(shè)備包括一個(gè)話筒和一個(gè)再現(xiàn)組件,例如一個(gè)揚(yáng)聲器或顯示器。所述客戶機(jī)設(shè)備被配置為從該網(wǎng)絡(luò)服務(wù)器獲得信息,并記錄與該信息中包含的字段相關(guān)的輸入數(shù)據(jù)。所述客戶機(jī)設(shè)備適于將輸入數(shù)據(jù)以及一個(gè)用于識(shí)別的語(yǔ)法的指示發(fā)送給一個(gè)遠(yuǎn)程位置。一個(gè)識(shí)別服務(wù)器接收所述輸入數(shù)據(jù)和所述語(yǔ)法指示。所述識(shí)別服務(wù)器將指示了什么被識(shí)別出來(lái)的數(shù)據(jù)返回給該客戶機(jī)和該網(wǎng)絡(luò)服務(wù)器中的至少一個(gè)。
文檔編號(hào)G10L15/30GK1420447SQ0213180
公開(kāi)日2003年5月28日 申請(qǐng)日期2002年4月30日 優(yōu)先權(quán)日2001年5月4日
發(fā)明者王冠三, 洪小文 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
淮南市| 阳山县| 西贡区| 绥宁县| 忻州市| 元朗区| 镇江市| 西畴县| 府谷县| 甘孜县| 望奎县| 海林市| 繁昌县| 乐安县| 郑州市| 农安县| 大足县| 界首市| 新邵县| 大足县| 民权县| 临清市| 宣城市| 德庆县| 津南区| 昭平县| 万山特区| 县级市| 湟中县| 汤阴县| 措美县| 龙江县| 陆良县| 冕宁县| 酒泉市| 徐州市| 高阳县| 双城市| 阜宁县| 南投县| 贞丰县|