Voxeo Prophecy平臺(tái)開發(fā)VoiceXML應(yīng)用
2008/11/20
一、簡介圖1. 基于SIP的VoiceXML應(yīng)用典型結(jié)構(gòu)
一個(gè)簡單的VoiceXML頁面
如下示例VoiceXML頁面首先用話音提示主叫方:“What zip code would you like to
search?”,當(dāng)用戶說出“Three two eight zero one”或者按下一串?dāng)?shù)字(比如說32801#),ZIP變量獲取數(shù)值“32801”,并傳遞給鏈接地址http://ws.cdyne.com/WeatherWS/Weather
.asmx/GetCityForecastByZIP?ZIP=32801。最終由GetCityForecastByZIP腳本(實(shí)際上是一個(gè)Web
Service接口)來處理輸入和生成進(jìn)一步的VoiceXML頁面。如果有錯(cuò)誤或者用戶沒有按任何鍵,那么話音提示會(huì)一再重復(fù)。
<vxml version="2.1">
<form>
<field name="ZIP">
<prompt> Welcome to the Weather Lookup Tool!
What zip code would you like to search? </prompt>
</field>
<catch event="noinput error help">
Please enter the 5-digit ZIP code followed by the pound key.
</catch>
<block>
<submit next="http://ws.cdyne.com/WeatherWS/Weather.asmx/GetCityForecastByZIP"
namelist="ZIP"/>
</block>
</form>
</vxml>
圖2. VoiceXML語音瀏覽器操作
圖2顯示了SIP-VoiceXML瀏覽器的組件和操作狀態(tài)變遷:
1. 當(dāng)瀏覽器接收到一個(gè)新進(jìn)來的SIP呼叫后,它創(chuàng)建三個(gè)不同線程:RTP接收線程、RTP發(fā)送線程和VoiceXML解釋器線程。RTP接收線程從主叫方接收媒體數(shù)據(jù)包并調(diào)用DTMF檢測模塊;RTP發(fā)送線程將媒體數(shù)據(jù)包以流的方式發(fā)送給主叫方。一個(gè)單獨(dú)的發(fā)送線程幫助維護(hù)外出數(shù)據(jù)報(bào)的固定帶寬(比如針對(duì)G.711音頻的64
kb/s),而不考慮語音合成速度。初始的VoiceXML頁面地址可以預(yù)先配置在瀏覽器中,或者編碼到SIP請(qǐng)求。例如,如果主叫方撥打sip:dialog.vxml.http%3a//dialogs.server.com/script32.vxml@vxmlservers.com,那么該呼叫將到達(dá)運(yùn)行在vxmlservers.com上的瀏覽器,然后從script32.vxml取得初始VoiceXML頁面。
另一方面,如果request-uri是sip:7137@cs.columbia.edu,那么將用缺省的預(yù)先配置的初始VoiceXML
URL鏈接(比如會(huì)議服務(wù)的)去調(diào)用解釋器。
2. 解釋器線程使用初始URL呼叫XML parser。
3. XML parser從Web服務(wù)器或本地文件系統(tǒng)取得頁面(基于初始URL)。
4. XML parser將返回的XML文檔表示成一個(gè)樹結(jié)構(gòu)。
5. 解釋器線程在來自VoiceXML文檔的選定表單上調(diào)用表單解釋算法(Form Interpretation
Algorithm, FIA )。
6. FIA基于VoiceXML文檔內(nèi)容調(diào)用各種其它模塊。例如,它可以調(diào)用TTS SDK合成任何語音提示。
7. FIA也可以調(diào)用HTTP fetcher模塊取得外部語法文件,或者用于語音提示的媒體文件。XML parser通過其內(nèi)置HTTP客戶機(jī)取得VoiceXML頁面。
8. HTTP fetcher通過HTTP GET/POST方法來檢索文檔。
9. 使用HTTP fetcher從Web服務(wù)器檢索到的媒體文件被分段成交互式電話數(shù)據(jù)包,并且排隊(duì)等待發(fā)送線程以流的方式發(fā)送給主叫方。
10. 語音合成器(Speech synthesizer)輸出也分段和排隊(duì)發(fā)送到主叫方。
11. VoiceXML文檔可以在文檔的不同范圍指定語法規(guī)則。FIA可以基于VoiceXML頁面的當(dāng)前執(zhí)行范圍為匹配引擎設(shè)置活動(dòng)語法。
12. RTP接收線程接收RTP媒體數(shù)據(jù)包,并且調(diào)用DTMF檢測器。
13. 任何檢測到的DTMF數(shù)字被傳給語法匹配引擎。
14. DTMF按鍵可以通過多種方式從主叫方傳送到瀏覽器。一種方法是并不把它們從話音中區(qū)別開來,而是使用相同的音頻編解碼器對(duì)它們進(jìn)行編碼。但是低帶寬音頻編解碼器可能扭曲了帶內(nèi)DTMF按鍵的特性,導(dǎo)致它們難以檢測。第二種首選的方法是使用“電話事件”來攜帶數(shù)字碼而不是在RTP數(shù)據(jù)包中的編碼音頻。在第一種情形,瀏覽器必須做DTMF檢測,而第二種情況下,主叫方或網(wǎng)關(guān)必須做DTMF檢測。RTP接收模塊將電話事件直接轉(zhuǎn)發(fā)給語法匹配引擎。還有一種方法是在SIP
INFO消息中傳輸DTMF。
15. 語法匹配引擎嘗試把接收到的數(shù)字與任何活動(dòng)語法進(jìn)行匹配,并在找到匹配時(shí)通知FIA。
16. RTP發(fā)送線程定期把媒體數(shù)據(jù)包發(fā)給主叫方。在靜默時(shí)不發(fā)送數(shù)據(jù)包。
四、使用Voxeo Prophecy簡化VoiceXML應(yīng)用開發(fā)
通過使用Voxeo公司提供的Prophecy開放應(yīng)用平臺(tái),我們可以快速地創(chuàng)建、集成和部署VoIP應(yīng)用,它所提供的可視化Web界面設(shè)計(jì)工具可以使我們不必寫一行代碼,即可完成一個(gè)復(fù)雜而有趣的應(yīng)用。
首先要做的是花一些時(shí)間前往http://cn.voxeo.com/prophecy/,免費(fèi)下載一個(gè)Prophecy
8.0。安裝完成后,會(huì)在系統(tǒng)托盤區(qū)生成一個(gè)Voxeo Prophecy v8.0.221.3圖標(biāo),選擇Prophecy
Home,在打開的Voxeo Prophecy網(wǎng)頁中點(diǎn)擊Prophecy Designer即開始了我們創(chuàng)建VoiceXML項(xiàng)目的輕松之旅。該設(shè)計(jì)工具將整個(gè)VoiceXML應(yīng)用以圖表或樹狀結(jié)構(gòu)直觀地呈現(xiàn)給開發(fā)者,可以方便地控制和修改其交互流程,如圖3所示。
圖3. Prophecy可視化設(shè)計(jì)工具
項(xiàng)目設(shè)計(jì)完成后,我們需要發(fā)布它,只須簡單地點(diǎn)擊左下角的Publish鏈接即可。每次發(fā)布項(xiàng)目后,都會(huì)生成一個(gè)新的版本,我們可以通過Project菜單的Project
Settings查看所有版本。
接下來,我們可以把這個(gè)項(xiàng)目映射成一個(gè)IVR應(yīng)用了。在先前打開的Voxeo Prophecy網(wǎng)頁中,點(diǎn)擊Administration鏈接,打開一個(gè)Management
Console頁面,點(diǎn)擊Call Routing,為我們的應(yīng)用選擇一條映射路徑,比如說Route ID為“vxml”,在Route
Type字段選擇“Designer”,App Name選擇項(xiàng)目名稱(比如“Weather Lookup”),滾動(dòng)到頁面底部,點(diǎn)擊Save
Changes按鈕保存。
最后,交卷的時(shí)刻到了,我們的應(yīng)用到底能不能用呢?讓我們來測試一下。打開Prophecy自帶的SIP Phone,如圖4所示,給sip:vxml@127.0.0.1撥號(hào)。當(dāng)我們聽到揚(yáng)聲器傳來“Welcome
to the Weather Lookup Tool...”,Prophecy沒有令我們失望,我們已經(jīng)擁有一個(gè)免費(fèi)的“天氣播音員”了,我們只要告訴它想查找的城市的五位郵政編碼(比如“10027”),就可以收聽紐約市的天氣情況了。當(dāng)然,本示例項(xiàng)目實(shí)現(xiàn)的是美國的城市天氣播報(bào),讀者完全可以在其基礎(chǔ)上,實(shí)現(xiàn)中國的城市天氣預(yù)報(bào)。
圖4. Voxeo SIP Phone
獨(dú)樂樂不如與眾樂樂,讀者是不是很想與自己的朋友分享這個(gè)成果呢?沒有問題,Voxeo替您考慮到了,它提供了免費(fèi)的開發(fā)人員門戶,您只要訪問http://evolution.voxeo
.com/,免費(fèi)注冊一個(gè)帳號(hào),就可以象使用Prophecy一樣,方便地將您的應(yīng)用搬到該站點(diǎn)上,Voxeo自動(dòng)給您的應(yīng)用映射開通了各種通過Internet或傳統(tǒng)電話進(jìn)行訪問的途徑。本文的美國城市天氣查找(Weather
Lookup Tool)應(yīng)用已經(jīng)部署在上面了,讀者可以通過以下幾種途徑來執(zhí)行它:
CTI論壇編輯
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 |