解本銘,韓明明,張 攀,張 威,3*
(1.中國民航大學航空工程學院,天津300300; 2.中國民航大學電子信息與自動化學院,天津300300;3.中國民航航空地面特種設備研究基地,天津300300)
(*通信作者電子郵箱drwadecheung@gmail.com)
目前,語音識別技術已廣泛應用于計算機、辦公自動化、機器人、車輛等在內的各個領域,這使得人機交互變得更加智能有效。然而,牽引車作為機場的特種車輛,其牽引飛機的工作并沒有實現語音控制,而是由地面機組人員通過耳機接收飛行員傳達的塔臺管制員命令,然后和牽引車駕駛員溝通、協調進行控制[1]。
近年來,在民用航空器地面安全事故中,牽引過程發生的安全事故所占比例不容小覷,事故造成巨大的經濟損失,其原因主要包括:牽引車駕駛員違反牽引車使用規則、反應不及時,以及駕駛員與地面工作人員聯絡不暢或者配合失誤[1]。
為了減小牽引車駕駛員人為失誤造成的民用航空器地面事故率,同時參考語音識別技術在車輛自動駕駛領域的應用研究,本文擬在牽引車語音控制方面作些探究性工作。
本文就如何實現飛機牽引車智能語音控制,使牽引車及時、精確地識別飛行員語音指令,安全高效地完成飛機牽引工作進行了研究。牽引車指令屬于駕駛艙指令,是參照陸空通話標準擴充的機載短語語音指令[2],具有語速平穩、發音力度強化變更的特點,并且駕駛艙對機場噪聲分離性較好,因此指令識別相對簡單并且具有一定的抗噪性。盡管對于短語語音識別,目前已有許多高效算法,如隱馬爾可夫模型(Hidden Markov Model,HMM)、矢量量化(Vector Quantization,VQ)、人工神經網絡(Artificial Neural Network,ANN)技術等,但是以上算法需要對大量發音樣本進行訓練,相對復雜,計算量大,更適合用于大詞匯量連續語音識別[3]。相反,動態時間規整(Dynamic Time Warping,DTW)技術可以在樣本數據較少的情況下進行學習訓練,并能夠獲得較好的訓練模型,更適合訓練樣本缺乏情況下的簡單、孤立、短語語音識別[4]。因此,本研究選用DTW算法對牽引車指令語音進行識別。但是,由于DTW算法是通過在整個矩形彎曲窗口內展開若干條路徑搜索,尋找最佳匹配路徑來識別語音的,時間復雜度和空間復雜度都相對較高,所以算法識別效率較低[5]。
針對上述DTW算法識別效率低的問題,目前主要有兩種改進方法。第一種是提前終止技術[6]:該方法在累積彎曲代價超過一定門限時停止搜索,認為兩個語音序列不匹配,該方法能有效降低算法的計算復雜度。第二種是彈性粗粒度動態彎曲時序相似性算法[7]:其思想是通過數據處理,降低時序數據的維度,用低維特征代替原時間序列,從而大幅提高DTW計算效率。上述兩種改進方法的缺點都是以損失算法的識別精度為代價來提高算法運行效率[6-7]。
由于機場對安全性的的高標準要求,上述現有DTW改進方法很難滿足本研究對算法的高識別性能要求。為了提高算法識別性能,本文結合對DTW算法原理、牽引車指令聲學特性和機場環境的分析,在Itakura Parallelogram菱形彎曲窗口DTW算法[8]的基礎上,進一步提出了六邊形彎曲窗口DTW全局優化算法,然后通過孤立詞算法識別性能對比試驗,找到所提六邊形彎曲窗口DTW算法的最優方案,并驗證了該最優算法良好的時效性和魯棒性。
本文所涉及的飛機牽引車智能語音識別系統是通過飛行員語音直接控制牽引車的一種智能系統[9],如圖1所示。該系統的工作過程為:飛行員的語音信號通過飛機耳機接口傳輸給牽引車上的語音接收設備,經過語音處理后直接控制牽引車的運動,同時通過外放設備可以實現與地面機組人員的通信。
語音識別就本質而言是一種模式匹配[10],它是飛機牽引車智能語音識別系統中重要的環節之一。該語音識別流程如圖2所示。其中,端點檢測選用的是雙門限檢測法[11],特征提取則選用的是基于人耳聽覺機理的梅爾頻率倒譜系數(Mel Frequency Cepstrum Coefficients,MFCC)。飛行員發出的語音指令經該流程識別后輸出給牽引車,從而實現飛行員對牽引車的語音控制。

圖1 飛機牽引車智能語音識別系統示意圖Fig.1 Schematic diagram of intelligent speech recognition system of aircraft towing vehicle

圖2 語音識別流程Fig.2 Flow chart of speech recognition
DTW算法是基于動態規劃思想,把距離測度計算和時間規整結合起來的一種非線性歸整技術[5]。
在語音識別過程中,語音經過訓練生成參考模板,待測語音則經過相同的窗函數、相同的幀長和相同的幀移得到相同類型的語音特征參數,生成測試模板。測試模板與參考模板的匹配,就是尋求兩者之間的聲學相似度,相似度又可以通過兩者之間的失真度來描述,失真度越小,相似度越高[12-14]。
DTW算法通過尋找一個最優時間規整函數M= (N),將語音測試模板的時間軸非線性映射到參考模板的時間軸上[5]。假設參考模板共 M幀語音特征矢量,記作{R(1),R(2),…,R(m),…,R(M)},其中 m 記作語音幀的時序標號,則R(m)表示參考模板的第m幀語音特征矢量;相應的假設測試模板有N幀特征矢量,記作{T(1),T(2),…,T(n),…,T(N)},其中n記作語音幀的時序標號,則T(n)表示測試模板的第n幀的特征矢量。
參考模板與測試模板匹配時,每幀特征矢量之間都有相應的失真度,假設m、n分別記作參考模板和測試模板的任意幀號,則兩幀之間的失真度可表示為d{T(n),R[ (n)]},用D表示處于最優時間歸整情況下測試模板和參考模板每一幀特征矢量匹配累積距離最小的距離矩陣,應滿足式(1)[12]:

此時測試模板與參考模板匹配度最高,語音失真度最小,該參考模板語音即為DTW最終識別結果[14]。
2.2.1 傳統DTW算法存在的問題
DTW算法搜索路徑[15]如圖3所示,橫軸為測試模板時間軸的各個幀號n=0~N,縱軸為參考模板時間軸的各個幀號m=0~M,連接橫、縱各個坐標軸就可以形成一個矩形網絡(即矩形彎曲窗口)。對于兩個等長的語音時間序列,即M=N,最佳搜索路徑應該是彎曲窗口的對角線(如圖4中細線條所示),此時兩個時間序列是一一對應的,偏差為0,而實際搜索路徑(如圖4中粗線所示)和對角線有一定的偏離,對于不等長的時間序列,即M≠N,亦是如此,但是偏離不會太大;否則,當彎曲路徑偏離對角線很遠時,即使兩個偏差很大的并不屬于同一類的序列,也可能在整個傳統矩形彎曲窗口內經DTW計算,得到很小的累積距離值,這將造成病態匹配[8],從而產生誤識別,降低算法的識別精度。
傳統DTW算法是從(0,0)出發,到(N,M)結束,在整個矩形彎曲窗口內展開若干條路徑搜索,計算每條路徑從(0,0)到(N,M)時對應幀匹配的積累距離,累積距離最小者即為最佳匹配路徑。該算法計算量大,時間復雜度較高,為O(MN)[16],算法識別效率低。

圖3 DTW算法搜索路徑Fig.3 Searching path of DTW algorithm
2.2.2 牽引車指令的語音特性分析
本研究飛行員對牽引車的語音指令屬于駕駛艙指令,是參照陸空通話標準擴充的機載語音指令[2],其基本要求包括用詞簡潔、準確、專業以及發音力度強化變更等,以此保證通話的時效性和準確度,從而提高工作效率,保證航行安全。其語音特性的具體要求將嚴格遵循民航陸空通話標準[17]:
1)機載指令語氣易采用祈使句,通過省略主語使指令更加簡練。
2)指令應語義干脆、明確,指令詞匯應避免使用單獨的漢字即英文字母,盡量采用平均長度保持在2~4個字符的簡單孤立詞匯。
3)指令語速平穩,應保持平均每秒2個字,以保證語音信息量和指令效率之間的平衡,從而保證指令的識別效率和識別準確率,使機載語音指令的控制效能得以較好發揮。
4)指令發音力度應作強化變更,這在提高語音抗噪性的同時,保證了不同指令間較強的差異化程度。使得語音識別時指令間不易發生誤識別,從而保證識別的準確率[8]。
2.2.3 六邊形彎曲窗口約束的DTW算法
由牽引車指令語速平穩特性可知,同一條指令的參考模板語音和測試模板語音發音時間軸長度相差不大,即兩者時間軸分幀數M、N相差不大,根據DTW算法識別原理[15],本研究語音指令的算法匹配路徑沿算法彎曲窗口對角線偏差不大,所以適當減小算法彎曲窗口偏離對角線的區域,理論上將在保證識別準確率的同時減少算法計算量從而提高算法識別效率。
另外,用詞簡單、語義明確以及發音力度強化變更等語音特性,使得牽引車指令抗噪性強,同時不同指令間的差異化程度加強,根據DTW算法識別原理[15],合理減小算法彎曲窗口偏離對角線的區域,理論上將有效避免指令間病態匹配現象,從而提高算法識別正確率。
針對傳統DTW算法存在的問題,并結合以上對牽引車語音指令聲學特性與DTW算法彎曲窗口關系的分析,為了防止病態匹配、提高識別精度,同時為了減小時間復雜度、提高識別效率,本文對DTW算法的彎曲窗口進行了優化,即全局優化[16]:DTW路徑的局部最優性搜索只在限制的彎曲窗口中進行。
目前,較為常用的全局優化方法是Itakura Parallelogram約束[16,18],該方法是將DTW算法的矩形彎曲窗口優化為圖4所示的菱形彎曲窗口。

圖4 Itakura Parallelogram約束Fig.4 Constraint of Itakura Parallelogram
其中,菱形彎曲窗口斜率為1/2~2,且兩頂點分別為(0,0)、(N,M),由此可求得菱形彎曲窗口四條邊的表達式分別為:y= (1/2)x,y=2x,y= (1/2)(x - N) +M,y=2(x-N)+M。由y=2x與y=(1/2)(x-N)+M相交,y=(1/2)x與y=2(x-N)+M相交,分別求得菱形窗口另外兩個頂點Xa=(2M -N)/3,Xb=(2/3)(2N -M)。
在尋找DTW路徑時,由于菱形彎曲窗口斜率的限制,語音識別只需要計算和存儲菱形彎曲窗口內格點對應幀的匹配距離和累積距離[18],相對于傳統矩形彎曲窗口DTW,減少了算法的計算量。盡管如此,就本研究而言,由上文對牽引車語音指令聲學特性與DTW算法彎曲窗口關系的分析可知,偏離菱形彎曲窗口對角線的兩個頂角(∠Xa和∠Xb)范圍內的幀匹配距離和累積距離,同菱形彎曲窗口范圍外幀的匹配距離和累積距離,可能也沒有必要計算和存儲[18]。基于此,本文在菱形彎曲窗口約束的DTW算法的基礎上,進一步提出六邊形彎曲窗口約束的DTW算法。
通過兩條與菱形彎曲窗口對角線等斜率的直線y=(M/N)x+kb和y=(M/N)x-kb,分別去掉菱形彎曲窗口偏離對角線的兩個頂角∠Xa和∠Xb,將其進一步優化為六邊形彎曲窗口,如圖5陰影部分所示。這時,待測模板的每一幀只需和參考模板在六邊形彎曲窗口內的有限幀匹配,時間復雜度降低,同時有效避免病態匹配現象,提高算法識別精度[8]。

圖5 六邊形彎曲窗口Fig.5 Hexagonal warping window
設 k為優化系數,b=-(2M2)/(3N)+(5/3)M -(2/3)N為定值,取k=1時,y=(M/N)x-kb過菱形窗口頂點Xa,在縱坐標軸上的截距。因為本文優化后的DTW彎曲窗口為六邊形,所以 k∈(0,1)。X1=k(2M - N)/3,X2=k(2M-4N)/3+N,X3=2k(2N -M)/3,X4=k(N -2M)/3+N分別是y=(M/N)x+kb和y=(M/N)x-kb兩條直線與菱形窗口的交點。
2.2.4 六邊形彎曲窗口
隨參考模板與測試模板時間序列長度M、N的不同、優化系數k的取值的不同,優化后的DTW六邊形彎曲窗口大小不同,共有以下7種情況,如圖6所示。

圖6 優化后的DTW六邊形彎曲窗口Fig.6 Optimized DTW hexagonal warping window
因為以上7種六邊形彎曲窗口的上下限各不相同,所以待測模板每一幀與參考模板每一幀匹配時,DTW算法的搜索范圍和匹配路徑各不相同。把每種情況下的六邊形彎曲窗口按照各自上下限對應分成不同的小區域,這樣,DTW匹配路徑就能分段進行,具體情況分析如下:
1)當Xa=Xb時,計算可得X1=X3,X2=X4,匹配分為三段進行:

2)當Xa<Xb時,計算可得X1<X3,X2<X4,當X3<X2時,匹配分為五段進行:

同理,其他情況分析同上。
以上分段分析計算的方式讓7種不同六邊形彎曲窗口應用于電腦程序成為可能,并為后續Matlab仿真實驗中用六邊形彎曲窗口DTW算法寫語音識別程序建立了基礎,方便了后續對不同算法識別性能的研究。
本文共設計三組實驗:實驗一通過改變優化系數,改變六邊形彎曲窗口約束的DTW算法,并將其與傳統DTW算法、菱形彎曲窗口約束的DTW算法進行識別精度對比,找到識別精度最高的算法優化系數范圍;然后,在該優化系數范圍內,對比三種算法的識別效率,找到識別效率最高的優化算法,該優化算法即為最優六邊形彎曲窗口約束的DTW算法。實驗二將實驗一得到的最優算法,與其他兩種算法進行識別精度、效率對比,進一步驗證其優化性能。實驗三則是在改變測試集樣本大小的情況下,進一步將最優算法與其他兩種算法的識別精度、效率進行對比,驗證其魯棒性和時效性。
根據本文2.2.2節對牽引車語音指令的語音特性分析,定義了滿足工況要求的牽引車語音基本指令集。
本實驗語音信號處理方面主要考慮噪聲影響。機場噪聲主要來源于飛機發動機,由于該機載語音指令控制的使用環境是飛機駕駛艙,駕駛艙對機場環境噪聲可分離性好[14],所以其噪聲主要來源于本機發動機,其他飛機發動機噪聲對其影響不大。然而,又因為在牽引車推拖飛機過程中,飛機發動機并不工作,所以,本研究中本機發動機也不會對駕駛艙機載語音識別產生噪聲影響。另外,由于本研究中飛行員對牽引車的語音指令是通過插在飛機腹部的耳機傳輸線傳到牽引車的(如圖1),屬于內話系統傳輸[14],所以,盡管機場環境嘈雜,在信號傳輸過程中,機場噪聲對語音識別的影響并不大。
以上分析可知,本研究牽引車指令信號受環境噪聲影響較小,并且具有良好抗噪性,鑒于此,以下仿真實驗在實驗室低噪聲環境下進行。
利用Matlab開發一個基于本研究內容的語音信號數據檢測系統,系統在內存為4 GB和CPU為3 GHz的PC上運行。利用PC的Windows錄音設備,其中,采樣率為16 kHz,采樣位數為16 bit,錄制了10個人(5男5女)的語音,內容包括所建牽引車語音基本指令集中“前進、后退、左轉、右轉、停止”這五條最常用指令,并且嚴格按照牽引車指令詞匯庫設計原則,要求所有人語速平穩,保持每秒2字,即每條語音指令用時1 s,并且發音力度相對于日常要作強化變更。每人每條語音均被采集30次,即每條指令均被采集300次。以12維梅爾頻率倒譜系數MFCC及1維標準化能量,以及它們的一階及二階差分,為語音特征參數[19],分別對每條語音的200次采樣進行特征提取,建立該語音的參考模板。五條語音共1500條參考模板,組成本研究的孤立詞指令語音庫。
測試模板仍然由上述10個人錄制,每人分別采集各條孤立詞指令語音20次,即每條語音各采集200次,參照參考模板的建立,同樣要求所有人語速平穩,保持每秒2字,同時發音作同等力度的強化變更。然后,分別提取與參考模板相同的特征參數建立測試模板,五條語音指令共1 000條測試模板,組成本研究的測試集。
將測試集里的每條測試模板與所建語音庫里的參考模板進行匹配,分別統計傳統DTW算法和菱形彎曲窗口約束的DTW算法的語音識別結果。不斷改變六邊形彎曲窗口約束的DTW算法的優化系數k,進行同樣的實驗,其中,k從0到1每間隔0.05取值一次。由仿真實驗結果可知,對于同一種DTW算法,各條語音指令的識別精度相差不大,所以,本文將同一種DTW算法計算下的各條語音指令的識別錯誤率進行了均值處理,最后將三種不同DTW算法均值處理后的識別錯誤率進行對比分析,如圖7所示。

圖7 不同優化系數時不同算法的識別錯誤率對比Fig.7 Comparison of recognition error rates of different algorithms under different values of optimization coefficient
由圖7分析可知:k∈(k1,k2)時,六邊形彎曲窗口約束的DTW算法,相對于傳統DTW算法,識別精度較低;k∈(k1,k2)時,六邊形彎曲窗口約束的DTW算法雖然相對于傳統DTW算法識別精度有所提高,但是,相對于菱形彎曲窗口約束的DTW算法識別精度并無提高;k∈(k2,1)時,六邊形彎曲窗口約束的DTW算法相對于傳統DTW算法和菱形彎曲窗口約束的DTW算法,識別精度均提高;k∈(k3,k4)時,六邊形彎曲窗口約束的DTW算法識別精度最高(其中k1≈0.25,k2≈0.3,k3≈0.65,k4≈ 0.81)。
本研究重在提高算法識別精度,所以根據圖7算法精度對比實驗結論,不同DTW算法識別效率的對比實驗是在k∈(k3,k4)保證優化算法識別精度最高的前提下進一步進行的,并用Matlab中的tic和toc函數,分別對三種DTW算法的識別時間進行了統計,同樣對其結果進行均值處理,如圖8所示。
由圖8分析可知,在優化算法識別精度最高的k∈(k3,k4)取值范圍內,六邊形彎曲窗口約束的DTW算法,相對于其他兩種算法,其識別效率均有提高;并且,k值越小,算法識別效率越高,k=0.65時,算法識別效率最高,此時六邊形彎曲窗口約束的DTW算法即為本研究的最優算法。
在實驗一的基礎上,進一步將k=0.65時最優六邊形彎曲窗口約束的DTW算法與其他兩種DTW算法對各條孤立詞指令語音的識別錯誤率、識別效率進行對比,結果如表1~表2所示。

圖8 不同優化系數時不同算法的識別時間對比Fig.8 Comparison of recognition time of different algorithms under different values of optimization coefficient

表1 k=0.65時不同算法識別錯誤率對比 %Tab.1 Comparison of recognition error rates of different algorithms with k=0.65 %

表2 k=0.65時不同算法識別時間對比 s Tab.2 Comparison of recognition time of different algorithms with k=0.65 s
由表1、表2分析可知,所提最優算法相比傳統DTW算法在識別錯誤率減小了77.14%的同時識別效率提高了48.92%;相比菱形彎曲窗口約束的DTW算法在算法識別錯誤率減小了69.27%的同時識別效率提高了27.90%。
考慮到測試集大小可能會影響算法的識別性能,為了更好地考察不同算法的識別性能,本實驗在不同測試集下進一步對比了三種算法在識別效率和識別正確率上的結果。本實驗建立了測試模板數量為100條至1000條,以100條為間隔的大小不等的十種測試集。其中100條測試模板的測試集是由上述實驗中的10個人分別錄制前進、后退、左轉、右轉、停止語音指令各2次,200條測試模板的測試集則是由上述試驗中的10個人分別錄制各條語音指令4次,以此類推建立其他測試集。
分別將不同測試集里的測試模板與語音庫里的參考模板進行匹配,對不同算法的識別性能進行對比,結果如圖9所示。
由圖9(a)可以看出,隨著測試集增大,傳統DTW算法的識別效率略有降低,而其他兩種算法的識別效率均有提高,但最優六邊形彎曲窗口約束的DTW算法相對于菱形彎曲窗口約束的DTW算法,識別效率提高20% ~30%,并且該最優算法的識別效率呈線性增長。
與此同時,由圖9(b)可以看出,隨著測試集的增大,傳統DTW算法的識別錯誤率逐漸增大,對于大數據時代,這種錯誤率的增大是不允許的,相比之下,菱形彎曲窗口約束的DTW算法較穩定,其識別錯誤率隨測試集增大沒有明顯變化。與以上兩種算法不同,隨測試集的增大,最優六邊形彎曲窗口約束DTW算法的識別錯誤率明顯降低,并且幾乎成線性降低,這也體現了該最優算法對于大測試集具有較好的適應性。

圖9 不同測試集大小時不同算法的識別性能對比Fig.9 Comparison of recognition performance of different algorithms under different sizes of test datasets
上述不同測試集下三種算法的性能對比實驗進一步證明,本文所提最優六邊形彎曲窗口約束的DTW算法相對于其他兩種算法,尤其在大數據測試集情況下,其識別效率和識別正確率均有較好的表現。
DTW是近年來針對簡單、孤立詞匯識別的重要方法。識別過程中,DTW會在整個算法彎曲窗口內展開若干條路徑匹配,計算量大,然而,其最佳匹配路徑是沿DTW彎曲窗口對角線進行,且偏差不大,否則容易出現病態匹配,造成誤識別。由此可見,彎曲窗口的大小可能會影響DTW的識別性能。
由于機場對安全性的高標準要求,本研究對牽引車識別飛行員指令的準確性和時效性都提出了較高的要求。本文通過研究彎曲窗口對算法識別性能的影響,提出六邊形彎曲窗口DTW優化算法,并通過孤立詞算法性能對比實驗,進一步找到最優六邊形彎曲窗口DTW算法。實驗結果表明,所提最優算法相比傳統DTW算法和菱形彎曲窗口DTW算法,時間效率和識別正確率均有提高,更具時效性和魯棒性。
由于本文算法只測試了牽引車基本指令的中文語音版本,下一步將針對牽引工況下更多功能及英語語音的應用進行研究。