开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

研究W3C VoiceXML标准背后的技术
作者: Builder
2006-09-13 10:22:45



硬件和软件要求

根据规范的要求,“http”URI 方案必须支持文件的获取。在有些情况下,文件请求是由VoiceXML文件的解释产生的,而其他请求是由编译器对语言之外的事件做出的响应产生的,例如一个打进来的电话。执行平台必须通过利用音频文件和文本到语音(TTS)技术支持音频输出,还要求执行平台能够同时检测和汇报字符和/或口头输入,并且通过一个由VoiceXML文件规定其长度的记时器控制输入检测间隔时间。

VoiceXML应用平台必须报告用户输入的字符(如DTMF),而且必须支持W3C语音识别语法规范(SRGS)中描述的双音多频(DTMF)语法的XML形式。它也必须能够接收来自用户的音频。

工作原理

我们已经了解了SCXML语言中的基本概念。一个VoiceXML文件(或者一组称为应用程序的相关文件)形成一个对话的有限状态机。用户每一次始终处于一个对话状态或对话中。每一个对话决定下一个对话的转换。转换由URI规定,定义下一个要用到的文件和对话。执行在一个对话没有指定后继内容或者有一个组件明确退出对话时结束。

有两种对话:窗体菜单。窗体定义了一个交互,用来为一组窗体项目变量收集值。每一个字段可以规定一个语法,定义该字段允许的输入。如果出现一个窗体级的语法,它可以用来填充一个话语的数个字段。菜单为用户呈列了供选择的选项,然后到另外一个对话的转换就以这个选择为基础。

子对话就像一个函数调用,它提供了一种调用新交互和返回最初形式的机制。变量实例、语法和状态信息都被保存,在返回调用文件时都是可用的。举例来说,子对话可以用来生成一个需要数据库查询的确认序列;产生一组由一个单独应用程序中文件共享的组件;或者创建一个许多应用程序中共有的对话组成的可以多次使用的库。

当用户开始和VoiceXML编译器上下文交互时,会话就开始了,并继续加载和处理文件,然后根据用户、文件或者编译器上下文的请求结束。

应用程序是指一组共有相同应用程序根文件的文件。不管什么时候,只要用户与应用程序中的一个文件交互,它的应用程序根文件也要被加载。应用程序根文件当用户在同一个应用程序的不同文件之间转换时也仍保持加载,但是当用户转换到一个不在同一应用程序的文件中时,它就会被卸载。图表A(fig1.gif)显示出文件(D)在一个享有共同应用程序根文件(root)的应用程序中的转换。

图表 A

文档转换

每一个对话都有一个或多个与之关联的口头的和/或双音多频(DTMF)语法。在机器管理的应用程序中,每一个对话的语法只有当用户在这个对话中时才是活动的。在混合驱动应用程序中,用户和机器轮流决定下一步该做什么,所以一些对话甚至在当用户在同一个文件的另外一个对话或者同一个应用程序加载的另一个文件中时,仍然被标记,使它们的语法(如listened for)活动。

VoiceXML为处理“正常”用户输入提供了一个窗体填充机制。此外,VoiceXML为处理未被窗体机制涵盖的事件定义了一个机制。平台将事件置于多种情况之下,比如说,当用户没有响应时,用户响应不易理解时,请求帮助等等。编译器如果在一个VoiceXML文件中发现语义错误,它也会废弃事件。事件可以通过捕获元素和它们句法的简写形式来获得。

应用举例

让我们来看一个形式最简单、最常见的应用程序,在这个程序中,窗体中的项目都被按照顺序正确地执行一遍,来实现一个计算机管理的交互。这是一个天气信息服务(列表B),它就使用了这样一个窗体,提供指定国家和城市的天气信息(weather.vxml.txt)。

列表 B

<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2001/vxml
   http://www.w3.org/TR/voicexml20/vxml.xsd">
<form id="weather_info">
 <block>Welcome to the weather information service.</block>
 <field name="country">
  <prompt>What country?</prompt>
  <grammar src="country.grxml"  type="application/srgs+xml"/>
  <catch event="help">
     Please speak the country for which you want the weather.
  </catch>
 </field>
 <field name="city">
  <prompt>What city?</prompt>
  <grammar src="city.grxml" type="application/srgs+xml"/>
  <catch event="help">
     Please speak the city for which you want the weather.
  </catch>
 </field>
 <block>
  <submit next="/servlet/weather" namelist="city country"/>
 </block>
</form>
</vxml>

This dialog proceeds sequentially:

C (computer): Welcome to the weather information service. What country?
H (human): Help
C: Please speak the country for which you want the weather.
H: Georgia
C: What city?
H: Macon
C: I did not understand what you said. What city?
H: Tbilisi
C: The conditions in TbilisiGeorgia are sunny and clear at 11 AM ...

【上一页】 【下一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号