VXml语音业务开发培训

上传人:ll****x 文档编号:243149526 上传时间:2024-09-16 格式:PPT 页数:92 大小:822KB
返回 下载 相关 举报
VXml语音业务开发培训_第1页
第1页 / 共92页
VXml语音业务开发培训_第2页
第2页 / 共92页
VXml语音业务开发培训_第3页
第3页 / 共92页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,VoiceXML,开发知识,iAvp平台,系列培训,通信增值事业部 张磊,Monday, September 16, 2024,1,对象和目标,课程对象,业务流程开发、测试人员,VUI设计人员,平台开发、测试人员,课程目标,了解VoiceXML基本概念和标记,使用VoiceXML开发流程,2,相关课程,iAvp基础知识培训,VUI基础,3,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端应用开发,一个完整的VoiceXML应用,4,概述什么是VoiceXML,全称:,Voice eXtensible Markup Language,VoiceXML,是一种基于 XML 规范的标准,是XML子集。,它允许通过电话和语音访问 Web上的信息和服务。可以用来开发基于语音的电话应用程序。,5,概述VoiceXML历史,AT&T Phone Marked Language (PML),Motorola VoxML,IBM SpeechML,HP TalkML,PIPEBEACH VoiceHTML,1998 , W3C 召开 Voice browsers会议,VoiceXML forum,2000 ,VoiceXML 1.0,2003 VoiceXML 2.0,2004 VoiceXML 2.1,6,概述VoiceXML的目标,为应用开发者屏蔽底层的、平台相关的细节,分离交互代码和服务逻辑,提高应用在不同平台的可移植性,既能提供对简单应用快捷开发,也提供对复杂应用语言级的支持,单文档表示多次交互,减少了,Client/Server,交互负荷,7,概述 VoiceXML与传统语音开发的区别,Internet,Operators,Network,Platf.,Voice Mail,Appl,.,Platf.,VividRing,Appl,.,VoiceXML,Interface,8,概述 VoiceXML与传统语音开发的区别,Internet,Operators,Network,Platf.,Voice Mail,Appl,.,Platf.,VividRing,Appl,.,VoiceXML,Interface,9,概述 VoiceXML与传统语音开发的区别,Internet,Operators,Network,Platf.,Voice Mail,Appl,.,Platf.,VividRing,Appl,.,VoiceXML,Interface,10,概述VoiceXML与HTML开发比较,Enter your Id:,Your ID, please.,VoiceXML语音应用开发与HTML页面开发具有很高的相似度,11,概述我们的VoiceXML,基于VoiceXML1.0规范,实现了VoiceXML1.0中的大部分标记和属性,扩展了一些1.0中没有的标记,如传真等,识别支持built-in、just in time和dgdb,12,概述iAvp支持的标记(1),元素,功能,支持描述,给一个变量赋值,在一个提示中放音频片段,可执行代码,不是交互代码,在输出中增加暂停的JSML元素,不支持,捕捉一个事件,清除一个或多个form 变量,定义一个菜单项目,不支持,退出一个session,把一些text定义为特殊类的JSML元素,不支持,定义一个按键文法,不支持,在一个菜单中枚举选择的缩写,不支持,13,概述iAvp支持的标记(2),元素,功能,支持描述,抓获一个错误事件,退出一个document 或者application,元素中使用,元素中使用,改变语音输出重音的JSML元素,不支持,提交信息和收集数据的dialog,定义一个form中的field,TYPE属性仅支持iAVP定义,的Built-in语法,field被填充完毕后要执行的动作,到同一个或另外一个文档的其它dialog,定义一个语音识别的语法,14,概述iAvp支持的标记(3),元素,功能,支持描述,捕捉一个help事件,简单的条件逻辑,在form的入口定义初始化逻辑,为link中的所有dialog定义一个转移,不支持,定义一个选择菜单,不支持,捕捉一个no match事件,捕捉一个no input事件,为域指定一个option,不支持,在一个特定的范围内作用(例如、讲,话对象),不支持,和中的参数,向用户输出音频文件语音和TTS语音,15,概述iAvp支持的标记(4),元素,功能,支持描述,控制实现平台参数的设置,改变语音输出重音和语调模式的JSML元素,不支持,记录一个音频采样,不支持属性modal,当再次访问一个field,请求播放提示音,从subdialog中返回,修改怎样拼写一个词或短语的JSML元素,不支持,指定一块ECMAscript客户端的脚本逻辑,调用另一个dialog,作为当前dialog的subdialog,将值提交给文档服务器,16,概述iAvp支持的标记(5),元素,功能,支持描述,抛出一个事件,把呼叫转移到另外一个目的地,在提示中插入变量值,声明变量,每个VXML文件的最高层元素,发送传真,iAVP扩展元素,接收传真,iAVP扩展元素,记录节目编码和系统日志,iAVP扩展元素,17,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端应用开发,一个完整的VoiceXML应用,18,基本概念Dialog,对话(,Dialog/Dialog States,),VoiceXML,应用程序的用户总是处于一种对话状态或对话中。每个对话都跟着另一个对话,如果没有指定下一个对话,就终止,VoiceXML,应用程序的执行。,有两种对话:表单(,Form,)和菜单(,Menu,)。,19,基本概念Document,文档(Document),一个VoiceXML document由多个dialog组成。,单个document的执行缺省是从第一个dialog开始执行。也可以指定从某个对话执行。,在一个application中有多个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.vxml,21,基本概念Application,Application(应用),应用(application)是由共享同一应用根文档(application root document)的一系列文档组成的。,在一个application内,root document总是处于加载状态,此时root document的变量和语法在整个application都是保持激活状态。,22,基本概念Application(续),23,基本概念Session,会话( Session ),会话开始:呼入接通,呼出接通,会话过程:交互,文档获取,会话结束:用户挂机,上下文挂机,24,基本概念SubDialog,子对话(SubDialog),类似函数调用,它提供了调用一个新的交互的机制,并返回到原来的form。返回时保存内部数据、所用语法以及状态信息,以供在调用该Subdialog的document中使用。,25,基本概念文档之间的跳转(1),保留根文档上下文的跳转,R,R,R,R,L1,L2,2,3,4,1,26,基本概念文档之间的跳转(2),重新初始化上下文的跳转,R1,R2,R3,R1,L1,2,3,4,1,27,基本概念文档之间的跳转(3),SubDailog的上下文跳转(1),Main dialog execute context,D1,D2,D3,SubDialog execute,context,SD1,SD2,28,SubDialog execute,context 2,基本概念文档之间的跳转(4),SubDailog的上下文跳转(2),Main dialog execute context,D1,D2,D3,SubDialog execute,context 1,SD1,SD2,29,基本概念Event,事件 (Event),事件可以是预先定义的或者是应用程序定义。对于各种的情况,由平台抛出事件,如:用户没用响应,请求帮助。,当VoiceXML文档有语义错误时,解释器也会抛出事件()。事件由或由它的快捷形式捕捉;一个事件能产生的每个标记都可指定catch标记。,在任何层次都可以指定共有事件的处理方式,并且这适用于所有较低层。,在VoiceXML的事件模式中,事件可以由平台或应用产生,这些事件可以由应用程序捕获和处理,也可以由平台捕获和处理。,30,基本概念FIA,FIA (,Form Interpretation Algorithm,),初始化Form,重新设置状态,选择要执行的Form Item并播放提示音,收集用户输入,或者填充一个或多个field,或者抛出各种事件,查找执行 动作,31,基本概念FIA(续),初始化,选择Item,获取输入,处理输入结果,没有Item可以,继续处理,Event处理,Link,其它Dialog,32,基本概念,Grammar,语法(Grammar),语法指定一份准许的词汇列表,供用户从中选择,以便与 VoiceXML 应用程序交互,每一个dialog都有一个或多个语法(识别、按键) ,在directed dialog的应用中,每个dialog的语法只有在用户使用该dialog时,才处于激活状态,语法的作用域,33,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端脚本开发,一个完整的VoiceXML应用,34,从Hello Word!开始,Hello World!,VoiceXML是Xml的子集,遵从xml1.0规范,指定当前文档使用VXML1.0规范,定义一个对话表单,定义一个表单项,用于封装对应的语句,输出文本,可以被TTS合成并播放,35,VoiceXML中的变量,变量相当于ECMAScript变量,变量不能以”_”开头,类型共有6种,Undefine (未定义变更被赋予一个值之前它的默认值,Null (空)只能是”null”,Boolean (布尔型)只能是”true”或”false”,String (字符串)用单引号封装的字符串,Number(数字型)正负数,Object (对象型)一组没有排序的属性。每个属性都包含一个名字、一个值和一组属性。,36,声明变量,变量具有name和Expr属性,通过表单项的Name属性来声明,通过标记来声明,37,变量的作用域,Session,Application,Document,Dialog,( Anonymous ),它是由解释器上下文来声明和赋值,只读变量。不能声明新的session变量。,由应用根文档的标记的子成员声明,由document的标记的子成员声明,仅对该document可访问,由Form或Menu的声明,在Block、Filled或catch等标记中的声明,当变量不带作用域并发生命名冲突时,使用限定性最明确的作用域变量,高,低,38,Session变量,Session.telephone.ani (主叫号),Session.telephone.dnis (被叫号),Session.telephone.iidigits (信息批示数字),Session.telephone.uui (用户到用户信息),Session.telephone.callid,Session.telephone.stationid,Session.telephone.channelid,39,影子变量,影子变量是与字段项相关的变量。,影子变量用于返回字段项执行的结果,语法:field_item_name$.shadow_var_name,例如:recording$.termchar,40,标记:为变量赋值,VXML中的变量是“弱类型“,声明时不需要显示给出类型,在赋值后仍然可以动态改变变量类型(不推荐),41,Form标记:最重要的的Dialog,Form对应于对话的状态,两个属性,id: 对话标识,例如:,scope:,指示这个form对应语法的活动范围,Form Items,Input items : field、record、transfer、object、subdialog,Control items : block、initail,42,Menu标记另一个Dialog标记,What would you like for lunch? To choose,press ,ham and cheese,grits,ham and shatner,43,Dialog的公用属性,field、record、transfer、subdialog、 block 、 object 和initial标记都具有以下三个属性:,name,expr,cond,通过操作name、expr、cond来确定被封装在这些标记中的内容能否被执行,44,Dialog的公用属性(续),Name和Expr被定义,被封装的指令要在Clear标记被执行后才能被执行,如果没有定义Expr,Cond值为true则可以执行,false则不被执行,Cond默认为true,被以上field封装的指令均,不会,被执行,被以上field封装的指令均,不会,被执行,被以上field封装的指令均,会,被执行,45,Block标记,Block是表单项,用于封装其它语句。,属性,Name,Expr,Cond,46,If/elseif/else标记,If/elseif/else用于条件逻辑判断。如果Cond属性的值计算为true,那么其中封装的语句将被执行,否则将不予执行。,This is way too much to spend.,注意:,”,&在使用时需要转义,和if不同elseif和else是单行标记,47,Param标记,Param标记用于将参数传递给子对话框或者对象。,属性,name参数名,expr表达式值,value字串值,48,SubDialog标记,类似于函数调用,不丢失当前上下文,当subdialog调用完成后,调用者的所有本地数据、语法和状态均被还原,属性,src属性是必须的,Return标记,用于结束对话框执行并返回,有两个属性event和namelist,Event属性是返回后产生的一个事件,Namelist属性包含了返回后给调用对话框的变量列表。,49,SubDailog示例, poppa oo mow mow! ,50,Goto标记,跳转到当前form的另一个form item,跳转到当前文档的另一个dialog,跳转到另一个文档,主要属性,nextitem,next,51,Goto标记示例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.,FIA,52,Goto标记示例2Form及文档间的跳转, welcome!,how many book you want?,跳转到另一个Form,本Form内的变量值将丢失,跳转到另一个document,本document内的变量值将丢失,53,Clear标记,Clear标记用于将变量的值设置为undefine,属性namelist,通过将block的expr值设置为undefine来构造出一个,54,Exit标记,当执行exit标记时,控制返回给执行平台。这时进行什么操作由平台决定,一般情况下将挂断电话。,We are finished and will now exit.,We have not exited yet!,55,Disconnect标记,Disconnect标记用于平台切断用户的电话,调用disconnect时会抛出telephone.disconnect.hangup事件,We are finished and will now exit.,We have not disconnected yet!,56,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,在VoiceXML中使用客户端脚本,VoiceXML与服务器端脚本开发,一个完整的VoiceXML应用,57,Prompt标记,用于TTS输出,封装audio标记,属性,bargein,cond,count,timeout,(gavin mac lee odd),you guessed it. this prompt will not be executed.,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! ,58,Value标记,Value标记用于输出变量的值和表达式计算结果。,属性,expr,Our favorite movie star is,.,59,Audio标记,audios标记用于设定向用户播放预先录制的声音文件。语音文件格式与平台相关,以WAV格式居多。,属性,src向用户播放的声音文件的URL,fetchtimeout获取语音文件超时之前的等待时间,here we use the audio fetch time out,attribute with the value of 10 seconds.,60,Field标记,field标记用来接收来自用户的自动语音识别或DTMF按键信息。,属性,name、expr、cond,typeiavp目前只支持builtin方式收集按键,今日笑话请按1,笑话连篇请按2,打榜笑话请按3,digits?length=1;max_time=2000; mask_key=06789#;,按键长度为1,最大超时为2秒,有效按键为12345*,其它为无效按键,61,Filled标记,标记指定了当一个或多个input item被填充后要执行的操作。,它可以出现在两个地方:作为标记的子标记,或者作为input item的子标记。,属性,namelist,mode,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标记作为输入项的子项出现的例子,62,Grammar标记,Grammar标记用于设定可能的语音输入,不同的平台支持不同的语法格式,语法范围,iAvp支持Nuance识别语法(GSL2.0),Just In Time(需要即时编译),DTMF,Dynamic Grammar,63,Just in time语法,64,动态大语法,动态语法定义,在应用中可以被动态创建和加载的识别语法,DBKey,每个DBKey相当于一个识别语法,DBItem,每个DBItem相当于一个识别条目,例如一个歌手名相当于一个DBKey,那他的每一首歌相当于一个DBItem,65,iAvp中的大语法实现,通过动态语法添加接口向数据库中添加DBKey和DBItem,通过动态语法编译接口编译语法,通过标记引用语法,66,动态大语法示例,.,67,NBest,应用在一次识别需要返回多个识别结果的语音应用中,使用影子变量实现,application.lastresult$.length 可以得到此次识别结果的数量,iavp平台最多为5个。,application.lastresult$i.confidence 识别结果的置信度,application.lastresult$i.utterance 识别结果的语音数据,application.lastresult$i.inputmode speech dtmf,application.lastresult$i.interpretation 识别结果,application.lastresult$i.interpretation.Key 多个slot,68,语法冲突,如果用户语音输入或按键输入结果包括多个有效语法,VoiceXML按下列顺序进行选择:,当前字段内的语法,包含在当前From或Menu中的语法,文档作用域内在当前文档内的非当前Form或Menu的语法及标记内的语法,当前根文档内的语法,69,Throw和Catch标记,Throw标记用于产生预定义的事件和应用程序定义的事件。,Catch将文档、对话、Form Item与事件捕获联系起来,它包含了可执行的内容。, we caught the thrown event. ,getting ready to throw an event to be caught.,throw,catch,70,Error、 Help、 Noinput、 Nomatch标记,、和标记都是标记特定形式的,快捷,标记,属性,cond,count, (slappy white), say help here.,this is the first occurance of the help event. say help again., this is the second occurance of the help event. goodbye.,why did you fill the field, you dummy?,第一次说help,第二次说help,71,Reprompt标记,当前对话中的提示音(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, say 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 ice 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中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端应用开发,一个完整的VoiceXML应用,73,Record标记,Record标记用于录制一段语音,name,将存放录音文件名。,expr,如该表达式结果值不为,undefined,,该标记将不被执行。,cond,只有当其结果值为,true,,该标记才被执行,否则不被执行。,maxtime,最长可录音时间,单位(秒s,毫秒ms)。,finalsilence,无语音输入时间的最长时间,单位(秒s,毫秒ms)。,type,录音文件格式,该值为,audio/wav-ulav-8k8bit,。,beep,当为,true,时,录音前有“嘟”音提示。缺省值为,false,。,modal,当值为,true,,在录音时识别语法无效;否则,false,时有效。,dtmfterm,录音过程中是否可以按键打断,却省值为,true。,Dest,录音最终生成的语音文件。,74,Record示例,嘟声后开始说录音,0号键重录,时间不超过一分钟,星号键返回,使用影子变量来保存录音结果信息,保存录音结果必须通过submit标记,75,Transfer标记,将用户的电话转接到另一个电话上,有两种类型的转接,桥转接,解释器一直处于等待状态,直到Transfer从转接通话状态下退出。如果因为挂机或网络的原因而线路中断,会抛出一个Connection.disconnect.hangup事件。如果通话因为其它原因而中断,中断原因会写在标记的属性里。,盲转接,解释器在完成转接后,不再监控转接过程,也不再在标记的名字属性中报告挂断结果,而是立即抛出一个connection.disconnect.transfer事件。,76,Property标记,property标记用于控制语音识别、提示、提取文档和资源、以及输入类型等的运行特性。,77,Submit标记,标记用于从一个VXML文档转到服务器端的脚本文件,比如用Perl、CGI、JSP、ASP、ASPX编写的文件。标记与很相像,因为它将导致一个新的VXML document被获得。但与不同的是,它能使你利用一个HTTP GET或POST请求,给文档服务器提交一组变量。,78,Submit属性,属性名,说 明,next,请求文件的,URL,。,expr,ECMAScript表达式。其结果值是文件的URI。,method,HTTP请求的方式:get或post。,enctype,子对话文本的MIME类型。,namelist,发送给文件服务器的变量名表。,fetch timeout,是指在产生,error.badfetch。,为检索脚本而等待的时间间隔。,fetch hint,是预先下载(,prefetch,),还是访问,Script,元素时下载(,safe,),fetchaudio,指定在提取文件的等待时间内要播放的声音文件。,79,Submit示例,The time is hours,尽可能使用,Get,方法,,Post,方法相对效率较低,80,Script脚本,Script标记允许在VoiceXML脚本中使用一段客户端的脚本语言代码,它和HTML的元素类似,Script在加载后有效,一般放在根文档中,可以内嵌入VoiceXML脚本,也可以以独立的js文件出现,81,iAvp,扩展标记,SendFax,发送传真文件,RecvFax,接收传真文件,Log,VoiceXML也具有该标记,依赖平台记录信息,iAvp平台扩展其用来向数据库中写入节目日志信息。,82,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端应用开发,一个完整的VoiceXML应用,83,为何引入服务器端应用开发,使VoiceXML应用程序成为动态应用程序,将VUI逻辑与复杂的业务逻辑分离,84,引入WEB Server带来的变化,VoiceXMLInterpreter,vxml doc,DataBase,?,aspx、php script,Web Server,85,Web Session,Web会话,会话开始:浏览器与WEB连接,会话过程:交互,html文档的提交,会话结束:用户关闭济览器,WEB服务器切断连接,86,Web Session与VoiceXML Session比较,相同,都可以保存上下文相关信息,不同,VoiceXML session是客户端session,而web session是服务端session。使用VoiceXML session开销较小。,web session过程中可以将数据写入数据库等第三方系统,VoiceXML session在这方面能力较弱。,87,服务开发过程,可行性/,功能分析与调研,设计,实现和测试,数据收集与优化,10%,20%,40%,30%,开销,调研与分析,对话设计,构建语法,编写脚本,测试功能,收集数据,对效果进行优化,活动,88,主要内容,VoiceXML概述,VoiceXML基本概念,VoiceXML中的变量和基本标记,VoiceXML中的输入输出标记,VoiceXML高级标记,VoiceXML与服务器端应用开发,一个完整的VoiceXML应用,89,应用电话书店,一个有十种图书小书店,每本书都有书名和书价。用户可以说出书名来购买图书,在不知道有哪些书的时候可以说“查询”来获取所有书名,可以说“结帐”系统计算出总书款并报读;,系统在用户呼入时提示用户输入帐号,没有帐号直接按#键进入。如果帐号为123,口令也为123则是vip用户,对其书价打8折,用subdialog实现计算书价的功能,并在用户帐号不同时分别调用,90,应用电话书店,用户可以说“留言”时进入录音功能并录制不长于30秒的留言并可以回放确认。,使用NBest对用户输入产生一种以上结果时让用户按键确认;,用户在寻求帮助时转接人工。,使用动态脚本实现用户购书后产生订单号,用户可以查询订单内容和状态。,请大家在课后完成这个系统,91,提问与交流,欢迎提问,,谢谢大家!,92,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!