語音門戶

語音門戶是建立於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方式得語音識別

相關詞條

熱門詞條

聯絡我們