吳向陽,王 兵,阮 敏,楊 波,張建偉,林 毅
(1.中國民用航空西南地區(qū)管理局,四川 成都 610200;2.四川大學(xué)計算機學(xué)院,四川 成都 610065)
空中交通管制(air traffic control,ATC)利用通信、導(dǎo)航和監(jiān)視技術(shù)對飛機飛行活動進行干預(yù)以保證飛行安全和秩序[1]。管制員基于各種設(shè)備感知的空中態(tài)勢對飛機進行飛行引導(dǎo),飛行員在整個飛行過程中均需嚴格按照管制員的要求進行飛行,否則容易造成安全隱患。在整個扇區(qū)管制過程中,一個管制員通過無線電頻率與多個飛行員進行通話,各方通過PTT(push to talk)信號來控制通話的唯一性,保證通信頻率不被堵塞[2]??罩薪煌ü苤茖崟r語音包含豐富的實時交通動態(tài),對空管系統(tǒng)處理非常重要。但是,目前空中交通系統(tǒng)僅將記錄管制通話語音作為事后處理的依據(jù),并未引入其他相關(guān)處理。
語音識別(automatic speech recognition)的主要目的是將語音信號識別為計算機可讀文本。語音信號受環(huán)境影響較大,如背景噪聲、設(shè)備干擾、參數(shù)采集等,因此,傳統(tǒng)語音識別方法是在一定限制的環(huán)境條件下獲得滿意的性能,或者只能應(yīng)用于某些特定場合。作為提升產(chǎn)品智能化程度的一個標志,語音識別技術(shù)大量應(yīng)用于生活,包括語音搜索、智能家居等。采用語音識別技術(shù)將管制通話語音轉(zhuǎn)換為計算機文本對當前空管系統(tǒng)具有重要意義。引入空管語音識別技術(shù)可以在指令發(fā)布階段從語音中獲取管制動態(tài)、豐富系統(tǒng)信息來源。基于語音識別技術(shù),空管系統(tǒng)可以檢測管制指令規(guī)范性、飛行員復(fù)誦一致性,這能降低管制員工作負荷、提升空管運行安全。
初期的語音識別系統(tǒng)基于孤立詞(音)進行識別,如1952 年貝爾實驗室開發(fā)的特定人的數(shù)字及英文字母識別系統(tǒng)[3]??紤]到語音識別系統(tǒng)的實用性,后期研究主要集中在連續(xù)語音識別上,但是由于說話人習慣、背景噪聲不同導(dǎo)致難以區(qū)分詞邊界,且分幀參數(shù)也需要驗證確定;因此,連續(xù)語音識別面臨極大的挑戰(zhàn)。語音識別方法可分為以下幾種。
1)HMM/GMM[4]。20 世紀80 年代,研究人員將隱馬爾科夫模型(hidden markov model,HMM)應(yīng)用到語音識別領(lǐng)域,用于音素建模。每個音素包含多個狀態(tài),每個狀態(tài)用高斯混合模型(Gaussian mixture model,GMM)擬合對應(yīng)的觀測幀,觀測幀依據(jù)時間順序?qū)?shù)據(jù)組合成觀測序列,在此基礎(chǔ)上實現(xiàn)語音識別。
2)HMM/DNN[5]。隨著神經(jīng)網(wǎng)絡(luò)應(yīng)用的不斷擴展,研究人員將神經(jīng)網(wǎng)絡(luò)引入到語音識別領(lǐng)域,將DNN(deep neural network)代替GMM 在擬合觀測幀中的角色。因為神經(jīng)網(wǎng)絡(luò)在函數(shù)逼近上有強大能力,所以語音識別效果亦有較大提高。
上述的語音識別框架雖然取得了較好的識別效果,但基于音素的HMM 模型是人為設(shè)計模型,依賴于專家知識,且該模型設(shè)計較為復(fù)雜不易理解,不利于研究人員入門和改進。在此背景下,端到端(end-to-end)識別方法應(yīng)運而生。
3)End-to-end[6]。End-to-end 語音識別方法是基于全神經(jīng)網(wǎng)絡(luò)進行語音識別,直接將輸入的語音頻譜圖與字符標簽進行映射,不再對語音數(shù)據(jù)進行基于上下文(context dependent)的狀態(tài)轉(zhuǎn)移和對齊(alignment)處理,其技術(shù)結(jié)構(gòu)較傳統(tǒng)方法更為清晰。該方法依賴于神經(jīng)網(wǎng)絡(luò)在特征自提取和表示方面的強大能力,實現(xiàn)對數(shù)據(jù)分布的描述。
目前,End-to-end 的語音識別算法已在較多公共領(lǐng)域的語音識別中得到應(yīng)用。本文在分析我國空管語音識別的特殊性(如語速快、中英文混合以及高背景噪聲等)基礎(chǔ)上,運用深度學(xué)習技術(shù)研究適用于我國民航管制的端到端語音識別算法。首先將語音信號分幀并轉(zhuǎn)換為頻譜圖,搭建卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)提取頻譜圖在時間/頻率維上的顯著性特征,然后設(shè)計多層循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)進行語音數(shù)據(jù)時序相關(guān)性建模,最后通過全連接預(yù)測層(fully connected,F(xiàn)C)將抽象特征分類到輸出詞匯,其中包含漢字和空管專有名詞。本文采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,使用CTC(connectionist temporal classification)作為損失函數(shù)進行誤差反向傳遞。
圖1 語音識別模型圖
為保證通話雙方正常理解和溝通,國際民航組織(International Civil Aviation Organization,ICAO)發(fā)布了相關(guān)文件以規(guī)范管制通話語音的流程與發(fā)音[7]。管制通話語音與生活中的語音相比,有以下不同的特征。
1)發(fā)音不同??展芡ㄔ捴邪l(fā)音不同的詞匯包含數(shù)字、字母以及空管術(shù)語等。這使得管制通話語音更像一類方言。表1 列舉了一些管制通話特殊發(fā)音。針對發(fā)音的不同,本文研究并制定了一套與之對應(yīng)的漢字映射表,所有的字母和地標點都有一個與之對應(yīng)的詞匯,其中的漢字選用生僻字以區(qū)分與常用字的發(fā)音。例如將地標點“PIKAS”映射為“噼胩咝”。目前這類詞匯共有53 個。
表1 管制通話特殊發(fā)音
2)語速較快。由于空管過程對時間較為敏感,因此在管制通話過程中管制員和飛行員說話都較快。據(jù)目前樣本統(tǒng)計,管制通話平均每秒能說5~7 個漢字。針對這一特點,本文在語音分幀的時候采用了比自然語音更小的幀長和幀間偏移量。
3)環(huán)境干擾較大。記錄儀記錄的管制通話語音除了管制室的背景噪聲之外,還包括一系列設(shè)備造成的噪聲,比如VHF 通話傳輸噪聲、采集設(shè)備噪聲、數(shù)字化噪聲等。這類噪聲對傳統(tǒng)的基于HMM 的語音識別方法影響較大[8]。
因此,要想將管制通話語音引入到目前空中交通管制系統(tǒng),必須要研究適合于我國空管管制通話的語音識別方法。由于基于HMM 語音識別算法在處理語速和噪聲上性能不佳,研究基于End-toend 的空管語音識別方法就勢在必行。
本文首先將一維語音信號轉(zhuǎn)換為梅爾倒譜(Mel-frequency cepstral coefficients,MFCC),并將其作為模型輸入,處理步驟如下。
1)分幀。將語音信號按20 ms 幀長和7 ms 幀間偏移量進行分幀處理。
2)預(yù)加重。補償語音信號受到發(fā)音系統(tǒng)所壓抑的高頻部分,突出高頻共振峰。
3)加窗。平滑信號,減弱傅里葉變換以后旁瓣大小以及頻譜泄露。
4)梅爾濾波器處理。將語音信號從時域轉(zhuǎn)換到頻域并精簡信號在頻域的幅度值,然后進行取對數(shù)處理。
5)倒譜分析。先離散余弦變換(反傅里葉變換的一種),再通過低通濾波器獲得低頻信號。
6)差分處理。在特征維度增加前后幀信息的維度,常用的是一階差分和二階差分。
本文采用的神經(jīng)網(wǎng)絡(luò)模塊包含CNN、RNN 和FC 層。CNN 用于在時間維上對數(shù)據(jù)進行特征自提取和維度壓縮。同時考慮到RNN 在模型訓(xùn)練時對時序數(shù)據(jù)記憶困難問題[9],本文采用改進的LSTM(long short-term memory)結(jié)構(gòu)進行語音數(shù)據(jù)時序建模。FC 將提取的抽象語音特征與詞匯表進行映射,并用softmax 作為激活函數(shù)以輸出標簽為某一字符的概率[6]。模型詳細結(jié)構(gòu)如圖2 所示。
圖2 模型詳細結(jié)構(gòu)圖
CNN 是一種廣泛用于計算機視覺領(lǐng)域[10]的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),與DNN 相比進行了如下改進。
1)局部感受野(local receptive field):對應(yīng)著語音頻譜的時頻相關(guān)性。
2)共享權(quán)值(shared weights):在局部感受野區(qū)域內(nèi),共享同樣的神經(jīng)網(wǎng)絡(luò)權(quán)值,降低了參數(shù)量和訓(xùn)練難度。
3)卷積操作(convolution):卷積操作具有位移、縮放及其他形式扭曲不變性,降低了CNN 對語音速度和頻域分布的依賴程度。
4)池化操作(pooling):針對局部區(qū)域提取其顯著性特征,降低數(shù)據(jù)維度以提取有用深層數(shù)據(jù)特征。CNN 計算過程如式(1)所示。
RNN 是一種廣泛用于時序數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其核心思想是對于每一個時刻s,其輸入包含該時刻的輸入x(s)以及上一時刻的隱狀態(tài)h(s-1),輸出y(s)依賴于h(s)。RNN 的基本規(guī)則如式(2)所示。實際應(yīng)用中,在對長時記憶方面,RNN 性能表現(xiàn)得不夠好,因此,本文采用LSTM 結(jié)構(gòu)來提高模型性能。LSTM 是一種特殊的RNN 結(jié)構(gòu),設(shè)計了1 個保存信息的cell 和3 個控制信息傳輸?shù)拈T限信號,即輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)。該模塊以學(xué)習的方式對特定信息進行記憶或丟棄,以此來實現(xiàn)信息的長時傳輸,并最終提升語音識別的性能。LSTM 單元內(nèi)部各部分的數(shù)學(xué)關(guān)系如式(3)所示。
式(2)中:w表示不同輸入輸出之間的權(quán)重值;b為權(quán)重偏置值。式(3)中:t代表計算時間步;I,F(xiàn),C,O分別代表LSTM 單元的輸入門、遺忘門、cell 和輸出門的函數(shù)響應(yīng)值;ht為最終的隱藏單元響應(yīng);Wix表示當前輸入與輸入門之間節(jié)點連接的權(quán)重;其他權(quán)重參數(shù)W意義類似;b代表內(nèi)部各模塊的偏置值;⊙代表向量內(nèi)積操作。
本文實驗數(shù)據(jù)采集自國內(nèi)某民航機場,人工將語音數(shù)據(jù)按管制員和飛行員語音分開,并提供相應(yīng)的漢字標注。由于空管用語的專業(yè)性給數(shù)據(jù)標注帶來了極大困難,截止目前本文研究采用的原始訓(xùn)練樣本語音數(shù)據(jù)(原始數(shù)據(jù)集)共10 h。其中,訓(xùn)練集、驗證集和測試集按90%、5%、5%進行隨機分配。本次實驗共涉及漢字詞匯539 個。模型訓(xùn)練環(huán)境的操作系統(tǒng)為Ubuntu16.04,處理器為2×Intel(R) Core(TM) i7-6800K @ 3.4GHz,內(nèi) 存 為4×16 GB,GPU 為2×NVIDIA GTX1080(2× 8GB 顯存)。本文基于開源框架Keras 實現(xiàn)深度學(xué)習模型,程序開發(fā)語言為Python。實驗設(shè)計包含以下部分。
1)通過實驗驗證不同數(shù)量的LSTM 層對識別效果的影響。
2)驗證數(shù)據(jù)擴充對識別效果的影響。
3)與傳統(tǒng)語音識別方法對比,分析識別性能。
本文分別從識別精度和效率2 方面衡量模型的性能。
1)用WER(word error rate)作為模型精度的評價因子,其定義為通過最少次數(shù)的插入(I)、刪除(D)和替換(S)詞語使識別出來的句子和真實值(truth)完全一樣,其計算公式如(4)所示。len 是句子文本字符串的長度。WER 越小,說明模型的識別精度更高。
2)用RTF(real-time factor)衡量模型的識別效率,其計算公式如(5)所示。其中Tdur和Tasr分別為語音時長及其識別所需要的時間,單位為s。RTF越小,說明模型的識別速度更快。
由于訓(xùn)練樣本的平均幀數(shù)為700 左右,通過CNN 維度壓縮,本文所有的LSTM 層均設(shè)計為360 個隱藏節(jié)點。其仿真實驗結(jié)果如表2 所示。
針對已有訓(xùn)練數(shù)據(jù)集,在仿真實驗過程中,本文做了5 組對比實驗,包含3~7 個LSTM 層。表2中對應(yīng)的WER 為多次實驗所得的最好識別結(jié)果。對比訓(xùn)練時間是為了衡量增加網(wǎng)絡(luò)層數(shù)對整個模型造成的附加影響,其值并非嚴格的精確值。由表2 可知,增加LSTM 網(wǎng)絡(luò)層數(shù)可在一定程度內(nèi)提升語音識別效果,WER 由17.69 %降低到10.60 %。在LSTM 層數(shù)從3 增加至5 時,WER 降低5 %左右;從5 增加到7 時,WER 降低2 %左右,且消耗的顯存和訓(xùn)練時間增加較多。此外,RTF 隨著LSTM 層數(shù)的增加而逐漸增大。
表2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)驗證實驗結(jié)果
本文對原始訓(xùn)練樣本中的部分樣本隨機進行了加噪和調(diào)整語速的處理,以擴充數(shù)據(jù)集,最終獲得了20 h 的訓(xùn)練數(shù)據(jù),采用上文中7 個隱藏的LSTM層進行實驗,最終得到的WER 為9.49%。
為了進一步證明本文方法的性能,本文基于原始數(shù)據(jù)集和擴充數(shù)據(jù)集進行了一組對比實驗,對比本文算法與傳統(tǒng)的HMM/GMM 和HMM/DNN 模型的識別效果,其結(jié)果如表3 所示。
表3 語音識別對比實驗結(jié)果
從表3 可知,本文方法在識別效果上優(yōu)于傳統(tǒng)的HMM/GMM 和HMM/DNN 方法,但是在原始數(shù)據(jù)集和擴充數(shù)據(jù)集上的性能提升有所不同。數(shù)據(jù)集擴充給End-to-end 方法帶來的提升明顯比其他2 種方法更高,這印證了訓(xùn)練數(shù)據(jù)對深度學(xué)習模型的重要性。End-to-end 語音識別算法通過不斷地自學(xué)習以提升模型對數(shù)據(jù)分布的擬合能力,因此未來在提高數(shù)據(jù)集的基礎(chǔ)上,本文方法在空管語音識別上的性能將更加的優(yōu)異。此外,由于深度學(xué)習模型結(jié)構(gòu)的復(fù)雜性,其識別效率較傳統(tǒng)方法更低,但是,在當前服務(wù)器配置下,其RTF 能夠達到<1.0,可以部署到實時應(yīng)用。
本文在分析空管管制語音業(yè)務(wù)的基礎(chǔ)上,借鑒端到端語音識別模型已有的成果,設(shè)計了適合我國空管管制通話的語音識別算法。通過與其他傳統(tǒng)方法的識別結(jié)果比較,發(fā)現(xiàn)本文算法識別效果好。此外,本文的端到端方法極大地降低了語音識別技術(shù)對專家知識的依賴性,使得語音識別技術(shù)能夠更加容易的應(yīng)用到各個領(lǐng)域。在后續(xù)工作中,將進一步增加標注訓(xùn)練樣本數(shù)據(jù)量,同時不斷調(diào)整模型訓(xùn)練時的超參數(shù)以改進本文的模型識別結(jié)果。