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

下载本文档

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

文档简介

VoiceXML开发知识——iAvp平台系列培训通信增值事业部张磊

Tuesday,May30,20231对象和目标课程对象业务流程开发、测试人员VUI设计人员平台开发、测试人员课程目标了解VoiceXML基本概念和标记使用VoiceXML开发流程2相关课程《iAvp基础知识培训》《VUI基础》3主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记VoiceXML与服务器端应用开发一个完整的VoiceXML应用4概述—什么是VoiceXML全称:VoiceeXtensibleMarkupLanguageVoiceXML是一种基于XML规范的标准,是XML子集。它允许通过电话和语音访问Web上的信息和服务。可以用来开发基于语音的电话应用程序。5概述—VoiceXML历史AT&TPhoneMarkedLanguage(PML)MotorolaVoxMLIBMSpeechMLHPTalkMLPIPEBEACHVoiceHTML1998,W3C召开Voicebrowsers会议VoiceXMLforum2000,VoiceXML1.02003VoiceXML2.02004VoiceXML2.16概述—VoiceXML的目标为应用开发者屏蔽底层的、平台相关的细节分离交互代码和服务逻辑提高应用在不同平台的可移植性既能提供对简单应用快捷开发,也提供对复杂应用语言级的支持单文档表示多次交互,减少了Client/Server交互负荷7概述

–VoiceXML与传统语音开发的区别InternetOperatorsNetworkPlatf.VoiceMailAppl.Platf.VividRingAppl.VoiceXMLInterface8概述

–VoiceXML与传统语音开发的区别InternetOperatorsNetworkPlatf.VoiceMailAppl.Platf.VividRingAppl.VoiceXMLInterface9概述

–VoiceXML与传统语音开发的区别InternetOperatorsNetworkPlatf.VoiceMailAppl.Platf.VividRingAppl.VoiceXMLInterface10概述—VoiceXML与HTML开发比较<formaction=“url”>EnteryourId:<inputname=‘id’><inputtype=‘submit’></form><form><fieldname=‘id’><prompt>YourID,please.</prompt></field><block><submitnext=“url”/></block></form>VoiceXML语音应用开发与HTML页面开发具有很高的相似度11概述—我们的VoiceXML基于VoiceXML1.0规范实现了VoiceXML1.0中的大部分标记和属性扩展了一些1.0中没有的标记,如传真等识别支持built-in、justintime和dgdb12概述—iAvp支持的标记(1)元素功能支持描述<assign>给一个变量赋值<audio>在一个提示中放音频片段<block>可执行代码,不是交互代码<break>在输出中增加暂停的JSML元素不支持<catch>捕捉一个事件<clear>清除一个或多个form变量<choice>定义一个菜单项目不支持<disconnect>退出一个session<div>把一些text定义为特殊类的JSML元素不支持<dtmf>定义一个按键文法不支持<enumerate>在一个菜单中枚举选择的缩写不支持13概述—iAvp支持的标记(2)元素功能支持描述<error>抓获一个错误事件<exit>退出一个document或者application<else><if>元素中使用<elseif><if>元素中使用<emp>改变语音输出重音的JSML元素不支持<form>提交信息和收集数据的dialog<field>定义一个form中的fieldTYPE属性仅支持iAVP定义的Built-in语法<filled>field被填充完毕后要执行的动作<goto>到同一个或另外一个文档的其它dialog<grammar>定义一个语音识别的语法14概述—iAvp支持的标记(3)元素功能支持描述<help>捕捉一个help事件<if>简单的条件逻辑<initial>在form的入口定义初始化逻辑<link>为link中的所有dialog定义一个转移不支持<menu>定义一个选择菜单不支持<nomatch>捕捉一个nomatch事件<noinput>捕捉一个noinput事件<option>为<field>域指定一个option不支持<object>在一个特定的范围内作用(例如、讲话对象)不支持<param><subdialog>和<object>中的参数<prompt>向用户输出音频文件语音和TTS语音15概述—iAvp支持的标记(4)元素功能支持描述<property>控制实现平台参数的设置<pros>改变语音输出重音和语调模式的JSML元素不支持<record>记录一个音频采样不支持属性modal<reprompt>当再次访问一个field,请求播放提示音<return>从subdialog中返回<sayas>修改怎样拼写一个词或短语的JSML元素不支持<script>指定一块ECMAscript客户端的脚本逻辑<subdialog>调用另一个dialog,作为当前dialog的subdialog<submit>将值提交给文档服务器16概述—iAvp支持的标记(5)元素功能支持描述<throw>抛出一个事件<transfer>把呼叫转移到另外一个目的地<value>在提示中插入变量值<var>声明变量<vxml>每个VXML文件的最高层元素<sendfax>发送传真iAVP扩展元素<receivefax>接收传真iAVP扩展元素<log>记录节目编码和系统日志iAVP扩展元素17主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记VoiceXML与服务器端应用开发一个完整的VoiceXML应用18基本概念—Dialog对话(Dialog/DialogStates)VoiceXML应用程序的用户总是处于一种对话状态或对话中。每个对话都跟着另一个对话,如果没有指定下一个对话,就终止VoiceXML应用程序的执行。有两种对话:表单(Form)和菜单(Menu)。19基本概念—Document文档(Document)一个VoiceXMLdocument由多个dialog组成。单个document的执行缺省是从第一个dialog开始执行。也可以指定从某个对话执行。在一个application中有多个document时,应选一个document作为rootdocument,并且在其他document的<vxml>标记里引用它,并且它的变量和语法在整个应用中有效。在含多个document的application中,最多只能有两个document可以同时被加载,一个是正在执行的document,另一个是rootdocument。20基本概念—RootDocument<?xmlversion="1.0"encoding="UTF-8"?><vxmlversion="2.0"application="app-root.vxml"><formid="say_goodbye"><fieldname="answer"><grammartype="application/srgs+xml"src="/grammars/boolean.grxml"/><prompt>Shallwesay<valueexpr="application.bye"/>?</prompt><filled><ifcond="answer"><exit/></if><clearnamelist="answer"/></filled></field></form></vxml>Leaf.vxml将app_root.vxml作为当前文档的根文档<?xmlversion="1.0"encoding="UTF-8"?><vxmlversion="2.0"><varname="bye"expr="'Ciao'"/><form><block>hello,world.</block></form></vxml>app-root.vxml21基本概念—ApplicationApplication(应用)应用(application)是由共享同一应用根文档(applicationrootdocument)的一系列文档组成的。在一个application内,rootdocument总是处于加载状态,此时rootdocument的变量和语法在整个application都是保持激活状态。22基本概念—Application(续)23基本概念—Session会话(Session)会话开始:呼入接通呼出接通会话过程:交互 文档获取会话结束:用户挂机 上下文挂机24基本概念—SubDialog子对话(SubDialog)类似函数调用,它提供了调用一个新的交互的机制,并返回到原来的form。返回时保存内部数据、所用语法以及状态信息,以供在调用该Subdialog的document中使用。25基本概念—文档之间的跳转(1)保留根文档上下文的跳转RRRRL1L2234126基本概念—文档之间的跳转(2)重新初始化上下文的跳转R1R2R3R1L1234127基本概念—文档之间的跳转(3)SubDailog的上下文跳转(1)MaindialogexecutecontextD1D2D3SubDialogexecutecontextSD1SD2<Subdialogsrc=“SD1.vxml”><gotonext=“SD2.vxml”><return>28SubDialogexecutecontext2基本概念—文档之间的跳转(4)SubDailog的上下文跳转(2)MaindialogexecutecontextD1D2D3SubDialogexecutecontext1SD1SD2<Subdialogsrc=“SD1.vxml”><Subdialogsrc=“

SD2.vxml”><return><return>29基本概念—Event事件(Event)事件可以是预先定义的或者是应用程序定义。对于各种的情况,由平台抛出事件,如:用户没用响应,请求帮助。当VoiceXML文档有语义错误时,解释器也会抛出事件(<throw>)。事件由<catch>或由它的快捷形式捕捉;一个事件能产生的每个标记都可指定catch标记。在任何层次都可以指定共有事件的处理方式,并且这适用于所有较低层。在VoiceXML的事件模式中,事件可以由平台或应用产生,这些事件可以由应用程序捕获和处理,也可以由平台捕获和处理。30基本概念—FIAFIA(FormInterpretationAlgorithm)初始化Form,重新设置状态选择要执行的FormItem并播放提示音收集用户输入,或者填充一个或多个field,或者抛出各种事件查找执行<filled>动作

31基本概念—FIA(续)初始化选择Item获取输入处理输入结果没有Item可以继续处理Event处理Link其它Dialog32基本概念—Grammar语法(Grammar)语法指定一份准许的词汇列表,供用户从中选择,以便与VoiceXML应用程序交互每一个dialog都有一个或多个语法(识别、按键),在directeddialog的应用中,每个dialog的语法只有在用户使用该dialog时,才处于激活状态语法的作用域33主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记VoiceXML与服务器端脚本开发一个完整的VoiceXML应用34从HelloWord!开始<?xmlversion="1.0"?><vxmlversion="1.0"><form><block>HelloWorld!</block></form></vxml>VoiceXML是Xml的子集,遵从xml1.0规范指定当前文档使用VXML1.0规范定义一个对话表单定义一个表单项,用于封装对应的语句输出文本,可以被TTS合成并播放35VoiceXML中的变量变量相当于ECMAScript变量变量不能以”_”开头类型共有6种Undefine(未定义]——变更被赋予一个值之前它的默认值Null(空)——只能是”null”Boolean(布尔型)——只能是”true”或”false”String(字符串)——用单引号封装的字符串Number(数字型)——正负数……Object(对象型)——一组没有排序的属性。每个属性都包含一个名字、一个值和一组属性。36声明变量变量具有name和Expr属性通过表单项的Name属性来声明通过标记<Var>来声明<Blockname=“FirstBlock”><Varname=“myVar”value=“true”/><Varname=“myVar”/>37变量的作用域SessionApplicationDocumentDialog(Anonymous)它是由解释器上下文来声明和赋值,只读变量。不能声明新的session变量。由应用根文档的<vxml>标记的子成员<var>声明由document的<vxml>标记的子成员<var>声明,仅对该document可访问由Form或Menu的<Var>声明在Block、Filled或catch等标记中的<Var>声明当变量不带作用域并发生命名冲突时,使用限定性最明确的作用域变量高低38Session变量Session.telephone.ani(主叫号)Session.telephone.dnis(被叫号)Session.telephone.iidigits(信息批示数字)Session.telephone.uui(用户到用户信息)Session.telephone.callidSession.telephone.stationidSession.telephone.channelid39影子变量影子变量是与字段项相关的变量。影子变量用于返回字段项执行的结果语法:field_item_name$.shadow_var_name例如:recording$.termchar40<assign>标记:为变量赋值<formid=“test”><varname=“int_var”expr=“2”/><block><assignname=“int_var”expr=“’two’”/></block></form>VXML中的变量是“弱类型“,声明时不需要显示给出类型在赋值后仍然可以动态改变变量类型(不推荐)41Form标记:最重要的的DialogForm对应于对话的状态两个属性id:对话标识,例如:<Formid="Welcome">scope:指示这个form对应语法的活动范围FormItemsInputitems:field、record、transfer、object、subdialogControlitems:block、initail42Menu标记—另一个Dialog标记<?xmlversion="1.0"encoding="UTF-8"?><vxmlversion="2.1"><menuid="menu“scope=“document”dtmf=“false”><prompt>Whatwouldyoulikeforlunch?Tochoose<enumerate><valueexpr="_prompt"/>,press<valueexpr="_dtmf"/></enumerate></prompt>

<choicenext="#F1"dtmf="1">hamandcheese</choice><choicenext="#F1"dtmf="2">grits</choice><choicenext="#F1"dtmf="3">hamandshatner</choice></menu></vxml>43Dialog的公用属性field、record、transfer、subdialog、block、object和initial标记都具有以下三个属性:nameexprcond通过操作name、expr、cond来确定被封装在这些标记中的内容能否被执行44Dialog的公用属性(续)Name和Expr被定义,被封装的指令要在Clear标记被执行后才能被执行如果没有定义Expr,Cond值为true则可以执行,false则不被执行,Cond默认为true<fieldname=“field_var”expr=“true”><fieldname=“field_var”expr=“false”cond=“true”><fieldname=“field_var”expr=“false”cond=“false>被以上field封装的指令均不会被执行<fieldname=“field_var”cond=“false”><fieldname=“field_var”expr=“false”cond=“true”><fieldcond=“false”>被以上field封装的指令均不会被执行<fieldname=“field_var”cond=“true”><fieldname=“field_var”><fieldcond=“false”>被以上field封装的指令均会被执行45Block标记Block是表单项,用于封装其它语句。属性NameExprCond46If/elseif/else标记If/elseif/else用于条件逻辑判断。如果Cond属性的值计算为true,那么其中封装的语句将被执行,否则将不予执行。<ifcond="flavor=='vanilla'"> <assignname="flavor_code"expr="'v'"/><elseifcond="flavor=='chocolate'"/> <assignname="flavor_code"expr="'h'"/><elseifcond="flavor=='strawberry'"/> <assignname="flavor_code"expr="'b'"/><else/> <assignname="flavor_code"expr="'?'"/></if><ifcond="total>1000"> <prompt>Thisiswaytoomuchtospend.</prompt></if>注意:>,<,”,’,&在使用时需要转义和if不同elseif和else是单行标记47Param标记Param标记用于将参数传递给子对话框或者对象。属性name—参数名expr—表达式值value—字串值48SubDialog标记类似于函数调用不丢失当前上下文当subdialog调用完成后,调用者的所有本地数据、语法和状态均被还原属性src属性是必须的Return标记用于结束对话框执行并返回,有两个属性event和namelistEvent属性是返回后产生的一个事件Namelist属性包含了返回后给调用对话框的变量列表。49SubDailog示例<MySubD.vxml><?xmlversion="1.0"encoding="UTF-8"?><vxmlversion="2.1"><formid="F1"><varname="confirm_prompt"/><varname="response"/><fieldname="field_confirm"type="boolean"><prompt><valueexpr="confirm_prompt"/></prompt><filled><ifcond="field_confirm==true"><assignname="response"expr="'yes'"/><else/><assignname="response"expr="'no'"/></if><returnnamelist="response"/></filled></field></form></vxml><formid="F1"><subdialogname="SubD_3"src="MySubD.vxml"cond="true"expr=""><paramname="confirm_prompt"expr="'thissubdialogwillbeexecuted,sincetheconditionistrue,andtheexpressionisundefined.Sayyesornotoexecutethesubdialogfile.'"/><filled><prompt>poppaoomowmow!</prompt></filled></subdialog></form>50Goto标记跳转到当前form的另一个formitem跳转到当前文档的另一个dialog跳转到另一个文档主要属性nextitemnext51Goto标记示例1—From内的跳转<varname="GotoVar"expr="'B_4'"/><formid="F1"><blockname="B_1"><prompt>preparingtogotothenextformitem.</prompt><gotonextitem="B_2"/></block><blockname="B_2"><prompt>preparingtogotothenextformitemvariable.</prompt><gotoexpritem="GotoVar"/></block><blockname="B_3"><prompt>thisblockwillbeskipped,andwillbethelastblockexecutedbytheFIA.</prompt></block><blockname="B_4"><prompt>testsuccessful.</prompt></block></form>FIA52Goto标记示例2—Form及文档间的跳转<formid=“welcome”><block>welcome!</block><gotonext=“#how_many”/></form><formid=“how_many”><block>howmanybookyouwant?</block><gotonext=“calc_books.vxml#calc“/></form>跳转到另一个Form,本Form内的变量值将丢失跳转到另一个document,本document内的变量值将丢失53Clear标记Clear标记用于将变量的值设置为undefine属性namelist<form><varname=“stop”expr=“5”/><varname=“I”expr=“0”/><blockname=“loop”><ifcond=“I<stop”><assignname=“I”expr=“i+1”/><clearnamelist=“loop”/></if></block></form>通过将block的expr值设置为undefine来构造出一个54Exit标记当执行exit标记时,控制返回给执行平台。这时进行什么操作由平台决定,一般情况下将挂断电话。<formid=“bye”><block>Wearefinishedandwillnowexit.<exit/>

Wehavenotexitedyet!</block></form>55Disconnect标记Disconnect标记用于平台切断用户的电话调用disconnect时会抛出telephone.disconnect.hangup事件<formid=“bye”><block>Wearefinishedandwillnowexit.<disconnect/>

Wehavenotdisconnectedyet!</block></form>56主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记在VoiceXML中使用客户端脚本VoiceXML与服务器端脚本开发一个完整的VoiceXML应用57Prompt标记用于TTS输出封装audio标记属性bargeincondcounttimeout<formid="F1"><fieldname="F_1"><grammartype="text/gsl">[(gavinmacleeodd)]</grammar><promptcond="false">youguessedit.thispromptwillnotbeexecuted.becausethepromptissettofalse.</prompt><promptcond="true"count="1">hereistheveryfirstprompt.trynottosayanything.</prompt><promptcond="true"count="2">whowastheactorwhoplayedcaptainstoobing?</prompt><filled><prompt>correctyouare!</prompt></filled></field></form>58Value标记Value标记用于输出变量的值和表达式计算结果。属性expr<formid="F1"><varname="MyVar"expr="'DirkDiggler'"/><block><prompt> Ourfavoritemoviestaris<valueexpr="MyVar"/>.</prompt></block></form>59Audio标记audios标记用于设定向用户播放预先录制的声音文件。语音文件格式与平台相关,以WAV格式居多。属性src—向用户播放的声音文件的URLfetchtimeout—获取语音文件超时之前的等待时间<formid="F_1"><block><prompt>hereweusetheaudiofetchtimeoutattributewiththevalueof10seconds.</prompt><audiosrc="MySoundFile.wav"fetchtimeout="10s"/></block></form>60Field标记field标记用来接收来自用户的自动语音识别或DTMF按键信息。属性name、expr、condtype—iavp目前只支持builtin方式收集按键<fieldname="inputkey" type="digits?length=1;max_time=2000;mask_key=06789#;"> <prompt> 今日笑话请按1,笑话连篇请按2,打榜笑话请按3…… </prompt> <filled> <ifcond="inputkey=='1'"> <submitnext="../page/TodayJoke_main.aspx"/> <elseifcond="inputkey=='2'"/> <submitnext="../page/JokeSeries_main.aspx"/> </if> </filled></field>digits?length=1;max_time=2000;mask_key=06789#;按键长度为1最大超时为2秒有效按键为12345*,其它为无效按键61Filled标记<filled>标记指定了当一个或多个inputitem被填充后要执行的操作。它可以出现在两个地方:作为<form>标记的子标记,或者作为inputitem的子标记。属性namelistmode<formid="get_starting_and_ending_cities"><fieldname="start_city"> <grammarsrc="http://url/city.grxml"type="application/srgs+xml"/><prompt>Whatisthestartingcity?</prompt></field><fieldname="end_city"><grammarsrc="http://url/city.grxml"type="application/srgs+xml"/><prompt>Whatistheendingcity?</prompt></field><filledmode="all"namelist="start_cityend_city"><ifcond="start_city==end_city"><prompt>Youcan'tflyfromandtothesamecity.</prompt><clear/></if></filled></form>Filled标记作为form的子项出现的例子<formid="get_city"><fieldname="city"><grammartype="application/srgs+xml"src="http://url/cities.grxml"/><prompt>Whatisthecity?</prompt><filled><ifcond="city=='Novosibirsk'"><prompt>Note,Novosibirskserviceendsnextyear.</prompt></if></filled></field></form>Filled标记作为输入项的子项出现的例子62Grammar标记Grammar标记用于设定可能的语音输入不同的平台支持不同的语法格式语法范围iAvp支持Nuance识别语法(GSL2.0)JustInTime(需要即时编译)DTMFDynamicGrammar63Justintime语法<grammar><![CDATA[Name1:public[ [(dtmf-1)(yi1)]{<key"1">}[(dtmf-2)(er2)]{<key"2">}[(dtmf-3)(san1)]{<key"3">} (dtmf-star){<key"*">} (dtmf-pound){<key"#">}]]]></grammar>64动态大语法动态语法定义在应用中可以被动态创建和加载的识别语法DBKey每个DBKey相当于一个识别语法DBItem每个DBItem相当于一个识别条目

例如一个歌手名相当于一个DBKey,那他的每一首歌相当于一个DBItem65iAvp中的大语法实现通过动态语法添加接口向数据库中添加DBKey和DBItem通过动态语法编译接口编译语法通过<DGDB>标记引用语法66动态大语法示例<fieldname=singer><grammar><![CDATA[Name1:public[<dgdb:?key=SingersAll>:s{<singer$s>}[(dtmf-1)(yi1)]{<key"1">}(dtmf-star){<key"*">}]]]></grammar><filled>...</filled></field>67NBest应用在一次识别需要返回多个识别结果的语音应用中使用影子变量实现application.lastresult$.length可以得到此次识别结果的数量,iavp平台最多为5个。application.lastresult$[i].confidence识别结果的置信度application.lastresult$[i].utterance识别结果的语音数据application.lastresult$[i].inputmodespeechdtmfapplication.lastresult$[i].interpretation识别结果application.lastresult$[i].interpretation.Key多个slot68语法冲突如果用户语音输入或按键输入结果包括多个有效语法,VoiceXML按下列顺序进行选择:当前字段内的语法包含在当前From或Menu中的语法文档作用域内在当前文档内的非当前Form或Menu的语法及<VXML>标记内的语法当前根文档内的语法69Throw和Catch标记Throw标记用于产生预定义的事件和应用程序定义的事件。Catch将文档、对话、FormItem与事件捕获联系起来,它包含了可执行的内容。<vxmlversion="2.1"><catchevent="MyUserDefinedEvent"><prompt>wecaughtthethrownevent.</prompt></catch><formid="F_1"><block><prompt>gettingreadytothrowaneventtobecaught.<throwevent="MyUserDefinedEvent"/></prompt></block></form></vxml>throwcatch70Error、Help、Noinput、Nomatch标记<error>、<help>、<noinput>和<nomatch>标记都是<catch>标记特定形式的快捷标记属性condcount<formid="F1"><!--Wemustenablethe'help'universalgrammarfirst--><propertyname="un iversals"value="help"/><fieldname="F_1"><grammartype="text/gsl">[(slappywhite)]</grammar><prompt>sayhelphere.</prompt><helpcount="1"cond="true"><prompt>thisisthefirstoccuranceofthehelpevent.sayhelpagain.</prompt></help><helpcount="2"cond="true"><prompt>thisisthesecondoccuranceofthehelpevent.goodbye.</prompt><disconnect/></help></field><filled><prompt>whydidyoufillthefield,youdummy?</prompt></filled></form>第一次说"help"第二次说"help"71Reprompt标记当前对话中的提示音(prompt)最大count属性小于或等于prompt计数器值,那么reprompt标记可用于使该提示得以播放。<fieldname="want_ice_cream"><grammartype="application/srgs+xml"src="/grammars/boolean.grxml"/><prompt>Doyouwanticecreamfordessert?</prompt><promptcount="2">Ifyouwanticecream,sayyes.Ifyoudonotwanticecream,sayno.</prompt><noinput>Icouldnothearyou.<!--Causethenextprompttobeselectedandplayed.--><reprompt/></noinput></field>C:Doyouwanticecreamfordessert?H:(silence)C:Icouldnothearyou.C:Ifyouwanticecream,sayyes.Ifyoudon'twanticecream,sayno.H:(silence)C:Icouldnothearyou.C:Ifyouwanticecream,sayyes.Ifyoudon'twanticecream,sayno.H:No.<fieldname="want_ice_cream"><grammartype="application/srgs+xml"src="/grammars/boolean.grxml"/><prompt>Doyouwanticecreamfordessert?</prompt><promptcount="2">Ifyouwanticecream,sayyes.Ifyoudonotwanticecream,sayno.</prompt><noinput>Icouldnothearyou.<!--Causethenextprompttobeselectedandplayed.-->

<!--<reprompt/>--></noinput></field>C:Doyouwanticecreamfordessert?H:(silence)C:Icouldnothearyou.H:(silence)C:Icouldnothearyou.H:No.72主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记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,在录音时识别语法无效;否则false时有效。dtmfterm录音过程中是否可以按键打断,却省值为true。Dest录音最终生成的语音文件。74Record示例<recordname="jokerecord"beep="true"maxtime="60s"finalsilence="10000ms"dtmfterm="true"type="audio/wav-ulav-8k8bit"dest="file://C:\\record\\"><prompt>嘟声后开始说录音,0号键重录,时间不超过一分钟,星号键返回</prompt><filled><ifcond="jokerecord$.termchar=='*'"><submitnext="../page/LaughShow_main.aspx"/><elseifcond="jokerecord$.termchar=='0'"/><clearnamelist="jokerecord"/><reprompt/><else/><submitnext="../page/save.aspx"namelist="jokerecord"/></if></filled></record>使用影子变量来保存录音结果信息保存录音结果必须通过submit标记75Transfer标记将用户的电话转接到另一个电话上有两种类型的转接桥转接解释器一直处于等待状态,直到Transfer从转接通话状态下退出。如果因为挂机或网络的原因而线路中断,会抛出一个Connection.disconnect.hangup事件。如果通话因为其它原因而中断,中断原因会写在标记的属性里。盲转接解释器在完成转接后,不再监控转接过程,也不再在标记的名字属性中报告挂断结果,而是立即抛出一个connection.disconnect.transfer事件。76Property标记property标记用于控制语音识别、提示、提取文档和资源、以及输入类型等的运行特性。<propertyname="bargein"value="true"/>77Submit标记<submit>标记用于从一个VXML文档转到服务器端的脚本文件,比如用Perl、CGI、JSP、ASP、ASPX编写的文件。<submit>标记与<goto>很相像,因为它将导致一个新的VXMLdocument被获得。但与<goto>不同的是,它能使你利用一个HTTPGET或POST请求,给文档服务器提交一组变量。78Submit属性属性名说明next请求文件的URL。exprECMAScript表达式。其结果值是文件的URI。methodHTTP请求的方式:get或post。enctype子对话文本的MIME类型。namelist发送给文件服务器的变量名表。fetchtimeout是指在产生error.badfetch。为检索脚本而等待的时间间隔。fetchhint是预先下载(prefetch),还是访问Script元素时下载(safe)fetchaudio指定在提取文件的等待时间内要播放的声音文件。79Submit示例<form><varname="hours"expr="23"/><varname="minutes"expr="11"/><fieldname="hear"type="digits?length=1;terminate_key=#;max_time=10;"><prompt>Thetimeis<valueexpr="hours"/>hours</prompt><filled><submitnext="/nextpage.aspx"method="get"namelist="hourshearminutes"fetchaudio="/waiting.wav"/></filled></field></form>尽可能使用Get方法,Post方法相对效率较低80Script脚本Script标记允许在VoiceXML脚本中使用一段客户端的脚本语言代码,它和HTML的<SCRIPT>元素类似Script在加载后有效,一般放在根文档中可以内嵌入VoiceXML脚本,也可以以独立的js文件出现81iAvp扩展标记SendFax发送传真文件RecvFax接收传真文件LogVoiceXML也具有该标记,依赖平台记录信息,iAvp平台扩展其用来向数据库中写入节目日志信息。82主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记VoiceXML与服务器端应用开发一个完整的VoiceXML应用83为何引入服务器端应用开发使VoiceXML应用程序成为动态应用程序将VUI逻辑与复杂的业务逻辑分离84引入WEBServer带来的变化VoiceXMLInterpretervxmldocDataBase?aspx、phpscript……WebServer85WebSessionWeb会话会话开始:浏览器与WEB连接会话过程:交互 html文档的提交会话结束:用户关闭济览器 WEB服务器切断连接86WebSession与VoiceXMLSession比较相同都可以保存上下文相关信息不同VoiceXMLsession是客户端session,而websession是服务端session。使用VoiceXMLsession开销较小。websession过程中可以将数据写入数据库等第三方系统,VoiceXMLsession在这方面能力较弱。87服务开发过程可行性/功能分析与调研设计实现和测试数据收集与优化10%20%40%30%开销调研与分析对话设计构建语法,编写脚本,测试功能收集数据,对效果进行优化活动88主要内容VoiceXML概述VoiceXML基本概念VoiceXML中的变量和基本标记VoiceXML中的输入输出标记VoiceXML高级标记VoiceXML与服务器端应用开发一个完整的VoiceXML应用89应用—电话书店一个有十种图书小书店,每本书都有书名和书价。用户可以说出书名来购买图书,在不知道有哪些书的时候可以说“查询”来获取所有书名,可以说“结帐”系统计算出总书款并报读;系统在用户呼入时提示用户输入帐号,没有帐号直接按#键进入。如果帐号为123,口令也为123则是vip用户,对其书价打8折,用subdialog实现计算书价的功能,并在用户帐号不同时分别调用90应用—电话书店用户可以说“留言”时进入录音功能并录制不长于30秒的留言并可以回放确认。使用NBest对用户输入产生一种以上结果时让用户按键确认;用户在寻求帮助时转接人工。使用动态脚本实现用户购书后产生订单号,用户可以查询订单内容和状态。请大家在课后完成这个系统91提问与交流欢迎提问,谢谢大家!92主要经济业务采购业务生产业务销售业务利润形成及分配业务资金筹集业务借贷复式记账法的应用

——工业企业主要经济业务的核算目录采购业务核算采购业务核算的主要内容从结算方式看钱货两清货到款未付款付货未到预付定金,日后购进货在途中(2)从资金内容看②支付价外费用(记入所购资产的价值)。①支付买价③支付增值税进项税额购进材料时,包括运费、保险费、挑选整理费、装卸费、途中损耗等;购进固定资产时,包括运费、安装费、保险费、调试费等2.需设置的账户借原材料贷(1)原材料,资产类发出库存材料的成本验收入库材料的成本借在途物资贷(2)在途物资,资产类期末库存材料的成本已购入但尚未验收入库材料的成本验收入库材料的成本期末在途材料的成本借固定资产贷(3)固定资产,资产类取得的固定资产的原始价值(4)应付账款,负债类减少的固定资产的原始价值借应付账款贷购进商品、劳务时,应付未付对方的款项偿还时借应付票据贷因购进商品、劳务而签发商业汇票时。票据到期还款时(5)应付票据,负债类(6)应交税费——应交增值税,负债类对商品的增值额征收的一种税,在商品的销售环节按销售额的17%征税,先由销售方向购货方收取,由销售方月末向税务局缴纳,缴纳时,可以扣除购进材料时已支付的增值税。购进材料1万元(向对方支付税金1700元——称为进项税)生产时耗用材料1万元,发生其他生产费用1万元以3万元的价格将生产的商品销售出去,收取5100元的税金——称为销项税。增值额20000元,月末按实际增值额向税务局交纳增值税3400元。(月末交税=销项税--进项税)应交税费——应交增值税(进项税额)(销项税额)(已交税金)借应交税费——应交增值税贷月末,缴纳税金购进时,支付进项税额销售时,收取销项税额该账户需要设三级明细账户:借预付账款贷(7)预付账款,资产类购进商品后,注销原预付定金按合同预付采购定金时(1)1日,向红星工厂购进甲材料一批,价款10万元,增值税进项税额1.7万元,款项尚未支付,材料已验收入库。借:原材料——甲材料100000

应交税费——应交增值税(进项税额)17000

贷:应付账款——红星工厂1170003.会计核算举例(某企业11月份业务)(2)2日,向天龙工厂购进乙材料一批,价款3万元,增值税进项税额5100元,运杂费300元,款已通过银行支付,货未到。借:在途物资——乙材料30300

应交税费——应交增值税(进项税额)5100

贷:银行存款35400(3)11日,以银行存款向东华工厂预付购料款9万元。借:预付账款—东华工厂90000

贷:银行存款90000(4)12日,以银行存款向方正公司偿还前欠的购料款35100元。借:应付账款—方正公司35100

贷:银行存款35100(5)15日,向东华工厂购进乙材料一批,价款7万元,增值税进项税额11900元,对方代垫运杂费100元,货款前已预先支付,材料已验收入库。(6)16日,本月2日向天龙工厂购进的乙材料已到,验收入库。借:原材料——乙材料30300

贷:在途物资——乙材料30300借:原材料—乙材料

70100

应交税费-应交增值税(进项税额)11900

贷:预付账款——东华工厂82000(7)19日,向光明工厂购进甲、乙两种材料,甲材料20吨,单价1000元每吨;乙材料10吨,单价1500元。价款合计35000元,增值税进项税额5950元,对方代垫运杂费1500元,按材料重量分摊。开出为期三个月的商业汇票抵付货款,材料已验收入库。借:原材料—甲材料

21000—乙材料

15500

应交税费-应交增值税(进项税额)5950

贷:应付票据——光明工厂

42450(8)20日,东华工厂退回预付的购料款中多付的款项。(9)22日,购入新设备一台,支付设备价款3万元,增值税5100元,运费1000元,款项以银行存款支付。借:固定资产31000

应交税费-应交增值税(进项税额)5100

贷:银行存款36100借:银行存款8000

贷:预付账款—东华工厂8000借预付账款贷90000(3)82000(5)4.说明:材料采购过程中采购人员差旅费的核算其他应收款-××人职工借款时职工报销或还款时余:尚未收回或

报销的款项资产类账户核算要点:一次借款,一次报销,一次结清例1:3月1日,采购员李明因公出差,预借差旅费500元,财务科当即以现金付给。借:其他应收款-李明500

贷:库存现金500例2:3月5日,采购员李明出差归来,报销差旅费450元,余款50元退回。借:管理费用

450库存现金

50贷:其他应收款-李明

500假设3月5日,采购员李明出差归来,报销差旅费550元,财务科补付现金50元。???借:管理费用

550贷:其他应收款-李明

500库存现金

50二、生产过程核算(一)生产过程核算的主要内容生产经营过程中的耗费直接费用间接费用期间费用直接为生产产品发生的费用,如生产产品领用原材料(直接材料)、生产工人的工资和福利费(直接人工)间接为生产产品发生的费用(主要是车间发生的费用),如车间领用原料、车间管理人员的工资和福利费、车间固定资产的折旧费、车间照明的电费等其他部门发生的与生产无关的费用,包括:管理费用(企业管理部门发生的费用,如管理部门人员的工资、企业的办公费等)财务费用(为筹集资金发生的费用,如利息)销售费用(为销售发生的费用(如广告费)记入产品生产成本记入当期损益按与产品生产之间的关系分(二)需设置的账户借生产成本贷1、生产成本,成本类,核算处于生产阶段的产品的生产费用(即:在产品的价值)生产领用的原材料生产工人的工资、福利费月末分配转入的制造费用产品完工,验收入库时,入库产品的生产费用月末在产品生产成本借制造费用贷

2、制造费用,成本类,核算为生产产品而发生的各种间接费用。月末按一定的标准,全额分配转入生产成本车间管理人员工资、福利费车间设备、厂房的折旧费车间办公费、水电费、机物料消耗借管理费用贷(3)管理费用,损益类(核算内容见书上P241)期末转入“本年利润”账户,以便计算当期利润发生各项管理费用时借财务费用贷(4)财务费用,损益类期末转入“本年利润”账户,以便计算当期利润发生各项财务费用时借销售费用贷(5)销售费用,损益类(核算内容见书上P242)期末转入“本年利润”账户,以便计算当期利润发生各项销售费用时借库存商品贷(6)库存商品,资产类,核算企业库存的各种商品的增减变动情况验收入库产品的成本发出库存产品的成本库存产品的成本借应付职工薪酬-工资贷(7)应付职工薪酬,负债类应付未付的职工工资、奖金实际支付的工资、奖金借应付职工薪酬-职工福利贷应付未付的职工福利费(可以每月按工资总额的14%计提)实际使用的福利费尚未支付的工资尚未使用的福利费(8)累计折旧,资产类,反映固定资产的磨损、折耗程度,是固定资产的抵减账户。累计折旧的增加是固定资产净值的减少。借累计折旧贷固定资产减少时,注销已提的折旧每月提取的折旧数(当月的磨损数)累计提取的折旧数借固定资产贷增加固定资产的原值减少固定资产的原值现有固定资产的原值现有固定资产的净值(折余价值)(1)3日,生产车间为生产A产品200件领用甲材料86000元,为生产B产品200件领用乙材料32000元。借:生产成本——A产品86000——B产品32000

贷:原材料——甲材料86000——乙材料32000(2)4日,以现金支付厂部办公人员张三出差预借的差旅费800元。3.会计核算举例(某企业12月份业务)借:其他应收款——张三800

贷:库存现金800(3)5日,购买厂部用办公用品计900元,以

温馨提示

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

评论

0/150

提交评论