基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)_第1頁
基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)_第2頁
基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)_第3頁
基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)_第4頁
基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于VoiceXML技術(shù)的可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)(一)上海易谷網(wǎng)絡(luò)科技有限公司 查瑋 2009/09/22摘要為了縮短交互式語音應(yīng)答(IVR: Interaction Voice Response)系統(tǒng)流程開發(fā)周期,克服傳統(tǒng)IVR系統(tǒng)業(yè)務(wù)流程編寫復(fù)雜的困難,同時(shí)與VoiceXML技術(shù)相結(jié)合,本文設(shè)計(jì)并實(shí)現(xiàn)了基于VoiceXML技術(shù)的可視化IVR系統(tǒng)。本文設(shè)計(jì)的IVR系統(tǒng),將整個(gè)系統(tǒng)分為流程編輯工具、含有VoiceXML標(biāo)簽的Web頁面和執(zhí)行引擎三個(gè)部分,完成了總體框架及其核心部分的設(shè)計(jì)與實(shí)現(xiàn)。本文研究了可視化技術(shù)的現(xiàn)狀和理論,并對(duì)傳統(tǒng)IVR系統(tǒng)流程編輯工具做了分析與對(duì)比,并在此基礎(chǔ)上,從靈

2、活、方便以及友好的用戶界面的設(shè)計(jì)原則出發(fā),對(duì)IVR系統(tǒng)的流程工具進(jìn)行了詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn)。然后,在分析當(dāng)前Web技術(shù)發(fā)展的情況下,本文與企業(yè)數(shù)據(jù)業(yè)務(wù)緊密結(jié)合,提出了將業(yè)務(wù)流程類比成企業(yè)門戶網(wǎng)站的解決方案。該方案結(jié)合OpenVXI開源項(xiàng)目,使用VoiceXML技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了IVR系統(tǒng)的執(zhí)行引擎。關(guān)鍵詞: 交互式語音應(yīng)答 可視化系統(tǒng) VoiceXML 第一章緒論1.1研究背景呼叫中心(Call Center,又稱客戶服務(wù)中心)起源于發(fā)達(dá)國(guó)家對(duì)服務(wù)質(zhì)量的需求,其主旨是通過電話、傳真等形式為客戶提供迅速、準(zhǔn)確的咨詢信息以及業(yè)務(wù)受理和投訴等服務(wù),通過程控交換機(jī)的智能呼叫分配、計(jì)算機(jī)電話集成、自動(dòng)應(yīng)答系

3、統(tǒng)等高效的手段和有經(jīng)驗(yàn)的人工坐席,最大限度地提高客戶的滿意度,同時(shí)自然也使企業(yè)與客戶的關(guān)系更加緊密,是提高企業(yè)競(jìng)爭(zhēng)力的重要手段1。IVR(Interaction Voice Response,交互式語音應(yīng)答)系統(tǒng)是整個(gè)呼叫中心的系統(tǒng)的最前端,它的質(zhì)量直接影響到整個(gè)系統(tǒng)的穩(wěn)定性。在整個(gè)呼叫中心運(yùn)行過程中,IVR系統(tǒng)的業(yè)務(wù)流程也在隨著客戶體驗(yàn)和業(yè)務(wù)功能需求發(fā)生著改變,因此,如何對(duì)業(yè)務(wù)流程方便快捷的修改成了IVR系統(tǒng)必不可少的功能顯得尤為重要。相對(duì)于傳統(tǒng)的腳本式的編輯方法顯然不能很好的適應(yīng)這樣的變化,所以可視化的配置方式呼之欲出,應(yīng)用可視化的業(yè)務(wù)流程編輯界面可以很好與用戶交互,減輕了用戶的工作量,同

4、時(shí)達(dá)到方便快鍵的目的。同時(shí),隨著IVR系統(tǒng)的發(fā)展,其與企業(yè)的數(shù)據(jù)業(yè)務(wù)結(jié)合的越來越緊密。而傳統(tǒng)的IVR系統(tǒng)相對(duì)于企業(yè)后臺(tái)數(shù)據(jù)業(yè)務(wù)服務(wù)相對(duì)隔離,而且大多數(shù)的IVR產(chǎn)品都不能很好的與企業(yè)的業(yè)務(wù)系統(tǒng)對(duì)接,或者是使用了比較繁冗復(fù)雜的方法,既浪費(fèi)了資源,又影響了系統(tǒng)的穩(wěn)定性。VoiceXML技術(shù)的出現(xiàn),使語音業(yè)務(wù)與數(shù)據(jù)業(yè)務(wù)得到了統(tǒng)一,節(jié)省了資源,用戶在訪問語音業(yè)務(wù)的時(shí)候也可以方便的訪問到數(shù)據(jù)業(yè)務(wù)。1.2 國(guó)內(nèi)外研究現(xiàn)狀與應(yīng)用前景1.2.1 可視化技術(shù)的發(fā)展現(xiàn)狀和應(yīng)用前景可視化語言技術(shù)比一維文本語言在描述軟件組成方面具有優(yōu)越性由于圖表和圖形概念在系統(tǒng)建模中的廣泛使用,可視化語言可以應(yīng)用于需求分析、設(shè)計(jì)、測(cè)試

5、和維護(hù)等軟件開發(fā)的各個(gè)階段2??梢暬UZ言簡(jiǎn)稱可視化語言,是采用圖形方式對(duì)系統(tǒng)/軟件進(jìn)行描述的語言,如目前廣為流行的統(tǒng)一建模語言UML、傳統(tǒng)的數(shù)據(jù)流語言和工作流建模語言等,它具有直觀、便于理解的優(yōu)點(diǎn)。可視化建模工具為可視化建模語言的使用提供了工具支持,目前可分為兩大類:自由編輯型和語法制導(dǎo)型。自由編輯型允許用戶隨意建模,相當(dāng)也圖形編輯器,如Microsoft(微軟)公司的Visio;語法制導(dǎo)的可視化建模工具在編輯過程中自動(dòng)引導(dǎo)用戶建立語法正確的可視化模型,有利于用戶對(duì)可視化建模語言的掌握和使用,有著廣泛的使用范圍。對(duì)于自由編輯型可視化建模工具,在國(guó)際市場(chǎng)上,Microsoft公司的Visio

6、和Rational公司的Rose的產(chǎn)品比較有影響和代表性。Visio是當(dāng)今最優(yōu)秀的辦公繪圖軟件之一,它將強(qiáng)大的功能和簡(jiǎn)單的操作完美地結(jié)合在一起。使用Visio,可以繪制業(yè)務(wù)流程圖、組織結(jié)構(gòu)圖、項(xiàng)目管理圖、營(yíng)銷圖表、辦公室布局圖、網(wǎng)絡(luò)圖、電子線路圖、數(shù)據(jù)庫模型圖、工藝管道圖、因果圖、方向圖等,因而,Visio被廣泛地應(yīng)用于軟件設(shè)計(jì)、辦公自動(dòng)化、項(xiàng)目管理、廣告、企業(yè)管理、建筑、電子、機(jī)械、通信、科研和日常生活等眾多領(lǐng)域。Rational Rose 3是一個(gè)完全的,具有能滿足所有建模環(huán)境(Web開發(fā),數(shù)據(jù)建模,Visual Studio 和 C+)需求能力和靈活性的一套解決方案。Rose 允許開發(fā)人

7、員,項(xiàng)目經(jīng)理,系統(tǒng)工程師和分析人員在軟件開發(fā)周期內(nèi)在將需求和系統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼,消除浪費(fèi)的消耗,對(duì)需求和系統(tǒng)的體系架構(gòu)進(jìn)行可視化,理解和精練。通過在軟件開發(fā)周期內(nèi)使用同一種建模工具可以確保更快更好的創(chuàng)建滿足客戶需求的可擴(kuò)展的、靈活的并且可靠的應(yīng)用系統(tǒng)。語法制導(dǎo)型的編輯器自動(dòng)生成技術(shù)的研究成果主要有GENGED4、PROGRES5、MetaEdit+6;國(guó)內(nèi)的研究相對(duì)較少,從目前所發(fā)表的研究成果看,只有北航軟件工程研究所研制的SGEG 系統(tǒng)7。以上研究主要基于自動(dòng)生成器的思想,由于在不同程度上缺乏對(duì)語言描述能力、語言解析效率、生成的目標(biāo)編輯器的靈活性和可擴(kuò)展性等方面的綜合考慮,所以實(shí)用性較

8、弱。1.2.2 VoiceXML技術(shù)的發(fā)展現(xiàn)狀與應(yīng)用前景VoiceXML(語音可擴(kuò)展標(biāo)記語言)的出現(xiàn)最早可以追溯到1995在AT&T公司開發(fā)的基于XML的電話標(biāo)記語言(PML)。隨后,AT&T、Lucent Technologies以及Motorola公司分別各自著手開發(fā)自己的類似于PML的語音標(biāo)記語言。到了1998年,W3C(world wide web consortium)組織的“語音瀏覽器”會(huì)議上,AT&T和Lucent Technologies分別展現(xiàn)了他們各自的類同PML的標(biāo)記語言、Motorola和IBM公司分別推出VoxML8和SpeechML9、HP和

9、PipeBeach公司也分別推出TalkML10和VoiceHTML11。AT&T、IBM、Lucent Technoglies、以及Motorola隨后成立了VoiceXML論壇,其目的是為了建立一個(gè)語音對(duì)話應(yīng)用系統(tǒng)的國(guó)際標(biāo)準(zhǔn)。到了2000年,AT&T、IBM、Lucent Technologies、以及Motorola通過W3C協(xié)會(huì)聯(lián)合推出語音可擴(kuò)展標(biāo)記語言VoiceXML1.0。該標(biāo)準(zhǔn)一經(jīng)推出,便得到相關(guān)行業(yè)眾多公司的響應(yīng)。經(jīng)過兩年多的論證和實(shí)際系統(tǒng)驗(yàn)證,VoiceXML2.0最終草案在2003年推出。用VoiceXML開發(fā)的語音應(yīng)用系統(tǒng),不僅可以完全代替?zhèn)鹘y(tǒng)CTI(計(jì)算

10、機(jī)電話集成) 系統(tǒng)所能提供的功能,而且還可以使應(yīng)用系統(tǒng)開發(fā)過程極其簡(jiǎn)單快捷、系統(tǒng)有極高的可擴(kuò)展性、可維護(hù)性、可移植性、可重用性和開放性。其定義了如何使用語音識(shí)別、語音合成、互聯(lián)網(wǎng)訪問、數(shù)據(jù)庫訪問、語音文件播放、DTMF輸入等功能開發(fā)一個(gè)完整的語音應(yīng)用系統(tǒng)。1.3論文研究?jī)?nèi)容隨著現(xiàn)代呼叫中心的發(fā)展,IVR系統(tǒng)的業(yè)務(wù)流程也愈趨復(fù)雜,在設(shè)計(jì)過程定義工具的時(shí)候簡(jiǎn)化操作的復(fù)雜性,提高產(chǎn)品的易用性是首先應(yīng)當(dāng)考慮的。所以圖形化的過程定義工具顯得尤為必要。同時(shí),人們?cè)诤艚兄行臉I(yè)務(wù)中,對(duì)于語音和數(shù)據(jù)業(yè)務(wù)相結(jié)合有了強(qiáng)烈的愿望,VoiceXML很好的解決了這個(gè)難題,其技術(shù)也在這幾年有了長(zhǎng)足的發(fā)展,使得語音和數(shù)據(jù)業(yè)務(wù)

11、有了一個(gè)良好的耦合。為了實(shí)現(xiàn)簡(jiǎn)單、易用能和數(shù)據(jù)業(yè)務(wù)良好整合的IVR系統(tǒng),本課題圍繞以下幾項(xiàng)主要工作展開研究:1可視化的基本概念的研究。具體的研究?jī)?nèi)容包括:可視化技術(shù)的定義,可視化建模語言的描述方法,閱讀并分析了大量有關(guān)可視化技術(shù)的資料及學(xué)術(shù)論文,對(duì)可視化技術(shù)的概念、特點(diǎn)進(jìn)行詳細(xì)的討論和分析;2可視化的過程定義工具的研究。具體的研究?jī)?nèi)容包括可視化過程定義工具的體系結(jié)構(gòu)和過程定義工具的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn);3VoiceXML技術(shù)的基本概念的研究。具體的研究?jī)?nèi)容包括:VoiceXML的概述,VoiceXML的基本體系結(jié)構(gòu)和其在IVR系統(tǒng)中的簡(jiǎn)單應(yīng)用;4基于VoiceXML的執(zhí)行引擎的研究。具體的研究?jī)?nèi)容包

12、括:執(zhí)行引擎的體系結(jié)構(gòu)的總體分析以及基于OpenVXI開源項(xiàng)目的執(zhí)行引擎的設(shè)計(jì)和實(shí)現(xiàn)。1.4 本文結(jié)構(gòu)本文共分六部分,具體的內(nèi)容組織如下:第一章:緒論。給出課題的研究背景,提出論文的目標(biāo)、意義和主要研究?jī)?nèi)容;第二章:相關(guān)技術(shù)研究。第一部分,可視化技術(shù)概述。介紹了可視化技術(shù)的定義和建模語言描述方法等。第二部分,VoiceXML技術(shù)。介紹了VoiceXML技術(shù)的原理和在IVR系統(tǒng)的應(yīng)用;第三章:基于VoiceXML技術(shù)的可視化IVR系統(tǒng)分析和設(shè)計(jì)。首先分析了IVR系統(tǒng)的具體需求,提出了系統(tǒng)總體架構(gòu),分別論述了流程定義工具和執(zhí)行引擎的詳細(xì)設(shè)計(jì);第四章:基于VoiceXML技術(shù)的可視化IVR系統(tǒng)實(shí)現(xiàn)。

13、重點(diǎn)介紹了過程定義工具及執(zhí)行引擎的實(shí)現(xiàn);第五章:IVR系統(tǒng)的應(yīng)用及測(cè)試。給出了本問設(shè)計(jì)的系統(tǒng)的一個(gè)具體應(yīng)用,并且給出了測(cè)試結(jié)果;第六章: 結(jié)束語??偨Y(jié)了本文工作所取得的成果,并對(duì)下一步工作提出了展望。第二章相關(guān)技術(shù)研究由于IVR系統(tǒng)在呼叫中心系統(tǒng)中的前置性和必要性地位,同時(shí)IVR系統(tǒng)相關(guān)技術(shù)也引起了很高的關(guān)注。近年來,隨著軟件開發(fā)技術(shù)的日新月異,IVR系統(tǒng)相關(guān)技術(shù)也在不斷發(fā)展和完善,下面扼要的介紹一下IVR系統(tǒng)相關(guān)的可視化技術(shù)和VoiceXML技術(shù)的研究現(xiàn)狀和進(jìn)展。2.1 可視化技術(shù)綜述2.1.1 可視化技術(shù)的研究可視化建模工具的開發(fā),其總體思路是利用模型驅(qū)動(dòng)的方法,通過模型到代碼、模型到語言

14、配置文件的自動(dòng)映射,同時(shí)通過配置目標(biāo)編輯器,實(shí)現(xiàn)可視化語言編輯器的自動(dòng)生成。自動(dòng)生成結(jié)合配置技術(shù)不僅使可視化語言編輯器的開發(fā)效率更高,而且更具靈活性??傮w框架分為三個(gè)部分(見圖2.1):1.模型,主要包括對(duì)目標(biāo)語言(即可視化語言)的描述;2.轉(zhuǎn)化模塊,將模型描述的信息轉(zhuǎn)化為代碼和語言配置文件;3.目標(biāo)編輯器的配置和自動(dòng)生成,其基本設(shè)計(jì)思想是將所有可視化語言編輯器都共有的部分和變化的部分分離,由基礎(chǔ)框架實(shí)現(xiàn)共有部分,而變化部分采用自動(dòng)生成和系統(tǒng)配置的方法實(shí)現(xiàn)。因此目標(biāo)編輯器由“可視化語言編輯器框架+語言構(gòu)件+編輯器配置項(xiàng)”構(gòu)成??梢暬Z言編輯器框架是目標(biāo)編輯器的核心驅(qū)動(dòng)部分,不涉及與任何目標(biāo)可視

15、化語言相關(guān)的代碼;語言構(gòu)件包含了與目標(biāo)可視化語言相關(guān)的目標(biāo)代碼;配置項(xiàng)描述了對(duì)可視化語言和編輯器的定制。圖2.1 可視化建模工具總體框架圖根據(jù)總體框架,可視化建模工具開發(fā)環(huán)境主要包括以下兩個(gè)方面的研究:(1)可視化建模語言的描述方法;(2)目標(biāo)編輯器的配置和實(shí)現(xiàn)。2.1.2 可視化建模語言描述方法可視化建模語言的描述方法是總體框架的基礎(chǔ)。分為三個(gè)部分:1.語素語素是最小的語法單位,可視化語言的語素表現(xiàn)為圖元符號(hào)(本文中不再區(qū)分語素和圖元)。2.語法語法定義了圖元符號(hào)之間的關(guān)系,包括兩個(gè)部分:抽象語法和具體語法。抽象語法定義圖元之間邏輯連接關(guān)系;具體語法定義圖元外觀的類型以及圖元之間幾何位置關(guān)系

16、。3.語義語義表明了圖元符號(hào)和連接關(guān)系的含義,是模型的具體含義。目前,大多數(shù)可視化建模語言描述的研究主要是針對(duì)語法描述研究,描述方法主要有基于文法的形式化描述、基于邏輯的形式化描述 、基于代數(shù)的形式化描述和基于規(guī)則的半形式化描述方法12。一般分為兩大部分:基于規(guī)則的語法形式化描述和基于元模型技術(shù)的靜態(tài)語義描述。(1)基于規(guī)則的語法描述方法(RGVL,Rule-based Grammar Visual Language)基于規(guī)則的可視化建模語言描述方法(RGVL)具有如下優(yōu)點(diǎn):1. 規(guī)則的解析效率高; 2. 規(guī)則容易理解和書寫; 3. 描述能滿足當(dāng)前大多數(shù)的可視化建模語言需求。 RGVL采用一組

17、規(guī)則來定義圖元與圖元之間的邏輯關(guān)系,并利用一組規(guī)則來描述圖元的位置關(guān)系等幾何信息。該描述方法形式上可以定義為一個(gè)三元組: G=p,AG,CG式(2-1)G 為可視化建模語言的語法,其中,p:為一個(gè)有窮的圖元集合。形式表示為:P=P/P為可視化建模語言中的基本圖元類型 例如,UML類圖中的類和關(guān)聯(lián)類可以表示為:PClass,Assiciaion式(2-2)AG:抽象語法規(guī)則集合。形式表示為: AG=r/r(p1,p2,n)p1p,p2p,n為自然數(shù)式(2-3)r 為圖元之間的連接關(guān)系, r 可以為Connection_from 和Connection_to 兩種類型的關(guān)系, n表示連接的勢(shì)(多重

18、性); *表示無窮; Connection_from表示從p2 連接到p1 ,p1為當(dāng)前圖元;Connection_to 表示從p1 連接到p2 , p1為當(dāng)前圖元。例如,在UML關(guān)聯(lián)關(guān)系的定義中,為了表示關(guān)聯(lián)關(guān)系與類之間的抽象語法關(guān)系,可以書寫如下的規(guī)則:AG=Connection_to(Class,Associalion,*),Connection_from(Class,Associalion,1) 式(2-4)表示類圖元可以連接多個(gè)關(guān)聯(lián)關(guān)系,每個(gè)關(guān)聯(lián)關(guān)系必須連接到一個(gè)類圖元。CG:具體語法規(guī)則集合。形式表示為:CG=(p,render,lsyout)/pP,renderR.layoutC

19、式(2-5)R是圖元外觀類型的集合,L是圖元位置關(guān)系的集合。例如,CG=Class.MutiTextViz,AtLocation Layout式(2-6)公式(2-6)表示類圖元具有帶有多個(gè)文本框的外觀類型和指定位置放置圖元的位置關(guān)系定義時(shí),為了增強(qiáng)可擴(kuò)展行,定義了用戶自定義類型(在實(shí)現(xiàn)時(shí),定義了相關(guān)的編程接口使得用戶可以自定義外觀和圖元位置關(guān)系)。(2)基于元模型的靜態(tài)語義描述方法(MSS)將傳統(tǒng)的語義分為兩個(gè)部分:靜態(tài)語義和動(dòng)態(tài)語義。靜態(tài)語義表示圖元符號(hào)的屬性信息,是可視化建模語言中一個(gè)重要組成部分。通過擴(kuò)展元模型MOF(Meta Object Facility)技術(shù)對(duì)靜態(tài)語義進(jìn)行定義。M

20、OF是對(duì)象管理組織定義的一個(gè)用于在平臺(tái)無關(guān)方式下,定義、使用和集成元數(shù)據(jù)以及數(shù)據(jù)的模型驅(qū)動(dòng)框架13。利用MOF元模型對(duì)可視化建模語言的靜態(tài)語義進(jìn)行描述時(shí),MOF的表達(dá)能力還不足以滿足完整地描述可視化建模語言的語素(圖元)的靜態(tài)關(guān)系和操作關(guān)系,擴(kuò)展了MOF中的關(guān)聯(lián)關(guān)系,在關(guān)聯(lián)中增加標(biāo)簽值來專門說明該關(guān)聯(lián)與其它關(guān)聯(lián)之間的關(guān)系,提出了基于MOF的靜態(tài)語義描述方法稱為MSS(MOF-based Static Sematic)。該方法可以定義為一個(gè)三元組:MSS=m,Rs,Rop式(2-7)MSS為可視化建模語言的靜態(tài)語義,其中,M:為擴(kuò)展的MOF的靜態(tài)語義模型??杀硎緸镸=CssURss式(2-8)C

21、ss表示元類的集合, Rss表示元類之間的關(guān)系集合。在Rss 中使用的是擴(kuò)展后的關(guān)聯(lián)關(guān)系,可以定義關(guān)聯(lián)之間的關(guān)系。Rs:為圖元與靜態(tài)語義模型中元類的靜態(tài)關(guān)系??杀硎緸?Rs=(p,c)/pP,CCss式(2-9)公式(2-9)中 p為語素集合, Css為元類集合。對(duì)于目標(biāo)編輯器的配置和實(shí)現(xiàn),主要是對(duì)可視化建模語言研究和分析后,根據(jù)實(shí)現(xiàn)的需要,同時(shí)考慮了解析能力和描述能力,定義了一套支持語義定義的可視化建模語言描述方法。2.2 基于VoiceXML的交互式語音應(yīng)答2.2.1 VoiceXML概述VoiceXML是W3C用來制定通過對(duì)話訪問Web的內(nèi)容及其交互語音應(yīng)答的傳遞標(biāo)準(zhǔn)。VoiceXML使

22、公共電話網(wǎng)、語音處理技術(shù)以及互聯(lián)網(wǎng)有機(jī)地結(jié)合為一體。它是一種域?qū)S谜Z言,定義了一系列的語音應(yīng)用概念、元素及其對(duì)應(yīng)的操作,能根據(jù)播放的音頻文件、輸出的文本語音、要錄制和識(shí)別的語音以及所接收的按鍵音,連定義人和計(jì)算機(jī)之間的語音交互過程。VoiceXML希望通過交互式語音界面應(yīng)用Web上已經(jīng)存在的大量信息,同時(shí)希望能夠?qū)㈤_發(fā)人員從最低級(jí)的編程和資源處理工作中解放出來。VoiceXML還能夠利用人們已經(jīng)非常熟悉的C/S,將語音服務(wù)和數(shù)據(jù)服務(wù)融合起來1415。2.2.2 VoiceXML基本體系結(jié)構(gòu)VoiceXML系統(tǒng)的基本結(jié)構(gòu)如圖2.2所示16。其中,文檔服務(wù)器充當(dāng)?shù)氖荳eb服務(wù)器的角色,他負(fù)責(zé)處理執(zhí)

23、行平臺(tái)發(fā)送的請(qǐng)求文檔,并與后臺(tái)數(shù)據(jù)庫進(jìn)行交互,組織VoiceXML文檔對(duì)該請(qǐng)求進(jìn)行響應(yīng)。VoiceXML解析器上下文和VoiceXML解釋器負(fù)責(zé)解析VoiceXML文件,控制執(zhí)行平臺(tái)。執(zhí)行平臺(tái)提供合成語音的輸出(text to speech,TTS)、音頻文件的輸出、話音輸入的識(shí)別(automated speech recognition,ASR)、DTMF輸入識(shí)別、語音輸入的錄音、電話功能等17。 圖2.2 VoiceXML的基本體系結(jié)構(gòu)圖VoiceXML語言規(guī)范的層次結(jié)構(gòu)如圖2.318所示,層次從底向上依次升高。 圖2.3 VoiceXML層次結(jié)構(gòu)(1)Session。用戶開始和Voice

24、XML解析器進(jìn)行交互式標(biāo)志一次會(huì)話(Session)開始,繼續(xù)完成文檔獲取和處理,當(dāng)用戶、文檔或者解釋器要求退出時(shí),這次Session結(jié)束。(2)Application。一個(gè)應(yīng)用(Application)是指一系列文檔共享一個(gè)相同的應(yīng)用文檔。當(dāng)用戶和一個(gè)應(yīng)用中的文檔交互時(shí),它的應(yīng)用根文檔同時(shí)被加載;當(dāng)文檔跳轉(zhuǎn)到的另一個(gè)文檔也存在于同一個(gè)應(yīng)用中,這時(shí)根文檔不被釋放當(dāng)根文檔被加載后它的變量可以被其他子文檔使用。(3)Dialog和SubDialog。每個(gè)VoiceXML 文檔都是一個(gè)交談的有限狀態(tài)自動(dòng)機(jī)用戶某時(shí)只能在一個(gè)會(huì)話狀態(tài)Dialog ,它決定了下一個(gè)要執(zhí)行的Dialog 執(zhí)行時(shí)就是在Dia

25、log 之間跳轉(zhuǎn)。Dialog 分為兩種Form 和Menu。Form定義了一系列Field項(xiàng)目用于交互,每一個(gè)Field 可以使用Grammar 語法指定允許輸入的內(nèi)容。Menu 提供給用戶選擇然后根據(jù)用戶的選擇跳轉(zhuǎn)到指定的Dialog 中。SubDialog 類似于函數(shù)調(diào)用,它提供一種機(jī)制允許激活一個(gè)新的交互,等交互完成后返回到原先的交互中去。使用SubDialog 可以實(shí)現(xiàn)一個(gè)特定模塊以便重復(fù)使用。(4) Grammar。每個(gè)Dialog 都有至少一個(gè)語法(Grammar)。語法包括兩種:DTMF語法和語音語法。在機(jī)器導(dǎo)引方式中,只有當(dāng)用戶處于這個(gè)Dialog 中,該Dialog 的Gr

26、ammar 才是有效的;在混合方式中,有些Dialog可以標(biāo)記為即使當(dāng)前用戶不處于該Dialog 中,這個(gè)語法也是有效的。(5)Event。VoiceXML提供了一種Form-Filling機(jī)制來處理通常的輸入,另外還需要處理一些事件。在有些情況下平臺(tái)會(huì)拋出一些事件,例如用戶無響應(yīng)、超時(shí)或沒有正確響應(yīng)、請(qǐng)求幫助等。如果解釋器發(fā)現(xiàn)語義錯(cuò)誤,也會(huì)拋出事件。事件由Catch 元素來捕獲并作相應(yīng)的處理。2.2.3 在IVR系統(tǒng)中運(yùn)用VoiceXML技術(shù)VoiceXML的推出給電話語音系統(tǒng)帶來全新的應(yīng)用和開發(fā)概念,使傳統(tǒng)的CTI技術(shù)從繁瑣、封閉的模式中走了出來,使廣大的語音系統(tǒng)開發(fā)人員可以用極其簡(jiǎn)單的方

27、法實(shí)現(xiàn)復(fù)雜系統(tǒng)的開發(fā)。同時(shí)VoiceXML技術(shù)突破地實(shí)現(xiàn)了互聯(lián)網(wǎng)與電話網(wǎng)的融合,在以語音為核心的電話網(wǎng)絡(luò)與以數(shù)據(jù)為核心的互聯(lián)網(wǎng)絡(luò)之間建立了良好的溝通“橋梁”。到目前為止,人們從Internet獲取各種資源時(shí),還只能是借助計(jì)算機(jī)來實(shí)現(xiàn)。而實(shí)際上,電話具有比計(jì)算機(jī)更高的普及率,如果允許人們通過電話來訪問Internet的資源,那么這對(duì)于Internet的應(yīng)用發(fā)展必將是一次質(zhì)的飛躍。在這類應(yīng)用前景的驅(qū)動(dòng)下,VoiceXML 1.0標(biāo)準(zhǔn)被提出來了,目前最新版本為2.119。VoiceXML使得用戶可以通過電話按鍵或語音來訪問Internet上的各種資源,它是語音瀏覽技術(shù)以及語音互聯(lián)網(wǎng)的核心。 Voic

28、eXML為語音應(yīng)用領(lǐng)域展現(xiàn)了一個(gè)廣闊的未來,用VoiceXML開發(fā)的語音應(yīng)用系統(tǒng),不僅可以完全代替?zhèn)鹘y(tǒng)CTI(計(jì)算機(jī)電話集成) 系統(tǒng)所能提供的功能,而且還可以使應(yīng)用系統(tǒng)開發(fā)過程極其簡(jiǎn)單快捷、系統(tǒng)有極高的可擴(kuò)展性、可維護(hù)性、可移植性、可重用性和開放性,在語音門戶、語音呼叫中心(Call Center) 、語音信息服務(wù)、語音電子商務(wù)等領(lǐng)域有著廣泛的應(yīng)用。下面給出兩個(gè)簡(jiǎn)單的例子說明VoiceXML在IVR系統(tǒng)的應(yīng)用:第一個(gè)是“Hello world”: 所有VoiceXML命令都封裝在之間。VoiceXML對(duì)話框用戶描述腳本對(duì)用戶輸出的各種提示、定義和收集用戶的響應(yīng),并且描述程序控制的流程。對(duì)話框分

29、兩種,分別是窗體(forms)和菜單(menus)。窗體輸出信息并且收集輸入,菜單提供下一步做什么選擇。這個(gè)例子有一個(gè)單一的窗體,它包括一個(gè)快(block),該塊合成并輸出“Hello World!”。由于這個(gè)窗體沒有后繼的對(duì)話框,所以輸出完“Hello World!”后,腳本結(jié)束。第二個(gè)例子要求用戶選擇一種飲料,并把用戶的選擇提交到服務(wù)器:域(field)用于輸入。用戶在處理窗體中下一個(gè)元素之前,必須為一個(gè)域提供相應(yīng)的信息。以上腳本的一個(gè)交互例子如下:C(computer):Would you like coffee, tea , milk, or nothing?H(human) :Ora

30、nge juice。C:I did not understand what you said.C:Would you like coffee, tea , milk, or nothing?H:TeaC:(continues in document drink2.jsp)通過這兩個(gè)例子可以看到,VoiceXML使用非常簡(jiǎn)單。哪怕只是看幾個(gè)例子,就可以掌握一些基本的使用方法;而且它的特點(diǎn)正好符合用戶通過語音交互的業(yè)務(wù)特性,對(duì)聲訊業(yè)務(wù)支持近乎完美。VoiceXML 2.0中共預(yù)定義了43個(gè)元素,按照功能可以分為文檔對(duì)話有關(guān)、資源功能類、事件處理類。文檔對(duì)話相關(guān)的元素主要實(shí)現(xiàn)信息表達(dá)、數(shù)據(jù)采集、變量

31、賦值、條件控制、函數(shù)調(diào)用等功能;時(shí)間處理類元素主要實(shí)現(xiàn)產(chǎn)生、捕獲時(shí)間的功能,可進(jìn)行錯(cuò)誤處理、超時(shí)處理、幫助處理等;資源功能類元素主要實(shí)現(xiàn)錄、放音,TTS,ASR等與語音資源控制相關(guān)的功能,是對(duì)語音資源能提供功能的描述。2.3本章小結(jié)本章首先闡述了可視化建模語言的總體框架,論述了可視化建模語言的描述方法。其次,介紹了VoiceXML技術(shù)的概念和基本體系結(jié)構(gòu),隨后描述了在IVR系統(tǒng)中VoiceXML技術(shù)的簡(jiǎn)單應(yīng)用。本章的內(nèi)容將為基于VoiceXML的IVR系統(tǒng)圖形化開發(fā)環(huán)境與執(zhí)行引擎設(shè)計(jì)和實(shí)現(xiàn)提供理論基礎(chǔ)。第三章交互式語音應(yīng)答(IVR)系統(tǒng)是電話銀行呼叫中心系統(tǒng)的最前端,它的質(zhì)量直接影響整個(gè)系統(tǒng)的

32、穩(wěn)定性和可擴(kuò)展性。本文設(shè)計(jì)的IVR系統(tǒng)主要分為兩個(gè)模塊:可視化過程定義工具(用戶交互接口)、流程執(zhí)行引擎。由于過程定義工具主要是面向用戶,它的設(shè)計(jì)規(guī)范首先要符合流程的定義規(guī)則,反應(yīng)到本文中即流程工具涉及到的節(jié)點(diǎn)類型均符合IVR的操作動(dòng)作和相關(guān)的業(yè)務(wù)動(dòng)作,同時(shí)還要生成符合流程執(zhí)行引擎能處理的文件格式。在流程執(zhí)行引擎方面,符合VoiceXML的設(shè)計(jì)框架,將Web應(yīng)用和語音應(yīng)用相結(jié)合。3.1 IVR系統(tǒng)結(jié)構(gòu)的總體分析與設(shè)計(jì)IVR系統(tǒng)流程工具是通過使用圖形化的編輯界面,將工作流程以圖形的方式展現(xiàn)給用戶,使用者也可以通過次編輯器根據(jù)具體的業(yè)務(wù)需求將特定的IVR流程反應(yīng)在圖形當(dāng)中,因此,對(duì)于使用者來說,根

33、本不需要知道底層的工作模式就可以很輕松的完整定制工作流程的制作。在這部分中,主要通過使用自定義的節(jié)點(diǎn),以及在節(jié)點(diǎn)的屬性窗體中進(jìn)行相應(yīng)屬性的設(shè)置來完成工作流程的制作。隨著IVR技術(shù)的發(fā)展,與企業(yè)級(jí)后臺(tái)數(shù)據(jù)系統(tǒng)聯(lián)系越來越緊密。傳統(tǒng)的IVR系統(tǒng)已經(jīng)不能適應(yīng)Web技術(shù)的發(fā)展了,本文設(shè)計(jì)的IVR系統(tǒng),將用戶通過電話操作的過程類比成用戶登陸網(wǎng)頁的過程,整個(gè)業(yè)務(wù)流程相當(dāng)于用戶所登陸的網(wǎng)站,構(gòu)成網(wǎng)站的每一個(gè)網(wǎng)頁可以看成是業(yè)務(wù)流程中的每一個(gè)節(jié)點(diǎn)。業(yè)務(wù)流程交給Web Service來驅(qū)動(dòng),只要增加對(duì)語音操作的解釋就可以完成整個(gè)語音系統(tǒng)的驅(qū)動(dòng)。而定義的語音操作,本文是通過使用標(biāo)準(zhǔn)的VoiceXML語言來定義,所以流

34、程定義工具所交給執(zhí)勤引擎驅(qū)動(dòng)的中間文件就是標(biāo)準(zhǔn)的Web頁面與VoiceXML標(biāo)簽的集合。而IVR系統(tǒng)執(zhí)行引擎是根據(jù)IVR系統(tǒng)的特點(diǎn),基于VoiceXML技術(shù)的設(shè)計(jì)所實(shí)現(xiàn)的流程解釋器,主要針對(duì)解釋執(zhí)行通過IVR系統(tǒng)流程定義工具所設(shè)計(jì)的中間文件,并控制硬件交換機(jī)及板卡按照工作流程的內(nèi)容完成相應(yīng)的功能。圖3.1給出了IVR系統(tǒng)詳細(xì)的總體結(jié)構(gòu)圖。IVR系統(tǒng)總共分為兩大部分:軟件平臺(tái)和硬件平臺(tái)。其中硬件平臺(tái)主要是硬件廠商提供,本文所設(shè)計(jì)的系統(tǒng)主要是軟件平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)。從圖中可以看出,整個(gè)系統(tǒng)分為三個(gè)部分:IVR系統(tǒng)可視化流程定義工具、含有VoiceXML標(biāo)簽的Web頁面和執(zhí)行引擎。圖3.1 IVR系統(tǒng)

35、整體結(jié)構(gòu)圖3.2可視化過程化定義工具的分析可視化建模語言的模型必須具備足夠豐富的描述能力來表達(dá)所需的流程的實(shí)體及相互關(guān)系,它必須易于實(shí)現(xiàn)且有著良好的用戶的交互性。一種模型描述方式是使用類過程語言的邏輯和實(shí)體描述語言,將IVR工作流程寫為一段語言程序,活動(dòng)、數(shù)據(jù)和邏輯關(guān)系等在內(nèi)部加以界定;另外一種方式是將活動(dòng)或邏輯從過程邏輯中抽象出來,形成獨(dú)立的對(duì)象(邏輯關(guān)系可以作為活動(dòng)對(duì)象的內(nèi)部屬性,也可以作為獨(dú)立的對(duì)象)。傳統(tǒng)的實(shí)現(xiàn)IVR系統(tǒng)的方法20,經(jīng)歷了一個(gè)由復(fù)雜到簡(jiǎn)單的發(fā)展歷程。它已經(jīng)由基本代碼編寫發(fā)展到現(xiàn)在的高度抽象的計(jì)算機(jī)模型的實(shí)現(xiàn)方法。在這個(gè)過程中主要出現(xiàn)了以下幾種方法:代碼生成:此種方法主要

36、是根據(jù)工作流程的要求,由技術(shù)人員手工編寫代碼實(shí)現(xiàn)。這增加了開發(fā)的難度和系統(tǒng)的復(fù)雜度,可擴(kuò)展性較差,不利于系統(tǒng)的復(fù)用,從圖2.1所示的可視化建模工具總體框架可以看出,這種方法將過程建模和業(yè)務(wù)流程以及相關(guān)數(shù)據(jù)和工作流程處理集成在一起,通過代碼生成的方式實(shí)現(xiàn)工作流過程。表格方式:此種方法在過程建模部分由表格方式實(shí)現(xiàn),通過手動(dòng)添加業(yè)務(wù)流程執(zhí)行過程狀態(tài);同時(shí)將工作流過程中的每一個(gè)狀態(tài)封裝成函數(shù)或類。在工作流引擎執(zhí)行過程中,通過讀取表格內(nèi)容,調(diào)用相應(yīng)的函數(shù)實(shí)現(xiàn)功能。這種方法雖然在一定程度上降低了業(yè)務(wù)流程引擎部分的復(fù)雜,但增加了過程建模的復(fù)雜度,導(dǎo)致用戶接口人性化程度降低,應(yīng)用程序交互的接口定義的靈活度受到

37、的限制。圖和鏈表方式:這種方法在過程建模部分相對(duì)于表格方式做了改進(jìn),取消了表格,代之以圖和鏈表,使用戶接口部分體現(xiàn)了圖形化和人性化的特點(diǎn)。但由于圖的結(jié)構(gòu)復(fù)雜,用戶在使用容易出錯(cuò),同時(shí)業(yè)務(wù)流程引擎在執(zhí)行過程中圖的結(jié)構(gòu)增加了流程解釋執(zhí)行的復(fù)雜度。樹型方式:樹型方式是目前常用的方法,采用的是父-子關(guān)系模式。這一模式的指樹中的任何節(jié)點(diǎn)(狀態(tài))的下一個(gè)狀態(tài)節(jié)點(diǎn)都以此節(jié)點(diǎn)的子節(jié)點(diǎn)方式出現(xiàn)。雖然這種方法使用戶界面更加清晰,但樹的深度加大會(huì)給實(shí)現(xiàn)業(yè)務(wù)流程引擎和過程建模工具增加了難度。根據(jù)上述對(duì)傳統(tǒng)的IVR系統(tǒng)的分析和實(shí)現(xiàn)方法的比較,本文提出VoiceXML應(yīng)用于可視化建模工具中,在用戶接口部分沿用的樹型方式,

38、但根據(jù)VoiceXML的規(guī)范性和靈活性,相鄰節(jié)點(diǎn)之間的關(guān)系由原來的父子關(guān)系變?yōu)樾值荜P(guān)系。這樣無論過程建模還是在工作流程引擎的實(shí)現(xiàn)難度都被極大降低。過程定義模型向用戶提供的用于抽象描述業(yè)務(wù)過程的設(shè)計(jì)元素會(huì)通過工作流過程定義工具表達(dá)出來,用戶使用過程定義工具提供的輸入界面,通過將各中設(shè)計(jì)控件加以組合來完成對(duì)實(shí)際業(yè)務(wù)流程的抽象描述21。在設(shè)計(jì)過程定義工具時(shí),本文采用了圖形化的用戶界面,從而簡(jiǎn)化了建模操作的復(fù)雜行,提高了易用性,有效降低了使用難度。3.2.1 過程定義建模語言的描述根據(jù)可視化建模語言描述的方法,語言和編輯器配置項(xiàng)體現(xiàn)了系統(tǒng)的可配置性。它包括三個(gè)部分:圖元庫、編輯器定義文件、界面描述文件

39、。圖元庫是對(duì)可視化建模語言語素的定義。編輯器定義文件中包含了可視化語言語法(抽象語法和具體語法)、圖元操作定義、靜態(tài)語義元類與圖元的靜態(tài)關(guān)系,采用RGVL的方式來描述。界面描述文件定義可視化語言編輯器的主界面,包括對(duì)菜單、各種工具條、各種視圖、狀態(tài)條。3.2.2 基于可視化技術(shù)的過程定義工具的功能IVR系統(tǒng)的過程定義工具是一個(gè)可視化的軟件工具,它主要用于定義工作流模型中各個(gè)活動(dòng)之間的關(guān)系22。工作流程過程定義向用戶提供對(duì)實(shí)際業(yè)務(wù)處理過程分析、建模的手段。其輸入輸出可以用圖3.2表達(dá):圖3.2 IVR系統(tǒng)流程開發(fā)工具的輸入和輸出其功能可以細(xì)分為: 1. 向用戶提供定義工作流的操作界面; 2. 根

40、據(jù)用戶的輸入自動(dòng)生成以文本形式表達(dá)的IVR系統(tǒng)流程抽象描述; 3. 將以文本形式表達(dá)的工作流抽象描述發(fā)送給格式化工具組件。 本文設(shè)計(jì)的IVR系統(tǒng)的流程定義工具遵循以上規(guī)則,它被流程定義者使用,其所有的動(dòng)作都是由流程設(shè)計(jì)人員發(fā)起的,通過對(duì)定義工具進(jìn)行了統(tǒng)一建模分析,其使用用例圖如圖3.3所示。圖3.3 IVR系統(tǒng)流程定義工具用例圖1. 新建流程:用戶通過選擇“新建工作流模型”菜單或單擊工具欄上相應(yīng)按鈕新建一個(gè)空的模型文件。 2. 繪制流程:用戶使用定義工具提供的各種建模組件繪制模型。主要包括:IVR系統(tǒng)流程中涉及到各個(gè)節(jié)點(diǎn)繪制、各個(gè)連接點(diǎn)的連線的繪制。 3. 編輯流程:用戶可以用直接操作節(jié)點(diǎn)元素

41、,包括選擇、刪除、平移等功能。 4. 設(shè)置節(jié)點(diǎn)屬性:用戶通過設(shè)置節(jié)點(diǎn)屬性對(duì)話框來設(shè)置節(jié)點(diǎn)的屬性。 5. 保存流程:用戶將所建流程以文件的形式保存起來。 6. 打開模型:用戶通過給出的文件列表打開流程文件。 3.2.3 IVR系統(tǒng)流程工具的用戶交互方式在IVR系統(tǒng)過程定義工具過程中,同用戶的交互方式的選擇是主要考慮的一個(gè)方面。而一般的工作流過程定義工具可以通過兩種方式同用戶進(jìn)行交互,一種是基于文本的方式,一種是基于圖形的方式?;谖谋镜姆绞揭子趯?shí)現(xiàn),在目前的辦公工作流系統(tǒng)中應(yīng)用比較廣泛。但對(duì)用戶來說,這種定義方法使用比較復(fù)雜,不直觀,難于創(chuàng)建復(fù)雜的流程。而圖形化的定義方式具有直觀、易于使用的特點(diǎn)

42、,能夠方便的定義復(fù)雜的流程。由于IVR系統(tǒng)菜單的調(diào)整、播放音頻文件的更換、業(yè)務(wù)處理過程的變化等原因,用戶的工作流程可能會(huì)經(jīng)常發(fā)生變化,直觀的圖形化定義界面可以使得流程的定義變成一種簡(jiǎn)單而高效的工作。用戶可以相當(dāng)方便的根據(jù)實(shí)際變化情況對(duì)流程作出修改,而無須修改程序的源代碼,從而大大提高工作效率和系統(tǒng)的應(yīng)變能力,將系統(tǒng)的控制權(quán)真正交給用戶,而不是掌握在開發(fā)者手中。因此,在設(shè)計(jì)中選擇采用圖形化的工作流方式來定義IVR系統(tǒng)的流程。3.2.4 IVR系統(tǒng)流程的節(jié)點(diǎn)抽象和定義在用戶界面采用了圖形化的過程方式來定義IVR系統(tǒng)的流程,那么流程定義工具就需要向用戶提供一組抽象描述流程的基本設(shè)計(jì)控件,用戶通過使用

43、這些基本控件來可視化的搭建IVR系統(tǒng)的流程。而基本設(shè)計(jì)控件的選擇就同整個(gè)系統(tǒng)所選擇的過程定義模型密切相關(guān),過程定義模型的一個(gè)重要的功能就是為建模用戶提供抽象描述實(shí)際業(yè)務(wù)處理過程所必須的設(shè)計(jì)元素。在設(shè)計(jì)本文所描述的IVR系統(tǒng)流程定義工具是,采用的是基于流程節(jié)點(diǎn)的過程定義模型,流程節(jié)點(diǎn)是整個(gè)IVR系統(tǒng)流程定義工具定義的唯一設(shè)計(jì)元素。因此,在用戶界面中,向用戶提供的是流程中所涉及到的各種流程節(jié)點(diǎn)控件,用戶通過在設(shè)計(jì)界面中添加以圖形表示的各種流程節(jié)點(diǎn)控件,填寫相應(yīng)的流程節(jié)點(diǎn)相關(guān)屬性信息,之后通過使用帶箭頭的連線來連接不同的流程節(jié)點(diǎn)來可視化的定義流轉(zhuǎn)順序。根據(jù)IVR系統(tǒng)的流程和本文系統(tǒng)應(yīng)用的具體項(xiàng)目需求

44、,定義出在大多數(shù)IVR系統(tǒng)常用的流程9種節(jié)點(diǎn)類型。· 開始節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程的開始,以及設(shè)置整個(gè)流程的全局變量; · 結(jié)束節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程的結(jié)束,即對(duì)應(yīng)的掛機(jī)操作; · 放音節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中所涉及到的放音或者放音取鍵操作,其屬性有放音的文件名稱; · 人工輸入節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中需要人工輸入按鍵的操作,其屬性有最少輸入鍵位、最大輸入鍵位、結(jié)束按鍵、重試放音文件名、非法輸入放音文件名; · 菜單節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中需要播放菜單的操作,其屬性有菜單語音文件、播放次數(shù)、菜單出口(多個(gè)); · 轉(zhuǎn)接節(jié)點(diǎn):這

45、類節(jié)點(diǎn)定義了流程中需要轉(zhuǎn)接的操作,其屬性有轉(zhuǎn)接的目標(biāo)號(hào)碼; · 錄音節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中需要錄音的操作,其屬性有錄音文件存放的位置、錄音格式、錄音時(shí)常、錄音結(jié)束DTMF碼; · 自定義節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中涉及到的其它操作,例如查詢、插入數(shù)據(jù)庫等。 · 分支節(jié)點(diǎn):這類節(jié)點(diǎn)定義了流程中涉及到分支操作,例如根據(jù)系統(tǒng)變量值進(jìn)入不同的分支流程等。 · 表3.1給出了相關(guān)圖元的具體樣式。 表3.1 流程定義工具中的相關(guān)圖元3.3 可視化過程定義工具的設(shè)計(jì)作為流程工具,它的設(shè)計(jì)原則就是,使用最簡(jiǎn)單易懂的方式,適合各層次的開發(fā)人員最快速的開發(fā)業(yè)務(wù)流程。本工具

46、采用的是圖形開發(fā)的方法,但是最終配置的視圖數(shù)據(jù)是要轉(zhuǎn)化IVR系統(tǒng)執(zhí)行引擎可解析的模型數(shù)據(jù)(含有VoiceXML的Web頁面)。在設(shè)計(jì)上,首先是定義主框架類,這些類的作用是提供一個(gè)通用的可視化流程定義類包,為后面的設(shè)計(jì)帶來便利,以便對(duì)界面組件的實(shí)現(xiàn)提供便利。3.3.1主框架類包的定義 主框架類包CDiagramEditor是整個(gè)流程定義工具的骨架。它是由一個(gè)從CWnd類(MFC基礎(chǔ)類)繼承而來editor類、一個(gè)data類、一個(gè)畫圖對(duì)象類和一些幫助類所組成的。在設(shè)計(jì)的時(shí)候,考慮到程序的可復(fù)用性和可擴(kuò)展性,將editor和data類分開,使其既可以在dialog應(yīng)用程序中使用,也可以在doc/vi

47、ew應(yīng)用程序中使用,如圖3.4所示。3.3.2 主框架類描述下面給出各個(gè)類的詳細(xì)描述:CDiagramEditor類CDiagramEditor類繼承于CWnd類,它是處理窗口詳細(xì)的相關(guān)操作,所封裝的是一個(gè)基礎(chǔ)的矢量編輯器,它所生成的是圖(diagrams)而不是圖片(graphics)。所以它支持小于和大于正常窗口的虛擬屏幕(virtual screen)、網(wǎng)格抓取(snap to grid)、拷貝/復(fù)制、“無限制”(所謂無限制,只是在設(shè)置撤銷棧的大小時(shí)取值較大,讓使用者感覺上是無限制,其實(shí)是有限的)的撤銷、放大等等,由于它使用了與之“隔離”的數(shù)據(jù)容器,所以它既可以被加入對(duì)話框(dialog

48、)和文檔/視圖(doc/view)程序里面去。通常,這個(gè)類僅僅在繪圖函數(shù)不足以滿足需要的時(shí)候來繼承使用的。CDiagramEntityContainer類CDiagramEntityContainer類包含了CDiagramEditor類里的數(shù)據(jù)。它管理了如拷貝、粘貼、和撤銷這類的操作集合。同樣為了能在文檔/視圖使用,它與CDiagramEditor類分成兩個(gè)類來實(shí)現(xiàn)。這也是一些函數(shù)功能在這兩個(gè)類里面同時(shí)存在的原因。CDiagramEntityContainer類包含了一個(gè)CObArray對(duì)象,它是由一組繼承CDiagramEntity類的實(shí)例,用來為編輯器存放實(shí)時(shí)的數(shù)據(jù)。同時(shí),也包含了一個(gè)C

49、DiagramClipboardhandler指針(作為一個(gè)或者多個(gè)編輯器間的剪切板)。它還包含了一組CUndoItem用來實(shí)現(xiàn)撤銷棧。通常,CDiagramEntityContainer類是不用繼承的,一個(gè)CDiagramEditor需要一個(gè)CDiagramEntityContainer的實(shí)例來保存住對(duì)象的數(shù)據(jù)。在文檔/視圖應(yīng)用程序中它作為外部實(shí)例,而在對(duì)話框應(yīng)用程序中是作為內(nèi)部的實(shí)例來管理所有的數(shù)據(jù)。對(duì)于前者,需要在document類中申明CDiagramEntityContainer成員,并且需要調(diào)用 CDiagramEditor:SetCDiagramEntityContainer來創(chuàng)

50、建;對(duì)于后者,則任何特別的操作都不需要去操作,因?yàn)樵贑DiagramEditor:Create被調(diào)用的時(shí)候CDiagramEntityContainer將會(huì)被自動(dòng)創(chuàng)建。CDiagramClipboardHandler類CDiagramClipboardHandler類為一個(gè)或者多個(gè)編輯器管理剪切板。它保持著所有CDiagramEntity類實(shí)例的拷貝。CUndoItem類CUndoItem類表示CDiagramEntityContainer類中撤銷棧的單點(diǎn)入口。CDiagramEntity類CDiagramEntity類所有繪圖對(duì)象的基類,并由CDiagramEditor類控制和管理。它是繼承

51、CObject類,同時(shí)允許其實(shí)例的集合以CObArrays方式存儲(chǔ)。通常,在實(shí)現(xiàn)所有繪圖類的時(shí)候,只要繼承CDiagramEntity類,覆蓋(overridden)Clone和Draw方法,返回該類指針的拷貝即可。為了滿足IVR系統(tǒng)執(zhí)行引擎所需要的文件,CDiagramEntity類支持基本的存儲(chǔ)功能,可以存儲(chǔ)成.txt文件。在生成符合具體業(yè)務(wù)流程所產(chǎn)生的文件格式的時(shí)候可以通過覆蓋FromString和GetString來實(shí)現(xiàn)。針對(duì)第三章對(duì)流程節(jié)點(diǎn)抽象,9種流程節(jié)點(diǎn)的屬性各不相同,因此,每一個(gè)流程節(jié)點(diǎn)類都應(yīng)該擁有自己的屬性對(duì)話框,這些對(duì)話框類繼承了CDiagramPropertyDlg類。實(shí)

52、現(xiàn)的時(shí)候只要這些流程節(jié)點(diǎn)類擁有一個(gè)繼承CDiagramPropertyDlg類的實(shí)例作為成員變量就可以完成。CDiagramLine類CDiagramLine類主要是完成IVR系統(tǒng)流程中各個(gè)節(jié)點(diǎn)的連接。在連接線的設(shè)計(jì)過程中,首先,使用者不需要強(qiáng)制的設(shè)置線的大小,應(yīng)該由其成員函數(shù)來設(shè)置(SetRect)完成;其次,相應(yīng)點(diǎn)擊事件的區(qū)域應(yīng)該不是矩形,它是一條線;這些都需要在這個(gè)類中實(shí)現(xiàn),這樣才能有很好的繼承性。CDiagramMenu類CDiagramMenu類是一個(gè)很簡(jiǎn)單的類,它的作用是可以方便的定義出彈出(popup)菜單,所完成的功能是在右鍵單擊各個(gè)流程節(jié)點(diǎn)的時(shí)候彈出菜單。CDiagramPr

53、opertyDlg類CDiagramPropertyDlg類所展現(xiàn)的是CDiagramEntity對(duì)象的屬性對(duì)話框。在IVR系統(tǒng)流程中反應(yīng)出來的是對(duì)應(yīng)各個(gè)流程節(jié)點(diǎn)的屬性設(shè)置對(duì)話框。CTokenizer類CTokenizer類的作用也很簡(jiǎn)單,它是用來對(duì)CString和CStringArray的做string token的。CGroupFactory類CGroupFactory類為CDiagramEntity組產(chǎn)生唯一的標(biāo)識(shí)符。它采用了 MFC中定義“組機(jī)制”23技術(shù),即可以在屏幕上類似于移動(dòng)單個(gè)實(shí)體那樣移動(dòng)整個(gè)組的實(shí)體集合。3.3.3 Link類的設(shè)計(jì)在業(yè)務(wù)流程編輯過程中,流程控制非常重要。流程

54、的走向表現(xiàn)為節(jié)點(diǎn)圖元之間的關(guān)聯(lián)關(guān)系。根據(jù)公式2-3,它的抽象語法規(guī)則可以描述為式(3-1)表示節(jié)點(diǎn)圖元可以連接多個(gè)關(guān)聯(lián)關(guān)系,每個(gè)關(guān)聯(lián)關(guān)系必須連接到一個(gè)節(jié)點(diǎn)圖元。每一個(gè)節(jié)點(diǎn)保存自己的唯一的節(jié)點(diǎn)名稱,由CArrowLine類來保存其關(guān)聯(lián)關(guān)系,因?yàn)閮蓚€(gè)節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系只有二向性,所以只需要保存一個(gè) 節(jié)點(diǎn)名稱和一個(gè) 節(jié)點(diǎn)名稱。類圖如圖3.5所示,CLinkFactory類的作用是一個(gè)獲取當(dāng)前節(jié)點(diǎn)名稱,CNodeMenu類是菜單(Menu) 節(jié)點(diǎn)類,繼承CDiagramEntity類。圖中只是以CNodeMenu類未代表來表示所有的節(jié)點(diǎn)類。3.4 目標(biāo)文件的描述與分析3.4.1 文件基本框架描述本文設(shè)

55、計(jì)的IVR系統(tǒng)的流程文件是含有VoiceXML標(biāo)簽的Web文件,因此,首先,文件的基本框架必須符合HTML文件框架。而對(duì)語音節(jié)點(diǎn)的具體描述是通過某個(gè)VoiceXML標(biāo)簽或者某些具體標(biāo)簽的集合,其語法符合VoiceXML語音規(guī)范。與此同時(shí),有編程經(jīng)驗(yàn)的用戶可以添加自定義代碼來定制一些具體Web數(shù)據(jù)操作,譬如,jsp或者asp的代碼。如圖3.6所示。圖3.6 目標(biāo)文件基本框架圖例如,放音節(jié)點(diǎn)的完整文件描述如下: 3.4.2 目標(biāo)文件的生成目標(biāo)文件的基本框架已經(jīng)確定,所有的流程節(jié)點(diǎn)文件都應(yīng)該滿足這個(gè)基本框架。不同點(diǎn)就在于語音節(jié)點(diǎn)的描述有所不同,而語音節(jié)點(diǎn)的描述就是標(biāo)準(zhǔn)的VoiceXML語言??梢钥吹?,事實(shí)上 VoiceXML 文件和普通的 html 文件并沒有實(shí)質(zhì)的不同,可以完全使用相同的思維方式去理解,唯一不同的是針對(duì)特殊的語音 VoiceXML 應(yīng)用了相應(yīng)特別的標(biāo)簽,具體可以參考 w3 上有關(guān) VoiceXML 的規(guī)范(詳見參考資源)。所以,在VoiceXML生成上完全可以調(diào)用標(biāo)準(zhǔn)的XML文件生成類來生成。目標(biāo)文件生成的類圖如圖3.7所示。圖3.7 目標(biāo)文件生成類圖MainFramwork文件的主框架,主要是標(biāo)準(zhǔn)html標(biāo)簽的生成;Cre

溫馨提示

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

評(píng)論

0/150

提交評(píng)論