摘要:交互式語音應答(IVR)系統是呼叫中心的重要部分,控制整個業務流程。OpenVXI是開源的VoiceXML解釋器。文章設計了一個基于OpenVXI的語音應答系統,并給出了核心部分的具體實現。
關鍵詞:OpenVXI;VoiceXML語音; 交互式語音應答; 呼叫中心
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2009)15-3942-03
Design and Realization of IVR System Based on OpenVXI
TAO Song1, WU Li-jie2
(1. Anhui Economic Information Center, Hefei 230001, China; 2. Anhui Electrical Engineering Professional Technique College, Hefei 230051, China)
Abstract: Interactive Voice Response System (IVR) is an important part of call center, it controls whole voice flow. OpenVXI is an open source VoiceXML interpreter. Interactive Voice Response System based on OpenVXI has been presented in this paper. Realization of core pan of system has been discussed in the paper.
Key words: OpenVXI; VoiceXML; Interactive Voice Response; Call Center
1 引言
隨著電子商務、客戶服務等信息服務的普遍化,呼叫中心作為電信領域備受關注的一個熱點,在各種商業系統中的應用越來越廣泛。但目前的呼叫中心系統只是CTI(computer telephony integration)技術在電話網絡中的應用 。而在呼叫中心對外開放的重要通道,自動語音應答平臺的實現上,仍然是采取傳統的方式,具有一定的局限性,存在獲取信息手段單一、組織信息能力差等缺點,為用戶提供的信息量較少,不能滿足人們日益增長的信息需求,限制了呼叫中心的發展。VoiceXML技術突破性地實現了互聯網與電話網的融合,它是跨接在以語音為核心的電話網絡和以數據為核心的互聯網絡兩者之間的一座橋梁 VoiceXML提供了一種通過語音設備便捷地訪問Internet網絡和獲得服務的手段,可以使不同系統集成商在統一的語言基礎上進行業務流程定義。VoiceXML以其突出特性,成為實現提供完全一體化服務呼叫中心的關鍵。業內人士認為,基于VoiceXML的呼叫中心是呼叫中心未來發展不可逆轉的方向。
OpenVXI是跨平臺支持VoiceXML的開源系統,由美國卡內基梅隆大學開發,它搭建了一個解析VoiceXML語言的框架,支持VoiceXML 2.0,VoiceXML 2.1標準。
本文提出了一種在OpenVXI平臺上實現的基于VoiceXML技術的交互式語音應答系統的設計方案。本方案用VoiceXML文檔取代了傳統的CTI流程設計機制,使得語音應答流程設計更加簡單,更加容易操作。
2 VoiceXML技術
VoiceXML( Voice Extensible Markup Language)是從ATT的PML (Phone Markup Language)和Motorola的VoxML語言發展而來的,由VoiceXML論壇制定。W3C己經把VoiceXML語言作為其語音瀏覽器的對話標識語言標準,當前發行版本是2.1。VoiceXML規范中使用的體系結構主要由以下四部分組成,如圖1所示。
1) 文件服務器(Document server):處理由“解釋器”經“解釋器語境”發送請求,產生VoiceXML頁面并回應給“解釋器”,由“解釋器”做進一步處理。
2) 解釋器(VoiceXML Interpreter):VoiceXML解釋程序是一個計算機程序,它解釋一個VoiceXML文件,引導和控制用戶與執行平臺之間的交互作用。
3) 解釋器語境(VoiceXML Interpreter Context):Voice XML解釋程序語境也是一個計算機程序,它在VoiceXML解析器工作時可以并行監聽用戶的輸人。
4) 實現平臺(Implementation Platform):實現平臺包含了與電話有關的硬件設備和一些CT資源,由“解釋器”和“解釋器語境”控制。它將針對用戶的動作和系統狀況產生事件(Event)。這些事件將被“解釋器”,或者“解釋器語境”處理。
3 IVR系統的設計與實現
系統通過解析VoiceXML,以提示音、按鍵等方式進行人機交互完成交互式語音應答流程,以OpenVXI3.4開源項目的VoiceXML Interpreter為核心,基于微軟語音識別系統(ASR)SpeechSDK,中科大訊飛語音合成(TTS)服務,實現了Recognize API, Prompt API, Telephony API。系統采用Java Servlet動態生成VoiceXML文檔,通過Tomcat Web Server與后臺的MySQL數據庫訪問,實現信息查詢。
3.1 系統架構
系統架構如圖2所示,系統以三層結構框架來設計:前端PSTN用戶、中間端的處理服務器與后端VoiceXML文檔構成。前端用戶經過PSTN,與VoiceXML Telephony service相接。而中間端主要是針對用戶的請求,如DTMF按鍵、語音輸入,將VoiceXML文檔剖析并轉為語音,并進行呼叫控制的VoiceXML服務器構成。后端則為放置在Web Server上提供業務服務功能的vxml文件及數據庫構成。
VoiceXML服務器是整個系統的樞紐部分,由負責解析VoiceXML文檔VoiceXML解析器以及實時顯示各個通路的狀態、連接語音和電話組建、資源管理組成。VoiceXML解析器負責VoiceXML的獲取和解析,以及與其它服務的交互。其主要任務是解析VoiceXML文檔并依據VoiceXML文檔的需要,協調Telephony、ASR、與TTS運作,達到系統所要求的功能。
3.2 關鍵技術實現
3.2.1 文檔解析技術
文檔解析模塊用以解析VoiceXML文檔,是整個平臺的核心。本文采用了OpenVXI 3.4作為VoiceXML文檔解析器。OpenVXI是VoiceXML平臺的一個組件,且提供了ASR語音識別,TTS語音合成和呼叫處理的功能接口,可使開發人員在不需要跟蹤VoiceXML語法體系的情況下,快捷地整合生成自己的系統。
OpenVXI包括VXI解釋模塊、網絡接口模塊、XML語法分析模塊、Javascript接口模塊、日志模塊以及一系列平臺需要實現的API,包括識別模塊接口、提示語模塊接口和電話模塊接口,如圖3所示。其中,VXI模塊是核心,負責解釋VoiceXML并主控業務流;XML Parser提供XML DOM解析能力,此處直接調用開放源碼Apache Xerces SAX and DOM parser APIs。它是一個第3方提供的XML通用解釋器。Internet模塊直接調用開放源碼W3C Libwww library,使平臺可以通過http://和file://方法獲得應用文檔,同時支持posting數據返回應用服務器。ECMAScript模塊提供ECMAScript執行能力,此處直接調用開放源碼Mozilla SpiderMonkey engine,一個解析JavaScript的第3方庫。Logging模塊負責報告錯誤、事件和診斷消息給系統操作員,并可以通過文件來存儲日志。
圖3中虛線以下部分是OpenVXI提供的API接口及其對應功能模塊。其中,電話接口模塊提供呼叫控制的服務,包括發送電話事件、電話轉接和掛斷呼叫等:提示語接口模塊提供完整的提示服務,支持音頻提取等。識別接口模塊提供語法管理和自動語音識別服務接口,包括動態語法構造和語法激活等;對象接口模塊是VoiceXML語言可擴展的部分,有一些平臺操作如傳真、座席功能在VoiceXML規范中并沒有顯式說明,這些功能可通過對VoiceXML的
object>標記進行擴展實現。
由于OpenVXI提供的只是一個VoiceXML語言解析的框架,所以上述各接口都是虛接口,還需要重載各模塊的接口函數,實現TTS、Telephony、ASR與解析器的集成。需要重載的接口函數主要包括Telephony接口的VXItelTransferBridge、VXItelTransferBlind和VXItelDisconnect等函數;Prompt接口的VXIpromptWait、VXIpromptQueue和VXlpromptPlay等函數;Recognition接口的VXIRecActivateGrammar、VXIRecRecord、VXIRecRecognizer等函數。
3.2.2 語音技術
平臺中需要用到的語音技術包括語音識別和語音合成技術,語音識別包括ASR和DTMF,語音合成包括TTS和語音轉換等。在語音識別中,當計算機收到用戶語音或按鍵,通過語音識別模塊產生識別結果,返回給VoiceXML解析器處理。當然,其中需要調用VoiceXML文件中的語法輔助識別;在語音合成中,可以將文本轉換成語音數據流,或者直接調用已錄制好的語音文件對語音通道進行放音。考慮到系統的通用性,在平臺集成中,采用微軟的語音處理引擎SpeechSDK5.1。
4 典型應用
以銀行客戶服務中心系統為例,利用VoiceXML來實現呼叫中心的語音業務邏輯,它的語音業務邏輯可分為根文檔、業務咨詢文檔、業務查詢文檔、投訴建議文檔及業務受理文檔。我們以根文檔和業務查詢文檔為例說明。
根文檔是用戶進人語音交互服務后首先執行的文檔。主要任務是提供給用戶可選擇的菜單,根據用戶的選擇進人相應業務文檔。具體實現:
?xml version=\"1.0\" encoding=\"UTF-8\"?>
vxml version=\"2.1\" xmlns=\"http://www.w3.org/2001/vxml\">
menu dtmf=\"true\">
prompt timeout=\"10s\">
業務咨詢請按1,業務查詢請按2,投訴申告請按3,業務受理請按4
/prompt>
choice next =\"http://localhost/voicexml/inquery.xml\"/>
!--用戶按\"1\",轉到業務咨詢文檔-->
choice next =\" http://localhost/voicexml/query.xml \">
!--用戶按\"2\",轉到業務查詢文檔-->
choice next =\" http://localhost/voicexml/appeal.xml \">
!--用戶按\"3\",轉到投訴建議文檔-->
choice next=\" http://localhost/voicexml/accept.xml \">
!--用戶按\"4\",轉到業務受理文檔-->
/menu>
/vxml>
系統應用程序可能對話如下:
用戶呼入,業務對話開始。系統:“業務咨詢請按1,業務查詢請按2,投訴申告請按3,業務受理請按4”。用戶鍵入2。系統:轉到業務查詢文檔。
可以通過Java Servlet動態生成不同的業務。通過此交互式語音應答系統解釋執行,可以快速、方便地開發不同的交互式語音應答業務。
5 結束語
IVR系統是呼叫中心的重要組成部分,本文討論了一種基于VoiceXML交互式語音應答系統的設計和實現,此系統可以不受具體業務的影響,具有很強的擴展性。下一步的工作重點就是對此系統進行優化,提高系統的吞吐性能以及系統的魯棒性,力爭早日把這個系統早日應用到實際的項目中。
參考文獻:
[1] 桑慶兵,須文波.基于CTI Builder技術的環保12369呼叫中心設計與實現[J].微計算機信息,2005(33):122-124.
[2] Voice Extensible Markup Language (VoiceXML) Version 2.0[EB/OL]. http://www.w3.org/TR/voicexml20/.
[3] 鄧鑒,劉鋒.呼叫中心盈利模式探討[M].北京:人民郵電出版社,2002.
[4] Kenneth J T.Analyzing interactive voice services[J].Computer Networks,2004,45(5):665-685.
[5] OpenVXI3.4[EB/OL]. http://sourceforge.net/projects/openvxi.
[6] 馬小明,薛賀,鄧正宏.基于VoiceXML的交互式語音應答(IVR)系統的設計與實現[J].微電子與計算機,2006,23(3):100-108.
[7] 崔健,吳芙,張建忠,等.VoiceXML語言解釋器的設計與實現[J].計算機工程,2005,31(22):95-97.
[8] Daniel M,Shi H.Voice user interface design for telephone application using VoiceXML[C]. Lecture Notes in Computer Science,2005:1058-1061.