複製鏈接
請複製以下鏈接發送給好友

語音門户

鎖定
語音門户是建立於XML 語言規範基礎之上,是一種應用於語音瀏覽的標記語言。利用VoiceXML可以建立基於WEB的語音應用和服務。本文簡要描述了VoiceXML規範及相關術語,並給出了一種基於VoiceXML的語音與數據集成模型,它主要由語音瀏覽器語音識別語音合成和VoiceXML網關等部分組成。
語音門户,可以方便地建立各種基於WEB的語音應用系統。關鍵詞 VoiceXML 集成 模型 語音瀏覽器1 引言隨着電子商務、客户服務等信息服務的普遍化,交互式語音應答系統(IVR ,Interactive Voice Response)在各種商業系統中的應用越來越廣泛。然而這種語音交互方式存在以下缺點:(1)移植性、靈活性差;(2)在實際系統上做應用開發的難度很大,特別是涉及到話音流程的編寫及調試問題;(3)無法綜合利用現在的WEB資源。而將IVR系統Internet化,可以增加系統可重用的機會,降低成本,這必將成為今後語音應用的一種主要趨勢。
另一方面,到目前為止,人們從Internet獲取各種資源時,還只能是藉助計算機來實現。而實際上,電話具有比計算機更高的普及率,如果允許人們通過電話來訪問Internet的資源,那麼這對於Internet的應用發展必將是一次質的飛躍。在這類應用前景的驅動下,VoiceXML [2] 標準被提出來了,它是由World Wide Web Consortium (W3C)制定的。利用這種技術,用户可以通過電話按鍵或語音來訪問Internet上的各種資源,它是語音瀏覽技術以及語音互聯網的核心。與XML標準類似,VoiceXML是一種基於文本的語言,它只定義了數據的存取方式,用户必須編寫程序,以便能解釋、生成、傳送VoiceXML文檔。VoiceXML為語音應用領域展現了一個廣闊的未來,在語音門户、語音呼叫中心(Call Center) 、語音信息服務、語音電子商務等領域有着廣泛的應用。而這些應用或服務可以很容易地和原有的數據系統結合起來,甚至可以輕易地從原有的各類應用中延展出來。使用VoiceXML的應用系統中,不要求用户學習複雜的高級語言,就可靈活擴充新業務。而無需再與開發商聯繫,重新定製開發,只需要編寫幾個VoiceXML頁面就可以實現新的業務流程。而且編制好的VoiceXML腳本可以隨時隨地加入到系統中,而不會影響系統的正常運行。本文簡要描述了VoiceXML規範及主要術語,給出了一個基於VoiceXML的語音與數據集成模型。該模型通過VoiceXML解釋器和瀏覽器訪問Internet上的VoiceXML文檔及數據庫,從而實現語音和數據的集成,達到了語音瀏覽的目標。2 VoiceXML規範2.1 結構模型VoiceXML的結構模型[2] 如圖1所示。主要包括文檔服務器、VoiceXML解釋器程序、VoiceXML解釋程序環境和執行平台組成。 圖1 VoiceXML 的結構模型文檔服務器,可以是一台WEB服務器,它處理VoiceXML解釋程序的請求數據包,文檔服務器產生VoiceXML文檔並送給VoiceXML解釋程序。解釋程序對文檔中的標識進行分離,產生相應的數據或動作命令,引導和控制用户與執行平台之間的交互作用。同時,VoiceXML解釋程序環境和解釋程序一起監控用户的輸入。比如,一個解釋程序環境可能監聽用户的操作幫助請求;另一個環境可能監聽用户請求更改音量或文本語音輸出的某些特性。執行平台是由解釋程序環境和解釋程序控制的,例如,在一個交互式的語音應答應用中, VoiceXML解釋程序環境能可靠地監測到呼叫,獲得初始的VoiceXML文檔,並且回答這一呼叫,在回答之後VoiceXML解釋程序引導這一對話。執行平台產生事件響應用户的動作(説話或者字符輸入)和系統事件(例如計時器溢出)。這些事件中的一部分依照相應的VoiceXML文檔按照VoiceXML解釋程序的解釋加以執行,其他的被VoiceXML解釋程序環境控制。執行平台提供字符和語音的輸入和音頻輸出,包括合成語音的輸出(TTS,text to speech)、音頻文件的播放、話音輸入的識別(ASR ,automated speech recognition)、DTMF按鍵的識別、語音輸入的錄音等。 2.2 術語VoiceXML中的基本術語[2]主要有: 會話和子會話(Dialogs and Subdialogs):會話用於描述應用程序對用户所説的各種提示,定義和收集用户做出的響應,並描述應用程序控制的流程。用户和應用系統用會話輪流進行交互。有兩種類型的會話:表格和菜單。表格負責執行會話定義中描述的所有操作,用於封裝用户的輸入和輸出相關的命令。在表格中,可以包含一些域,可以從表格中得到這些域的值。而每個域可以規定允許用户輸入的語法定義。菜單允許用户進行選擇,而進入到所選的對話中。一個子會話類似一個函數調用,它引起一個新的交互作用並且返回給上一層的表單。例如,子會話可以用於創建一個在數據庫查詢時需要的確認序列;創建在單一請求中的多個文檔共享的一批組件;或創建一個在多個請求中共享的可重用的會話庫。 會話(session):會話期從用户與VoiceXML解釋程序語境交互開始,持續進行文檔的裝載和處理,直到由用户、文檔或解釋程序環境發出終止請求才結束。 請求:一個請求就是一組共享同一個請求根文檔的文檔。在一個請求中,無論何時用户與文檔交互,請求根文檔總是被加載。請求根文檔被加載後,它的變量作為請求變量被其它文檔使用,而且它的文法在請求的持續時間一直起作用。當用户在同一個請求中的不同文檔間轉換時,請求根文檔總是被加載,只有用户轉換到別的請求中的文檔時,請求根文檔才被卸載。 文法(grammar):每一個會話有一個或多個語音和(或)DTMF文法。在定向對話應用中,一個會話的文法只有在使用者與此會話交互時才起作用。在混合主動式對話中,計算機和用户交替控制下一步的操作,一些會話被標記以使它們的文法(如偵聽呼叫)即使當用户在同一文檔的其它會話時也起作用。在這種情況下,如果用户進行的操作與另一個會話的有效文法匹配,執行就會轉移到另一個會話。 事件(Event):VoiceXML提供一種表單填充機制以處理"正常"的用户輸入。另外,VoiceXML也定義了處理異常事件的機制。如用户在一定時間內沒有作出應答,請求系統幫助等情況下平台會產生事件。如果解釋程序在VoiceXML文檔中發現語義性錯誤也會產生事件。 鏈接(Links):鏈接支持混合主動式對話,當用户在鏈接的作用範圍時它指定的文法就起作用。如果用户的輸入與鏈接的文法匹配,控制就轉移到鏈接的目的URI。<link>可以用來產生一個事件跳轉到目的URI。 應用(Applications): 一個應用是由許多有共同應用根的文檔組成。應用根在其中一個文檔激活時就被裝入,同時,在同一個應用的不同文檔之間跳轉時,根文檔仍然駐留在內存,只有當用户在不同的應用之間跳轉時,才會被棄。應用根文檔的變量和語法定義都可以被其中的文檔訪問。3 基於VoiceXML的語音與數據集成3.1 總體結構模型一個VoiceXML應用模型,如圖2所示。主要由以下幾個部分組成:VoiceXML網關,WEB服務器,數據庫服務器。各部分的功能介紹如下。 圖2 VoiceXML應用模型3.2 文檔結構及其執行過程VoiceXML以應用、會話期、文檔為單位建立應用結構,以會話為交互單位,逐個完成對話確定流程導向。<vxml>可以看作一個包含會話的容器,所有的VoiceXML文檔都是由一系列會話構成的。一組VoiceXML文檔之間可以互相跳轉,並且構成一個會話的有限狀態機。用户總是處於某一會話中,每一個會話決定要轉移到的下一個會話。轉移由URIs指定,URIs定義下一個要使用的文檔和會話。根文檔是一個VoiceXML程序的開始,其中可以包括form、script、var、grammars等元素。VoiceXML程序總是從元素form開始執行,當程序需要跳轉時,也是從一個form跳轉到另一個form。一般採用多文檔的應用結構,在一個應用中有一個根文檔,其他文檔中用<vxml>來引用。一個應用的例子,如下:Application root document (app-root.vxml)<?xml version="1.0"?><vxml version="2.0"> <var name="test" expr="'Man'"/> <link next="operator_xfer.vxml"> <grammar> <rule id="root" scope="public">operator</rule> </grammar> </link></vxml>Leaf document (leaf.vxml)<?xml version="1.0"?><vxml version="2.0" application="app-root.vxml"> <form id="say_hello"> <field name="answer" type="boolean"> <prompt>Shall we say <value expr="application.test"/>?</prompt> <filled> <if cond="answer"> <exit/> </if> <clear namelist="answer"/> </filled> </field> </form></vxml>一個VoiceXML的應用是一系列VoiceXML文檔的集合。而且每一個應用都包含一個“根文檔”,這有點像一個動態網站的default.asp或是index.asp。在VoiceXML應用調用的時候,“根文檔”始終被調用。 3.3 VoiceXML網關3.3.1 語音識別語音識別使計算機能理解用户的語音命令,產生相應的文字結果,送回VoiceXML解析程序做處理。在VoiceXML網關中,語音識別引擎為命令式的識別引擎,其根據有限的文法)來識別用户的語音信號,併產生對應語法定義的識別結果。在VoiceXML語音瀏覽器中,文法決定了用户能説什麼以及如何説。好的語法能帶給用户良好的交互感覺,也能從邏輯上提高語音識別引擎的識別率。VoiceXML網關中,語音識別不僅需要處理對用户語音信號的識別,同時也需要處理對用户按鍵的識別,按鍵和語音以同樣的機制被處理和傳遞。一個典型的語音識別流程[3]如圖3所示。 圖3 典型的語音識別流程可以針對軟件結構做一些調整[4],進行數據壓縮傳輸。如圖4是一個基於client/server方式的改進方法。 圖4 基於client/server方式得語音識別