首頁>>廠商>>IVR系統(tǒng)平臺廠商>>Voxeo

基于VoiceXML的語音應用系統(tǒng)開發(fā)

2008/10/30

一、概述

  到目前為止,人們從Internet獲取各種資源時,還只能是借助計算機來實現(xiàn)。而實際上,電話具有比計算機更高的普及率,如果允許人們通過電話來訪問Internet的資源,那么這對于Internet的應用發(fā)展必將是一次質(zhì)的飛躍。在這類應用前景的驅(qū)動下,VoiceXML [1] 標準被提出來了,它是由World Wide Web Consortium (W3C)制定的,目前最新版本為2.1。

  VoiceXML使得用戶可以通過電話按鍵或語音來訪問Internet上的各種資源,它是語音瀏覽技術(shù)以及語音互聯(lián)網(wǎng)的核心。 VoiceXML為語音應用領(lǐng)域展現(xiàn)了一個廣闊的未來,用VoiceXML開發(fā)的語音應用系統(tǒng),不僅可以完全代替?zhèn)鹘y(tǒng)CTI(計算機電話集成) 系統(tǒng)所能提供的功能,而且還可以使應用系統(tǒng)開發(fā)過程極其簡單快捷、系統(tǒng)有極高的可擴展性、可維護性、可移植性、可重用性和開放性,在語音門戶、語音呼叫中心(Call Center) 、語音信息服務(wù)、語音電子商務(wù)等領(lǐng)域有著廣泛的應用。

  本文通過編寫一個簡單的自動語音識別程序來試圖讓讀者對VoiceXML語言的一些基本概念和基于VoiceXML的語音應用系統(tǒng)的基本構(gòu)成有一個大致的了解。該示例程序已經(jīng)部署在http://evolution.voxeo.com。讀者可以在電腦上通過Skype客戶端(免費)或者傳統(tǒng)的電話(收費)運行該文中的示例程序。

二、VoiceXML技術(shù)簡介

  VoiceXML(語音可擴展標記語言)是用來描述語音對話過程的標記語言。其定義了如何使用語音識別、語音合成、互聯(lián)網(wǎng)訪問、數(shù)據(jù)庫訪問、語音文件播放、DTMF按鍵識別等功能開發(fā)一個完整的語音應用系統(tǒng)。 與HTML/XML標準類似,VoiceXML也是一種基于文本的腳本語言。

  就象程序員可以使用HTML/XML語言開發(fā)WEB應用程序,從而把文字和圖片等信息以網(wǎng)頁的方式提供給用戶類似,程序員可以使用VoiceXML語言開發(fā)基于語音的應用程序,從而把用戶需要的信息以語言的形式提供給用戶。 用戶可以通過VoIP終端或者傳統(tǒng)電話來訪問這類應用程序從而得到想要的信息(如天氣,股市,定位等)。和用戶訪問WEB頁面時需要通過鍵盤輸入想要查詢的內(nèi)容不同,用戶訪問基于 VoiceXML的語言應用時可以通過“說話”來獲取想要的信息。執(zhí)行VoiceXML語言的VoiceXML服務(wù)器負責把用戶的語音轉(zhuǎn)換成文字(自動語音識別)進行搜索并把搜索到的結(jié)果以語音的方式“讀”給用戶(語音合成輸出)。下圖(圖一)顯示了基于VoiceXML的語音應用和基于HTML的WEB應用的相似和不同。

圖一、VoiceXML應用和WEB應用的比較

下圖(圖二)展示了基于VoiceXML的語音應用系統(tǒng)的基本架構(gòu):

  文檔服務(wù)器(WEB Server):用于存放VoiceXML腳本文件(或者根據(jù)由VoiceXML Server發(fā)過來了HTTP請求自動生成VoiceXML腳本),和事先錄制好的音頻文件等一切有關(guān)的文檔。 VoiceXML Server通過HTTP請求從該文檔服務(wù)器獲取各種需要的文件。

  VoiceXML 服務(wù)器(VoiceXML Gateway):用于接收和識別用戶的輸入,解釋和執(zhí)行VoiceXML腳本文件,并把結(jié)果轉(zhuǎn)換成語音輸出給用戶。它一般具備下列組件:VoiceXML解釋器組件(VoiceXML Browser),呼叫控制組件(CCXML Browser),自動語音識別組件(ASR),語音合成組件(TTS)等。這些組件共同組成了VoiceXML的解釋和執(zhí)行平臺。

圖二、VoiceXML應用系統(tǒng)架構(gòu)

  和互聯(lián)網(wǎng)用戶通過鍵盤輸入某個WEB頁面的地址(URL)來訪問WEB應用類似,VoiceXML用戶通過電話或者VoIP終端撥打某個應用對應的電話號碼來訪問該應用程序(圖中的步驟1)。VoiceXML服務(wù)器收到用戶的呼叫后,根據(jù)用戶撥打的號碼去文檔服務(wù)器查找對應的VoiceXML文件(圖中的步驟2),通過HTTP請求把文件下載到本機執(zhí)行,根據(jù)特定應用的需要,VoiceXML服務(wù)器可能會發(fā)出多個HTTP請求獲取和應用有關(guān)的其他文件,比如需要播放的語言文件等(圖中的步驟3)。然后由 VoiceXML解釋器組件( VoiceXML Browser)解釋和執(zhí)行VoiceXML腳本語言并把結(jié)果轉(zhuǎn)換成語音傳送給用戶(圖中的步驟4)。在執(zhí)行過程中,用戶可能需要通過語音和VoiceXML服務(wù)器進行交互,比如菜單選擇或者對查詢結(jié)果進行過濾等。VoiceXML服務(wù)器通過呼叫控制組件(CCXML Browser),自動語音識別組件(ASR),語音合成組件(TTS)來實現(xiàn)這些交互。

  在VoiceXML系統(tǒng)中有兩種形式語音的輸出: 機器合成語音(TTS)和事先錄制好的語音文件。

  TTS ( Text-To-Speech) : 是由機器把文本轉(zhuǎn)換為數(shù)字語音格式,這種聲音聽起來會感覺有些機械和不自然,但是輸出內(nèi)容靈活,不受任何限制。

  事先錄制好的語音文件: 和TTS相比聽起來更自然,但是內(nèi)容受限制。在實際應用中往往把二者結(jié)合起來。

  VoiceXML系統(tǒng)中的輸入也有兩種形式: 自動語音識別 (ASR) 和雙音多頻鍵盤音(DTMF)。

  ASR (Automatic Speech Recognition) 是指計算機把用戶的語音自動識別成文字信息,便于計算機的進一步處理,從而使得用戶可以通過自然語言來控制計算機的執(zhí)行。

  DTMF (Dual Tone MultiFrequency) 則是用戶可以通過電話的按鍵進行輸入。

三、VoiceXML開發(fā)示例

  本文中的信息查詢例子演示了一個簡單的VoiceXML應用。該例子VoiceXML腳本中用到的所有的標簽如表1所示,表2是該例子的源代碼。圖四是該例子的呼叫流程。首先是用戶發(fā)起呼叫,應用程序通過計算機合成語音(TTS)告訴用戶所有的選擇項并等待用戶的響應。用戶的語音將由計算機根據(jù)語法標簽

  中定義的規(guī)則進行自動識別。如果識別成功,標簽中定義的變量“choice”被賦值。例如,如果用戶說出“weather”,則計算機會把字符串“weather” 賦值給“choice”。然后在標簽中定義的條件判斷語句會根據(jù)變量“choice”的值把相應的語音播放給用戶。如果用戶沒有響應,標簽被執(zhí)行并把“I didn’t hear you” 播放給用戶,然后提示用戶重新輸入(標簽)。同樣,如果用戶的語音沒有被識別,標簽 將被執(zhí)行并告訴用戶“I didn’t quite understand you” ,然后提示用戶重新輸入(標簽)。

表 1. 本示例中用到的VoiceXML 標簽

圖四:信息查詢例子呼叫流程圖

表 2. 信息查詢例子源代碼

<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
<form id="Choices">
<field name="choice">
<prompt>
Welcome to the Voice XML journey.
This tutorial demonstrates voice recognition.
Please choose from the followings:
to check the weather, say weather .
to check the stock quotes, say stock .
to get the direction information, say direction.
</prompt>
<grammar>
<![CDATA[ [
[weather dtmf-1]{<choice "weather">}
[stock dtmf-2]{<choice "stock">}
[direction dtmf-3]{<choice "direction">}
]
]]>
</grammar>
<noinput>
I didn't hear you. <reprompt/>
</noinput>
<nomatch>
I didn't quite understand you. <reprompt/>
</nomatch>
<filled>
<if cond="choice=='weather'">
<prompt>OK let's check the weather. Thank you. </prompt>
<elseif cond="choice=='stock'"/>
<prompt>OK let's check the stock quotes. Thank you. </prompt>
<else/>
<prompt>OK let's get the direction information. Thank you. </prompt>
</if>
</filled>
</field>
</form>
</vxml>

  該示例程序已經(jīng)部署在http://evolution.voxeo.com。讀者可以下列幾個途徑來執(zhí)行該示例程序:

  1. 通過Skype客戶端撥打號碼 +99000936 9992001335, 免費呼叫。

  2. 通過Xlite(一個免費的VoIP軟件)或者任何VoIP終端呼叫 sip:9992001335@sip.voxeo.net

  3. 通過手機或者固定電話撥打號碼 +1 407 459 1963(美國電話號碼,收費)。
  讀者可以訪問 http://docs.voxeo.com/voicexml/2.0/frame.jsp?page=learningvoicexml.htm 獲取更詳細的VoiceXML示例和教程,該網(wǎng)站也提供免費注冊,注冊后可以免費發(fā)布自己的VoiceXML應用和其他人共享(就象本文中的例子一樣)。

參考
[1]http://www.w3.org/TR/voicexml21/

CTI論壇編輯



相關(guān)鏈接:
Voxeo VoiceObjects 統(tǒng)一自服務(wù)提高滿意度 2009-09-23
Voxeo攜Prophecy10高度亮相SpeechTEK2009 2009-09-03
擁有中文TTS的Prophecy IVR語音平臺 2009-08-17
Voxeo發(fā)布開源的電話“云計算”服務(wù)平臺 2009-08-12
自助式語音平臺開發(fā)利器Prophecy Platform 2009-08-03

分類信息:  CTI平臺技術(shù)_與_交互語音技術(shù)  CTI平臺技術(shù)_與_voicexml技術(shù)  交互語音技術(shù)_與_voicexml技術(shù)