在最近关于CCXML和SCXML的文章中,我们讨论了语音应用程序和它们的逻辑,而且经常会提及VoiceXML语言。它在语音应用程序和对话系统中仍然是中枢部分。在这篇文章中,我将谈论一下这种语言以及它的未来。W3C Voice Browser工作组当前正致力于VoiceXML 2.0的研发。在2000年,(由AT&T、IBM、Lucent和Motorola组成的)VoiceXML论坛对外发布了VoiceXML 1.0。其后不久,VoiceXML 1.0作为创建一个新的国际标准的基础被提交到W3C。VoiceXML 2.0就是在W3C成员企业参与的基础上形成的产物。
作用
最初,它是为了创建音频对话而设计的,音频对话主要包括合成语音、数字化音频、口头的和双音多频(DTMF)键输入的识别、口头输入的记录以及电话和混合主动对话。它的主要目标是将基于Web的开发和内容发布的优势引进到交互式语音响应应用程序中。
最顶层的元素是<vxml>,它主要是一个对话的容器。有两种类型的对话:窗体和菜单。窗体用来表现信息和搜集输入;菜单为下一步要做什么提供选择。列表A是最简单的具有一个主要窗体、没有后续对话的应用程序(hello-world.vxml.txt):
列表 A
<?xml version="1.0" encoding="UTF-8"?> <vxmlxmlns="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" version="2.0"> <form> <block>Hello World!</block> </form> </vxml>
VoiceXML的主要目标是将Web开发和内容发布的全部力量引进到语音响应应用程序中,并且将这种应用程序的编写者从低级别的编程和资源管理中解放出来。它使得我们能够利用熟悉的客户服务器模型来整合语音服务和数据服务。
语音服务被看做是用户和执行平台之间一系列的交互式对话。对话由文件服务器提供,它可以是执行平台外部的。文件服务器维持全面的服务逻辑,执行数据库和旧系统的操作,并生成对话。
VoiceXML文件指定每一个交互式对话由VoiceXML编译器处理。用户的输入会影响对话的解释,并被收集成请求,提交到文件服务器。文件服务器用另外一个VoiceXML文件来继续用户和其他对话的会话。总而言之, VoiceXML是一种标记语言,可以:
- 保护应用程序的编写者,使他们远离低级别的、具体平台的琐事;
- 将用户交互式代码(在VoiceXML中)与服务逻辑(如CGI脚本)区分开来;
- 通过为每个文件指定多个交互,将客户/服务器交互的数量减到最少;
- 通过执行平台提高服务的可移植性。VoiceXML对于内容提供者、工具提供者和平台提供者来说是一种共同的语言。
- 对于简单的交互,它很容易,并且仍可以提供语言特性,支持复杂的对话。
|