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