摘 要:針對(duì)現(xiàn)有煤礦監(jiān)控系統(tǒng)類軟件不支持語(yǔ)音指引、互動(dòng)回饋等功能,設(shè)計(jì)了一款支持Form和Web為前端的語(yǔ)音合成組件,該軟件以組件化形式運(yùn)行,能夠很好地解決以上的問(wèn)題,具有很高的實(shí)用性和可重用性。
關(guān)鍵詞:語(yǔ)音合成;TTS;音頻流播放
中圖分類號(hào):TP391.42
1 引言
1.1 簡(jiǎn)介
語(yǔ)音合成又名文句轉(zhuǎn)語(yǔ)音(Text-To-Speech,TTS),它是指將輸入的文字或儲(chǔ)存于電腦中的文件模擬人聲發(fā)出語(yǔ)音的技術(shù)。語(yǔ)音合成較語(yǔ)音辨識(shí)的發(fā)展早了許多,但應(yīng)用層面大多仍在閱讀電腦屏幕上的文章,語(yǔ)音指引,互動(dòng)回饋或輔助說(shuō)明。
1.2 相關(guān)技術(shù)介紹
語(yǔ)音合成技術(shù)示意圖如圖1所示:
圖1
語(yǔ)音合成主要是將一段文字進(jìn)行分析,通過(guò)對(duì)文字的文句分析、產(chǎn)生韻律、合成單元等一系列操作后,將該段文字轉(zhuǎn)換為以音素組合的形式,再對(duì)其進(jìn)行重組后生成波形,最后形成我們能聽(tīng)到的聲音。
目前語(yǔ)音合成產(chǎn)品很多,但所有的語(yǔ)音合成的技術(shù)都差不多,總的來(lái)說(shuō),語(yǔ)音引擎可以劃分為4個(gè)模組:
(1)文句分析。分析文句的語(yǔ)法與語(yǔ)義后專程語(yǔ)言特征參數(shù),讓電腦知道本文中哪些是詞,哪些是句子,發(fā)什么音,怎么發(fā)音,發(fā)音時(shí)到哪應(yīng)該停頓,停頓多長(zhǎng)等等。
(2)韻律產(chǎn)生器。將語(yǔ)言特征參數(shù)送入韻律產(chǎn)生器來(lái)產(chǎn)生文句的每個(gè)音節(jié)對(duì)應(yīng)韻律信息,包含基頻軌跡,音量,音長(zhǎng)等。
(3)合成單元產(chǎn)生器。根據(jù)語(yǔ)音資料庫(kù)中的單音節(jié)音素語(yǔ)音波形樣本輸出合成單元。這里就是我們通常理解的語(yǔ)音庫(kù),一個(gè)引擎往往可以提供多個(gè)語(yǔ)音庫(kù)。
(4)語(yǔ)音合成器。根據(jù)需要發(fā)的音從聲音資料庫(kù)中選擇出合適的聲學(xué)參數(shù),然后根據(jù)在韻律模型中得到的韻律參數(shù),透過(guò)語(yǔ)音合成演算法產(chǎn)生語(yǔ)音。
1.3 SAPI技術(shù)
TTS系統(tǒng)使用合成語(yǔ)音合成文本字符串和文件到聲音音頻流,這個(gè)工作是通過(guò)各種語(yǔ)音引擎來(lái)完成的。語(yǔ)音引擎的開(kāi)發(fā)難度大,一般都是利用現(xiàn)有的引擎來(lái)開(kāi)發(fā)TTS系統(tǒng),微軟所提供的SAPI(全稱The Microsoft Speech API),正是在應(yīng)用程序和語(yǔ)音引擎之間提供一個(gè)高級(jí)別的接口,它實(shí)現(xiàn)了所有必需的對(duì)各種語(yǔ)音引擎的實(shí)時(shí)的控制和管理等低級(jí)別的細(xì)節(jié)。
語(yǔ)音引擎通過(guò)DDI層(設(shè)備驅(qū)動(dòng)接口)和SAPI進(jìn)行交互,應(yīng)用程序通過(guò)API層和SAPI通信。通過(guò)使用這些API,我們可以快速開(kāi)發(fā)在語(yǔ)音識(shí)別或語(yǔ)音合成方面應(yīng)用程序。SAPI應(yīng)用程序編程接口(API)明顯的減少了構(gòu)建一個(gè)使用語(yǔ)音識(shí)別和文本語(yǔ)音轉(zhuǎn)換的應(yīng)用程序所需要的高層代碼,使語(yǔ)音技術(shù)更加容易使用并且更加擴(kuò)大了應(yīng)用的范圍。
SAPI 本身并不能做任何事情,只提供了一系列接口,處于應(yīng)用軟件與語(yǔ)音引擎之間,隔離了應(yīng)用軟件與語(yǔ)音引擎之間的聯(lián)系,使得語(yǔ)音引擎的更換不會(huì)影響到原有應(yīng)用程序的運(yùn)行。
2 系統(tǒng)設(shè)計(jì)及框圖
2.1 系統(tǒng)組成
語(yǔ)音合成播放組件包括一個(gè)語(yǔ)音合成處理服務(wù)、語(yǔ)音播放控制ActiveX控件。
2.2 產(chǎn)品原理
圖2
語(yǔ)音合成服務(wù)器是用來(lái)安裝語(yǔ)音合成處理服務(wù)的主機(jī),所有的客戶端發(fā)來(lái)的語(yǔ)音合成請(qǐng)求都將在這里處理,這里涉及到一個(gè)多路并發(fā)的問(wèn)題。
語(yǔ)音合成處理服務(wù)在接收到語(yǔ)音合成的請(qǐng)求后,調(diào)用語(yǔ)音引擎產(chǎn)生了相應(yīng)的語(yǔ)音波形文件或是語(yǔ)音流(Steam),然后把這些指定的輸出對(duì)象返回給客戶端請(qǐng)求對(duì)象(ActiveX對(duì)象),控件和服務(wù)器之間的傳輸方式通過(guò)最基本的SOCKET技術(shù),采用TCP協(xié)議傳輸協(xié)議。
客戶端的ActiveX控件通過(guò)SOCKET向服務(wù)器發(fā)送語(yǔ)音合成的請(qǐng)求后,等待服務(wù)器的輸出響應(yīng),得到后,根據(jù)WAV語(yǔ)音編碼規(guī)則進(jìn)行解碼,并調(diào)用本地的播放接口(Windows API)來(lái)播放語(yǔ)音。至此完成整個(gè)語(yǔ)音合成播放功能。
對(duì)于不同的客戶端運(yùn)行環(huán)境,客戶端的ActiveX控件有不同的加載方式。
(1)Form方式客戶端。有兩種方案可選:
1)在客戶機(jī)上安裝相應(yīng)的環(huán)境和語(yǔ)音引擎,這樣的話就可以直接在客戶端上進(jìn)行語(yǔ)音合成,而不需要直接從服務(wù)器上取得合成數(shù)據(jù)。優(yōu)勢(shì)是快捷,穩(wěn)定,編程方便。缺點(diǎn)是對(duì)客戶端安裝的軟件需求較高,不太符合實(shí)際。
2)調(diào)用ActiveX控件對(duì)象,進(jìn)行網(wǎng)絡(luò)語(yǔ)音合成。優(yōu)勢(shì)是代碼統(tǒng)一,維護(hù)方便。缺點(diǎn)是編程復(fù)雜。
(2)Web方式客戶端。這種類型可以在客戶瀏覽的語(yǔ)音合成網(wǎng)頁(yè)內(nèi)通過(guò)JavaScript腳本加入對(duì)控件的引用,并通過(guò)腳本來(lái)調(diào)用控件提供的各種接口,從而實(shí)現(xiàn)相應(yīng)的功能。
3 結(jié)束語(yǔ)
系統(tǒng)開(kāi)發(fā)完成后,筆者將該系統(tǒng)應(yīng)用于實(shí)際的礦壓監(jiān)控系統(tǒng)中,軟件運(yùn)行效果良好,能夠在任意IE瀏覽器上正常語(yǔ)音合成報(bào)警文字信息。
語(yǔ)音合成播放組件的實(shí)現(xiàn)提高了系統(tǒng)的友好性,讓用戶能夠得到更好的體驗(yàn),為今后的語(yǔ)音合成和語(yǔ)音識(shí)別提供了參考和借鑒。
參考文獻(xiàn):
[1](美)海杰爾斯伯格,(美)韋爾特馬瑟,(美)戈?duì)柕?韓江,王秀慧,譯.C#編程語(yǔ)言詳解(第2版),2007.
[2]李禹材,左友東,鄭秀清.基于Speech SDK的語(yǔ)音控制應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004(06).
作者簡(jiǎn)介:丁瑞琦(1981-),男,江蘇常州人,碩士研究生,現(xiàn)主要從事煤礦監(jiān)測(cè)類軟件設(shè)計(jì)與研發(fā)工作。
作者單位:天地(常州)自動(dòng)化股份有限公司,江蘇常州 213000
基金項(xiàng)目:基于GIS的圖形展示組件(項(xiàng)目編號(hào):14SY001-02)。