VoiceXML培訓(xùn)資料課件_第1頁
VoiceXML培訓(xùn)資料課件_第2頁
VoiceXML培訓(xùn)資料課件_第3頁
VoiceXML培訓(xùn)資料課件_第4頁
VoiceXML培訓(xùn)資料課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

VoiceXML培訓(xùn)資料什么是VoiceXML?VoiceXML簡介

VoiceXML:Voice

eXtensibleMarkupLanguage

(語音可擴展標(biāo)記語言)VoiceXML開發(fā)環(huán)境Jdk1.4.0以上版本Tomcat4.0以上版本環(huán)境變量的配置:PATH=C:\j2sdk1.4.2\bin;setCLASSPATH=.;C:\j2sdk1.4.2\jre\lib\rt.jar;setJAVA_HOME=C:\j2sdk1.4.2注:CALSSPATH是CLASS文件的尋找路徑,沒設(shè)就找不到CALSS文件。CHASSPATH中的”點”代表當(dāng)前路徑。VoiceXML入門先來了解一下XMLXML簡單規(guī)則:1、從<?xmlversion=“1.0”encoding=“gb2312”?>開始2、元素的格式 <元素名 屬性名=“屬性值”屬性名=“屬性值”….> </元素名>3、一個XML文當(dāng)中只能包含一個主元素,例如:元素名為:vxml4、元素間的包含 <元素名 屬性名=“屬性值”屬性名=“屬性值”….> 可以并列放置一個或者多個文本或者元素 </元素名>5、空元素 是指元素中沒有包含任何文本或者元素的元素,可以縮寫為: <元素名 屬性名=“屬性值”屬性名=“屬性值”…./>如何進(jìn)行業(yè)務(wù)的日常維護(hù)通??梢允褂肐E對業(yè)務(wù)流程的檢查采用逐步檢查的辦法:1、檢查普通頁面是否能夠正常顯示2、檢查是否能夠支持動態(tài)腳本程序,例如Jsp程序是否能夠正確運行3、檢查操作數(shù)據(jù)庫部分的流程是否正常下面是一個例子:從HelloWorld開始<?xmlversion="1.0"encoding="gb2312"?><!--這是我們的第一個VoiceXML程序--><vxml><form> <block> <prompt><audiosrc=“”>你好</audio></prompt> </block> <block> <prompt>再見</prompt> </block></form></vxml>放音收號

<fieldname=“exercise"type="digits"><propertyname=“maxdigit”value=“1”/><!—最大收號位數(shù)--><propertyname="interdigittimeout"value=“1”/><!—收號間隙時間--><propertyname=“cancelchar”value=“*”/><!—默認(rèn)取消鍵--><propertyname=“termchar”value=“#”/><!—默認(rèn)結(jié)束鍵--><prompt><audiosrc=“c:\voice\*.vox”>您好!</audio></prompt><filled><ifcond="exercise==1"><gotonext=“*.jsp"/><elseifcond="exercise==2"/><gotonext=“*.jsp"/><else/></if></filled>深入了解VoiceXML框架可執(zhí)行內(nèi)容可執(zhí)行內(nèi)容指的是程序上的邏輯塊,這種邏輯出現(xiàn)在:<block>的formitem中。Form和formitem的<filled>行為中。事件處理中(<catch>,<help>等)。下面分別介紹一下這些元素:clear變量清空var變量定義prompt放音reprompt重放音gotosubmit流程跳轉(zhuǎn)ifelseelseif流程分支的判斷return返回subdialog調(diào)用exit退出常用的標(biāo)準(zhǔn)session變量Session.telephone.ani系統(tǒng)主叫Session.telephone.dnis系統(tǒng)被叫FormForm元素可以包含:一個或者多個formitem變量定義(var)事件處理(error/help/nomatch/noinput/catch)填充后處理(Filled)VoiceXML中的流控制-1FormItem總體特性包括如下元素:field、block、subdialog、object、record、transfer1、它們都有一個用name屬性指定名字的變量,該變量用expr屬性計算結(jié)果為初始值2、它們都有一個cond屬性,作為判斷表達(dá)式,用于判定是否需要執(zhí)行該formitem3、其中fielditem通常包含: filled:其中包含了當(dāng)fielditem的結(jié)果變量被填充的時候需要進(jìn)行的相應(yīng)處理 property:用于設(shè)定影響當(dāng)前交互的一些屬性 prompt:指定當(dāng)該fielditem被訪問的時候需要提供的提示音 grammar:指定允許的用戶說話和按鍵的語法 catch:指定fielditem中發(fā)生事件時需要進(jìn)行的處理FILLEDfilled:用于指明某一個或者多個域被用戶輸入所填充后的處理流程mode 可以為all(默認(rèn)值),或者為any,表示指定的處理過程被執(zhí)行的選擇原則,是所有namelist中的域被填充,還是任意一個namelist中的域被填充namelist

該filled所對應(yīng)的域的名字,以空格分隔filled可以放置在form、formitem中如果放在formitem中,則表明當(dāng)該formitem被填充的時候執(zhí)行該filled中的流程;如果放在form中就是指namelist中的域被填充后需要執(zhí)行該filled中的流程例子:ex_6_3.vxmlFIELDfield: 收集用戶輸入的域 name 結(jié)果變量名 expr 產(chǎn)生初始值變量表達(dá)式 cond 判斷是否選擇該item被執(zhí)行的表達(dá)式 type 數(shù)據(jù)類型,相當(dāng)于有這樣的類型的語法 slot 域的關(guān)鍵字名,用于接受語音識別結(jié)果 modal 是否屏蔽該field以外的所有的語法type的類型包括:boolean、date、digits、currency、number、phone、time舉例:ex_5_3.vxml<fieldname="flavor"><prompt>Whatisyourfavoriteicecream?</prompt><grammarsrc="../grammars/ice_cream.gsl"/></field>SUBDIALOGsubdialog:激活一個類似函數(shù)調(diào)用的過程 name 結(jié)果變量名 expr 產(chǎn)生初始值變量表達(dá)式 cond 判斷是否選擇該item被執(zhí)行的表達(dá)式 namelist 通過HTTP攜帶的參數(shù)的列表 src 跳轉(zhuǎn)到的流程的URL地址 method HTTP獲取方式,(Get/Post) enctype HTTP編碼方式他和其他fielditem不同的是,其中可以放置param用于傳遞參數(shù),注意不要將這個參數(shù)和namelist屬性中的參數(shù)混淆,param攜帶的參數(shù)是通過VoiceXML解釋器進(jìn)行傳遞的舉例:return.vxmlPROMPTprompt:播放提示語音 bargein 提示音是否能不用戶打斷 bargeintype 打斷類型(2.0新增),支持識別打斷 cond 判斷是否播放的條件表達(dá)式 count 計數(shù)(在選擇規(guī)則中使用) timeout 用戶超時時間例子:<prompt>歡迎使用聽網(wǎng)</prompt>相關(guān)內(nèi)容:跳轉(zhuǎn)到執(zhí)行單元中的介紹VALUEvalue:將表達(dá)式值的運算結(jié)果輸出為語音或者TTS文本 expr 輸出表達(dá)式例子:<prompt><valueexpr="n*n"/>isthesquareof<valueexpr="n"/>.</prompt>放音內(nèi)容TTS放音<prompt>請說出城市名稱</prompt><prompt>您說的城市名稱是:<valueexpr=“cityname”/></prompt>播放WAV語音<prompt><audiosrc="say_your_city.wav"/></prompt><prompt> <audiosrc=“say_your_city.wav”>

請說出城市名稱

</audio></prompt><prompt><valueexpr=“recordaudio”/></prompt>混合TTS文本、WAV語音<prompt>

歡迎來到電話聽網(wǎng)

<audiosrc=”welcome.wav"/>

下面為您插播一段廣告,請收聽

<audiosrc=”advertizement.wav"/></prompt>PROMPT的選擇規(guī)則注意這里的選擇規(guī)則是指在formitem中的prompt,對于block、catch及事件處理縮寫元素、filled中的prompt不存在選擇問題。選擇規(guī)則如下:1、按照文檔中的順序?qū)⑺械膒rompt進(jìn)行排序,組成列表2、從列表中刪除所有cond條件表達(dá)式判斷為false的prompt元素3、尋找correctcount:列表中所有的的比當(dāng)前的計數(shù)器小的最大計數(shù)值4、刪除列表中所有值不等于correctcount的標(biāo)記PROMPT的緩沖原理Vxml解釋器任何時候都處于以下兩種狀態(tài): 1、等待狀態(tài):在fielditem中等待用戶輸入 2、轉(zhuǎn)移狀態(tài):根據(jù)等待狀態(tài)獲得的輸入在fielditem之間轉(zhuǎn)移,在該狀態(tài)是不接受用戶的任何語音輸入在轉(zhuǎn)移狀態(tài),所有的播放的提示音需要被緩存,在以下情況下才會被真正播放:1、當(dāng)解釋器到達(dá)等待狀態(tài)的時候,所有的緩存的提示音被放出,同時等待用戶的輸入2、當(dāng)解釋器獲取某資源時指定了fetchaudio屬性,則需要將所有的緩存的語音播放出去,如果播放完緩存的語音時資源還未獲取到,則播放fetchaudio指定的語音直到獲取到資源為止3、如果系統(tǒng)準(zhǔn)備退出,需要將所有的緩存的語音播放出去變量、表達(dá)式與腳本變量與表達(dá)式無處不在涉及如下元素:var、script、assign、clear腳本在Vxml中的地位在VoiceXML中,通過嵌入腳本的方式,可以實現(xiàn)復(fù)雜的應(yīng)用,并為VoiceXML提供了強大的計算能力。變量和腳本的關(guān)系腳本和變量是融合在一起的,在作用域中可以相互引用。腳本不是孤立存在的,而是與整個VoiceXML結(jié)合在一起的除了var定義的變量,還有沒有其他變量?VoiceXML中隱含地定義了變量,系統(tǒng)會為每個item定義一個formitem變量,這個變量有兩個作用:1)流程控制,2)保存輸入值或者返回值。變量作用域sesssion:整個通話過程中起作用application:在一個應(yīng)用中起作用document:在當(dāng)前文檔中起作用dialog:在form、menu中起作用anonymous:看上一級是誰,可能是block、catch元素包括其縮寫、filled變量的使用cond表達(dá)式,作為if、elseif、prompt、catch等等元素的屬性expr表達(dá)式,作為assign、value、等等元素的屬性script腳本中對其進(jìn)行使用舉例:<ifcond="i>1"><assignname="i"expr="i-1"/></if><assignname="document.ssn"expr="dialog.ssn"/><linkevent="menulinkevent"><grammarsrc="./linkgrammar.grxml" type="application/grammar+xml"/></link><form>...<field>...<catchevent="menulinkevent"><ifcond="application.lastresult$.confidence<0.7"><gotonextitem="confirmlinkdialog"/><else/><gotonext="./main_menu.html"/></if></catch></field>...</form>Application變量application.lastresult$ application.lastresult$[i].confidence application.lastresult$[i].utterance application.lastresult$[i].inputmode application.lastresult$[i].interpretation這是VoiceXML2.0中的新特性事件的拋出與處理Whothrowevent1)流程拋出事件:通過throw,將指定的事件拋出2)系統(tǒng)處理中拋出的事件:nomatch:在等待用戶輸入時,如果用戶的語音或者按鍵沒有匹配上相應(yīng)的語法,則拋出該事件;noinput:如果用戶在一定時間內(nèi)沒有輸入,則拋出該事件;help:如果用戶輸入“幫助”時,拋出help事件error:錯誤事件,例如跳轉(zhuǎn)到一個不存在的頁面、或者流程中有語法錯誤、或者在執(zhí)行過程中有JavaScript運算異常telphone.disconnect:用戶掛機或轉(zhuǎn)移exit:流程結(jié)束事件,form中的所有item都被執(zhí)行,沒有跳轉(zhuǎn)離開該form則拋出該事件Whichelementprocesstheevent1)catch元素,其屬性event中指明了其處理的事件名稱2)nomatch、noinput、help、error元素能夠處理相應(yīng)的事件3)事件只能被相比于事件發(fā)生地層次高或者相同的元素捕獲,不能被低層次的元素捕獲catch、nomatch、noinput、help、error元素中可以放置一個執(zhí)行塊,其中可以放置各種執(zhí)行單元,用于說明當(dāng)制定事件被捕獲后需要完成的動作CATCHcatch: 捕獲事件 event 事件名稱,或者一組事件的名稱 count 計數(shù)(用于Catch的選擇規(guī)則) cond 執(zhí)行事件處理的判斷條件

舉例:<catchevent="nomatchnoinput"count="3”cond=“true”><prompt>Securityviolation!</prompt><submitnext="apprehend_felon"namelist="user_id"/></catch>事件處理縮寫標(biāo)記事件處理縮寫標(biāo)記包括:catch: 捕獲事件 count 計數(shù)(用于Catch的選擇規(guī)則) cond 執(zhí)行事件處理的判斷條件

舉例:<nomatchcount="3”cond=“true”> 您三次密碼輸入錯誤,再見 <exit/></nomatch>Catch的選擇規(guī)則當(dāng)一個事件發(fā)生的時候,我們?nèi)绾芜x擇該有誰來處理?依據(jù)以下原則:1、將所有的在當(dāng)前作用域中的、包含域中的catch組成一個列表,首先按照Catch所在域從小到大排序,在同一個作用域中按照文檔中的實際順序排序2、將列表中所有cond表達(dá)式條件為false的catch標(biāo)記刪除;將列表中所有event中沒有包含當(dāng)前需要被處理的事件的catch刪除3、尋找correctcount:在catch列表中比當(dāng)前的實際計數(shù)次數(shù)小的最大的count4、尋找列表中第一個其屬性count等于correctcount的catch。終于找到你了:)formitemformdocumentapplicationrootinterpretercontext系統(tǒng)默認(rèn)事件exit (平臺屏蔽,避免造成錯誤),用于用戶主動說明離開error 系統(tǒng)錯誤或者業(yè)務(wù)錯誤 error.badfetch無法獲取文檔

error.semantic error.noauthorization 無權(quán)操作(例如呼叫受限) error.unsupported.format error.unsupported.elementhelp 用戶主動說幫助noinput 用戶在指定時間內(nèi)沒有輸入nomatch 用戶輸入與語法不匹配telephone.disconnect.hangup 用戶掛機telephone.disconnect.transfer 無條件前轉(zhuǎn)執(zhí)行單元詳細(xì)介紹VARvar:用于定義和初始化變量 name 變量名 expr 初始值例子:<varname="phone"expr="6305551212"/><varname="y"expr="document.z+1"/>ASSIGNassign:用于變量賦值 name 變量名 expr 初始值例子:<assignname="flavor"expr="'chocolate'"/><assignname="document.mycost"expr="document.mycost+14"/>CLEARclear:用于清除formitem變量值 namelist 希望被清楚的變量名例子:<clearnamelist="citystatezip"/><clear/>IFElseifElse例子:<ifcond="amount<29.95"> <assignname="x"expr="amount"/><else/> <assignname="x"expr="29.95"/></if><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>if、elseif: cond 判斷條件表達(dá)式

PROMPTprompt:播放提示語音 bargein 提示音是否能不用戶打斷 bargeintype 打斷類型(2.0新增),支持識別打斷 cond 判斷是否播放的條件表達(dá)式 count 計數(shù)(在選擇規(guī)則中使用) timeout 用戶超時時間例子:<prompt>歡迎使用聽網(wǎng)</prompt>相關(guān)內(nèi)容:參考系統(tǒng)輸出的詳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論