基于OpenVXI的IVR系统的设计与实现

时间:2022-04-15 07:34:30

基于OpenVXI的IVR系统的设计与实现

摘要:交互式语音应答(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)是从AT&T的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,使平台可以通过和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="/2001/vxml">

menu dtmf="true">

prompt timeout="10s">

业务咨询请按1,业务查询请按2,投诉申告请按3,业务受理请按4

/prompt>

choice next ="localhost/voicexml/inquery.xml"/>

!--用户按"1",转到业务咨询文档-->

choice next =" localhost/voicexml/query.xml ">

!--用户按"2",转到业务查询文档-->

choice next =" localhost/voicexml/appeal.xml ">

!--用户按"3",转到投诉建议文档-->

choice next=" 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]. /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]. /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.

上一篇:网络课件中声音的应用与处理 下一篇:C语言课程的教学初探