基于VoiceXML技术的可视化IVR系统设计和实现(一)
上海易谷网络科技有限公司 查玮 2009/09/22
摘要图2.1 可视化建模工具总体框架图
根据总体框架,可视化建模工具开发环境主要包括以下两个方面的研究:
(1)可视化建模语言的描述方法;
(2)目标编辑器的配置和实现。
2.1.2 可视化建模语言描述方法
可视化建模语言的描述方法是总体框架的基础。分为三个部分:
1.语素—语素是最小的语法单位,可视化语言的语素表现为图元符号(本文中不再区分语素和图元)。
2.语法—语法定义了图元符号之间的关系,包括两个部分:抽象语法和具体语法。抽象语法定义图元之间逻辑连接关系;具体语法定义图元外观的类型以及图元之间几何位置关系。
3.语义—语义表明了图元符号和连接关系的含义,是模型的具体含义。
目前,大多数可视化建模语言描述的研究主要是针对语法描述研究,描述方法主要有基于文法的形式化描述、基于逻辑的形式化描述 、基于代数的形式化描述和基于规则的半形式化描述方法[12]。一般分为两大部分:基于规则的语法形式化描述和基于元模型技术的静态语义描述。
(1)基于规则的语法描述方法(RGVL,Rule-based Grammar Visual Language)
基于规则的可视化建模语言描述方法(RGVL)具有如下优点:
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”:
域(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设计和实现(四)
作者独家提供CTI论坛稿件,其它媒体谢绝转载
CTI论坛编辑
上海易谷与Genesys达成大中华区长期合作伙伴关系 2009-04-17 |
联络中心与3G应用 2009-04-09 |