VXml语音业务开发培训_第1页
VXml语音业务开发培训_第2页
VXml语音业务开发培训_第3页
VXml语音业务开发培训_第4页
VXml语音业务开发培训_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VoiceXML开发知识 iAvp平台系列培训通讯增值事业部 张磊 Thursday, March 31, 20221对象和目的课程对象业务流程开发、测试人员VUI设计人员平台开发、测试人员课程目的了解VoiceXML根本概念和标志运用VoiceXML开发流程2相关课程3主要内容VoiceXML概述VoiceXML根本概念VoiceXML中的变量和根本标志VoiceXML中的输入输出标志VoiceXML高级标志VoiceXML与效力器端运用开发一个完好的VoiceXML运用4概述什么是VoiceXML全称: Voice eXtensible Markup LanguageVoiceXML 是一

2、种基于 XML 规范的规范,是XML子集。它允许经过和语音访问 Web上的信息和效力。可以用来开发基于语音的运用程序。5概述VoiceXML历史AT&T Phone Marked Language (PML)Motorola VoxMLIBM SpeechMLHP TalkMLPIPEBEACH VoiceHTML1998 , W3C 召开 Voice browsers会议VoiceXML forum2000 ,VoiceXML 1.0 2003 VoiceXML 2.02004 VoiceXML 2.16概述VoiceXML的目的为运用开发者屏蔽底层的、平台相关的细节分别交互代码和效力逻辑提

3、高运用在不同平台的可移植性既能提供对简单运用快捷开发,也提供对复杂运用言语级的支持单文档表示多次交互,减少了Client/Server交互负荷7概述 VoiceXML与传统语音开发的区别InternetOperatorsNetworkPlatf.Voice MailAppl.Platf.VividRingAppl.VoiceXMLInterface8概述 VoiceXML与传统语音开发的区别InternetOperatorsNetworkPlatf.Voice MailAppl.Platf.VividRingAppl.VoiceXMLInterface9概述 VoiceXML与传统语音开发的区

4、别InternetOperatorsNetworkPlatf.Voice MailAppl.Platf.VividRingAppl.VoiceXMLInterface10概述VoiceXML与HTML开发比较 Enter your Id: Your ID, please. VoiceXML语音运用开发与HTML页面开发具有很高的类似度11概述我们的VoiceXML基于VoiceXML1.0规范实现了VoiceXML1.0中的大部分标志和属性扩展了一些1.0中没有的标志,如等识别支持built-in、just in time和dgdb12概述iAvp支持的标志(1)元素功能支持描述给一个变量赋值

5、在一个提示中放音频片段可执行代码,不是交互代码在输出中增加暂停的JSML元素不支持捕捉一个事件清除一个或多个form 变量定义一个菜单项目不支持退出一个session把一些text定义为特殊类的JSML元素不支持定义一个按键文法不支持在一个菜单中枚举选择的缩写不支持13概述iAvp支持的标志(2)元素功能支持描述抓获一个错误事件退出一个document 或者application元素中使用 元素中使用 改变语音输出重音的JSML元素不支持 提交信息和收集数据的dialog 定义一个form中的fieldTYPE属性仅支持iAVP定义的Built-in语法 field被填充完毕后要执行的动作 到

6、同一个或另外一个文档的其它dialog 定义一个语音识别的语法14概述iAvp支持的标志(3)元素功能支持描述 捕捉一个help事件 简单的条件逻辑 在form的入口定义初始化逻辑 为link中的所有dialog定义一个转移不支持 定义一个选择菜单不支持 捕捉一个no match事件 捕捉一个no input事件 为域指定一个option不支持 在一个特定的范围内作用(例如、讲话对象)不支持 和中的参数 向用户输出音频文件语音和TTS语音15概述iAvp支持的标志(4)元素功能支持描述 控制实现平台参数的设置 改变语音输出重音和语调模式的JSML元素不支持 记录一个音频采样不支持属性modal

7、 当再次访问一个field,请求播放提示音 从subdialog中返回 修改怎样拼写一个词或短语的JSML元素不支持 指定一块ECMAscript客户端的脚本逻辑 调用另一个dialog,作为当前dialog的subdialog 将值提交给文档服务器16概述iAvp支持的标志(5)元素功能支持描述 抛出一个事件 把呼叫转移到另外一个目的地 在提示中插入变量值 声明变量 每个VXML文件的最高层元素发送传真iAVP扩展元素接收传真iAVP扩展元素记录节目编码和系统日志iAVP扩展元素17主要内容VoiceXML概述VoiceXML根本概念VoiceXML中的变量和根本标志VoiceXML中的输入

8、输出标志VoiceXML高级标志VoiceXML与效力器端运用开发一个完好的VoiceXML运用18根本概念Dialog对话(Dialog/Dialog States)VoiceXML 运用程序的用户总是处于一种对话形状或对话中。每个对话都跟着另一个对话,假设没有指定下一个对话,就终止VoiceXML运用程序的执行。有两种对话:表单(Form)和菜单(Menu)。19根本概念Document文档(Document)一个VoiceXML document由多个dialog组成。单个document的执行缺省是从第一个dialog开场执行。也可以指定从某个对话执行。在一个application中有

9、多个document时,应选一个document作为root document,并且在其他document的标志里援用它,并且它的变量和语法在整个运用中有效。 在含多个document的application中,最多只能有两个document可以同时被加载,一个是正在执行的document,另一个是root document。20根本概念Root Document Shall we say ? Leaf.vxml将app_root.vxml作为当前文档的根文档 hello,world. app-root.vxml21根本概念ApplicationApplication(运用)运用applica

10、tion是由共享同一运用根文档application root document的一系列文档组成的。在一个application内,root document总是处于加载形状,此时root document的变量和语法在整个application都是坚持激活形状。22根本概念Application(续)23根本概念Session会话( Session )会话开场:呼入接通 呼出接通会话过程:交互 文档获取会话终了:用户挂机 上下文挂机24根本概念SubDialog子对话(SubDialog)类似函数调用,它提供了调用一个新的交互的机制,并前往到原来的form。前往时保管内部数据、所用语法以及形

11、状信息,以供在调用该Subdialog的document中运用。25根本概念文档之间的跳转(1)保管根文档上下文的跳转RRRRL1L2234126根本概念文档之间的跳转(2)重新初始化上下文的跳转R1R2R3R1L1234127根本概念文档之间的跳转(3)SubDailog的上下文跳转(1)Main dialog execute contextD1D2D3SubDialog execute contextSD1SD228SubDialog execute context 2根本概念文档之间的跳转(4)SubDailog的上下文跳转(2)Main dialog execute contextD1

12、D2D3SubDialog execute context 1SD1SD229根本概念Event事件 (Event)事件可以是预先定义的或者是运用程序定义。对于各种的情况,由平台抛出事件,如:用户没用呼应,恳求协助。当VoiceXML文档有语义错误时,解释器也会抛出事件()。事件由或由它的快捷方式捕捉;一个事件能产生的每个标志都可指定catch标志。在任何层次都可以指定共有事件的处置方式,并且这适用于一切较低层。在VoiceXML的事件方式中,事件可以由平台或运用产生,这些事件可以由运用程序捕获和处置,也可以由平台捕获和处置。 30根本概念FIAFIA (Form Interpretation

13、 Algorithm )初始化Form,重新设置形状选择要执行的Form Item并播放提示音搜集用户输入,或者填充一个或多个field,或者抛出各种事件查找执行 动作 31根本概念FIA(续)初始化选择Item获取输入处置输入结果没有Item可以继续处置Event处置Link其它Dialog32根本概念Grammar语法(Grammar)语法指定一份准许的词汇列表,供用户从中选择,以便与 VoiceXML 运用程序交互每一个dialog都有一个或多个语法(识别、按键) ,在directed dialog的运用中,每个dialog的语法只需在用户运用该dialog时,才处于激活形状语法的作用域

14、33主要内容VoiceXML概述VoiceXML根本概念VoiceXML中的变量和根本标志VoiceXML中的输入输出标志VoiceXML高级标志VoiceXML与效力器端脚本开发一个完好的VoiceXML运用34从Hello Word!开场 Hello World! VoiceXML是Xml的子集,服从xml1.0规范指定当前文档运用VXML1.0规范定义一个对话表单定义一个表单项,用于封装对应的语句输出文本,可以被TTS合成并播放35VoiceXML中的变量变量相当于ECMAScript变量变量不能以_开头类型共有6种Undefine (未定义变卦被赋予一个值之前它的默许值Null (空)

15、只能是nullBoolean (布尔型)只能是true或falseString (字符串)用单引号封装的字符串Number(数字型)正负数Object (对象型)一组没有排序的属性。每个属性都包含一个名字、一个值和一组属性。36声明变量变量具有name和Expr属性经过表单项的Name属性来声明经过标志来声明37变量的作用域SessionApplicationDocumentDialog( Anonymous )它是由解释器上下文来声明和赋值,只读变量。不能声明新的session变量。由运用根文档的标志的子成员声明由document的标志的子成员声明,仅对该document可访问由Form或M

16、enu的声明在Block、Filled或catch等标志中的声明当变量不带作用域并发生命名冲突时,运用限定性最明确的作用域变量高低38Session变量Session.telephone.ani (主叫号)Session.telephone.dnis (被叫号)Session.telephone.iidigits (信息指示数字)Session.telephone.uui (用户到用户信息)Session.telephone.callidSession.telephone.stationidSession.telephone.channelid39影子变量影子变量是与字段项相关的变量。影子变量

17、用于前往字段项执行的结果语法:field_item_name$.shadow_var_name例如:recording$.termchar40标志:为变量赋值 VXML中的变量是“弱类型“,声明时不需求显示给出类型在赋值后依然可以动态改动变量类型不引荐41Form标志:最重要的的DialogForm对应于对话的形状两个属性id: 对话标识,例如:scope:指示这个form对应语法的活动范围Form ItemsInput items : field、record、transfer、object、subdialogControl items : block、initail42Menu标志另一个D

18、ialog标志 What would you like for lunch? To choose , press ham and cheese grits ham and shatner 43Dialog的公用属性field、record、transfer、subdialog、 block 、 object 和initial标志都具有以下三个属性:nameexprcond经过操作name、expr、cond来确定被封装在这些标志中的内容能否被执行44Dialog的公用属性(续)Name和Expr被定义,被封装的指令要在Clear标志被执行后才干被执行假设没有定义Expr,Cond值为true那

19、么可以执行,false那么不被执行,Cond默以为true被以上field封装的指令均不会被执行被以上field封装的指令均不会被执行被以上field封装的指令均会被执行45Block标志Block是表单项,用于封装其它语句。属性NameExprCond46If/elseif/else标志If/elseif/else用于条件逻辑判别。假设Cond属性的值计算为true,那么其中封装的语句将被执行,否那么将不予执行。 1000This is way too much to spend.留意:,&在运用时需求本义和if不同elseif和else是单行标志47Param标志Param标志用于将参数传

20、送给子对话框或者对象。属性name参数名expr表达式值value字串值48SubDialog标志类似于函数调用不丧失当前上下文当subdialog调用完成后,调用者的一切本地数据、语法和形状均被复原属性src属性是必需的Return标志用于终了对话框执行并前往,有两个属性event和namelistEvent属性是前往后产生的一个事件Namelist属性包含了前往后给调用对话框的变量列表。49SubDailog例如 poppa oo mow mow! 50Goto标志跳转到当前form的另一个form item跳转到当前文档的另一个dialog 跳转到另一个文档 主要属性nextitemne

21、xt51Goto标志例如1From内的跳转 preparing to go to the next form item. preparing to go to the next form item variable. this block will be skipped, and will be the last block executed by the FIA. test successful. FIA52Goto标志例如2Form及文档间的跳转 welcome! how many book you want? 跳转到另一个Form,本Form内的变量值将丧失跳转到另一个document,

22、本document内的变量值将丧失53Clear标志Clear标志用于将变量的值设置为undefine属性namelistif cond=“I 经过将block的expr值设置为undefine来构造出一个54Exit标志当执行exit标志时,控制前往给执行平台。这时进展什么操作由平台决议,普通情况下将挂断。 We are finished and will now exit. We have not exited yet! 55Disconnect标志Disconnect标志用于平台切断用户的调用disconnect时会抛出telephone.disconnect.hangup事件 We a

23、re finished and will now exit. We have not disconnected yet! 56主要内容VoiceXML概述VoiceXML根本概念VoiceXML中的变量和根本标志VoiceXML中的输入输出标志VoiceXML高级标志在VoiceXML中运用客户端脚本VoiceXML与效力器端脚本开发一个完好的VoiceXML运用57Prompt标志用于TTS输出封装audio标志属性bargeincondcounttimeout (gavin mac lee odd) you guessed it. this prompt will not be execu

24、ted. because the prompt is set to false. here is the very first prompt. try not to say anything. who was the actor who played captain stoobing? correct you are! 58Value标志Value标志用于输出变量的值和表达式计算结果。属性expr Our favorite movie star is . 59Audio标志audios标志用于设定向用户播放预先录制的声音文件。语音文件格式与平台相关,以WAV格式居多。属性src向用户播放的声音

25、文件的URLfetchtimeout获取语音文件超时之前的等待时间 here we use the audio fetch time out attribute with the value of 10 seconds. 60Field标志field标志用来接纳来自用户的自动语音识别或DTMF按键信息。属性name、expr、condtypeiavp目前只支持builtin方式搜集按键今日笑话请按1,笑话连篇请按2,打榜笑话请按3 digits?length=1;max_time=2000; mask_key=06789#;按键长度为1最大超时为2秒有效按键为12345*,其它为无效按键61F

26、illed标志标志指定了当一个或多个input item被填充后要执行的操作。 它可以出如今两个地方:作为标志的子标志,或者作为input item的子标志。 属性namelistmode What is the starting city? What is the ending city? You cant fly from and to the same city. Filled标志作为form的子项出现的例子 What is the city? Note, Novosibirsk service ends next year. Filled标志作为输入项的子项出现的例子62Grammar

27、标志Grammar标志用于设定能够的语音输入不同的平台支持不同的语法格式语法范围iAvp支持Nuance识别语法(GSL2.0)Just In Time(需求即时编译)DTMFDynamic Grammar63Just in time语法!CDATAName1:public (dtmf-1) (yi1) (dtmf-2) (er2) (dtmf-3) (san1) (dtmf-star) (dtmf-pound) 64动态大语法动态语法定义在运用中可以被动态创建和加载的识别语法DBKey每个DBKey相当于一个识别语法DBItem每个DBItem相当于一个识别条目 例如一个歌手名相当于一个DB

28、Key,那他的每一首歌相当于一个DBItem65iAvp中的大语法实现经过动态语法添加接口向数据库中添加DBKey和DBItem经过动态语法编译接口编译语法经过标志援用语法66动态大语法例如!CDATAName1:public :s (dtmf-1) (yi1) (dtmf-star) .67NBest运用在一次识别需求前往多个识别结果的语音运用中运用影子变量实现application.lastresult$.length 可以得到此次识别结果的数量,iavp平台最多为5个。application.lastresult$i.confidence 识别结果的置信度application.last

29、result$i.utterance 识别结果的语音数据application.lastresult$i.inputmode speech dtmfapplication.lastresult$erpretation 识别结果application.lastresult$erpretation.Key 多个slot68语法冲突假设用户语音输入或按键输入结果包括多个有效语法,VoiceXML按以下顺序进展选择:当前字段内的语法包含在当前From或Menu中的语法文档作用域内在当前文档内的非当前Form或Menu的语法及标志内的语法当前根文档内的语法69Throw和Catch标

30、志Throw标志用于产生预定义的事件和运用程序定义的事件。Catch将文档、对话、Form Item与事件捕获联络起来,它包含了可执行的内容。 we caught the thrown event. getting ready to throw an event to be caught. throwcatch70Error、 Help、 Noinput、 Nomatch标志、和标志都是标志特定方式的快捷标志属性condcount (slappy white) say help here. this is the first occurance of the help event. say h

31、elp again. this is the second occurance of the help event. goodbye. why did you fill the field, you dummy? 第一次说help第二次说help71Reprompt标志当前对话中的提示音(prompt)最大count属性小于或等于prompt计数器值,那么reprompt标志可用于使该提示得以播放。 Do you want ice cream for dessert? If you want ice cream, say yes. If you do not want ice cream, s

32、ay no. I could not hear you. C: Do you want ice cream for dessert?H: (silence) C: I could not hear you.C: If you want ice cream, say yes. If you dont want ice cream, say no.H: (silence) C: I could not hear you.C: If you want ice cream, say yes. If you dont want ice cream, say no.H: No. Do you want i

33、ce cream for dessert? If you want ice cream, say yes. If you do not want ice cream, say no. I could not hear you. !- C: Do you want ice cream for dessert?H: (silence) C: I could not hear you.H: (silence) C: I could not hear you.H: No.72主要内容VoiceXML概述VoiceXML根本概念VoiceXML中的变量和根本标志VoiceXML中的输入输出标志Voice

34、XML高级标志VoiceXML与效力器端运用开发一个完好的VoiceXML运用73Record标志Record标志用于录制一段语音name将存放录音文件名。expr如该表达式结果值不为undefined,该标记将不被执行。cond只有当其结果值为true,该标记才被执行,否则不被执行。maxtime最长可录音时间,单位(秒s,毫秒ms)。finalsilence无语音输入时间的最长时间,单位(秒s,毫秒ms)。type录音文件格式,该值为audio/wav-ulav-8k8bit。beep当为true时,录音前有“嘟”音提示。缺省值为false。modal当值为true,在录音时识别语法无效;

35、否则false时有效。dtmfterm录音过程中是否可以按键打断,却省值为true。Dest录音最终生成的语音文件。74Record例如 嘟声后开场说录音,0号键重录,时间不超越一分钟,星号键前往 运用影子变量来保管录音结果信息保管录音结果必需经过submit标志75Transfer标志将用户的转接到另一个上有两种类型的转接桥转接解释器不断处于等待形状,直到Transfer从转接通话形状下退出。假设由于挂机或网络的缘由而线路中断,会抛出一个Connection.disconnect.hangup事件。假设通话由于其它缘由而中断,中断缘由会写在标志的属性里。 盲转接解释器在完成转接后,不再监控转

36、接过程,也不再在标志的名字属性中报告挂断结果,而是立刻抛出一个connection.disconnect.transfer事件。 76Property标志property标志用于控制语音识别、提示、提取文档和资源、以及输入类型等的运转特性。77Submit标志标志用于从一个VXML文档转到效力器端的脚本文件,比如用Perl、CGI、JSP、ASP、ASPX编写的文件。标志与很相像,由于它将导致一个新的VXML document被获得。但与不同的是,它能使他利用一个HTTP GET或POST恳求,给文档效力器提交一组变量。78Submit属性属性名说 明next请求文件的URL。exprECMAScript表达式。其结果值是文件的URI。methodHTTP请求的方式:get或post。enctype子对话文本的MIME类型。namelist发送给文件服务器的变量名表。fetch timeout是指在产生error.badfetch。为检索脚本而等待的时间间隔。fetch hint是预先下载(prefetch),还是访问Script元素时下载(safe)fetchaudio指定在提取文件的等待时间内要播放的声音文件。79Submit例如 The time is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论