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

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

2008/10/30

一、概述

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

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

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

二、VoiceXML技術(shù)簡介

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

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

圖一、VoiceXML應(yīng)用和WEB應(yīng)用的比較

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

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

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

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

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

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

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

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

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

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

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

三、VoiceXML開發(fā)示例

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

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

表 1. 本示例中用到的VoiceXML 標(biāo)簽

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

表 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。讀者可以下列幾個(gè)途徑來執(zhí)行該示例程序:

  1. 通過Skype客戶端撥打號(hào)碼 +99000936 9992001335, 免費(fèi)呼叫。

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

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

參考
[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語音平臺(tái) 2009-08-17
Voxeo發(fā)布開源的電話“云計(jì)算”服務(wù)平臺(tái) 2009-08-12
自助式語音平臺(tái)開發(fā)利器Prophecy Platform 2009-08-03

分類信息:  CTI平臺(tái)技術(shù)_與_交互語音技術(shù)  CTI平臺(tái)技術(shù)_與_voicexml技術(shù)  交互語音技術(shù)_與_voicexml技術(shù)
康保县| 长乐市| 宜宾市| 五华县| 勐海县| 如皋市| 吴旗县| 黔江区| 嘉荫县| 马关县| 蚌埠市| 延庆县| 莱州市| 大安市| 抚顺县| 盈江县| 年辖:市辖区| 三明市| 江永县| 富民县| 苍溪县| 基隆市| 乌恰县| 兰溪市| 青铜峡市| 宁海县| 西乌| 仙桃市| 周至县| 肇源县| 霍邱县| 桐城市| 衡东县| 仁化县| 嵩明县| 株洲县| 界首市| 顺昌县| 航空| 新巴尔虎右旗| 阿尔山市|