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 等浏览器,最明显的区别就是浏览界面,传统浏览器是正规的基于视觉浏览,而语音浏览器是基于听觉的流程浏览界面。比如,我想通过电话来查询手机话费(当然也可人工服务):
用户拨打 1860 (假设这是某移动公司客户服务程序的电话号码);
通过公用电话交换网( PSTN )连接到负责托管该服务程序的语音服务提供商( VSP )的 VoiceXML 网关(语音网关组件实际上由语音浏览器、语音识别( ASR )、文语转换( TTS )等组成,这在下一小节讲述),这里说的连接实际上就是语音浏览器的入口,相当于 HTML 浏览器的地址栏;
语音浏览器在获知呼叫号码和主叫号码的信息后就去搜索一个数据库,同时将呼叫号码转换为一个统一资源地址( URL )这个 URL 就是用 VoiceXML 语言开发的移动客户服务程序 ClientServe.vxml 的位置;
语音浏览器激活 ClientServe.vxml 主页,如果预先进行了设定,那么也可以激活相关的文件,它们被从 Web 服务器上下载并高速缓存在 VoiceXML 网关上;
语音浏览器对 VoiceXML 文档进行翻译,根据流程执行 ClientServe.vxml ,并根据应用程序的规定与用户之间进行交互操作,应用程序输入部分可能要借助于 ASR ,输出要调用 TTS ;
根据 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 作为一种标记语言,主要有以下特点:
VoiceXML 作为一种通过每一文件里指定的多重的交互作用,最小化客户机 / 服务器之间的交互工作;
实现应用开发者与低层的软件和系统平台上的软、硬件细节无关;
将用户交互作用的代码(在 VoiceXML 中)从服务逻辑( CGI 脚本)中分离出来;
能跨越不同的执行平台,促进服务的可移植性。对于内容服务商、工具提供商和平台提供商来说, VoiceXML 是一个公共语言(适用性较强);
非常容易用于简单的(人机)交互,要求所提供的语音界面能支持复杂的对话。
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 系统业务流程