首页>>厂商>>CTI系统平台厂商>>易谷网络

基于VoiceXML技术的可视化IVR系统设计和实现(一)

上海易谷网络科技有限公司 查玮 2009/09/22

摘要

  为了缩短交互式语音应答(IVR: Interaction Voice Response)系统流程开发周期,克服传统IVR系统业务流程编写复杂的困难,同时与VoiceXML技术相结合,本文设计并实现了基于VoiceXML技术的可视化IVR系统。

  本文设计的IVR系统,将整个系统分为流程编辑工具、含有VoiceXML标签的Web页面和执行引擎三个部分,完成了总体框架及其核心部分的设计与实现。本文研究了可视化技术的现状和理论,并对传统IVR系统流程编辑工具做了分析与对比,并在此基础上,从灵活、方便以及友好的用户界面的设计原则出发,对IVR系统的流程工具进行了详细的设计与实现。然后,在分析当前Web技术发展的情况下,本文与企业数据业务紧密结合,提出了将业务流程类比成企业门户网站的解决方案。该方案结合OpenVXI开源项目,使用VoiceXML技术,设计并实现了IVR系统的执行引擎。

关键词: 交互式语音应答 可视化系统 VoiceXML

第一章 绪论

  1.1 研究背景

  呼叫中心(Call Center,又称客户服务中心)起源于发达国家对服务质量的需求,其主旨是通过电话、传真等形式为客户提供迅速、准确的咨询信息以及业务受理和投诉等服务,通过程控交换机的智能呼叫分配、计算机电话集成、自动应答系统等高效的手段和有经验的人工坐席,最大限度地提高客户的满意度,同时自然也使企业与客户的关系更加紧密,是提高企业竞争力的重要手段[1]。

  IVR(Interaction Voice Response,交互式语音应答)系统是整个呼叫中心的系统的最前端,它的质量直接影响到整个系统的稳定性。在整个呼叫中心运行过程中,IVR系统的业务流程也在随着客户体验和业务功能需求发生着改变,因此,如何对业务流程方便快捷的修改成了IVR系统必不可少的功能显得尤为重要。相对于传统的脚本式的编辑方法显然不能很好的适应这样的变化,所以可视化的配置方式呼之欲出,应用可视化的业务流程编辑界面可以很好与用户交互,减轻了用户的工作量,同时达到方便快键的目的。

  同时,随着IVR系统的发展,其与企业的数据业务结合的越来越紧密。而传统的IVR系统相对于企业后台数据业务服务相对隔离,而且大多数的IVR产品都不能很好的与企业的业务系统对接,或者是使用了比较繁冗复杂的方法,既浪费了资源,又影响了系统的稳定性。VoiceXML技术的出现,使语音业务与数据业务得到了统一,节省了资源,用户在访问语音业务的时候也可以方便的访问到数据业务。

  1.2 国内外研究现状与应用前景

  1.2.1 可视化技术的发展现状和应用前景

  可视化语言技术比一维文本语言在描述软件组成方面具有优越性.由于图表和图形概念在系统建模中的广泛使用,可视化语言可以应用于需求分析、设计、测试和维护等软件开发的各个阶段[2]。

  可视化建模语言简称可视化语言,是采用图形方式对系统/软件进行描述的语言,如目前广为流行的统一建模语言UML、传统的数据流语言和工作流建模语言等,它具有直观、便于理解的优点。可视化建模工具为可视化建模语言的使用提供了工具支持,目前可分为两大类:自由编辑型和语法制导型。自由编辑型允许用户随意建模,相当也图形编辑器,如Microsoft(微软)公司的Visio;语法制导的可视化建模工具在编辑过程中自动引导用户建立语法正确的可视化模型,有利于用户对可视化建模语言的掌握和使用,有着广泛的使用范围。

  对于自由编辑型可视化建模工具,在国际市场上,Microsoft公司的Visio和Rational公司的Rose的产品比较有影响和代表性。

  Visio是当今最优秀的办公绘图软件之一,它将强大的功能和简单的操作完美地结合在一起。使用Visio,可以绘制业务流程图、组织结构图、项目管理图、营销图表、办公室布局图、网络图、电子线路图、数据库模型图、工艺管道图、因果图、方向图等,因而,Visio被广泛地应用于软件设计、办公自动化、项目管理、广告、企业管理、建筑、电子、机械、通信、科研和日常生活等众多领域。

  Rational Rose [3]是一个完全的,具有能满足所有建模环境(Web开发,数据建模,Visual Studio 和 C++)需求能力和灵活性的一套解决方案。Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。

  语法制导型的编辑器自动生成技术的研究成果主要有GENGED[4]、PROGRES[5]、MetaEdit+[6];国内的研究相对较少,从目前所发表的研究成果看,只有北航软件工程研究所研制的SGEG 系统[7]。以上研究主要基于自动生成器的思想,由于在不同程度上缺乏对语言描述能力、语言解析效率、生成的目标编辑器的灵活性和可扩展性等方面的综合考虑,所以实用性较弱。

  1.2.2 VoiceXML技术的发展现状与应用前景

  VoiceXML(语音可扩展标记语言)的出现最早可以追溯到1995在AT&T公司开发的基于XML的电话标记语言(PML)。随后,AT&T、Lucent Technologies以及Motorola公司分别各自着手开发自己的类似于PML的语音标记语言。到了1998年,W3C(world wide web consortium)组织的“语音浏览器”会议上,AT&T和Lucent Technologies分别展现了他们各自的类同PML的标记语言、Motorola和IBM公司分别推出VoxML[8]和SpeechML[9]、HP和PipeBeach公司也分别推出TalkML[10]和VoiceHTML[11]。AT&T、IBM、Lucent Technoglies、以及Motorola随后成立了VoiceXML论坛,其目的是为了建立一个语音对话应用系统的国际标准。到了2000年,AT&T、IBM、Lucent Technologies、以及Motorola通过W3C协会联合推出语音可扩展标记语言VoiceXML1.0。该标准一经推出,便得到相关行业众多公司的响应。经过两年多的论证和实际系统验证,VoiceXML2.0最终草案在2003年推出。用VoiceXML开发的语音应用系统,不仅可以完全代替传统CTI(计算机电话集成) 系统所能提供的功能,而且还可以使应用系统开发过程极其简单快捷、系统有极高的可扩展性、可维护性、可移植性、可重用性和开放性。其定义了如何使用语音识别、语音合成、互联网访问、数据库访问、语音文件播放、DTMF输入等功能开发一个完整的语音应用系统。

  1.3 论文研究内容

  随着现代呼叫中心的发展,IVR系统的业务流程也愈趋复杂,在设计过程定义工具的时候简化操作的复杂性,提高产品的易用性是首先应当考虑的。所以图形化的过程定义工具显得尤为必要。同时,人们在呼叫中心业务中,对于语音和数据业务相结合有了强烈的愿望,VoiceXML很好的解决了这个难题,其技术也在这几年有了长足的发展,使得语音和数据业务有了一个良好的耦合。

  为了实现简单、易用能和数据业务良好整合的IVR系统,本课题围绕以下几项主要工作展开研究:

  1.可视化的基本概念的研究。具体的研究内容包括:可视化技术的定义,可视化建模语言的描述方法,阅读并分析了大量有关可视化技术的资料及学术论文,对可视化技术的概念、特点进行详细的讨论和分析;

  2.可视化的过程定义工具的研究。具体的研究内容包括可视化过程定义工具的体系结构和过程定义工具的详细设计和实现;

  3.VoiceXML技术的基本概念的研究。具体的研究内容包括:VoiceXML的概述,VoiceXML的基本体系结构和其在IVR系统中的简单应用;

  4.基于VoiceXML的执行引擎的研究。具体的研究内容包括:执行引擎的体系结构的总体分析以及基于OpenVXI开源项目的执行引擎的设计和实现。

  1.4 本文结构

  本文共分六部分,具体的内容组织如下:

  第一章:绪论。给出课题的研究背景,提出论文的目标、意义和主要研究内容;

  第二章:相关技术研究。第一部分,可视化技术概述。介绍了可视化技术的定义和建模语言描述方法等。第二部分,VoiceXML技术。介绍了VoiceXML技术的原理和在IVR系统的应用;

  第三章:基于VoiceXML技术的可视化IVR系统分析和设计。首先分析了IVR系统的具体需求,提出了系统总体架构,分别论述了流程定义工具和执行引擎的详细设计;

  第四章:基于VoiceXML技术的可视化IVR系统实现。重点介绍了过程定义工具及执行引擎的实现;

  第五章:IVR系统的应用及测试。给出了本问设计的系统的一个具体应用,并且给出了测试结果;
  
  第六章: 结束语。总结了本文工作所取得的成果,并对下一步工作提出了展望。

第二章 相关技术研究

  由于IVR系统在呼叫中心系统中的前置性和必要性地位,同时IVR系统相关技术也引起了很高的关注。近年来,随着软件开发技术的日新月异,IVR系统相关技术也在不断发展和完善,下面扼要的介绍一下IVR系统相关的可视化技术和VoiceXML技术的研究现状和进展。

  2.1 可视化技术综述

  2.1.1 可视化技术的研究

  可视化建模工具的开发,其总体思路是利用模型驱动的方法,通过模型到代码、模型到语言配置文件的自动映射,同时通过配置目标编辑器,实现可视化语言编辑器的自动生成。自动生成结合配置技术不仅使可视化语言编辑器的开发效率更高,而且更具灵活性。

  总体框架分为三个部分(见图2.1):

  1.模型,主要包括对目标语言(即可视化语言)的描述;

  2.转化模块,将模型描述的信息转化为代码和语言配置文件;

  3.目标编辑器的配置和自动生成,其基本设计思想是将所有可视化语言编辑器都共有的部分和变化的部分分离,由基础框架实现共有部分,而变化部分采用自动生成和系统配置的方法实现。

  因此目标编辑器由“可视化语言编辑器框架+语言构件+编辑器配置项”构成。可视化语言编辑器框架是目标编辑器的核心驱动部分,不涉及与任何目标可视化语言相关的代码;语言构件包含了与目标可视化语言相关的目标代码;配置项描述了对可视化语言和编辑器的定制。

图2.1 可视化建模工具总体框架图

  根据总体框架,可视化建模工具开发环境主要包括以下两个方面的研究:

  (1)可视化建模语言的描述方法;
  (2)目标编辑器的配置和实现。

  2.1.2 可视化建模语言描述方法

  可视化建模语言的描述方法是总体框架的基础。分为三个部分:

  1.语素—语素是最小的语法单位,可视化语言的语素表现为图元符号(本文中不再区分语素和图元)。

  2.语法—语法定义了图元符号之间的关系,包括两个部分:抽象语法和具体语法。抽象语法定义图元之间逻辑连接关系;具体语法定义图元外观的类型以及图元之间几何位置关系。

  3.语义—语义表明了图元符号和连接关系的含义,是模型的具体含义。

  目前,大多数可视化建模语言描述的研究主要是针对语法描述研究,描述方法主要有基于文法的形式化描述、基于逻辑的形式化描述 、基于代数的形式化描述和基于规则的半形式化描述方法[12]。一般分为两大部分:基于规则的语法形式化描述和基于元模型技术的静态语义描述。

  (1)基于规则的语法描述方法(RGVL,Rule-based Grammar Visual Language)

  基于规则的可视化建模语言描述方法(RGVL)具有如下优点:

  1. 规则的解析效率高;

  2. 规则容易理解和书写;

  3. 描述能满足当前大多数的可视化建模语言需求。


  RGVL采用一组规则来定义图元与图元之间的逻辑关系,并利用一组规则来描述图元的位置关系等几何信息。该描述方法形式上可以定义为一个三元组:
          
              G={p,AG,CG}           式(2-1)

  G 为可视化建模语言的语法,其中,
  p:为一个有穷的图元集合。形式表示为:
  P={P/P为可视化建模语言中的基本图元类型} 例如,UML类图中的类和关联类可以表示为:

             P{Class,Assiciaion}       式(2-2)

  AG:抽象语法规则集合。形式表示为:

         AG={r/r(p1,p2,n)p1€p,p2€p,n为自然数}   式(2-3)

  r 为图元之间的连接关系, r 可以为Connection_from 和Connection_to 两种类型的关系, n表示连接的势(多重性); *表示无穷; Connection_from表示从p2 连接到p1 ,p1为当前图元;Connection_to 表示从p1 连接到p2 , p1为当前图元。例如,在UML关联关系的定义中,为了表示关联关系与类之间的抽象语法关系,可以书写如下的规则:

        AG={Connection_to(Class,Associalion,*),
        Connection_from(Class,Associalion,1)}     式(2-4)

  表示类图元可以连接多个关联关系,每个关联关系必须连接到一个类图元。

  CG:具体语法规则集合。形式表示为:

           CG={(p,render,lsyout)/p€P,render€R.layout€C}  式(2-5)

  R是图元外观类型的集合,L是图元位置关系的集合。例如,

           CG={Class.MutiTextViz,AtLocation Layout} 式(2-6)

  公式(2-6)表示类图元具有带有多个文本框的外观类型和指定位置放置图元的位置关系定义时,为了增强可扩展行,定义了用户自定义类型(在实现时,定义了相关的编程接口使得用户可以自定义外观和图元位置关系)。

  (2)基于元模型的静态语义描述方法(MSS)

  将传统的语义分为两个部分:静态语义和动态语义。静态语义表示图元符号的属性信息,是可视化建模语言中一个重要组成部分。通过扩展元模型MOF(Meta Object Facility)技术对静态语义进行定义。MOF是对象管理组织定义的一个用于在平台无关方式下,定义、使用和集成元数据以及数据的模型驱动框架[13]。

  利用MOF元模型对可视化建模语言的静态语义进行描述时,MOF的表达能力还不足以满足完整地描述可视化建模语言的语素(图元)的静态关系和操作关系,扩展了MOF中的关联关系,在关联中增加标签值来专门说明该关联与其它关联之间的关系,提出了基于MOF的静态语义描述方法称为MSS(MOF-based Static Sematic)。该方法可以定义为一个三元组:

               MSS={m,Rs,Rop}         式(2-7)

  MSS为可视化建模语言的静态语义,其中,M:为扩展的MOF的静态语义模型。可表示为

               M=CssURss           式(2-8)

  Css表示元类的集合, Rss表示元类之间的关系集合。在Rss 中使用的是扩展后的关联关系,可以定义关联之间的关系。

  Rs:为图元与静态语义模型中元类的静态关系。可表示为

               Rs={(p,c)/p€P,C€Css}      式(2-9)

  公式(2-9)中 p为语素集合, Css为元类集合。

  对于目标编辑器的配置和实现,主要是对可视化建模语言研究和分析后,根据实现的需要,同时考虑了解析能力和描述能力,定义了一套支持语义定义的可视化建模语言描述方法。

  2.2 基于VoiceXML的交互式语音应答

  2.2.1 VoiceXML概述

  VoiceXML是W3C用来制定通过对话访问Web的内容及其交互语音应答的传递标准。VoiceXML使公共电话网、语音处理技术以及互联网有机地结合为一体。它是一种域专用语言,定义了一系列的语音应用概念、元素及其对应的操作,能根据播放的音频文件、输出的文本语音、要录制和识别的语音以及所接收的按键音,连定义人和计算机之间的语音交互过程。

  VoiceXML希望通过交互式语音界面应用Web上已经存在的大量信息,同时希望能够将开发人员从最低级的编程和资源处理工作中解放出来。VoiceXML还能够利用人们已经非常熟悉的C/S,将语音服务和数据服务融合起来[14][15]。

  2.2.2 VoiceXML基本体系结构

  VoiceXML系统的基本结构如图2.2所示[16]。其中,文档服务器充当的是Web服务器的角色,他负责处理执行平台发送的请求文档,并与后台数据库进行交互,组织VoiceXML文档对该请求进行响应。
VoiceXML解析器上下文和VoiceXML解释器负责解析VoiceXML文件,控制执行平台。执行平台提供合成语音的输出(text to speech,TTS)、音频文件的输出、话音输入的识别(automated speech recognition,ASR)、DTMF输入识别、语音输入的录音、电话功能等[17]。

图2.2 VoiceXML的基本体系结构图

  VoiceXML语言规范的层次结构如图2.3[18]所示,层次从底向上依次升高。

图2.3 VoiceXML层次结构

  (1)Session。用户开始和VoiceXML解析器进行交互式标志一次会话(Session)开始,继续完成文档获取和处理,当用户、文档或者解释器要求退出时,这次Session结束。

  (2)Application。一个应用(Application)是指一系列文档共享一个相同的应用文档。当用户和一个应用中的文档交互时,它的应用根文档同时被加载;当文档跳转到的另一个文档也存在于同一个应用中,这时根文档不被释放当根文档被加载后它的变量可以被其他子文档使用。

  (3)Dialog和SubDialog。每个VoiceXML 文档都是一个交谈的有限状态自动机用户某时只能在一个会话状态Dialog ,它决定了下一个要执行的Dialog 执行时就是在Dialog 之间跳转。

  Dialog 分为两种Form 和Menu。Form定义了一系列Field项目用于交互,每一个Field 可以使用Grammar 语法指定允许输入的内容。Menu 提供给用户选择然后根据用户的选择跳转到指定的Dialog 中。

  SubDialog 类似于函数调用,它提供一种机制允许激活一个新的交互,等交互完成后返回到原先的交互中去。使用SubDialog 可以实现一个特定模块以便重复使用。

  (4) Grammar。每个Dialog 都有至少一个语法(Grammar)。语法包括两种:DTMF语法和语音语法。在机器导引方式中,只有当用户处于这个Dialog 中,该Dialog 的Grammar 才是有效的;在混合方式中,有些Dialog可以标记为即使当前用户不处于该Dialog 中,这个语法也是有效的。

  (5)Event。VoiceXML提供了一种Form-Filling机制来处理通常的输入,另外还需要处理一些事件。在有些情况下平台会抛出一些事件,例如用户无响应、超时或没有正确响应、请求帮助等。如果解释器发现语义错误,也会抛出事件。事件由Catch 元素来捕获并作相应的处理。

  2.2.3 在IVR系统中运用VoiceXML技术

  VoiceXML的推出给电话语音系统带来全新的应用和开发概念,使传统的CTI技术从繁琐、封闭的模式中走了出来,使广大的语音系统开发人员可以用极其简单的方法实现复杂系统的开发。同时VoiceXML技术突破地实现了互联网与电话网的融合,在以语音为核心的电话网络与以数据为核心的互联网络之间建立了良好的沟通“桥梁”。

  到目前为止,人们从Internet获取各种资源时,还只能是借助计算机来实现。而实际上,电话具有比计算机更高的普及率,如果允许人们通过电话来访问Internet的资源,那么这对于Internet的应用发展必将是一次质的飞跃。在这类应用前景的驱动下,VoiceXML 1.0标准被提出来了,目前最新版本为2.1[19]。

  VoiceXML使得用户可以通过电话按键或语音来访问Internet上的各种资源,它是语音浏览技术以及语音互联网的核心。 VoiceXML为语音应用领域展现了一个广阔的未来,用VoiceXML开发的语音应用系统,不仅可以完全代替传统CTI(计算机电话集成) 系统所能提供的功能,而且还可以使应用系统开发过程极其简单快捷、系统有极高的可扩展性、可维护性、可移植性、可重用性和开放性,在语音门户、语音呼叫中心(Call Center) 、语音信息服务、语音电子商务等领域有着广泛的应用。

  下面给出两个简单的例子说明VoiceXML在IVR系统的应用:

  第一个是“Hello world”:


  所有VoiceXML命令都封装在……之间。VoiceXML对话框用户描述脚本对用户输出的各种提示、定义和收集用户的响应,并且描述程序控制的流程。对话框分两种,分别是窗体(forms)和菜单(menus)。窗体输出信息并且收集输入,菜单提供下一步做什么选择。这个例子有一个单一的窗体,它包括一个快(block),该块合成并输出“Hello World!”。由于这个窗体没有后继的对话框,所以输出完“Hello World!”后,脚本结束。

  第二个例子要求用户选择一种饮料,并把用户的选择提交到服务器:


  域(field)用于输入。用户在处理窗体中下一个元素之前,必须为一个域提供相应的信息。以上脚本的一个交互例子如下:

C(computer):Would you like coffee, tea , milk, or nothing?
H(human) :Orange juice。
C:I did not understand what you said.
C:Would you like coffee, tea , milk, or nothing?
H:Tea
C:(continues in document drink2.jsp)

  通过这两个例子可以看到,VoiceXML使用非常简单。哪怕只是看几个例子,就可以掌握一些基本的使用方法;而且它的特点正好符合用户通过语音交互的业务特性,对声讯业务支持近乎完美。

  VoiceXML 2.0中共预定义了43个元素,按照功能可以分为文档对话有关、资源功能类、事件处理类。文档对话相关的元素主要实现信息表达、数据采集、变量赋值、条件控制、函数调用等功能;时间处理类元素主要实现产生、捕获时间的功能,可进行错误处理、超时处理、帮助处理等;资源功能类元素主要实现录、放音,TTS,ASR等与语音资源控制相关的功能,是对语音资源能提供功能的描述。

  2.3 本章小结

  本章首先阐述了可视化建模语言的总体框架,论述了可视化建模语言的描述方法。其次,介绍了VoiceXML技术的概念和基本体系结构,随后描述了在IVR系统中VoiceXML技术的简单应用。本章的内容将为基于VoiceXML的IVR系统图形化开发环境与执行引擎设计和实现提供理论基础。

基于VoiceXML技术可视化IVR设计和实现(二)

基于VoiceXML技术可视化IVR设计和实现(三)

基于VoiceXML技术可视化IVR设计和实现(四)

作者独家提供CTI论坛稿件,其它媒体谢绝转载


CTI论坛编辑



相关链接:
上海易谷与Genesys达成大中华区长期合作伙伴关系 2009-04-17
联络中心与3G应用 2009-04-09