在最近关于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是一种标记语言,可以: