VoiceXML2.0规范

本文介绍了VoiceXML的发展历程、核心概念及应用案例。VoiceXML是一种基于XML的语音对话设计语言,旨在简化语音应用开发过程。文章通过两个实例展示了如何使用VoiceXML创建语音对话。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章  概述 [第一章 ][前一章][后一章 ]
 
    这篇文档详细描述了VoiceXML,即语音扩展标记语言。第一章介绍它的背景、基本概念和用途;第二章介绍form的对话框结构(dialog constructs)、menu、link和它们的解释机制FIA(Form Interpretation Algorithm);第三章介绍用户的DTMF(Dual Tone Multi-Frequency)和语音输入用到的语法;第四章介绍系统输出用到的语音合成和预先录制的音频;第五章介绍对话框(Dialog)流程的控制,包括变量、事件和可执行元素;第六章介绍各种环境特性,例如参数(Parameter)、属性(Property)和资源处理;附录提供了包括VoiceXML计划、FIA(Form Interpretation Algorithm)、音频文件格式等附加信息。
 
    VoiceXML最早出现于1995年,作为一种基于XML对话的设计语言,它的出现是为了简化AT&T一个名为PML(Phone Markup Language)项目中语音识别程序的开发过程。经过AT&T的重新组织,AT&T,Lucent and Motorola的开发团队继续致力于开发他们的类PML语言。
 
    1998年,W3C主办了一次关于语音浏览器的会议。此时,AT&T and Lucent对于最开始的PML都有各自不同的发展,Motorola开发了VoXML,IBM正在开发它自己的SpeechML。此次会议的其他与会者也正在开发类似的语言,例如HP的TalkML和PipeBeach的VoiceHTML。
 
    于是AT&T、IBM、Lucent和Motorola共同组织了VoiceXML论坛,它的任务是定义一种标准的对话设计语言,使开发者可以用它来创建会话式的应用程序。他们选择XML作为他们工作的基础,因为他们很清楚,XML是技术发展的趋势。
 
    在2000年,VoiceXML论坛发布了VoiceXML 1.0。此后不久,VoiceXML 1.0被提交给W3C(World Wide Web Consortium)作为一种新的国际标准。VoiceXML 2.0就是W3C的成员单位、其他的W3C工作组和公众的共同努力的结果。
 
    熟悉VoiceXML1.0的开发者可直接到附录,那里总结了VoiceXML2.0和VoiceXML1.0的差别。
 
第一节 介绍 第二节   第三节   第四节   第五节
 
    VoiceXML是用来创建音频对话的,主要包括语音合成、数字化音频、语音识别、DTMF按键输入识别、录音、通话、混合主动式会话。它的主要作用是把基于网络的开发和信息这两者的优势引入语音应答系统。
 
    这里有两个简短的例子,第一个例子是“Hello World”:
 
      <?xml version="1.0" encoding="UTF-8"?>
      <vxml 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"
                version="2.0">
        <form>
          <block>Hello World!</block>
        </form>
      </vxml>
 
    最上层的元素是<vxml>,它主要是作为dialog的容器。在VoiceXML里有两种dialog:form和menu 。form用来输出提示信息和收集输入信息,menu提供一些choice,以决定下一步要做什么。这个例子里有一个form,它包含了一个block,这个block把“Hello World!”合成语音,并输出给用户。由于这个form没有指定下一个dialog,因此,这次会话结束。
 
    第二个例子要求用户选择一种饮料,然后把它提交给服务器端的一个脚本。
 
      <?xml version="1.0" encoding="UTF-8"?>
      <vxml 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"
                version="2.0">
        <form>
         <field name="drink">
           <prompt>Would you like coffee, tea, milk, or nothing?</prompt>
           <grammar src="drink.grxml" type="application/srgs+xml"/>
         <block>
           <submit next="http://www.drink.example.com/drink2.asp"/>
         </block>
         </field>
        </form>
      </vxml>
 
    field是一个输入域,用户必须给field提供一个值,否则就不可能进行到form中的下一个元素。下面是这个例子的一个简单的人机交互:
 
      C (computer): Would you like coffee, tea, milk, or nothing?
      H (human): Orange juice.
      C: I did not understand what you said. (a platform-specific default message.) 
      C: Would you like coffee, tea, milk, or nothing?
      H: Tea
      C: (continues in document drink2.asp) 
目次 1 范围 1 2 引用标准 1 3 术语和定义 1 4 概述 3 4.1 VoiceXML简介 3 4.2 VoiceXML的背景 4 4.2.1 VoiceXML的结构模型 4 4.2.2 VoiceXML的设计目标 5 4.2.3 VoiceXML的范围 6 4.2.4 VoiceXML的设计要点 7 4.2.5 对VoiceXML实现平台的要求 7 4.3 VoiceXML的一些概念 8 4.3.1 对话框和子对话框 8 4.3.2 会话 8 4.3.3 应用 8 4.3.4 语法 9 4.3.5 事件 9 4.3.6 链接 10 4.4 VoiceXML的元素 10 5 VXML元素说明 11 5.1 文档结构与文档执行 11 5.1.1VXML元素 11 5.1.2单文档应用 12 5.1.3多文档应用 12 5.1.4子对话框 13 5.2 业务控制与业务流程元素 14 5.2.1 对话框 14 5.2.1.1窗体 14 5.2.1.1.1 窗体的解释 14 5.2.1.1.2 窗体项 15 5.2.1.1.3 窗体项变量和条件 15 5.2.1.1.4 定向窗体 15 5.2.1.1.5 混合初始窗体 15 5.2.1.2 菜单(menu)元素 15 5.2.1.2.1 CHOICE元素和ENUMERATE元素 16 5.2.1.3 窗体项 18 5.2.1.3.1 FIELD元素 18 5.2.1.3.2 BLOCK元素 20 5.2.1.3.3 INITIAL元素 20 5.2.1.3.4 SUBDIALOG元素 20 5.2.1.3.5 OBJECT元素 22 5.2.1.3.6 RECORD元素 23 5.2.1.3.7 TRANSFER元素 25 5.2.1.3.8 FILLED元素 27 5.2.1.3.9 LINK元素 28 5.2.2 控制流和ECMAScript 29 5.2.2.1 变量和表达式 30 5.2.2.1.1 变量和表达式的一般信息 30 5.2.2.1.2变量的作用域 31 5.2.2.1.3标准会话变量 31 5.2.2.1.4标准应用变量 31 5.2.2.2事件处理 32 5.2.2.2.1 THROW元素 32 5.2.2.2.2 CATCH元素 32 5.2.2.2.3 事件处理的时机 33 5.2.2.2.4速记表示法 33 5.2.2.2.5 事件处理中的冲突 34 5.2.2.2.6 事件缺省动作 34 5.2.2.2.7事件类型 34 5.2.2.2.8定时器事件 35 5.2.3 执行上下文 35 5.2.3.1 VAR元素 36 5.2.3.2 ASSIGN元素 36 5.2.3.3 CLEAR元素 36 5.2.3.4 IF,ELSEIF和ELSE元素 36 5.2.3.5 PROMPT元素 37 5.2.3.6 REPROMPT元素 37 5.2.3.7 GOTO元素 38 5.2.3.8 SUBMIT元素 38 5.2.3.9 EXIT元素 39 5.2.3.10 RETURN元素 39 5.2.3.11 DISCONNECT元素 40 5.2.3.12 SCRIPT元素 40 5.2.3.13 LOG元素 42 5.3 业务功能实现元素 42 5.3.1语法 42 5.3.1.1 语音语法 42 5.3.1.2 语法的作用域 43 5.3.1.3 语法冲突 43 5.3.2 系统输出 43 5.3.2.1 语音合成标志语言 44 5.3.2.2 基本语音输出 44 5.3.2.3 播放语音文件 44 5.3.2.4 VALUE元素 45 5.3.2.5 打断语音输出 45 5.3.2.6 超时 46 5.3.3 环境与资源 46 5.3.3.1 资源 46 5.3.3.1.1资源获取 46 5.3.3.1.2 缓冲 46 5.3.3.1.3 预读 47 5.3.3.1.4 协议 47 5.3.3.2文档信息 47 5.3.3.2.1 META元素 48 5.3.3.2.2 METADATA元素 48 5.3.3.3平台属性 49 5.3.3.4 PARAM元素 50 5.3.3.5 时间设计 50 5.3.4 VoiceXML在独立外设中的应用 51 5.3.4.1对独立IP的硬件的要求 51 5.3.4.2 VoiceXML与多层次的业务 51 5.3.4.3 VoiceXML与其他功能实体的通信 51 5.3.5 各种功能的object说明 53 5.3.5.1会议桥资源的操作实现 53 5.3.5.1.1开始会议 53 5.3.5.1.2结束会议 54 5.3.5.1.3加入会议 54 5.3.5.1.4离开会议 55 5.3.5.1.5修改通话方的状态 56 5.3.5.2 连接两条话路 57 5.3.5.2.1操作申请 57 5.3.5.2.2主动方等待 58 5.3.5.2.3被动方接入 59 5.3.5.3 SCP与IP的UI操作实现 60 6 应用举例:无线广告业务的VoiceXML描述 63 7 TTS语法规则 68 8编制历史 73
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值