VoiceXML开发指南Word下载.docx

上传人:b****2 文档编号:3026141 上传时间:2023-05-01 格式:DOCX 页数:28 大小:30.81KB
下载 相关 举报
VoiceXML开发指南Word下载.docx_第1页
第1页 / 共28页
VoiceXML开发指南Word下载.docx_第2页
第2页 / 共28页
VoiceXML开发指南Word下载.docx_第3页
第3页 / 共28页
VoiceXML开发指南Word下载.docx_第4页
第4页 / 共28页
VoiceXML开发指南Word下载.docx_第5页
第5页 / 共28页
VoiceXML开发指南Word下载.docx_第6页
第6页 / 共28页
VoiceXML开发指南Word下载.docx_第7页
第7页 / 共28页
VoiceXML开发指南Word下载.docx_第8页
第8页 / 共28页
VoiceXML开发指南Word下载.docx_第9页
第9页 / 共28页
VoiceXML开发指南Word下载.docx_第10页
第10页 / 共28页
VoiceXML开发指南Word下载.docx_第11页
第11页 / 共28页
VoiceXML开发指南Word下载.docx_第12页
第12页 / 共28页
VoiceXML开发指南Word下载.docx_第13页
第13页 / 共28页
VoiceXML开发指南Word下载.docx_第14页
第14页 / 共28页
VoiceXML开发指南Word下载.docx_第15页
第15页 / 共28页
VoiceXML开发指南Word下载.docx_第16页
第16页 / 共28页
VoiceXML开发指南Word下载.docx_第17页
第17页 / 共28页
VoiceXML开发指南Word下载.docx_第18页
第18页 / 共28页
VoiceXML开发指南Word下载.docx_第19页
第19页 / 共28页
VoiceXML开发指南Word下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VoiceXML开发指南Word下载.docx

《VoiceXML开发指南Word下载.docx》由会员分享,可在线阅读,更多相关《VoiceXML开发指南Word下载.docx(28页珍藏版)》请在冰点文库上搜索。

VoiceXML开发指南Word下载.docx

1.3.2.应用程序的输出

文本语音转换技术(TTS)能够将输出的文本转换成“语音”(实际上是一种数字音频格式)。

这使得应用程序能够拥有灵活的输出方式,将开发人员没有预料到的事情告诉用户。

TTS的功能与ASR基本上相反,它将文字转变为音素,这些音素具有相对应的数字声音。

另一种语音输出是用某种标准格式存储的录制的声音文件。

这些声音文件格式包括WAVE和脉冲编码调制(PCM)。

这些声音文件在应用程序启动以前已经被编写和录制好了。

所有录制的语音输出都必须事先确定。

因此,TTS是一种更灵活的输出方式。

尽管TTS技术在过去的几年里有了显著的改进,但是商用TTS语音输出的声音往往仍然比较死板。

VoiceXML还为电话网络本身提供了转移功能。

它使得程序能够将用户从当前运行的VoiceXML应用程序转到另一个电话号码。

2.VoiceXML基本编程

2.1.程序结构

2.1.1.Welcome示例程序

<

?

xmlversion=”1.0”>

!

--Welcome示例程序-->

vxmlversion=”1.0”>

<

formid=”welcome”>

block>

欢迎访问声软科技<

/block>

/form>

和介绍所有的编程语言一样,Welcome示例程序给出了一个最简单的示例。

当该程序被执行时,VoiceServer将通过TTS引擎来说出“欢迎访问声软科技”。

下面详细说明该程序代码涉及到的元素。

2.1.2.基本元素

元素

说明

xml>

代码行向XML解析器或编辑器说明该文档是XML1.0语法编写的。

所有VoiceXML1.0文档都是采用XML1.0语法编写的。

虽然元素xml对应VoiceXML解释程序来说并不是必不可少的元素,但是最好使用该元素,这样就可以检查VoiceXML文档的格式是否正确,是否符合文档类型定义(DTD)。

注释

是注释行,VoiceXML程序的注释使用标准的XML语法编写。

所有VoiceXML注释一律采用<

--commonttext-->

格式。

vxml>

所有的VoiceXML命令必须封装在<

…<

/vxml>

元素中。

其中属性version告诉解释程序在执行程序文件时,使用哪个版本的VoiceXML文档类型定义(DTD)。

目前,VoiceServer支持VoiceXML1.0,具体文档类型定义参见.org/voicexml1-0.dtd。

本示例程序中没有使用vxml元素的另一个属性applicaiton,该属性指明VoiceXML文档的根文档的URL。

当你上载一个VoiceXML文档时,它的根文档也同时上载;

一般地,根文档中可以定义全局使用的变量、过程等等。

form>

是VoiceXML的对话框,用于描述VoiceXML应用程序对用户所说的各种提示,定义和收集用户作出的响应,并且描述程序控制的流程。

对话框分为两种:

一种是菜单,一种是窗体。

元素负责执行对话框定义中描述的所有操作,封装与用户输入输出相关的命令,在文档中导航或导航到其他文档中,也可以给变量赋值,进行录音和呼叫转移。

元素是窗体的项目,用于封装一组语句。

这些语句可以用于对变量的值进行输出、浏览、声明和赋值。

2.2.程序输出

在VoiceXML中,有两种方法可以用来将信息输出给用户。

第一种方法是通过文本语音转换(TTS)工具进行输出,另一种方法是通过播放预先录制的声音文件。

2.2.1.TTS输出

TTS输出比较简单,如2.1.1的例子

prompt元素是封装TTS输出和audio元素使用的另一种元素。

如上例,TTS信息不用<

prompt>

封装时,相当于使用了<

元素的默认值。

在以下两种情况下,必须使用prompt元素:

首先,如果输出包含TTS语音标记元素,就必须使用prompt元素;

语音标记元素是用于控制向用户说出TTS信息时的各项特性,如速度、音量和发音等。

其次,当输出信息需要bargein、cond、count或timeout等属性时,则必须使用prompt元素。

/prompt>

需要说明的是,VoiceServer系统对TTS的转换结果作了缓存处理,同样的内容直接从缓存中获取语音文件,而不是通过TTS引擎实时转换,大大提高了TTS的效率。

2.2.2.声音文件输出

audio>

元素用于设定向用户播放事先录制好的声音文件。

不同的VoiceXML语音平台支持不同的声音文件格式,一般支持的文件格式为.wav文件。

VoiceServer系统支持的文件格式参见其配置说明文档。

声音文件输出的示例如下:

audiosrc="

welcome.wav"

>

/audio>

audio元素的属性包括:

src

Src属性是向用户播放声音文件的url,注意可以是http:

//hostname/path/voicefile的形式,从指定的服务器远程得到语音文件。

caching

Caching为true的话,则如果有一个声音文件的高速缓存拷贝且没有过期,则使用该拷贝。

目前,VoiceServer系统尚不支持该属性。

fetchtimeout

该属性用于设定提供声音文件的超时,如果平台在指定的超时时间内没有取得声音文件,则平台将发出一个出错事件。

fetchtint

该属性用于确定平台是否应该在实际需要前提前提取声音文件。

2.2.3.声音文件和TTS混合输出

VoiceServer系统支持声音文件和TTS输出的混合使用。

混合输出的示例如下:

<

>

<

王国强先生<

值得注意的是,声音文件的格式和TTS输出的格式必须一致;

可以参考系统配置手册的说明,配置声音文件和TTS输出的格式。

另一种混合输出的方式是,如果在声音文件没有找到或者超时的情况下,则播放TTS的输出。

示例如下:

欢迎访问声软科技

如上例所示,在平台无法得到welcome.wav声音文件时,就将通过TTS引擎将”欢迎访问声软科技”实时转换成声音文件向用户播放。

该功能特别适合在系统升级时,由于某种原因语音文件不全的情况下,用户也能得到正确的提示信息。

由于VoiceServer系统对TTS结果的缓存处理,TTS可以获得与预先录制语音文件几乎相同的性能。

2.3.程序输入

输入信息可以用两种方法来接收,一种是语音,一种是双音多频(DTMF)。

输入信息既可以直接识别,也可以录音。

直接识别的输入信息是通过语法来表述的,该语法设定了一组声音,用户可以发出这一组声音,也可以由用户按下DTMF按钮,以便要求进行某项操作,或将信息提供给应用程序。

2.3.1.菜单输入

menu>

元素和<

元素一样,是VoiceXML中的两种对话框之一。

根据定义,VoiceXML对话框用于描述应用程序向用户说出的提示信息,也用于定义和接收用户的应答,并且用于描述程序控制的流程。

菜单包含的prompt元素用于将应用程序的输出信息传递给用户,它也包含用于建立语法的choice元素,以便定义和接收用户的输入信息,此外它还包含描述程序控制的choice元素和事件。

菜单的示例如下:

menuid="

QueryMenu"

QueryMenu.wav"

查询产品信息请按1,了解公司信息请按2,转话务员请按0

choicedtmf="

1"

next="

#Product"

/>

2"

#Company"

0"

#Transfer"

/menu>

如上所示,平台在运行到该菜单时,向用户提示“查询产品信息请按1,了解公司信息请按2,转话务员请按0”;

QueryMenu.wav的声音文件应事先录制好该语句,如果该文件不存在,则使用TTS输出(参见2.2.3混合输出)。

dtmf="

、dtmf="

和dtmf="

定义了用户可以按的键值,next定义了用户按了该键后,执行的下一个<

或<

,其中#Product、#Company和#Transfer表示<

的名称,即<

的id值。

Menu元素的属性包括:

id

Id用于标识菜单。

当使用goto、submit、next等元素从另一个对话框导航到该菜单时,可以使用该id值。

scope

scope指在菜单中定义的choice元素语法的作用域。

如果scope的值是它的默认值dialog,则菜单的语法只在对话框中有效。

如果scope的值是document,则菜单的语法将在整个VoiceXML文档中有效。

dtmf

Dtmf值可以是true或false。

如果是true,则封装在menu元素中的choice元素如果没有定义dtmf属性,那么将字段赋予一个dtmf值。

Choice元素用于菜单语法。

如果一个选项的语法被识别,那么该choice元素的next、event或expr等属性将用于确定下一步将执行什么程序。

只有next、expr和event之一能够拥有用于每个choice元素的值。

Choice元素的常用属性包括:

Dtmf指定与该选项相关的DTMF按键值。

next

Next用于指定执行的下一个对话框。

如果被访问的对话框位于另一个文件中,对话框的名字必须使用以下格式:

下一个文档的URL>

#<

对话框名称>

如果访问的对话框位于同一个文档,则可以简化为#<

event

Event用于设定choice元素语法被识别后产生的事件。

expr

Expr的作用与next相同,区别在于expr是一个表达式,它的计算结果将作为下一个对话框的名字。

下面再给出一个使用<

choice>

元素的event属性的示例:

event="

evtCompany"

catchevent="

evtCompany"

Company.wav"

gotonext="

#QueryMenu"

/catch>

和前面的示例一样,平台在运行到该菜单时,向用户提示“查询产品信息请按1,了解公司信息请按2,转话务员请按0”,如何用户按了“2”,平台将接收到一个名为evtCompany的事件,<

catchevent=”evtCompany”>

元素中定义了该事件处理程序,即播放一段公司介绍Company.wav,播放完毕后再转到菜单QueryMenu。

关于<

catch>

元素的具体参见3.1的说明。

2.3.2.字段输入

字段输入采用field元素,该元素用于接收用户的自动语音识别信息或DTMF信息。

field>

元素是接收用户输入信息最常用的元素。

元素的示例如下:

formid="

QueryProductCode"

fieldname="

productCode"

type="

digits"

<

InputProductCode.wav"

请输入产品代码

/field>

……

如上所示,平台在执行到QueryProductCode对话框时,会向用户提示“请输入产品代码”,之后用户就可以键入产品代码。

Field元素的属性包括:

name

Name用于存放来自用户输入信息的变量。

Expr声明变量的初始值。

如果expr没有指定,则该变量的初始值就是undefined。

如果该变量的值是undefined之外的值,则封装在field元素中的指令将不予执行。

cond

Cond是一个表达式,它的计算结果可以是true或false。

如果cond的计算值是true,则封装在field中的指令将被执行,如果cond的计算值是false,则封装在field中的指令将不被执行。

type

Type指明了期望的用户输入类型。

系统内置的类型包括:

-Boolean:

缺省”1”为true,“2”为false

-Date:

年月日组成的有效日期,格式为yyyymmdd。

-Digits:

一串由0-9组成的串。

-Currency:

货币数量,格式为dddddd*dd,*表示小数点。

-Number:

数字,输入格式同currency。

-Phone:

有数字构成的电话号码,*表示分机。

例如:

4*123表示电话号码4转分机123。

-Time:

时间,格式是hhmm。

Field元素还有以下影子(shadow)变量:

-Name$.confidence:

0.0-1.0间的数字,表示返回结果的可信度,0.0最低,1.0最高。

该变量主要用于ASR识别结果;

-Name$.utterance:

是被识别时的确切词组,同样是用于ASR识别结果的;

-Name$.imputmode:

表明输入方式是ASR还是DTMF,用于当ASR和DTMF同时可用时,说明该次输入是用什么方式进行的。

当用户输入后,一般地执行<

filled>

元素。

Filled元素表示在某些字段项赋值后,执行封装在filled元素中的指令。

以下示例使用filled元素完善前面的示例:

submitexpr=http:

//server/get.aspx'

namelist="

productCode"

/filled>

如上所示,如果用户输入了产品号码,则将输入的产品号码post到后台服务器,取得信息后向用户播放产品信息。

关于submit元素的说明,参见3.5节。

Filled元素的属性包括:

namelist

该属性包含filled元素等待被赋予一个值的所有字段变量。

它的默认值是父窗体中的所有字段变量。

mode

该属性可以是all或any。

如果是any,则当filled元素的namelist属性中的任何变量被赋值时,filled元素中的指令均被执行;

如果是all,则当filled元素的namelist属性中的所有变量被赋值后,filled元素中的指令才被执行。

下面的示例说明了mode为all的应用示例:

Login"

name"

InputLoginName.wav"

请输入用户代码

password"

InputPassword.wav"

请输入用户密码

fillednamelist=”namepassword”mode=”all”>

//server/login.aspx'

namepassword"

如上所示,只有在用户输入了用户名和密码后,进入后台的验证程序。

2.4.条件语句

VoiceXML的条件语句采用<

if>

、<

elseif>

和<

else>

元素,其中<

元素总是封装在一个<

If元素可以包含多个elseif元素,但只能包含一个else元素。

元素的示例程序如下,该程序示意了产品折扣处理:

formid=“UnitPrice”>

Qty"

InputQuantity.wav"

请输入购买数量

ifcond=”Qty&

gt;

100”>

assignname=”unitPrice”value=”60”/>

elseifcond=“Qty&

10”/>

assignname=”unitPrice”value=”80”/>

else/>

assignname=”unitPrice”value=”100”/>

/if>

如上所示,用户输入购买的产品数量后,在<

元素中判断,如果数量超过100则单价为60,如果数量大于10小于100则单价为80,如果数量小于10,则单价为100。

这里需要注意的是,由于<

、>

是XML的保留字符,所以大于、小于符号都需要使用转义符。

转义符表如下:

保留字符

转义符

转移符

小于符号

&

lt;

‘单引号

apos;

大于符号

与符号

amp;

“引号

quot;

2.5.goto语句

goto元素用于从一个对话框浏览到另一个对话框,也可以从一个窗体项转到另一个窗体项。

Goto元素的示例如下:

欢迎访问声软科技

gotonext=“#QueryMenu”>

/pr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2