移动业务咨询系统--用VoiceXML开发语音应用程序(转)
VoiceXML(Voice Extensible Markup Language)是一个新的XMLschema,用来制定通过语音对话访问Web的内容及其交互语音应答的传递标准,从面向应用的角度来说,也就是开发语音用户界面。本文通过设计一个移动业务咨询系统来说明整个应用程序的流程。
1 VoiceXML的起源
VoiceXML(Voice Extensible Markup Language)是一个新的XMLschema,用来制定通过语音对话访问Web的内容及其交互语音应答的传递标准,从面向应用的角度来说,也就是开发语音用户界面。1999年3月,由Motorola、Lucent、AT&T和IBM四家公司联合发起成立了VoiceXML论坛(http://www.VoiceXML.org/),其目的在于为电话和移动设备提供一种便捷的访问Internet网络,获取服务和信息的手段。2000年3月,VoiceXML论坛发布了VoiceXML 1.0标准。5月,W3C(World Wide Web Consortium)接受了VoiceXML1.0。W3C于2004年3月17日又新通过了VoiceXML2.0标准。目前,由于VoiveXml技术和语音技术的快速发展,国内外共有150多家公司支持VoiceXML,Motorola、Lucent等公司已开发出了基于VoiceXML的产品。语音技术不但让那些由于环境或生理限制无法使用图形化浏览器的人得以访问Web,也为所有的用户提供了更为便捷的Web访问功能。
2 VoiceXML的系统体系结构
VoiceXML2.0(包括1.0)规范基于W3C工业标准XML,为语音和电话应用的开发者,服务提供商和设备制造商提供了一个智能化的API。VoiceXML的标准将简化WEB上具有语音响音服务的个性化界面的创建,使人们能够通过语音和电话访问网站上的信息和服务,同时与CGI(PERL,PHP,C,JAVA SERVLET等)的脚本结合在一起来检索后台数据库,访问企业内部网,从而最终将语音浏览器与微型浏览器融合在一起,实现计算机网络与电话技术的完美结合。其具体系统结构如下:
图1 VoiceXML的WEB体系结构
从图中我们可以看出,同传统的INTERNET网站相比,在不需要太大的改动前提下,只要增加一个VoiceXML的服务器处理来自PSTN(公用电话交换网)的应用即可。在VoiceXML的服务器中,包含了VoiceXML的解释器(VoiceXML解释程序语境)、VoiceXML自带的浏览器、自动语音识别(ASR)及文本到语音(TTS)的转换设备。
由此看出,基于VoiceXML的语音服务平台主要由三部分组成:文档服务器(通常都由Web服务器来充当,它负责产生VoiceXML文档,并将它送给解释器去解释);VoiceXML文档的解释器(它负责解释VoiceXML文档,向实现平台发送命令);实现平台(主要由三部分组成:电话平台、语音识别(ASR)、语音合成(TTS),它负责根据解释器的指令来同用户进行交互,并将用户的指令传给解释器。
文档服务器没有什么特殊之处,只是存放的文档类型不同而已。VoiceXML解释器是一个计算机程序,它解释一个VoiceXML文件,引导和控制用户与执行平台之间的交互作用。VoiceXML解释程序语境也是一个计算机程序,用一个VoiceXML解释程序解释一个VoiceXML文件,并且可以与执行平台相互作用而与VoiceXML解释程序无关。实现平台是语音服务平台的核心技术,其中ASR和TTS是属于语音信号处理范畴的,将会在下文中讲述它们。电话平台主要是接受用户的语音和DTMF信号并转换为数字信号,并提供与语音网关的接口以及信号通过网络传输交换等功能。
下图是整个VoiceXML程序工作流程:
图2VoiceXML程序工作流程
2.1 语音浏览器
新的语音技术可以创建出对话驱动的应用程序,例如语音识别技术(ASR),语音合成技术(TTS)以及记录和回放数字化语音在PC和服务器(分发到客户端设备)上。VoiceXML提供了一种与技术语言(lengency system)可无关的以用在语音应用程序。这些应用程序将后端处理语音的服务和处理机制与前端基于VoiceXML的表示层分离开,这里所说的后端中就包含语音浏览器。
语音浏览器是驻留在网络上的一种应用程序,它位于语音、电话和因特网组件之上,负责将VoiceXML应用程序传递给用户。语音浏览器由负责解析VoiceXML文档的VoiceXML翻译器以及连接语音和电话组件的界面组成。注意,与传统浏览器一样,语音浏览器也是位于终端设备上,上面说的"前端"是一种相对概念,其实功能就相当于IE等浏览器,最明显的区别就是浏览界面,传统浏览器是正规的基于视觉浏览,而语音浏览器是基于听觉的流程浏览界面。比如,我想通过电话来查询手机话费(当然也可人工服务):
1) 用户拨打1860(假设这是某移动公司客户服务程序的电话号码);
2) 通过公用电话交换网(PSTN)连接到负责托管该服务程序的语音服务提供商(VSP)的VoiceXML网关(语音网关组件实际上由语音浏览器、语音识别(ASR)、文语转换(TTS)等组成,这在下一小节讲述),这里说的连接实际上就是语音浏览器的入口,相当于HTML浏览器的地址栏;
3) 语音浏览器在获知呼叫号码和主叫号码的信息后就去搜索一个数据库,同时将呼叫号码转换为一个统一资源地址(URL)这个URL就是用VoiceXML语言开发的移动客户服务程序ClientServe.vxml的位置;
4) 语音浏览器激活ClientServe.vxml主页,如果预先进行了设定,那么也可以激活相关的文件,它们被从Web服务器上下载并高速缓存在VoiceXML网关上;
5) 语音浏览器对VoiceXML文档进行翻译,根据流程执行ClientServe.vxml,并根据应用程序的规定与用户之间进行交互操作,应用程序输入部分可能要借助于ASR,输出要调用TTS;
6) 根据ClientServe.vxml需要,从Web服务器上下载其它的VoiceXML文件并继续流程。
2.2 语音网关
下面我们先看看语音网关的组成以及与其他组件的关系,如下图所示:
对于用VoiceXML开发的语音应用程序,需要有一个运行期平台,这个平台包括语音浏览器、ASR、TTS、DTMF等组件,这就是语音网关,其主要功能如下:
² 电话—VoiceXML网关首先必须接受来自PSTN的电话呼叫并获取与呼叫相关的信息,这在语音浏览器有所涉及,这里不再赘述;
² URL数据库—当网关接受到一个电话呼叫,网关必须对被叫号码与要求的服务的URL进行核对,网关可以拥有与这个数据库相关的服务;
² 检索VoiceXML—当知道VoiceXML服务程序的URL时,网关必须从服务程序的Web服务器上检索并下载VoiceXML页和相关的文件,例如录制的声音文件和语法文件;
² 翻译VoiceXML—当应用程序的VoiceXML代码和相关文件被存储在网关上之后,网关必须翻译这些代码,遍历对话框并且根据要求与ASR、TTS、DTMF以及其他服务进行交互操作;
² 访问ASR和TTS—这些服务可以作为软件或者硬件被托管在VoiceXML网关上,也可以位于具备专用语音处理功能的远程服务器上;
² 高速缓存—VoiceXML网关能够将预先录制好的声音文件、语法、以及VoiceXML页存储在高速缓存中。
2.3 Web服务器
如同因特网门户网站的Web服务器一样,VoiceXML页一般也由Web服务器托管。前面所述的检索数据库其实就是向Web服务器发出请求的VoiceXML页,一个语音门户可能由成百上千个VoiceXML文档组成,通常将他们存储在Web服务器中,并且要为这些应用程序建立一种映射关系,就将此服务的根文档与一个语音URL关联,这样用户才能访问。
2.4 关键技术:ASR、TTS和DTMF
语音处理技术是使电话用户能够用自然语言的方式与Web对话的关键技术之一。其中,ASR(自动语音识别)技术是让机器"听懂"人类口述的声音。这里听懂有两种含义,第一种是将这种口述语言逐词逐句的转换为相应的书面语言(即文字),第二种是对口述语言中所包含的要求或询问作出正确的响应,而不拘泥于所有词的正确转换为书面文字。在人机交互系统中主要是第二种,能使得应用系统能够识别电话用户的语音输入,将这些声音以波形的形式缓存起来,然后用专用的切割算法将波形切割为一个个音素,再将这些音素的特征值提取出来,与系统中存放的标准(经过训练)的参数进行比较,如果相似(当然要定一个最大似然比),则识别成功,否则失败。目前,最好的ASR系统能够在一定范围内达到自然语言的识别。虽然由于技术的局限和中国多方言多口音的特征,使得ASR系统的应用受到一定的限制,但是ASR技术仍然在不断地走进人们的日常生活,人们也在开始使用语音的方式与电话语音应用系统进行交流。
TTS技术则和ASR技术相反,TTS是先将要求输出的文本进行规范化,然后进行基于规则的文本标注,将文本解析为基于匹配基元的程序可识别的标准文本,再根据这些标注检索这些基元的发音,按照一定的拼接算法将一个个基元进行拼接,对韵律进行修饰后达到一定的自然度,然后输出合成语音。TTS技术相对于ASR技术来说在实际应用中显得更成熟。目前,较好TTS系统已经可以达到比较好的可懂度和自然度。TTS技术是使互联网信息流向公用电话网的关键技术,它可以将诸如及时新闻等的文本信息转换成语音格式并通过电话播放给用户,从而摆脱了电话用户只能收听到预先录制好的录音的传统使用方式。而ASR技术和TTS技术结合起来,就可以将双手解放出来,使得人和机器可以象人与人交流那样流畅和自然,如果识别率和合成语音自然度比较高的话可以抛弃键盘和鼠标。
DTMF(双音多频)技术已经相当成熟, DTMF系统通过电话网络中的硬件和软件对按键式输入进行翻译,实现音频播放(这里的音频是已经录制好的真人语音,不同于TTS系统灵活合成的方法)。目前的电话机基本上都有键盘,每个按键都能够产生一个可被识别的唯一的音频。它使得用户可以使用电话键盘将数字信息输入VoiceXML应用程序,并且由程序负责接受和理解这些数字信息。
3 VoiceXML的特点和应用范围
3.1 VoiceXML的特点
VoiceXML作为一种标记语言,主要有以下特点:
1) VoiceXML作为一种通过每一文件里指定的多重的交互作用,最小化客户机/服务器之间的交互工作;
2) 实现应用开发者与低层的软件和系统平台上的软、硬件细节无关;
3) 将用户交互作用的代码(在VoiceXML中)从服务逻辑(CGI脚本)中分离出来;
4) 能跨越不同的执行平台,促进服务的可移植性。对于内容服务商、工具提供商和平台提供商来说,VoiceXML是一个公共语言(适用性较强);
5) 非常容易用于简单的(人机)交互,要求所提供的语音界面能支持复杂的对话。
3.2 XML的应用范围
VoiceXML语言描述了语音应答系统的人机交互过程,其范围包括:合成语音的输出(TTS)、音频文件的输出、话音输入的识别、DTMF输入的识别、语音输入的录音、对话流的控制、电话功能(如呼叫转移和挂断等)。
VoiceXML提供字符和语音输入采集、分配输入给文档定义的请求变量、决定解释XML文档的方法。通过统一资源标识符(URI)VoiceXML文档可以被连接到其他的文件。
具体来说,我们可以把VoiceXML应用在在以下的实际领域:
² 信息的获取。如股票信息,天气情况,体育消息,交通信息等。
² 电子交易(包括电子商务,电子零售)。如银行的帐户查询,存取,股票交易等。
² 电信领域的服务。如UNIFIEDMESSAGE,CALLCENTER(呼叫中心)等。当然,我们大家都使用过移动公司的1860,我想根据我自己的想法简单的实现信息咨询、业务自助办理、话费查询等功能。
4 移动业务咨询系统(Mobil-Business Consultation System)
也许大家都使用过移动的1860服务,可以实现业务咨询、话费查询、业务自助办理、投诉建议等功能,并可以在自动系统不能解决用户问题时转入人工服务,可以说系统的业务流程比较清晰,也有良好的导航性,但缺点就是互动性较差,且只能有一种输入方式,我现在想设计一个类似的系统,当然目前只能是前端VoiceXML语音应用程序,而后端的语音网关等涉及技术比较复杂,只是简单的模拟了一下。
4.1 MBCS系统的业务流程
首先,我用下图表示MBCS系统业务的大概流程:
图3MBCS系统业务流程
作者Blog:http://blog.csdn.net/piml/