,,
(大連海事大學(xué) 航海動(dòng)態(tài)仿真和控制交通行業(yè)重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116026)
船舶操縱模擬器的人機(jī)交互方式在不斷地改變,朝著更接近航海實(shí)踐的方向發(fā)展,用戶體驗(yàn)將會(huì)不斷被提升。現(xiàn)如今語音交互被認(rèn)為是人機(jī)交互最自然的方式,已經(jīng)在多領(lǐng)域得到廣泛應(yīng)用[1-3],但在航海仿真領(lǐng)域的應(yīng)用還較為基礎(chǔ)。三維虛擬船舶仿真平臺(tái)現(xiàn)有的人機(jī)交互依賴于鍵盤和鼠標(biāo)實(shí)現(xiàn),與操作簡(jiǎn)單的二維航海仿真設(shè)備不同,三維虛擬船舶仿真平臺(tái)場(chǎng)景復(fù)雜,在虛擬培訓(xùn)中通過鼠標(biāo)和鍵盤實(shí)現(xiàn)交互顯得較為繁瑣,影響用戶的便捷使用。考慮將語音交互技術(shù)應(yīng)用于該平臺(tái),力爭(zhēng)在較大程度上降低人機(jī)交互的復(fù)雜度并減小培訓(xùn)時(shí)的人力消耗。
按照國(guó)際慣例,船舶操縱命令多以英文的形式表達(dá),因此在設(shè)計(jì)虛擬船舶仿真平臺(tái)的語音識(shí)別系統(tǒng)時(shí)識(shí)別內(nèi)容為英文。由于在培訓(xùn)中受訓(xùn)人員需要和外界進(jìn)行語音交流,為了使語音交互不受與漫游和操縱無關(guān)的外界語音干擾發(fā)生誤操作,在設(shè)計(jì)語音交互的時(shí)候?qū)φZ音識(shí)別系統(tǒng)做篩選操作。
為了使語音交互系統(tǒng)能準(zhǔn)確識(shí)別并執(zhí)行操作者的意圖,除了對(duì)語音識(shí)別系統(tǒng)的識(shí)別內(nèi)容做篩選,還加入語音喚醒功能。通過監(jiān)聽特定的語音內(nèi)容,語音交互系統(tǒng)智能開啟,從而消除與交互無關(guān)的干擾。當(dāng)用戶需要啟動(dòng)語音系統(tǒng)進(jìn)行漫游或操縱時(shí),使用特定的喚醒詞,語音交互系統(tǒng)激活語音識(shí)別模塊,進(jìn)而做出相應(yīng)的反應(yīng)。考慮到在實(shí)際駕駛臺(tái)的操縱中操作者需要復(fù)述操縱命令,并且當(dāng)命令執(zhí)行完成時(shí)需向命令發(fā)出者報(bào)告操縱情況,加入語音合成模塊,進(jìn)而完成該項(xiàng)功能。語音交互系統(tǒng)的組成見圖1。
語音交互的實(shí)現(xiàn)依賴于語音識(shí)別模塊和語音合成模塊,下面主要從語音識(shí)別和語音合成的實(shí)現(xiàn)以及模塊間的整合來闡述系統(tǒng)實(shí)現(xiàn)過程。
2.1.1 聲學(xué)模型訓(xùn)練
聲學(xué)模型訓(xùn)練具體步驟如下。
1)語音信號(hào)獲取。采集不同地域人的航海領(lǐng)域相關(guān)的音頻語料,對(duì)語音信號(hào)進(jìn)行預(yù)處理(主要包括信號(hào)預(yù)加重和加窗分幀操作),得到短時(shí)平穩(wěn)的語音信號(hào)。
2)計(jì)算梅爾倒譜系數(shù)(MFCC)。在頻域上選取將語音產(chǎn)生機(jī)制和人耳聽覺感知相結(jié)合的MFCC作為語音信號(hào)特征提取參數(shù)[4],通過式(1)實(shí)現(xiàn)梅爾頻率和線性頻率的轉(zhuǎn)換。采用Mel濾波器組濾波得到梅爾頻率,對(duì)濾波器的輸出做離散余弦變換得到MFCC(見式(2))。
Mel(f)=2 595log(1+f/700)
(1)
式中:Mel(f) 為梅爾頻率;f為線性頻率。
i=1,2,…,L
(2)
式中:s(m)為第m個(gè)濾波器的輸出;L為MFCC的階數(shù)。
3)提取語音信號(hào)特征。使用Kaldi語音識(shí)別工具對(duì)訓(xùn)練音頻數(shù)據(jù)進(jìn)行特征提取,得到MFCC為13維的特征矩陣。
4)聲學(xué)模型建模。以音素為聲學(xué)單元使用GMM-HMM進(jìn)行聲學(xué)模型建模。采用EM算法訓(xùn)練得到GMM中的模型參數(shù)(包括高斯密度混合數(shù)、狀態(tài)對(duì)應(yīng)觀察向量的均值和方差矩陣);通過Baum-Welch算法根據(jù)特征數(shù)據(jù)訓(xùn)練得到HMM模型參數(shù)[5](包括狀態(tài)數(shù)、狀態(tài)的轉(zhuǎn)移矩陣),建立GMM-HMM聲學(xué)模型文件,見圖2。
2.1.2 語言模型的訓(xùn)練
語言模型在語音識(shí)別系統(tǒng)中負(fù)責(zé)將聲學(xué)模型解碼輸出的無規(guī)則詞序依據(jù)語言規(guī)律轉(zhuǎn)化成可讀的文字序列[6]。通過制作航海專業(yè)領(lǐng)域內(nèi)的語料庫,采用基于統(tǒng)計(jì)規(guī)則的3-gram語言模型進(jìn)行建模。使用語言模型訓(xùn)練工具Srilm訓(xùn)練語言模型的流程大致為:首先對(duì)文本語料庫斷句分詞,通過去重和排序處理得到詞表;然后根據(jù)詞表統(tǒng)計(jì)詞頻得到初始的3-gram模型,結(jié)合語料庫進(jìn)行模型的參數(shù)估計(jì);最后為了解決模型訓(xùn)練時(shí)出現(xiàn)的數(shù)據(jù)稀疏問題,采用改進(jìn)的平滑算法(Good-Turing折扣平滑[7]與Katz平滑[8]相結(jié)合)進(jìn)行平滑處理,最終實(shí)現(xiàn)3-gram語言模型的建立。
采用基于Vertibi算法的解碼器結(jié)合GMM-HMM聲學(xué)模型和3-gram語言模型構(gòu)成解碼網(wǎng)絡(luò),得到識(shí)別范圍為航海領(lǐng)域的語音識(shí)別系統(tǒng)。
Microsoft Speech SDK5.1中的語音合成模塊包含豐富的以基本單元語音波形儲(chǔ)存的語音庫,語音合成的自然度較好,可應(yīng)用的范圍較廣。本著快速實(shí)現(xiàn)語音交互功能的目的,采用Speech SDK5.1進(jìn)行語音交互系統(tǒng)中語音合成模塊進(jìn)行二次開發(fā)。該SDK的應(yīng)用層包含語音識(shí)別和語音合成程序,語音合成(TTS)由語音合成引擎控制,提供語音應(yīng)用程序接口(SAPI)和設(shè)備驅(qū)動(dòng)接口(DDI)支持語音技術(shù)的開發(fā),Speech SDK5.1中的語音合成模塊結(jié)構(gòu)見圖3。
在語音交互程序中接入語音合成模塊,為語音合成函數(shù)SpeakAsync( )提供待合成文本。文本包含兩個(gè)部分:當(dāng)語音交互被喚醒但相應(yīng)的交互操作還未完成時(shí),該文本為語音識(shí)別系統(tǒng)識(shí)別的操縱命令;當(dāng)語音命令被船舶仿真平臺(tái)接收實(shí)現(xiàn)相關(guān)操作并反饋交互結(jié)果的時(shí)候,該文本為船舶仿真平臺(tái)反饋的信息。
語音識(shí)別系統(tǒng)的識(shí)別范圍針對(duì)航海領(lǐng)域,將語音識(shí)別系統(tǒng)模塊和語音合成模塊封裝為一個(gè)語音交互程序,通過外部添加交互指令庫和喚醒詞庫(主要用于場(chǎng)景漫游中),語音交互程序?qū)崟r(shí)讀取兩個(gè)詞庫,同時(shí)考慮到用戶的使用習(xí)慣,用戶可以對(duì)喚醒詞庫進(jìn)行修改。在語音交互程序和虛擬仿真船舶平臺(tái)之間建立通信文件,用來儲(chǔ)存語音交互指令和仿真平臺(tái)的反饋信息。語音交互啟動(dòng)時(shí)虛擬仿真平臺(tái)讀取通信文件的交互指令進(jìn)行相應(yīng)的交互;操作完成時(shí),傳入反饋信息到通信文件中并覆蓋原有信息,語音交互中的語音合成模塊通過讀取反饋信息并合成語音告知用戶交互結(jié)果。
語音交互系統(tǒng)流程見圖4。
1)語音識(shí)別模塊處于監(jiān)聽狀態(tài)。將監(jiān)聽到的詞條存儲(chǔ)于識(shí)別結(jié)果變量_SResult中。
2)_SResult與語音交互指令庫及喚醒詞庫中的內(nèi)容進(jìn)行匹配。當(dāng)與喚醒詞庫中的內(nèi)容匹配,則進(jìn)入步驟(3);由于航海實(shí)踐操作的特殊性,在進(jìn)行主機(jī)和舵機(jī)操作時(shí),船長(zhǎng)或者引航員會(huì)直接下達(dá)車鐘令或者舵令而沒有叫操作人員的名字(喚醒詞),因此,當(dāng)_SResult與語音交互指令庫中這些指令匹配時(shí),直接進(jìn)入步驟(4);若未匹配成功,則返回步驟(1)繼續(xù)監(jiān)聽。
3)操作指令識(shí)別。
4)根據(jù)識(shí)別的結(jié)果,調(diào)用語音合成系統(tǒng),將操作指令以語音的形式反饋給用戶。
5)接收用戶同意的指令,執(zhí)行操作指令。
6)操作指令執(zhí)行結(jié)束后,調(diào)用語音合成系統(tǒng),將操作結(jié)果以語音的形式反饋給用戶。
7)一次語音交互過程結(jié)束。
以使用虛擬船舶仿真平臺(tái)進(jìn)行船舶靠泊操作為例,操作前提為:引航員獨(dú)自使用該平臺(tái),操縱虛擬船舶,靠泊大連港,主機(jī)、舵機(jī)等操作由機(jī)器完成。航行過程中,引航員在瞭望,觀察水域周圍船舶動(dòng)態(tài),駕駛船舶正常航行,與語音交互系統(tǒng)相關(guān)操作如下:
1)在進(jìn)入轉(zhuǎn)向點(diǎn)時(shí),下達(dá)舵令“port ten”;根據(jù)語音交互系統(tǒng)工作流程,語音識(shí)別模型識(shí)別出該舵令,計(jì)算機(jī)回復(fù)“port ten”;引航員聽到計(jì)算機(jī)回復(fù)內(nèi)容后,回復(fù)“OK”;語音交互系統(tǒng)在識(shí)別引航員這句指令后,操作舵輪,當(dāng)轉(zhuǎn)到“port ten”時(shí),計(jì)算機(jī)恢復(fù)“the wheels is port ten”。至此,一條語音交互操作完成,與實(shí)際船舶操縱一致。
2)當(dāng)船舶逐漸接近泊位時(shí),引航員需要操作主機(jī),使船舶降速,這時(shí)按照1)中的步驟,與語音交互系統(tǒng)進(jìn)行人機(jī)對(duì)話,其不同點(diǎn)在于:將舵令改為車鐘令,例如:half ahead、stop engine等。
3)在接近泊位邊緣時(shí),引航員需要走到駕駛臺(tái)左右舷,去觀察船舶與碼頭的間距,以及周圍是否有礙航物等。這時(shí),引航員與語音交互系統(tǒng)的對(duì)話是這樣的:“speech interaction system: move to the port side of bridge”;語音交互系統(tǒng)在識(shí)別喚醒詞“speech interaction system”后,啟動(dòng)漫游功能,根據(jù)后一句“move to the port side of bridge”(移動(dòng)至駕駛臺(tái)左舷)的識(shí)別情況,自動(dòng)跳轉(zhuǎn)到駕駛臺(tái)左舷,完成快速導(dǎo)航的漫游功能。
由實(shí)例可以看出,語音交互系統(tǒng)承擔(dān)了船舶實(shí)際操作中舵工操作舵輪、駕駛員操作車鐘的工作,使得船長(zhǎng)或者引航員在自己操縱船舶時(shí),可以像實(shí)際操縱船舶時(shí)一樣,關(guān)注船舶操縱本身。另外,從漫游的角度出發(fā),實(shí)現(xiàn)了快速導(dǎo)航的功能。
整個(gè)虛擬船舶仿真平臺(tái)在windows10操作系統(tǒng)Edifier-K815頭戴式麥克風(fēng)的實(shí)驗(yàn)室環(huán)境中進(jìn)行。以“move to the port side of bridge”、“go to the bow”、“port ten”、“stand by engine”、“half ahead”等漫游指令和常用的船舶操縱指令作為語音命令,分別讓10個(gè)測(cè)試者各進(jìn)行120次語音交互測(cè)試實(shí)驗(yàn),記錄實(shí)驗(yàn)結(jié)果并計(jì)算,相應(yīng)的測(cè)試果如表1所示。
測(cè)試表明,大部分測(cè)試者的語音交互準(zhǔn)確率都在90%以上,只有少數(shù)幾個(gè)測(cè)試者的交互準(zhǔn)確率較低;但整體上語音交互的平均準(zhǔn)確率為91%,語音交互的準(zhǔn)確率在可接受的范圍內(nèi),可以初步滿足三維虛擬船舶仿真平臺(tái)的語音交互要求。

表1 語音交互測(cè)試結(jié)果
與簡(jiǎn)單的二維航海仿真設(shè)備語音控制相比,該仿真平臺(tái)的語音交互系統(tǒng)具有智能喚醒功能,可以使仿真平臺(tái)的語音交互不受漫游和與操縱無關(guān)的外界語音干擾。與此同時(shí),對(duì)于在單人進(jìn)行進(jìn)出港操作的虛擬培訓(xùn)時(shí),用戶通過語音交互實(shí)現(xiàn)簡(jiǎn)單的協(xié)同配合操作,可以解決一人身兼數(shù)職的問題。將語音交互技術(shù)應(yīng)用于三維虛擬船舶仿真平臺(tái),不僅能為航海相關(guān)培訓(xùn)帶來便利,而且能在一定程度上促進(jìn)航海仿真系統(tǒng)智能化的發(fā)展。在語音交互實(shí)例測(cè)試中,由于測(cè)試者佩戴頭戴式麥克風(fēng)且在實(shí)驗(yàn)室環(huán)境下進(jìn)行實(shí)驗(yàn),保證了語音交互具有較高的準(zhǔn)確率。而在實(shí)際中,航海仿真訓(xùn)練系統(tǒng)需要模擬實(shí)船噪聲環(huán)境進(jìn)行相關(guān)的操作培訓(xùn),因此在今后需要研究麥克風(fēng)陣列技術(shù),使得語音交互系統(tǒng)在模擬實(shí)船的噪聲環(huán)境中,能保證具有較高的準(zhǔn)確率,從而提升仿真培訓(xùn)的效果。
[1] RAO P V L N, ABHILASH P S. Application of mobile robots by using speech recognition in engineering[J]. interna-tional[J]. Journal of u- and e- service, science and technology, 2015,8(6):229-234.
[2] STEDMON A W, RICHARDSON J, BAYER S H, et al. Speech input applications for driving: Using different levels of fidelity in simulator research[J]. Advances in Transportation Studies, 2012,A-28:17-34.
[3] PAI N, CHEN S, CHEN P, et al. Application of HMM-based chinese speech recognition on internet of things for smart home systems[J]. ICIC express letters, part b: applica-tions, 2016,7(9):1901-1909.
[4] GULZAR T, SINGH A, SHARMA S. Comparative analysis of LPCC, MFCC and BFCC for the recognition of Hindi words using artificial neural networks[J]. Acta materialia, 2014,56(13):3132-3145.
[5] OUDELHA M, AINON R N. HMM parameters estimation using hybrid Baum-Welch genetic algorithm[C]. Information Technology. IEEE, 2010:542-545.
[6] 邢永康,馬少平.統(tǒng)計(jì)語言模型綜述[J].計(jì)算機(jī)科學(xué),2003,30(9):22-26.
[7] CHEN S F, GOODMAN J T. An empirical study of good-Turing smoothing for language models on different size corpora of Chinese[J]. Journal of computer & communications, 2013,1(5):14-19.
[8] WU J, ZHENG F. On enhancing katz-smoothing based back-off language model[C] International Conference on Spoken Language Processing, Icslp 2000 Interspeech 2000, Beijing, China, October. DBLP, 2000:198-201.