摘要:汽車音響語(yǔ)音合成器設(shè)計(jì)框架是一個(gè)系統(tǒng)化工程。在這個(gè)實(shí)現(xiàn)中,我們要將我們對(duì)于各種協(xié)議和設(shè)計(jì)的理解逐漸的模型化、層次化、清晰化。而對(duì)于模型、框架設(shè)計(jì)的討論也能夠加深我們對(duì)于協(xié)議中諸多細(xì)節(jié)的理解。首先,從協(xié)議的抽象概念設(shè)計(jì)來(lái)入手。通過(guò)解釋了協(xié)議間的關(guān)系,現(xiàn)在我們要在設(shè)計(jì)中來(lái)體現(xiàn)出這種關(guān)系,還要來(lái)解釋說(shuō)明他們的應(yīng)用關(guān)系模型。
關(guān)鍵詞:汽車音響;語(yǔ)言;合成器
中圖分類號(hào):TN912 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 15-0000-02
1 引言
應(yīng)用程序通過(guò)ECMA-323和汽車音響語(yǔ)音服務(wù)器溝通,而服務(wù)器內(nèi)部的構(gòu)架和設(shè)計(jì)都是基于ECMA-269和ECMA-TR88來(lái)實(shí)現(xiàn)的。能夠使得我們更加清晰的理解ECMA各個(gè)協(xié)議間的關(guān)系。接下來(lái),分析整個(gè)項(xiàng)目的框架設(shè)計(jì)模型。用戶的服務(wù)請(qǐng)求分為了兩個(gè)階段,一是用戶認(rèn)證和服務(wù)請(qǐng)求階段,一是汽車音響語(yǔ)音交互階段。在第一階段,服務(wù)器會(huì)完成兩個(gè)方面的工作,一個(gè)是對(duì)于用戶的信息進(jìn)行認(rèn)證,檢查用戶的合法性和用戶級(jí)別;一個(gè)是為合法用戶的請(qǐng)求分配一個(gè)汽車音響語(yǔ)音服務(wù)器,來(lái)處理用戶的汽車音響語(yǔ)音交互。
2 嵌入式汽車音響語(yǔ)言模型分析
用戶向嵌入式服務(wù)器提出請(qǐng)求,請(qǐng)求來(lái)進(jìn)行汽車音響語(yǔ)音的交互。它會(huì)將自己的用戶信息加密后發(fā)給服務(wù)器,服務(wù)器會(huì)將解密后的用戶信息和保存在用戶數(shù)據(jù)庫(kù)中的信息進(jìn)行認(rèn)證比對(duì)。
用戶收到返回的信息以后,從中得到服務(wù)器的信息,并向這臺(tái)服務(wù)器發(fā)出汽車音響語(yǔ)音服務(wù)請(qǐng)求,汽車音響語(yǔ)音服務(wù)器比對(duì)從嵌入式服務(wù)器發(fā)來(lái)的用戶信息以后,就可以為用戶提供相應(yīng)的服務(wù)了。它會(huì)解析發(fā)來(lái)的服務(wù)請(qǐng)求,為用戶提供對(duì)應(yīng)的服務(wù)。服務(wù)結(jié)束以后,汽車音響語(yǔ)音服務(wù)器會(huì)將用戶的服務(wù)記錄發(fā)回給嵌入式服務(wù)器,并記錄在相關(guān)的用戶數(shù)據(jù)庫(kù)中。
利用這樣的設(shè)計(jì),主要解決了一下幾個(gè)方面的內(nèi)容:
1.1 提供了用戶認(rèn)證的功能
提供用戶認(rèn)證的功能后,主要的方面式在安全性上得到了加強(qiáng),保護(hù)了服務(wù)器的穩(wěn)定性和安全性,另外就是就可以保存用戶的相關(guān)信息,劃分用戶的服務(wù)類型,針對(duì)不同的用戶的類型進(jìn)行與之對(duì)應(yīng)的服務(wù)種類,來(lái)提高服務(wù)的種類。
同時(shí),通過(guò)對(duì)于用戶服務(wù)的記錄分析,也能夠看出服務(wù)中的一些問(wèn)題和分析服務(wù)的趨勢(shì),以供服務(wù)商來(lái)分析考慮。提高了項(xiàng)目的可用性和服務(wù)的可發(fā)展性。
1.2 嵌入式的處理機(jī)制
通過(guò)對(duì)于用戶的類型和地域信息的分類,在不同的區(qū)域和負(fù)載等信息的綜合權(quán)衡中選擇分類來(lái)處理用戶的請(qǐng)求,這樣加快了服務(wù)的速度,提高了服務(wù)的質(zhì)量。
1.3 解決了汽車音響語(yǔ)音服務(wù)在小型設(shè)備上的局限性
通過(guò)采用Client/Server的構(gòu)架方式,將汽車音響語(yǔ)音識(shí)別與合成運(yùn)算和處理的工作轉(zhuǎn)到了服務(wù)器端。這樣,就將能夠?qū)⑵囈繇懻Z(yǔ)音技術(shù)應(yīng)用到更多的低資源設(shè)備中。
通過(guò)這樣的設(shè)計(jì),大大加強(qiáng)了汽車音響語(yǔ)音服務(wù)的可應(yīng)用性,也擴(kuò)展了汽車音響語(yǔ)音服務(wù)在多個(gè)平臺(tái)間的應(yīng)用。下面的幾個(gè)小節(jié)中,我們將分別的展開分析每個(gè)層次的設(shè)計(jì)細(xì)節(jié)和結(jié)構(gòu),讓我們更加的清楚的理解整個(gè)的框架結(jié)構(gòu)。
3 嵌入式架構(gòu)模型
承接上一節(jié)的分析,這一節(jié)中我將著重從嵌入式服務(wù)器的構(gòu)架模型和工作機(jī)理來(lái)展開詳細(xì)的論述。
3.1 嵌入式語(yǔ)言服務(wù)器架構(gòu)設(shè)計(jì)
嵌入式服務(wù)器的總體結(jié)構(gòu)由交互對(duì)象可以劃分為兩個(gè)部分,一個(gè)是與用戶的交互,一個(gè)是與汽車音響語(yǔ)音服務(wù)器的交互。與用戶交互主要是來(lái)處理用戶的服務(wù)請(qǐng)求,而與汽車音響語(yǔ)音的服務(wù)器的交互主要是更新已完成汽車音響語(yǔ)音交互服務(wù)的用戶的信息?;谶@種比較特殊的需求,設(shè)計(jì)中決定采用Web Service技術(shù)作為嵌入式服務(wù)器設(shè)計(jì)的基礎(chǔ),以此來(lái)提供我們和開發(fā)用戶、汽車音響語(yǔ)音服務(wù)器之間的交互。下面我們從這兩個(gè)部分入手來(lái)分別詳細(xì)介紹他們的工作機(jī)理。
在介紹嵌入式服務(wù)器的兩個(gè)部件之前,我們先簡(jiǎn)要的說(shuō)明一下Web Service的工作原理。Web Service為用戶的提供了標(biāo)準(zhǔn)的調(diào)用接口,定義了標(biāo)準(zhǔn)的傳入?yún)?shù)類型和返回參數(shù)類型,這些類型信息都是由Web Service定義在嵌入式服務(wù)器上,并提供標(biāo)準(zhǔn)的Web Service服務(wù)地址。想要通過(guò)該接口來(lái)發(fā)送服務(wù)的開發(fā)人員只要在工程中加入Web Service的服務(wù)地址后,這些標(biāo)準(zhǔn)的類型信息都會(huì)下載到本地,并加入到本地工程中。這樣開發(fā)人員也就能夠操作和使用這些類型以及在這些類型上定義的各種方法。
3.2 語(yǔ)言交互部件設(shè)計(jì)
當(dāng)用戶在自己的工程用添加了Web Service后,就可以像本地使用對(duì)象類一樣,對(duì)于相關(guān)的接口進(jìn)行調(diào)用操作。調(diào)用采用同步的方式,也就是說(shuō)用戶必須等到Web Service返回一個(gè)結(jié)構(gòu)以后才能夠繼續(xù)執(zhí)行。當(dāng)調(diào)用相關(guān)接口的時(shí)候,用戶的基本的信息也就自然的通過(guò)網(wǎng)絡(luò)發(fā)送到了嵌入式服務(wù)器端,嵌入式服務(wù)器經(jīng)過(guò)對(duì)于這些的數(shù)據(jù)的處理以后會(huì)返回給用戶對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)包含在返回?cái)?shù)據(jù)類型的實(shí)例中,以此來(lái)告知用戶此次服務(wù)請(qǐng)求的結(jié)果[1]。
3.3 語(yǔ)言數(shù)據(jù)庫(kù)接口設(shè)計(jì)
當(dāng)數(shù)據(jù)通過(guò)接口傳入Web Service后,接口函數(shù)會(huì)解析用戶的信息,并將這些信息發(fā)送給用戶數(shù)據(jù)庫(kù)驗(yàn)證,驗(yàn)證后的結(jié)果會(huì)很快的返回到Web Service。通過(guò)驗(yàn)證后,Web Service會(huì)更根據(jù)用戶的地域和級(jí)別信息發(fā)送到汽車音響語(yǔ)音服務(wù)器數(shù)據(jù)庫(kù)以獲取相應(yīng)的服務(wù)器的信息。成功完成后,Web Service會(huì)向已經(jīng)獲取的服務(wù)器發(fā)送用戶的信息,以通知服務(wù)器此用戶為此次的合法授權(quán)用戶。當(dāng)服務(wù)器相應(yīng)以后,Web Service才會(huì)認(rèn)為一切的數(shù)據(jù)均已經(jīng)準(zhǔn)備完成,才把服務(wù)器的信息作為返回類型中的數(shù)據(jù)信息返回給用戶。用戶通過(guò)解析此數(shù)據(jù)就能夠得到服務(wù)器的信息[2]。
模塊通過(guò)控制合成內(nèi)核其它各個(gè)算法模塊來(lái)共同協(xié)作完成文本到汽車音響語(yǔ)音的轉(zhuǎn)換工作,并通過(guò)某種統(tǒng)一的接口向外層提供服務(wù)。
3.4 合成器設(shè)計(jì)
“合成邏輯控制”也是系統(tǒng)跨平臺(tái)的一些重要組成部分。它將各個(gè)算法模塊與操作系統(tǒng)的調(diào)用完全隔離開來(lái),不僅完成了內(nèi)部核心數(shù)據(jù)結(jié)構(gòu)在多線程下同步,使得系統(tǒng)能夠同時(shí)并發(fā)處理多個(gè)請(qǐng)求;而且為各個(gè)算法模塊提供了對(duì)于各種資源文件的訪問(wèn)的支持[3]。
從流程來(lái)看,汽車音響語(yǔ)音合成系統(tǒng)在完成文本到汽車音響語(yǔ)音數(shù)據(jù)的轉(zhuǎn)化過(guò)程中可以簡(jiǎn)單分解為兩個(gè)步驟的處理。文本先經(jīng)過(guò)前端的語(yǔ)法分析和韻律分析,主要包括一些文本的預(yù)處理、語(yǔ)言學(xué)處理和汽車音響語(yǔ)音學(xué)處理,得到格式規(guī)范,攜帶語(yǔ)法層次的信息,傳送到后端。后端在前端分析的結(jié)果基礎(chǔ)上,使用特定的合成算法來(lái)生成最終的汽車音響語(yǔ)音數(shù)據(jù)??蓳?jù)此將各個(gè)算法模塊大致劃分成兩大類:前端模塊和后端模塊。
以上是用戶交互部件的情況,下面我們將介紹汽車音響語(yǔ)音服務(wù)器交互部件。汽車音響語(yǔ)音服務(wù)器交互部件主要是在用戶與汽車音響語(yǔ)音服務(wù)器結(jié)束交互的時(shí)候,汽車音響語(yǔ)音服務(wù)器會(huì)向Web Service發(fā)出請(qǐng)求,傳入用戶消費(fèi)記錄的信息。這部分對(duì)于用戶來(lái)說(shuō)是透明的,用戶并不需要知道它的存在,可它去在記錄這用戶的每次消費(fèi)的記錄。關(guān)鍵數(shù)據(jù)代碼如下:
class VoiceInteractiveDevice:CSTADevice
{
#region Voice Service
public void Start()
{}
//...other voice services
#endregion
#region Call Control Service
private void MakeCall()
{ }
//...other call control services
#endregion
#region Voice Events
public VoiceEventHandler Recognized;
//...other voice events
#endregion
#region Call Control Events
private CallControlEventHandler Established;
//...other call control events
#endregion
}
4 總結(jié)
在汽車音響語(yǔ)言合成服務(wù)系統(tǒng)內(nèi)部,會(huì)為此次主叫設(shè)備所在Call對(duì)象創(chuàng)建一個(gè)交互設(shè)備實(shí)例,Listener的實(shí)例,因?yàn)榉?wù)的交互時(shí)通過(guò)具體的Call對(duì)象來(lái)完成的,而在Call建立的時(shí)候,實(shí)際上分配的是一個(gè)虛擬的設(shè)備,也就是說(shuō)沒(méi)有具體的類別和具體的汽車音響語(yǔ)音交互設(shè)備實(shí)例被真正的創(chuàng)建,這個(gè)時(shí)候汽車音響語(yǔ)音服務(wù)才會(huì)真正的創(chuàng)建所需要的交互設(shè)備對(duì)象,并把Call對(duì)象中虛擬的設(shè)備對(duì)象更新為真正的交互設(shè)備對(duì)象。創(chuàng)建后的交互設(shè)備對(duì)象會(huì)被保存在對(duì)應(yīng)的設(shè)備實(shí)例池中,用來(lái)保存交互的狀態(tài)和內(nèi)容。接下來(lái),這個(gè)實(shí)例會(huì)通過(guò)和后臺(tái)汽車音響語(yǔ)音識(shí)別引擎的交互來(lái)滿足Client的汽車音響語(yǔ)音服務(wù)請(qǐng)求。
參考文獻(xiàn):
[1]李禹材,左友東,鄭秀清,王玲.基于Speech SDK的語(yǔ)音控制應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004,6
[2]陳素燕,劉友生.基于SAPI技術(shù)的雙語(yǔ)混讀在CAI開發(fā)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,4
[3]宋陽(yáng),劉勝蘭,張燕宏.利用SAPI5完成中文語(yǔ)音音素的分解[J].微計(jì)算機(jī)信息,2005,3
[作者簡(jiǎn)介]孫敏捷(1990-),男,籍貫:江蘇丹陽(yáng),本科。