| 什么是語(yǔ)音應用程序: 起初,語(yǔ)音應用程序主要是用來(lái)通過(guò)響應“請按一或說(shuō)一”之類(lèi)的命令通過(guò)電話(huà)與銀行或信用卡公司進(jìn)行交互。隨著(zhù)時(shí)間的推移,這些交互式語(yǔ)音應答(Interactive Voice Response,IVR)系統已經(jīng)從一個(gè)詞或離散的數字識別系統發(fā)展為允許幾個(gè)基本的命令,比如“請說(shuō)‘操作員’”或“打電話(huà)給媽媽”。您可能還會(huì )想到一個(gè)語(yǔ)音應用程序,比如 IBM ViaVoice,它是一個(gè)通用的計算機聽(tīng)寫(xiě)系統(computer dictation system)。 在描述如何開(kāi)發(fā)語(yǔ)音應用程序時(shí),本文并不僅限于這些類(lèi)型的語(yǔ)音應用程序。語(yǔ)音應用程序背后的基本思想是對話(huà) — 用戶(hù)在其中與系統進(jìn)行對話(huà),可能是在一個(gè)結構化的對話(huà)中或菜單中(有指導對話(huà)應用程序)或者用一種更自然、形式更自由的對話(huà)(自然語(yǔ)言理解(natural language understanding,NLU))。在任何情況下,語(yǔ)音應用程序都已不再只是單詞(one-word)系統,它提供一種更自然的系統界面而不是在電話(huà)上按按紐。 一個(gè)新的表示標記標準 VoiceXML,它對于 Web 語(yǔ)音應用程序就象 HTML 之于可視應用程序一樣。用于 Web 的語(yǔ)音應用程序就是生成 VoiceXML 并提供數據的語(yǔ)音接口的 Web 應用程序,這些數據駐留在 Web 基礎結構(超文本傳輸協(xié)議(Hypertext transfer protocol,HTTp)服務(wù)器、Web 應用程序服務(wù)器、公共網(wǎng)關(guān)接口(Common Gateway Interface ,CGI)、實(shí)用摘錄和報告語(yǔ)言(practical Extraction and Reporting Language,pERL)、servlet、JavaServer pages™(JSps™)等)背后。 對于可視應用程序,您可以使用表示標記、圖形、圖像映射等,而軟件包可以幫助您開(kāi)發(fā)這些組件。在語(yǔ)音應用程序中,您使用 VoiceXML 來(lái)作為表示標記,用語(yǔ)法和詞匯來(lái)指定用戶(hù)可以說(shuō)的詞和短語(yǔ)。 語(yǔ)音應用程序基礎 一個(gè) VoiceXML 應用程序由幾部分組成。VoiceXML 定義對話(huà)流,并且就象 HTML 應用程序有圖形和圖像映射一樣,VoiceXML 應用程序也有結構,比如語(yǔ)法和發(fā)音。 語(yǔ)法和發(fā)音對于 Web 語(yǔ)音應用程序的功能來(lái)說(shuō)至關(guān)重要。當一個(gè)可視 Web 應用程序需要用戶(hù)提供一些數據(比如名字或街道地址)時(shí),用戶(hù)只需把它輸入到輸入域內。在一個(gè)語(yǔ)音應用程序中,語(yǔ)音瀏覽器卻必須知道要聽(tīng)什么內容。就象日常的面對面對話(huà)一樣,討論主題需要有一個(gè)公共的參考框架以便使對話(huà)進(jìn)行下去。這一點(diǎn)同樣適用于計算機語(yǔ)音識別。不管用戶(hù)是與表單內的菜單還是域進(jìn)行交互,語(yǔ)音識別器都需要有一個(gè)參考框架或一組對于這些值來(lái)說(shuō)有效的詞和短語(yǔ)(話(huà)語(yǔ))。我們把這些稱(chēng)為語(yǔ)法。 這些語(yǔ)法在識別引擎中是活動(dòng)的,它們定義當對音頻進(jìn)行了解碼和分析后該引擎返回給應用程序的詞集。識別器把用戶(hù)的話(huà)語(yǔ)與活動(dòng)語(yǔ)法內的一個(gè)條目匹配起來(lái),語(yǔ)音瀏覽器根據您對 VoiceXML 程序的定義進(jìn)行響應。與和另一個(gè)人談話(huà)不同,計算機無(wú)法吸取經(jīng)驗、無(wú)法推斷它不能明確識別的單詞或短語(yǔ)的言外之意。一種常見(jiàn)的誤解是以為只可以說(shuō)任何可以轉換為文本字符串的內容。實(shí)際上,計算機識別系統必須有一組有效的話(huà)語(yǔ),我們可以從這些話(huà)語(yǔ)中選擇一種與用戶(hù)的話(huà)語(yǔ)相匹配。 在高質(zhì)量的語(yǔ)音應用程序中,發(fā)音起著(zhù)非常關(guān)鍵的作用。IBM ViaVoice 有一個(gè)超過(guò) 100,000 個(gè)單詞的詞匯表。由于 Web 上的數據各種各樣(有許多是合成詞),再加上主題和范圍的隨機性,不可避免地會(huì )出現這樣的情況,那些需要被文本到語(yǔ)音(text-to-speech)引擎識別或讀出來(lái)的詞聽(tīng)起來(lái)和您想象的并不相同。作為開(kāi)發(fā)語(yǔ)音應用程序工作的一部分,您將需要提供新詞以及它們的發(fā)音。 圖 1. 語(yǔ)音應用程序的整體結構
上面的圖 1 展示了語(yǔ)音應用程序的整體結構。在語(yǔ)音 Web 交互的客戶(hù)機端,用戶(hù)與一個(gè)語(yǔ)音瀏覽器進(jìn)行交互,該瀏覽器代表用戶(hù)與 Web 交談。瀏覽器給語(yǔ)音識別引擎一個(gè)或一組語(yǔ)法以及有效的用戶(hù)話(huà)語(yǔ)。在用戶(hù)說(shuō)話(huà)時(shí),識別引擎使用這些語(yǔ)法來(lái)識別所說(shuō)的詞并將它們返回給瀏覽器。根據 VoiceXML,該瀏覽器采取一個(gè)操作,比如發(fā)出一個(gè) URL 請求。在服務(wù)器端,可視應用程序和語(yǔ)音應用程序的處理過(guò)程差不多。但語(yǔ)音應用程序的性質(zhì)允許它們接收、解釋和生成更多的 VoiceXML,比如通過(guò)說(shuō)話(huà)(通過(guò)文本到語(yǔ)音(TTS))、播放預先錄好的音頻或通過(guò)激活瀏覽器中的更多語(yǔ)法并等待用戶(hù)說(shuō)些別的內容。這個(gè)過(guò)程在流程和結構上與 HTML 應用程序的類(lèi)似;明顯的區別在于瀏覽器如何呈現信息和接受用戶(hù)輸入。 開(kāi)發(fā)語(yǔ)音應用程序需要做些什么 要創(chuàng )建 VoiceXML 應用程序,您需要開(kāi)發(fā)下列相關(guān)部件: - VoiceXML 和腳本編制(ECMAScript)
- 語(yǔ)法
- 發(fā)音
在相當長(cháng)的一段時(shí)間里,語(yǔ)音應用程序都顯得很神秘。它們曾像魔法一樣,在這種應用程序中,做任何比“按一或說(shuō)一”更有用的工作都需要博士們的共同努力。實(shí)現使語(yǔ)音 Web 應用程序象 HTML 應用程序一樣容易、一樣普及這個(gè)目標是一個(gè)很大的挑戰,因為計算機系統的語(yǔ)音界面不象可視的屏幕、鍵盤(pán)和鼠標的形態(tài)那樣直觀(guān)。 雖然也是 WebSphere? 產(chǎn)品系列的一部分,IBM WebSphere Voice Toolkit(以下稱(chēng)為 Voice Toolkit)卻是一個(gè)獨立的工具箱,專(zhuān)門(mén)用來(lái)為 IBM 語(yǔ)音中間件開(kāi)發(fā)語(yǔ)音應用程序的所有組件。下面圖 2 中顯示的 Voice Toolkit 界面與其他的 Web 工具箱外觀(guān)相似。這種設計使得開(kāi)發(fā)語(yǔ)音應用程序與創(chuàng )建可視應用程序很相似。除支持新的以 Web 為中心的 VoiceXML 編程模型外,Voice Toolkit 還支持使用其他 IBM 語(yǔ)音中間件產(chǎn)品(比如 IBM DirectTalk)的傳統語(yǔ)音應用程序所需的元素。 圖 2. IBM WebSphere Voice Toolkit 界面
您可能有(也可能沒(méi)有)一個(gè)可視的 Web 站點(diǎn),或者您已經(jīng)做過(guò)一些語(yǔ)音應用程序方面的工作。 最后,您需要一個(gè)面向項目的工具箱來(lái)幫助您開(kāi)發(fā)這些不熟悉的組件(比如語(yǔ)法和詞典及其他組件、更傳統的 Web 邏輯,比如 servlet、bean 和 JSp。 圖 3. 編寫(xiě)一個(gè)語(yǔ)音 Web 程序的步驟
上面的圖 3 顯示了編寫(xiě)一個(gè)語(yǔ)音 Web 程序的步驟。下面的示例演示了這些步驟。我們假設您想編寫(xiě)一個(gè)啟用語(yǔ)音的飲料選擇器程序。您想做的第一件事將是提供一種方法,讓用戶(hù)說(shuō)出他們想要的飲料。一旦收集好了飲料名,就把它們作為 Web 地址(比如 http://www.myserver.com/servlet/getdrink?drink=‘soda‘)提交給服務(wù)器,該服務(wù)器最后用標記進(jìn)行響應,告訴語(yǔ)音瀏覽器顯示(在這種情況下,是說(shuō)出)事務(wù)結果,并提供其他的導航選項。本文包含這種語(yǔ)音應用程序的部件清單,但您首先想知道的是這個(gè)選擇器的設計流以及不同的組件如何交互。 在任何與用戶(hù)進(jìn)行交互的程序中,您首先應該做的都是繪制流的示意圖或串連圖板,或者與用戶(hù)進(jìn)行對話(huà)。這一步列出用戶(hù)的輸入、結果輸出以及應用程序流的始末。在這種情況下,您想為用戶(hù)提供一種方法,讓他們說(shuō)出自己想要的飲料。輸入不管是可視的(鍵入)還是語(yǔ)音的(說(shuō))都沒(méi)關(guān)系。用戶(hù)指定一種想要的飲料,系統輸出相應的內容。這就是 VoiceXML 程序。VoiceXML 詳細說(shuō)明了瀏覽器在接受用戶(hù)輸入、調用服務(wù)器端邏輯、說(shuō)出輸出、調用前面所說(shuō)的服務(wù)器端邏輯以及執行向其他“VoiceXML”頁(yè)面或文檔的轉換時(shí)應該如何操作。 所以,相當簡(jiǎn)單,您指示 VoiceXML 說(shuō)“What would you like to drink?”,讓它接受某個(gè)輸入,并根據該輸入形成一個(gè)發(fā)往服務(wù)器的 Web 地址請求(比如 http://www.myserver.com/servlet/get-drink?drink=‘soda‘)。最后,服務(wù)器用標記進(jìn)行響應,告訴語(yǔ)音瀏覽器顯示(在這種情況下,是說(shuō)出)事務(wù)結果,并提供其他的導航選項。下面的清單 1 顯示了開(kāi)發(fā)過(guò)程的第一步。 在處理 VoiceXML 代碼時(shí),編輯器會(huì )突出顯示并塊選擇(blocking)代碼使您更方便閱讀,還會(huì )在您保存文件或(通過(guò)選擇適當的菜單項)發(fā)出請求時(shí)幫您檢查語(yǔ)法。Content Assist 功能部件還會(huì )幫助向您顯示哪些標記是有效的以及它們的位置。Voice Toolkit 最強大的功能是它的交叉子系統(intersubsystem)鏈接。請回憶一下我們剛才說(shuō)過(guò),語(yǔ)音識別系統必須知道它們要識別或要說(shuō)的詞(特定是詞的發(fā)音)。 更精確地說(shuō)是,TTS 引擎可以比較準確地猜到你能拼寫(xiě)出的任何詞的發(fā)音,并將這種發(fā)音賦予該詞,但識別器卻必須有要識別的詞的發(fā)音。如果您有一個(gè)詞不在內建的詞匯表中,TTS 就可以合理地猜測這個(gè)詞該如何發(fā)音。但是,對于識別器來(lái)說(shuō)知道一個(gè)詞的正確發(fā)音是非常重要的。這是 Lexicon 子系統的一個(gè)功能,我們將簡(jiǎn)單地描述一下。編輯器(語(yǔ)法和 VoiceXML)對未知的詞做標志,并向您提供一個(gè)到 Lexicon 子系統的鏈接以幫助您構建發(fā)音并將其與應用程序存儲在一起。
點(diǎn)下面進(jìn)行(IBM Websphere Voice Toolkit 6.0 (語(yǔ)音應用程序))其他網(wǎng)站的高級搜索 中更多相關(guān)[IBM Websphere Voice Toolkit 6.0 (語(yǔ)音應用程序)]內容 |