ITPub博客

首页 > Linux操作系统 > Linux操作系统 > IVR-1 [ Voice XML基础教程上]

IVR-1 [ Voice XML基础教程上]

原创 Linux操作系统 作者:kirinri 时间:2008-03-24 19:26:08 0 删除 编辑

Interactive Voice Response-IVR 项目需要,目前正在学习尝试使用并开发相关功能.

功能支持
http://www.voxeo.com/

Voxeo Prophecy Voice Platform. - Free Download
http://www.voxeo.com/prophecy/

VoiceXML基础教程针对VoiceXML初学者编写,其由浅入深地介绍VoiceXML的主要内容,包括VoiceXML的历史背景与现状、VoiceXML的脚本设计基础等。

第一章  VoiceXML2.0简介
 
    VoiceXML(语音可扩展标记语言)是用来描述语音对话过程的标记语言。其定义了如何使用语音识别、语音合成、互联网访问、数据库访问、语音文件播放、DTMF输入等功能开发一个完整的语音应用系统。用VoiceXML开发的语音应用系统,不仅可以完全代替传统CTI(计算机电话集成) 系统所能提供的功能,而且还可以使应用系统开发过程极其简单快捷、系统有极高的可扩展性、可维护性、可移植性、可重用性和开放性。
 
    1.1 VoiceXML的历史与背景
 
    VoiceXML的出现最早可以追溯到1995在AT&T公司开发的基于XML的电话标记语言(PML)。随后,AT&T、Lucent Technologies以及Motorola公司分别各自着手开发自己的类似于PML的语音标记语言。到了1998年,W3C组织的“语音浏览器”会议上,AT&T和Lucent Technologies分别展现了他们各自的类同PML的标记语言、Motorola和IBM公司分别推出VoxML和SpeechML、HP和PipeBeach公司也分别推出TalkML和VoiceHTML。AT&T、IBM、Lucent Technoglies、以及Motorola随后成立了VoiceXML论坛,其目的是为了建立一个语音对话应用系统的国际标准。到了2000年,AT&T、IBM、Lucent Technologies、以及Motorola通过W3C协会联合推出语音可扩展标记语言VoiceXML1.0。该标准一经推出,便得到相关行业众多公司的响应。经过两年多的论证和实际系统验证,VoiceXML2.0最终草案在2003年推出。
 
    1.2 为什么要用VoiceXML?
 
    VoiceXML的推出给电话语音系统带来全新的应用和开发概念,使传统的CTI技术从繁琐、封闭的模式中走了出来,使广大的语音系统开发人员可以用极其简单的方法实现复杂系统的开发。
 
    完全替代传统CTI:传统的电话语音系统典型的工作方式是接受用户的按键输入和语音文件播放、跟据用户的需求为用户提供相应服务。基于VoiceXML开发的电话语音系统完全可以替代传统CTI系统所能提供的功能。
 
    语音识别功能:基于VoiceXML开发的电话语音系统除了接受用户的按键输入之外,还可以接受用户的语音输入。系统通过语音识别功能实现对用户输入语音到文本的转换。这对于许多仅用按键输入方式而无法解决或解决起来很繁琐的应用领域很有实用意义。
 
    语音合成功能:基于VoiceXML开发的电话语音系统除了能够播放预先录制的语音文件之外,还可以将系统中的文本转换成语音的方式播放给用户。这对于那些需要播报即时消息和可变信息等的应用领域很有实用价值。
 
    与互联网联结:长期以来,公用电话网和互联网是分离的。随着互联网技术的迅速发展,互联网信息与日俱增,以及互联网相关服务的日新月异,将互联网与公用电话网整合为一体,使广大的电话用户也能享受到互联网提供的信息和服务显得越来越有吸引力。VoiceXML使公用电话网与互联网有机地结合,使两网的信息能够相互流动。例如,电话语音流言可以通过互联网以电子邮件的方式传送到目的地;互联网上的新闻可以通过电话播放给用户等。
 
    灵活的数据库接口:许多电话语音应用系统离不开数据库访问。VoiceXM通过脚本方式提供灵活的数据库接口,使得应用系统可以方便地访问各种数据库,如:Microsoft SQL Server 2000、Oracle、Sybase、Microsoft Access、MySQL等。
 
    简化开发过程:用VoiceXML将电话语音应用系统开发人员从繁琐的编码细节中解脱了出来。开发人员不需要了解相关软件(如语音识别和语音合成)和硬件(如语音卡)API的编程接口,只需要把精力放在应用领域的业务流程上。开发过程轻松快捷、开发周期大大缩短(7-10倍)。VoiceXML使开发人员得以用简单的方法实现复杂的工作。
 
    除此之外,基于VoiceXML开发的语音应用系统具有很高的系统可扩展性、可维护性、可移植性、可重用性和开放性。
 
    1.3 VoiceXML现状
 
    自2000年VoiceXML1.0推出以后经过不断的修改,于2003年1月推出最新的VoiceXML2.0最终推荐版本。根据W3C称,该版本将会比较稳定,鼓励各VoiceXML浏览器生产厂家可以根据此版本进行开发。预计不久VoiceXML2.0将会正式推出。
 
    中国目前也有一些相关行业的公司在着手开发有关VoiceXML的产品。深圳市华琛科技有限公司是国内领先的VoiceXML语音平台生产厂家。在华琛公司的VoPromote平台上,开发人员可以用VoiceXML2.0脚本语言开发应用于各行业的电话语音系统。
 
    1.4 小结
 
    VoiceXML标准的出现给电话语音应用系统的开发带来了全新的概念,同时还大大扩展了语音应用系统的应用范围。可以预计,VoiceXML标准的推广将会极大地推动电话语音应用系统的开发和应用,将给广大的电话用户带来深远的影响。


第二章  VoiceXML2.0基础
 
    本章将简单介绍VoiceXML2.0脚本文件的结构,使初学者对VoiceXML有一个大概的了解。
 
    2.1 VoiceXML2.0脚本结构
 
    现在让我们来看一个简单的例子(行号是为了本文引用方便,其不应该出现在VoiceXML脚本文件中):
 
     1  
     2   http://www.w3.org/2001/vxml">
     3     


     4        
     5           欢迎使用华琛公司语音系统!
     6        

     7     

     8  
 
 
    当电话接通,用户将会听到由语音合成的“欢迎使用华琛公司语音系统!”。第1,2和8行是每个VoiceXML脚本文件都应该包含的;第3到第7行是一个对话表,用…标志;在该对话表中有一个块,其包含了要输出的内容。
 
    如果不用语音合成功能,上面的例子还可以写成:
     1  
     2   http://www.w3.org/2001/vxml">
     3     

     4        
     5          

     7     

     8  

 
 
    当电话一接通,用户将会听到预先录制好的语音文件welcome.wav的内容。
 
    用VoiceXML编写语音应用程序,不仅可以方便地实现语音文件以及文本的播放(通过语音合成的功能),而且还可以方便地实现按键输入以及语音输入(通过语音识别的功能)。VoiceXML定义两种基本输入方式:菜单和输入域。菜单将输入的内容列举出来,并根据需要允许用户用按键或/和语音的方式进行输入。以下是一个用菜单接受用户输入的例子:
 
     1  
     2   http://www.w3.org/2001/vxml">
     3     
     4        
     5           用户您好。请选择华琛为您提供的服务:
     6           1 天气预报 2 股票市场
     7           天气预报
     8           股票市场
     9        

     10     

     11  

 
 
    当电话接通,用户将会听到提示“用户您好。请选择华琛为您提供的服务:1 天气预报 2 股票市场”,并等待用户输入;当用户说“天气预报”或按键输入“1”后,系统将转向另一个VoiceXML脚本文件(定义天气预报的对话流)。第3行到第10行定义了整个菜单;第4到第7行是提示 
    除了菜单方式之外,用输入域也可以接受用户输入:
 
     1  
     2   http://www.w3.org/2001/vxml">
     3     

     4        
     5          
     6              用户您好。请选择华琛为您提供的服务:
     7              1 天气预报 2 股票市场
     8          

     9          
     10            
     11              
     12                  天气预报
     13                  股票市场
     14              

     15            

     16         

     17          
     18            
     19              
     20                  1
     21                  2
     22              

     23            

     24         

     15          
     16            
     17              
     28            
     29              
     30            

     31          

     32        

     33     

     34  

 
 
    该例中定义的输入流程与前面例子中定义的流程相同,即当电话接通,用户将会听到提示“用户您好。请选择华琛为您提供的服务:1 天气预报 2 股票市场”,并等待用户输入;当用户说 "天气预报" 或按键输入“1”后,系统将转向另一个VoiceXML脚本文件(定义天气预报的对话流)。第9行到第16行和第17行到第24行分别定义了语音输入和按键输入的语法。该例中的语法本身出现在VoiceXML脚本文件中,这类语法称为在线语法。语法也可以不是在线语法,它们可以被放在一个独立的语法文件中。例如,如果将上面的语法分别放在services_voice.grxml和services_dtmf.grxml中,该例子可以改写为:
 
    电话录音功能是实际应用系统中常常会遇到的。下面的例子给出如何用VoiceXML提供的录音元素实现电话录音功能:
 
     1  
     2   http://www.w3.org/2001/vxml">
     3    

     4                         type="audio/x-wav">
     5         
     6             请在'嘟'声后留言。
     7         

     8       

     9       
     10         
     11             您的留言是
     12         

     13      

     14    

     15  

 
 
    当电话接通,用户将会听到“请在‘嘟’声后留言”的提示,随后系统提示“嘟”声并等待用户留言;最长录音时间为10秒(maxtime="10s"),当用户停止说话4秒(finalsilence="4000ms")后系统停止录音,录音将被放在变量msg中;录音停止后用户将听到系统提示"您的留言是" 和录音内容。第4行到第9行是录音功能的定义;第10行到第14行播放提示和录音内容。
 
    VoiceXML不仅提供上述基本的输入输出功能,还提供了其它功能,如电话转接、强大的数据库接口、互联网接口、Javascript操作、对话流自由转向、模块化结构等功能。除此之外,VoiceXML还提供了扩展接口,使得其功能得到更为广泛的延伸。
 
    显而易见,用VoiceXML编写一个电话语音应用系统,摆脱了传统的CTI技术的开发方法和模式。开发人员不需要了解语音板卡、交换机、语音合成、语音识别等的编程细节,只需要把精力放在业务流程上。用VoiceXML不仅完全可以代替传统CTI技术所能完成的功能,而且还能完成用传统CTI技术难以实现的功能。用VoiceXML开发语音应用系统周期短、对技术人员要求相对较低。基于VoiceXML开发出来的应用系统有很好的可扩展性、可维护性、可移植性、可重用性和开放性。

2.2 VoiceXML2.0元素集
给变量赋值。
播放语音文件。
无用户交互的可执行代码块。
捕获一个事件。
定义一个菜单项。
清除一个或多个框架项。
结束一次通话。
用于元素中的else。
用于元素中的elseif。
列举菜单选项。
捕获一个事件。
退出一次通话。
在框架中申明一个输入域。
指定当输入域被填充以后需要作的操作。
提示信息和接受数据的对话框架。
把控制转向在同一个或不同文档中的对话。
指定语音识别或DTMF语法。
捕获一个事件。
条件逻辑。
在进入一个双向交互式对话框架时申明初始对话逻辑。
在所有对话公共链接区域指定控制转向。
生成调试信息。
定义菜单对话。
定义一个元数据项。
定义元数据信息。
捕获一个事件。
捕获一个事件。
系统扩展的对象。
在一个输入域中选择一个选项。
的参数。
指定语音合成提示和声音文件输出。
指定特性值以控制平台设置。
录音。
指定重新提示。
从子对话中返回。
上一篇: 最浪漫的事
请登录后发表评论 登录
全部评论

注册时间:2007-12-21

  • 博文量
    257
  • 访问量
    495353