首页>>厂商>>IVR系统平台厂商>>Voxeo

基于VoiceXML的语音应用系统开发

2008/10/30

一、概述

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

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

  本文通过编写一个简单的自动语音识别程序来试图让读者对VoiceXML语言的一些基本概念和基于VoiceXML的语音应用系统的基本构成有一个大致的了解。该示例程序已经部署在http://evolution.voxeo.com。读者可以在电脑上通过Skype客户端(免费)或者传统的电话(收费)运行该文中的示例程序。

二、VoiceXML技术简介

  VoiceXML(语音可扩展标记语言)是用来描述语音对话过程的标记语言。其定义了如何使用语音识别、语音合成、互联网访问、数据库访问、语音文件播放、DTMF按键识别等功能开发一个完整的语音应用系统。 与HTML/XML标准类似,VoiceXML也是一种基于文本的脚本语言。

  就象程序员可以使用HTML/XML语言开发WEB应用程序,从而把文字和图片等信息以网页的方式提供给用户类似,程序员可以使用VoiceXML语言开发基于语音的应用程序,从而把用户需要的信息以语言的形式提供给用户。 用户可以通过VoIP终端或者传统电话来访问这类应用程序从而得到想要的信息(如天气,股市,定位等)。和用户访问WEB页面时需要通过键盘输入想要查询的内容不同,用户访问基于 VoiceXML的语言应用时可以通过“说话”来获取想要的信息。执行VoiceXML语言的VoiceXML服务器负责把用户的语音转换成文字(自动语音识别)进行搜索并把搜索到的结果以语音的方式“读”给用户(语音合成输出)。下图(图一)显示了基于VoiceXML的语音应用和基于HTML的WEB应用的相似和不同。

图一、VoiceXML应用和WEB应用的比较

下图(图二)展示了基于VoiceXML的语音应用系统的基本架构:

  文档服务器(WEB Server):用于存放VoiceXML脚本文件(或者根据由VoiceXML Server发过来了HTTP请求自动生成VoiceXML脚本),和事先录制好的音频文件等一切有关的文档。 VoiceXML Server通过HTTP请求从该文档服务器获取各种需要的文件。

  VoiceXML 服务器(VoiceXML Gateway):用于接收和识别用户的输入,解释和执行VoiceXML脚本文件,并把结果转换成语音输出给用户。它一般具备下列组件:VoiceXML解释器组件(VoiceXML Browser),呼叫控制组件(CCXML Browser),自动语音识别组件(ASR),语音合成组件(TTS)等。这些组件共同组成了VoiceXML的解释和执行平台。

图二、VoiceXML应用系统架构

  和互联网用户通过键盘输入某个WEB页面的地址(URL)来访问WEB应用类似,VoiceXML用户通过电话或者VoIP终端拨打某个应用对应的电话号码来访问该应用程序(图中的步骤1)。VoiceXML服务器收到用户的呼叫后,根据用户拨打的号码去文档服务器查找对应的VoiceXML文件(图中的步骤2),通过HTTP请求把文件下载到本机执行,根据特定应用的需要,VoiceXML服务器可能会发出多个HTTP请求获取和应用有关的其他文件,比如需要播放的语言文件等(图中的步骤3)。然后由 VoiceXML解释器组件( VoiceXML Browser)解释和执行VoiceXML脚本语言并把结果转换成语音传送给用户(图中的步骤4)。在执行过程中,用户可能需要通过语音和VoiceXML服务器进行交互,比如菜单选择或者对查询结果进行过滤等。VoiceXML服务器通过呼叫控制组件(CCXML Browser),自动语音识别组件(ASR),语音合成组件(TTS)来实现这些交互。

  在VoiceXML系统中有两种形式语音的输出: 机器合成语音(TTS)和事先录制好的语音文件。

  TTS ( Text-To-Speech) : 是由机器把文本转换为数字语音格式,这种声音听起来会感觉有些机械和不自然,但是输出内容灵活,不受任何限制。

  事先录制好的语音文件: 和TTS相比听起来更自然,但是内容受限制。在实际应用中往往把二者结合起来。

  VoiceXML系统中的输入也有两种形式: 自动语音识别 (ASR) 和双音多频键盘音(DTMF)。

  ASR (Automatic Speech Recognition) 是指计算机把用户的语音自动识别成文字信息,便于计算机的进一步处理,从而使得用户可以通过自然语言来控制计算机的执行。

  DTMF (Dual Tone MultiFrequency) 则是用户可以通过电话的按键进行输入。

三、VoiceXML开发示例

  本文中的信息查询例子演示了一个简单的VoiceXML应用。该例子VoiceXML脚本中用到的所有的标签如表1所示,表2是该例子的源代码。图四是该例子的呼叫流程。首先是用户发起呼叫,应用程序通过计算机合成语音(TTS)告诉用户所有的选择项并等待用户的响应。用户的语音将由计算机根据语法标签

  中定义的规则进行自动识别。如果识别成功,标签中定义的变量“choice”被赋值。例如,如果用户说出“weather”,则计算机会把字符串“weather” 赋值给“choice”。然后在标签中定义的条件判断语句会根据变量“choice”的值把相应的语音播放给用户。如果用户没有响应,标签被执行并把“I didn’t hear you” 播放给用户,然后提示用户重新输入(标签)。同样,如果用户的语音没有被识别,标签 将被执行并告诉用户“I didn’t quite understand you” ,然后提示用户重新输入(标签)。

表 1. 本示例中用到的VoiceXML 标签

图四:信息查询例子呼叫流程图

表 2. 信息查询例子源代码

<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
<form id="Choices">
<field name="choice">
<prompt>
Welcome to the Voice XML journey.
This tutorial demonstrates voice recognition.
Please choose from the followings:
to check the weather, say weather .
to check the stock quotes, say stock .
to get the direction information, say direction.
</prompt>
<grammar>
<![CDATA[ [
[weather dtmf-1]{<choice "weather">}
[stock dtmf-2]{<choice "stock">}
[direction dtmf-3]{<choice "direction">}
]
]]>
</grammar>
<noinput>
I didn't hear you. <reprompt/>
</noinput>
<nomatch>
I didn't quite understand you. <reprompt/>
</nomatch>
<filled>
<if cond="choice=='weather'">
<prompt>OK let's check the weather. Thank you. </prompt>
<elseif cond="choice=='stock'"/>
<prompt>OK let's check the stock quotes. Thank you. </prompt>
<else/>
<prompt>OK let's get the direction information. Thank you. </prompt>
</if>
</filled>
</field>
</form>
</vxml>

  该示例程序已经部署在http://evolution.voxeo.com。读者可以下列几个途径来执行该示例程序:

  1. 通过Skype客户端拨打号码 +99000936 9992001335, 免费呼叫。

  2. 通过Xlite(一个免费的VoIP软件)或者任何VoIP终端呼叫 sip:9992001335@sip.voxeo.net

  3. 通过手机或者固定电话拨打号码 +1 407 459 1963(美国电话号码,收费)。
  读者可以访问 http://docs.voxeo.com/voicexml/2.0/frame.jsp?page=learningvoicexml.htm 获取更详细的VoiceXML示例和教程,该网站也提供免费注册,注册后可以免费发布自己的VoiceXML应用和其他人共享(就象本文中的例子一样)。

参考
[1]http://www.w3.org/TR/voicexml21/

CTI论坛编辑



相关链接:
Voxeo VoiceObjects 统一自服务提高满意度 2009-09-23
Voxeo携Prophecy10高度亮相SpeechTEK2009 2009-09-03
拥有中文TTS的Prophecy IVR语音平台 2009-08-17
Voxeo发布开源的电话“云计算”服务平台 2009-08-12
自助式语音平台开发利器Prophecy Platform 2009-08-03

分类信息:  CTI平台技术_与_交互语音技术  CTI平台技术_与_voicexml技术  交互语音技术_与_voicexml技术