VXML开发接口说明(V1.0)rmd文档格式.docx
《VXML开发接口说明(V1.0)rmd文档格式.docx》由会员分享,可在线阅读,更多相关《VXML开发接口说明(V1.0)rmd文档格式.docx(139页珍藏版)》请在冰点文库上搜索。
2.7.3快捷元素 2-26
2.7.4catch元素的选择 2-27
2.7.5默认属性的catch元素 2-27
2.7.6事件类型 2-28
2.8资源的获取 2-30
2.8.1获取 2-30
2.8.2缓存 2-31
2.9<
prompt>
元素 2-33
2.9.1基本的提示音格式 2-33
2.9.2语音标记 2-33
2.9.3音频提示 2-35
2.9.4<
value>
元素 2-36
2.9.5打断功能 2-37
2.9.6选择放音功能 2-37
2.9.7Timeout属性 2-39
2.10FORMITEM 2-40
2.11<
filled>
元素 2-42
2.12<
meta>
元素 2-44
2.13<
property>
元素 2-46
2.14PARAM 2-51
2.15可执行内容 2-54
2.15.1<
var>
元素 2-54
2.15.2<
assign>
2.15.3<
clear>
元素 2-55
2.15.4<
if>
2.15.5<
元素 2-56
2.15.6<
reprompt>
2.15.7<
goto>
元素 2-58
2.15.8<
submit>
元素 2-59
2.15.9<
exit>
元素 2-60
2.15.10<
return>
元素 2-61
2.15.11<
disconnect>
元素 2-62
2.15.12<
script>
2.16时间的指定 2-66
第3章语法 3-1
3.1语音语法 3-2
3.1.1引言 3-2
3.1.2定义语法 3-7
3.1.3语法编译 3-14
3.1.4自然语言理解 3-21
3.2DTMF语法 3-30
第4章VoiceIE系统与ICP业务接口说明 4-1
4.1VoiceIE语音浏览系统结构 4-2
4.2VoiceIE系统对VoiceXML标准支持的说明 4-4
4.2.1VoiceIE系统对VoiceXML标准的支持 4-4
4.2.2VoiceIE系统扩展VoiceXML标准OBJECT使用说明 4-8
4.3计费接口说明 4-20
4.3.1按点击次数计费 4-20
4.3.2按流量计费 4-21
4.3.3按内容计费 4-23
4.3.4计费接口补充说明 4-24
4.4鉴权接口说明 4-26
4.5其他说明 4-27
4.5.1语音文件格式要求 4-27
4.5.2版本说明 4-27
附录缩略语及专用术语表........................................................................................................A-1
第1章VoiceXML标准概述
本章目标
l介绍VoiceXML及相关的一些概念。
l介绍VoiceXML的一些基本元素。
l描述VoiceXMLDocument的执行规则。
1-8
1.1简介
VoiceXML(VoiceeXtensibleMarkupLanguage,语音扩展标识语言)为合成语音,数字音频,语音识别和DTMF(DualToneMulti-frequency,双音多频收号器)键输入,语音纪录、电话、多方会议等提供音频交互手段。
它的主要目标是将基于WEB的开发内容移植到IVR(Interactive VoiceResponse,交互式声音应答)应用中。
1.2概念说明
1.2.1VoiceXML与XML的关系
XML(eXtensible Markup Language,可扩展标记语言)和HTML(HypertextMarkupLanguage,超文本链接标识语言)都是由SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)派生而来的。
HTML是SGML的一个实例,而XML则是SGML的一个子集;
VoiceXML是XML的一个实例。
lXML是一个可无限扩展的标记语言,是用来设计各种各样的标记语言的准则,即通常所说的“元语言”—Meta-Language(即可产生其它语言的语言)。
lVoiceXML是XML在语音方面的一个实例。
lVoiceXML标准必须先遵循XML规范(有关XML规范请参看相关资料,本手册不予说明)。
1.2.2执行的原则
一个VoiceXML document(文档)或同一个application(应用)中的一系列document形成一个交互式的有限状态自动机。
用户任何时刻只能处于一个会话状态,即处于某一个dialog。
每个dialog决定下一个跃迁到的dialog,跃迁时指定将使用到的URI(UniformResourceIndicator,统一资源指示),即指出了下面使用那个document和dialog;
如果该URI没有指定下一个document,则假定为当前document;
如果没有指定下一个dialog,则假定为document中的第一个dialog。
如果当前运行完的dialog没有指定下一个跳转的目标,或者其中出现明确要求退出的元素,则终止当前的交互。
1.2.3DialogandSubdialog
1.dialogdialog(对话)有以下两类:
lform
表示信息的收集输入。
定义了一个交互接口,通过收集输入信息为一系列
field item域项变量赋值。
其中每个field可以指定一个语法,用以定义该
field允许的输入信息。
如果存在form级别的语法,则它可以对会话内的
field起作用。
lmenu
提出下一步作什么样的选择。
向用户提交一系列可选项,并且下一步的跃迁将基于用户的选择。
2.Subdialog
subdialog(子对话),类似函数调用,它提供了调用一个新的交互的机制,并返回到原来的form。
返回时保存内部数据、所用语法以及状态信息,以供在调用该subdialog的document中使用。
例如可在下列场合使用subdialog:
l创建一个要求访问数据库的验证片断。
l创建一个在一个应用中被多个文档共用的元件。
l创建一个在多个应用中可重用的对话库(libraryofdialogs)。
1.2.4Session
一个session的活动周期为:
l开始于:
当用户开始和一个VoiceXML解释器上下文(interpretercontext)交互时。
l继续于:
当获取和处理document时。
l结束于:
当用户、document、或者解释器上下文要求结束时。
1.2.5Application
一个application 由一系列共享同一个root document(根文档)的
document构成。
在一个application内,不管用户是通过某一个document进行交互,还是从一个document转换到另一个document,rootdocument总是处于加载状态,此时rootdocument的变量作为application的变量,可以被同一application内的document所使用,并且它的语法在整个application内都是保持激活状
态。
只有在用户切换到本application之外的document时,rootdocument
才会被卸载。
1.2.6语法
每一个dialog联系着一个或多个语音语法、DTMF语法,在机器引导
(machinedirected)的application中,每个dialog的语法只有在用户使用该dialog时,才处于激活状态;
在 混合引导(mixed initiative)的
application中,用户和机器交互控制下一步做什么;
某些dialog会保持其语法为激活状态(例如监听),即使用户转换到同一document中的另一个
dialog或同一application的另一个已加载的document,在这种情况下,如果输入的用户语言匹配了另一个dialog的激活语法,执行将转移到该dialog,用户的语言将被当作对此dialog的操作。
混合引导的application增加了语音应用的灵活性与处理能力。
1.2.7事件
对于各种的情况,由平台抛出事件(event),如:
用户没用响应,请求帮助。
当VoiceXML文档有语义错误时,解释器也会抛出事件。
事件由catch元素或由它的快捷形式捕捉;
一个事件能产生的每个元素都可指定catch元素。
此外catch元素还可以附加元素“asifbycopy”来继承。
这样,在任何层次都可以指定共有事件的处理方式,并且这适用于所有较低层。
1.2.8Link
link支持混合引导。
如果用户进入link的范围,link指定的语法就处于激活状态,一旦用户输入匹配了link的语法,控制就转移到link的目标URI。
link可以被用来抛出事件以跳转到指定的URI目的地。
1.3VoiceXML基本元素列表
元素
功能
<
给一个变量赋值
audio>
在一个提示中放音频片段
block>
可执行代码的容器(container),这些代码不是交互代码
break>
在输出中增加暂停的JSML元素
catch>
捕捉一个事件
清除一个或多个form变量
choice>
定义一个菜单项目
退出一个session
div>
把一些text定义为特殊类的JSML元素
dtmf>
定义一个按键文法
enumerate>
在一个菜单中枚举选择的缩写
error>
抓获一个错误事件
退出一个document或者application
else>
元素中使用
elseif>
emp>
改变语音输出重音的JSML元素
form>
提交信息和收集数据的dialog
field>
定义一个form中的field
field被填充完毕后要执行的动作
到同一个或另外一个文件的其它dialog
grammar>
定义一个语音识别的语法
help>
捕捉一个help事件
简单的条件逻辑
initial>
在form的入口定义初始化逻辑
link>
为link中的所有dialog定义一个转移
menu>
定义一个选择菜单
nomatch>
捕捉一个nomatch事件
noinput>
捕捉一个noinput事件
option>
为<
域指定一个option
object>
在一个特定的范围内作用(例如、讲话对象)
param>
subdialog>
和<
中的参数
向用户输出音频文件语音和TTS(Text-To-Speech,文本到语音的转化)语音
控制实现平台参数的设置
pros>
改变语音输出的重音和语调模式的JSML元素
record>
记录一个音频采样
当再次访问一个field,请求播放提示音
从subdialog中返回
sayas>
修改怎样拼写一个词或短语的JSML元素
指定一块ECMAscript客户端的脚本逻辑
调用另一个dialog,作为当前dialog的subdialog
将值提交给文档服务器
throw>
抛出一个事件
transfer>
把呼叫转移到另外一个目的地
在提示中插入变量值
声明变量
vxml>
每个VoiceXML文件的最高层元素
1.4Document的结构和执行
一个VoiceXML document由高层的元素dialog组成。
有两种类型的
dialog:
form和menu。
一个document也可以有
、<
等元素。
1.单个document内的执行
缺省是从第一个dialog开始执行。
当前执行的dialog决定下一个要执行的
dialog。
当所执行的dialog没有指定下一个dialog时,就结束运行。
2.含多个document的application的执行
通常application是在独立的document内进行的。
当需要在一个application里使用多个document时,应选一个document作为rootdocument,并且在其他document的<
元素里引用它。
如图1-1所示。
root
D2
D1
D3
图1-1含多个document的application的执行
application中的rootdocument一直驻留在内存中。
通常,可以见到下面的两种情况:
lapplication中的rootdocument(或者一个独立的document)已加载,用户在执行它。
lapplication中的rootdocument和其他的document被加载,用户在执行非rootdocument。
在含多个document的application中,rootdocument的变量和语法可以共享,这样在整个application中用户都可以与共同的(即rootdocument中的)
form、link,还有menu进行交互。
值得注意的是在含多个document的application中,最多只能有两个
document可以同时被加载,一个是正在执行的document,另一个是root
document。
如果一个document引用了不存在的rootdocument,或者某个application的rootdocument引用了另外一个application的rootdocument,就会引发语义错误事件。
第2章VoiceXML标准基本元素功能及使用介绍
l简单翻译介绍VoiceXML1.00标准中一些基本元素的功能及应用。
2-66
2.1Subdialog
使用subdialog可以减小dialog的复杂序列,改善程序的结构,或者用于生成一个可重用的组件。
调用subdialog时增加了新的上下文。
被调用的可以是当前document中一个dialog,也可以是另外的document 中的dialog。
一个subdialog的调用与其语法的有效范围相关。
2.2Form
它是VoiceXMLdocument的关键元件。
可以包含:
(1)一组formitem。
formitem又分为fielditem和controlitem。
其中:
lfielditem
定义fielditem的变量,FIA(FormInterpretationAlgorithm,form的解释算法)主循环里要访问的元素。
lcontrolitem
帮助控制field的收集信息。
(2)声明non-fielditem变量。
(3)事件处理器(eventhandlers)。
(4)过程逻辑块。
form的属性:
lId
标识form的名称。
lScope
form语法的默认范围。
如果默认范围是dialog,则form语法的默认范围仅在form内激活;
如果默认范围是document,form语法的默认范围在同一
document内的任一dialog内激活;
如果默认范围是document,并且该
document是root document,则form语法在该application的任一
document的内的任一dialog内激活;
如果一个form的语法标明了scope
为dialog,则它仅在该form内激活。
2.2.1Form的解释
form由内含的FIA解释。
FIA循环重复地选择一个formitem,然后访问它,这个被选的form item是第一个警戒条件不满足的form item。
例如,form
item的默认警戒条件检验该form item的变量是否被赋值,这样对于仅有
fielditem的简单form,用户将被提示依次处理各fielditem。
解释一个formitem通常包括以下步骤:
l选择并播放一段或多段提示音。
l收集用户输入,或者填充一个或多个field,或者抛出各种事件(如帮助事件)。
l解释field中最近填充的<
动作。
在遇到控制状态转移时,如转换到其他dialog或者document的<
,或向服务器提交数据的<
,FIA将结束。
当遇到暗含的<
EXIT>
结束标志,如没有合法的formitem,FIA也将结束。
2.2.2FormItem
一个form的formitem是指可以被FIA的主循环访问到的元素(element),form item指引FIA收集特定的field,FIA选择到的一个控制item,可能包含一段需要运行的程序代码,或者它将告诉FIA为一个混合引导型form提供初始化了的提示放音集。
1.FieldItem
一个fielditem指定了一个fielditem变量,它的值从用户那里收集。
field
item带有提示音,以告诉用户说什么或者按什么键,以及定义允许输入内容的语法和处理任何结果事件的处理器。
fielditem也可能带有一个<
元素,它定义fielditem变量赋值后应该做的动作。
fielditem可以细分为:
l<
通过ASR(AutomaticSpeechRecognition,自动语音识别)或者DTMF语法来赋值的fielditem。
内容为一段音频剪辑的fielditem,例如一个<
元素可以收集语音邮件。
该fielditem将用户的电话转接到另一个电话上。
有两种类型,一种将用户转过去以后,流程就结束;
另一种<
,将用户转过去以后,等待其结束,然后返回控制,这时field变量的值将被设置成结束的状态,如:
busy
noanswer;
network_busy;
Near_end_disconnect;
far_end_disconnect
;
network_disconnect。
该field item调用一个带有各种变量的平台指定的对象(其返回值是带有一个或多个属性的ECMAScript对象)。
平台指定的对象可以是一个用来收集信用卡信息的内嵌的对话,也可以是使用某些专用的DTMF文本输入法收集的文本信息。
&
说明:
(1)<
元素支持调用一个带有各种变量的平台指定的对象,但并不要求应用必需提供平台指定的对象。
(2)ECMAScript,AstandardversionofJavaScriptbackedbytheEuropeanComputerManufacturer'
sAssociation,欧洲计算机制造商协会所支持的一个JavaScript的标准版本。
(3)JavaScript,Java描述语言。
大体上就象函数调用,它调用在当前页的对话,或者调用另一个
VoiceXML文