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