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

表1 語音交互測試結果
與簡單的二維航海仿真設備語音控制相比,該仿真平臺的語音交互系統具有智能喚醒功能,可以使仿真平臺的語音交互不受漫游和與操縱無關的外界語音干擾。與此同時,對于在單人進行進出港操作的虛擬培訓時,用戶通過語音交互實現簡單的協同配合操作,可以解決一人身兼數職的問題。將語音交互技術應用于三維虛擬船舶仿真平臺,不僅能為航海相關培訓帶來便利,而且能在一定程度上促進航海仿真系統智能化的發展。在語音交互實例測試中,由于測試者佩戴頭戴式麥克風且在實驗室環境下進行實驗,保證了語音交互具有較高的準確率。而在實際中,航海仿真訓練系統需要模擬實船噪聲環境進行相關的操作培訓,因此在今后需要研究麥克風陣列技術,使得語音交互系統在模擬實船的噪聲環境中,能保證具有較高的準確率,從而提升仿真培訓的效果。
[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] 邢永康,馬少平.統計語言模型綜述[J].計算機科學,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.