劉遠(yuǎn)慶 郭曉靜 張海剛 楊金鋒
1(中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院 天津 300300) 2(深圳職業(yè)技術(shù)學(xué)院人工智能學(xué)院 廣東 深圳 518055)
陸空通話是飛行員與管制員在整個飛行過程中按照飛行程序進行交流、溝通的語言,具有很強的專業(yè)性和情境性。在陸空通話過程中,由于通話內(nèi)容不正確、通話語言模糊等原因造成陸空通話錯誤的情況時常發(fā)生[1-2]。而陸空通話錯誤增大了飛行事故發(fā)生的概率,所以正確使用陸空通話用語進行信息溝通,對航空器安全高效運行有著至關(guān)重要的作用。民航陸空通話特點如下:(1) 語言標(biāo)準(zhǔn)規(guī)范,如:“對方呼號-己方呼號-內(nèi)容”;(2) 詞義固定、單一,如:stand-飛機停機位、departure-離場;(3) 句式簡短、緊湊,如:Cleared(to) touch and go(省略不定式符號to)。近幾年,隨著神經(jīng)網(wǎng)絡(luò)再度興起,深度學(xué)習(xí)在語音識別領(lǐng)域得到成功應(yīng)用,語音識別性能也得到大幅提升。文獻[3-4]分別將深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)和雙向長短時記憶網(wǎng)絡(luò)(BiLSTM)用于解決日常對話的語音識別問題。將語音識別技術(shù)應(yīng)用到陸空通話領(lǐng)域不僅可以用于管制員與飛行員的訓(xùn)練,減少民航通話語義表達(dá)錯誤,還可以輔助管制員工作,提高工作效率。但是傳統(tǒng)語音識別的效果卻不盡人意,因此將深度學(xué)習(xí)應(yīng)用在民航陸空通話語音識別中以提升識別效果顯得尤為關(guān)鍵。
現(xiàn)在有很多語音識別技術(shù)已在民航陸空通話語音識別中應(yīng)用。例如:使用動態(tài)時間規(guī)整算法來實現(xiàn)陸空通話的語音識別[5];利用基于混合高斯-隱馬爾可夫模型進行英文陸空通話標(biāo)準(zhǔn)用語的關(guān)鍵詞識別[6];利用基于深度神經(jīng)網(wǎng)絡(luò)-隱馬爾可夫模型在專有的英文陸空通話語音數(shù)據(jù)庫上進行實驗,并使詞錯誤率下降到9.4%[7];將自動語音識別技術(shù)應(yīng)用到空中交通管制領(lǐng)域構(gòu)建的封閉式跑道運行預(yù)防裝置也取得一定成果[8]。文獻[9-10]在將語音識別技術(shù)應(yīng)用到民航陸空通話的基礎(chǔ)上,又加入了雷達(dá)信息進行輔助,不僅提高了空中交通管理的效率,而且減少了管制員的工作量和飛機的油耗。文獻[11]則使用迭代半監(jiān)督的方法在空中交通管制領(lǐng)域構(gòu)建語音識別系統(tǒng),該方法利用有限的轉(zhuǎn)錄數(shù)據(jù)和大量未轉(zhuǎn)錄數(shù)據(jù)進行模型訓(xùn)練,得到較好的效果。文獻[12]對比了不同的模型在陸空通話語音識別和呼號識別這兩個任務(wù)中的性能,其中使用隱馬爾可夫-多層感知機的模型效果最好,詞錯誤率降至7.62%。文獻[13]提出了基于雙向長短時記憶網(wǎng)絡(luò)-端到端的民航陸空通話語音識別方法,用于英文陸空通話的語音識別,使詞錯誤率降至5.53%。當(dāng)前大部分民航陸空通話語音識別都是針對單語進行的,但是在國內(nèi),一名管制員在工作期間會和不同的航班(國際、國內(nèi))進行交流,那么所用的語言就會涉及到英文和中文,所以有必要構(gòu)建一種跨語種民航陸空通話語音識別方法。針對于跨語種語音識別的研究方法總結(jié)如下:一種方法是利用語種識別系統(tǒng)[14]先對輸入的語音進行語種判別,之后根據(jù)語種判別結(jié)果選擇對應(yīng)的單語語音識別系統(tǒng)進行識別,但是其識別準(zhǔn)確率依賴于前端的語言識別的準(zhǔn)確率;另一種方法是建立多語言共享音素庫,構(gòu)建方法有很多,例如利用巴氏系數(shù)距離[15]和聲學(xué)似然[16]等。
本文將注意力集中在民航領(lǐng)域的跨語種(中文、英文)陸空通話語音識別上,根據(jù)中英文陸空通話語言特點,提出一種基于深度學(xué)習(xí)的跨語種民航陸空通話語音識別方法。在構(gòu)建聲學(xué)模型時,由于卷積的不變性[17]可以克服語音信號本身的多樣性,所以在DNN中引入卷積神經(jīng)網(wǎng)絡(luò)CNN構(gòu)成卷積深度神經(jīng)網(wǎng)絡(luò)CDNN,其中CNN主要對聲學(xué)特征進行加工和處理,使其能更好地被用于DNN的分類。最終,將卷積深度神經(jīng)網(wǎng)絡(luò)與隱馬爾可夫模型結(jié)合構(gòu)建共享隱層的跨語種聲學(xué)模型。本文利用中文(聲韻母音素標(biāo)注)和英文(CMU音素標(biāo)注)音素直接融合的方法構(gòu)建中英文混合語言模型;為了減少總的音素數(shù)量、降低識別復(fù)雜度,將基于卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University,CMU)標(biāo)準(zhǔn)音素表建立的英文音素映射為TIMIT標(biāo)準(zhǔn)音素,使它與中文音素進行融合重新構(gòu)建語言模型,同時在提取聲學(xué)特征時加入低幀率用于縮短訓(xùn)練解碼時間。實驗結(jié)果表明,基于CDNN-HMM聲學(xué)模型音素先映射再融合的方法得到的效果較好。在此基礎(chǔ)上,通過加入低幀率有效降低了訓(xùn)練解碼時間,而且使得詞錯誤率進一步下降。
通常情況下,語音識別都是基于時頻分析后的語音譜完成的,其中語音時頻譜是具有結(jié)構(gòu)特點的。要想提高語音識別率,就需要克服語音信號所面臨多樣性,包括說話人的多樣性(說話人自身、說話人間)、環(huán)境的多樣性等?;谝陨峡紤],本文將卷積神經(jīng)網(wǎng)絡(luò)(CNN)引入到深度神經(jīng)網(wǎng)絡(luò)(DNN)中共同構(gòu)成卷積深度神經(jīng)網(wǎng)絡(luò)(CDNN),其結(jié)構(gòu)如圖1所示,以此來建立中英文民航陸空通話聲學(xué)模型。CNN主要用來處理聲學(xué)特征,利用其在時間和空間上的平移不變性卷積來克服語音信號本身的多樣性。CNN在語音識別任務(wù)中可以使用一維模型或者二維模型,由于一維模型能很好地適應(yīng)語音的一維特性,而二維模型的網(wǎng)絡(luò)過于復(fù)雜,因此本文在構(gòu)建聲學(xué)模型時選取一維模型。DNN則是用來對音素進行分類,因為DNN能夠?qū)⑻卣饔成涞姜毩⒖臻g,所以DNN強大的分類能力能準(zhǔn)確將語音的聲學(xué)特征分類到相應(yīng)的HMM狀態(tài)。
圖1 CDNN結(jié)構(gòu)
CNN[18]拋開輸入、輸出層不談,其主體包括卷積層和池化(采樣)層,卷積層通過卷積核在時間軸上移動對輸入的語音信號進行聲學(xué)特征提取,這樣一方面可以適應(yīng)語音信號的時變的特點,另一方面保留了頻帶的相關(guān)性,對識別性能的提高有很大幫助。對給定一系列聲學(xué)特征值X,卷積層將X與k個濾波器{Wi}進行卷積,得到的激活特征映射:
Hi=sigmoid(Wi*X+bi)i=1,2,…,k
(1)
式中:符號*表示卷積運算;Wi表示權(quán)值矩陣;bi表示偏置參數(shù)。對于該模型中的所有卷積運算,卷積步幅選擇為1,最后得到的特征作為DNN的輸入向量。
池化層是對卷積層提取出的特征進行降維,一方面使特征圖變小,簡化網(wǎng)絡(luò)計算復(fù)雜度;另一方面進行特征壓縮,提取主要特征,減小過擬合,同時提高模型的容錯性。池化方法有最大池化和平均池化,本文選擇在語音識別中普遍使用的最大池化。
(2)
式中:σ(·)是sigmoid函數(shù)。以上元素是下一層l+1的輸入,觀測向量輸入到最底層l=0。
對于CD-DNN-HMM[21],頂層L是一個針對于每個上下文相關(guān)音素狀態(tài)的softmax函數(shù):
(3)
DNN可以使用預(yù)訓(xùn)練進行初始化,預(yù)訓(xùn)練是在受限玻爾茲曼機RBM[22]上使用對比散度算法進行初始化。同時也可以使用隨機初始化的方法,頂層權(quán)重通常是隨機初始化的,初始化完成后,使用反向傳播算法的微調(diào)過程來更新所有DNN參數(shù)。損失函數(shù)選擇交叉熵函數(shù),如式(4)所示,其中:q(t)為時刻t時的期望輸出。
(4)
訓(xùn)練中英文民航陸空通話混合聲學(xué)模型時,首先要對語音數(shù)據(jù)集進行一系列的處理,例如分幀加窗,它是將時變語音信號處理成短時平穩(wěn)信號,用于之后的特征提取。之所以這樣處理是因為語音信號是時變非平穩(wěn)信號,平穩(wěn)信號的相關(guān)的處理方法對于它并不適用。但是語音信號屬于短時平穩(wěn)信號,一般認(rèn)為10~30 ms內(nèi)語音信號的特性是基本不變的,或者變化很慢[23]。因此需要將語音信號切分為極短的片段,這些片段稱為語音幀,幀長一般為10~30 ms,本文最初幀長取25 ms,幀移為10 ms,從而有15 ms的重疊。通過這種方式來防止幀與幀之間丟失重要的信息。
分幀是利用一個窗函數(shù)來實現(xiàn)。為了減少信息的泄露,所以在加窗時選擇主瓣寬度窄、旁瓣衰減大的窗函數(shù)(漢明窗):
(5)
對于一段語音進行加窗操作時設(shè)置的參數(shù)包括幀長、幀移以及重疊時間,它們之間關(guān)系:重疊=幀長-幀移。為了縮短訓(xùn)練和解碼的時間,本文在提取聲學(xué)特征之前加入低幀率,原理如圖2所示。
圖2 低幀率原理圖
一幀的幀長25 ms,幀移10 ms,幀與幀之間有15 ms的重疊,然后再對每幀加窗處理。本文所講的低幀率就是在分幀時將幀長和幀移都延長,將幀長設(shè)置為30 ms、幀移15 ms,讓幀與幀之間仍有15 ms的重疊。
由上述可知,當(dāng)幀移取較大值時,幀數(shù)會減少,相應(yīng)的幀率降低,所以本文所講的低幀率就是通過增加幀移的值來減少幀數(shù),從而通過降低幀率來加快訓(xùn)練速度和解碼速度。
本文使用的聲學(xué)特征包括Filter-Bank(FBank)和梅爾倒譜系數(shù)(MFCC)。MFCC是在FBank的基礎(chǔ)上又做了一步離散余弦變換,對FBank進行去相關(guān)和壓縮處理。
CDNN聲學(xué)模型訓(xùn)練流程如圖3所示。首先用經(jīng)過倒譜均值歸一化(CMVN)處理的MFCC特征訓(xùn)練單音素模型,即標(biāo)簽到語音的映射,它是針對每個音素分別建立HMM;然后基于單音系統(tǒng)構(gòu)造三音素模型,并在此基礎(chǔ)上對特征進行線性判別分析(Linear Discriminant Analysis,LDA)、最大似然線性變換(Maximum Likelihood Linear Transform,MLLT)和說話人自適應(yīng)變換(Speaker Adaptation Transform,SAT);最終利用經(jīng)過變換的特征和GMM-HMM模型生成的狀態(tài)對齊訓(xùn)練CDNN。
圖3 CDNN聲學(xué)模型訓(xùn)練流程
訓(xùn)練CDNN-HMM之前首先需要用混合高斯-隱馬爾可夫模型(GMM-HMM)將各個狀態(tài)進行強制對齊,GMM-HMM的輸入為39維(標(biāo)準(zhǔn)的13維MFCC加上一階和二階差分參數(shù))聲學(xué)特征,在訓(xùn)練HMM模型的參數(shù)時,每次要求輸入到HMM中的數(shù)據(jù)是一個觀測值序列。此時每個狀態(tài)對應(yīng)的觀測值為39維的向量,因為向量中元素的取值是連續(xù)的,所以需要用多維密度函數(shù)來模擬。陸空通話語音識別任務(wù)中,用提前標(biāo)注好的訓(xùn)練樣本對每個音素建立一個HMM模型,建立模型時分別用EM算法和Baum-Welch算法訓(xùn)練出GMM-HMM的所有參數(shù),這些參數(shù)包括初始狀態(tài)的概率向量、狀態(tài)之間的轉(zhuǎn)移矩陣、每個狀態(tài)對應(yīng)的觀測矩陣。
基于GMM-HMM訓(xùn)練的CDNN-HMM聲學(xué)模型的輸入特征是40維FBank,相鄰的幀由11幀窗口(每側(cè)5個窗口)連接而成。為了便于CNN對聲學(xué)特征進行進一步的處理,本文將輸入特征變成一維向量,具體的步驟是將提取的聲學(xué)特征參數(shù)按照幀的順序排列(首尾相連),例如將11幀40維FBank首尾連接,構(gòu)成1×440的一維向量作為CNN的輸入。用于處理聲學(xué)特征的CNN包括兩個卷積層和一個池化層,兩個卷積層的卷積核大小分別為11×8和128×4,卷積步幅均為1;池化層池化大小、步幅均為3,最后輸出2 048維向量作為DNN的輸入。DNN的架構(gòu)由4個隱藏層組成,每個層由1 024個單元組成,輸出層由3 613個單元組成。DNN模型用交叉熵準(zhǔn)則進行訓(xùn)練,使用隨機梯度下降算法來執(zhí)行優(yōu)化,將最小批量處理大小設(shè)定為256幀,初始學(xué)習(xí)率設(shè)定為0.008。其框架如圖4所示。
圖4 CDNN-HMM框架
本文所有的實驗都是在Linux系統(tǒng)下安裝的Kaldi[24]語音識別平臺上完成的。硬件配置如下:CPU為Inter酷睿i7-5690八核處理器,主頻3.3 GHz,內(nèi)存32 GB,搭配顯卡GTX 1070。
語音識別的評價指標(biāo)常選用詞錯誤率(Word Error Rate,WER),為了使識別出來的詞序列和標(biāo)準(zhǔn)的詞序列之間保持一致,需要進行替換(Ci)、刪除(Cd)、插入(Cs)某些詞,將這些詞的總數(shù)除以標(biāo)準(zhǔn)詞序列中詞的總數(shù)C從而得到用百分比表示的詞錯誤率:
(6)
實驗所用的數(shù)據(jù)集是根據(jù)民航陸空通話標(biāo)準(zhǔn)建立的。該語料庫由空管專業(yè)人員與一線管制員共同錄制,包含飛行各個階段的民航陸空通話語音,并標(biāo)注出語音的文本序列和音素信息。
如表1所示,中英文民航陸空通話數(shù)據(jù)集共有音頻文件27 700條、57小時、說話人31名,其中:中文數(shù)據(jù)集包含13 400條(說話人21)音頻文件,27小時;英文數(shù)據(jù)集包含14 300條(說話人11)音頻文件,30小時。此數(shù)據(jù)集包括訓(xùn)練集、測試集、開發(fā)集,分別占總數(shù)據(jù)集的80%、13%、7%,并且各個數(shù)據(jù)集中均包含男性和女性錄制的陸空通話音頻文件。
表1 中英文陸空通話數(shù)據(jù)集
卷積神經(jīng)網(wǎng)絡(luò)在圖像處理任務(wù)中表現(xiàn)十分出色,但是將其應(yīng)用到語音識別任務(wù)中就需要根據(jù)實際情況認(rèn)真考慮分析。針對語音識別的卷積神經(jīng)網(wǎng)絡(luò)可以選擇一維卷積和二維卷積,為了驗證哪種卷積更適合于民航陸空通話語音識別任務(wù),本文進行了對比實驗。實驗分別使用相同層數(shù)(卷積層+池化層+卷積層)的一維卷積(1D-CNN)和二維卷積(2D-CNN)對上文提到的民航陸空通話語音的聲學(xué)特征進行處理,處理后的聲學(xué)特征在相同配置的深度神經(jīng)網(wǎng)絡(luò)上進行訓(xùn)練識別,識別結(jié)果如表2所示。
表2 兩種卷積神經(jīng)網(wǎng)絡(luò)對比
可以看出,一維卷積神經(jīng)網(wǎng)絡(luò)比二維卷積神經(jīng)網(wǎng)絡(luò)在民航陸空通話語音識別任務(wù)中表現(xiàn)要好,這主要因為其在時間軸上對語音信號進行卷積時保留了語音信號的時變性和頻帶的相關(guān)性。而在訓(xùn)練解碼耗時方面,由于一維卷積神經(jīng)網(wǎng)絡(luò)的模型復(fù)雜程度較低,因此其表現(xiàn)明顯好于二維卷積。所以在訓(xùn)練CDNN時,選擇1D-CNN來對聲學(xué)特征進行處理,然后輸入到DNN網(wǎng)絡(luò)中進行訓(xùn)練。
本文所用語言模型是3-Gram中英文陸空通話語言模型,此語言模型是使用SRILM工具生成統(tǒng)計語言模型。訓(xùn)練步驟:首先將已有的中英文陸空通話文本語料讀入到SRILM中生成n-gram計數(shù)文件,然后用生成的計數(shù)文件訓(xùn)練語言模型,語言模型為ARPA格式文件,其中包括一、二、三元詞的總數(shù)及其出現(xiàn)的概率。用于中英文陸空通話語音識別的字典中共有1 118個詞,包含中文詞匯467個、英文詞匯653個,每個詞都是用對應(yīng)語種的音素進行標(biāo)注。
標(biāo)注的目的就是為了將由句子分成的各個詞進一步劃分為更小的狀態(tài)(音素),這樣可以在音素級別對語音進行識別。對于中文而言,通常采用聲母、韻母以及音調(diào)對涉及到的字詞進行標(biāo)注。對于英文的音素標(biāo)注,則可以選擇CMU或TIMIT兩種標(biāo)準(zhǔn)音素表進行標(biāo)注。針對民航陸空通話,初步嘗試中文應(yīng)用聲韻母標(biāo)注,英文使用CMU進行標(biāo)注,然后將二者進行融合共同構(gòu)建混合語言模型,用于最終的中英文民航陸空通話語音識別,結(jié)果如表3所示。
表3 CMU標(biāo)注中英文語音識別結(jié)果
可以看出,考慮上下文信息的三音素混合高斯隱馬爾可夫模型(TRI-GMM-HMM)比單音素混合高斯隱馬爾可夫模型(MONO-GMM-HMM)的詞錯誤率減少了7.2百分點;從實驗結(jié)果可知擅長對時序序列建模的長短時記憶網(wǎng)絡(luò)(LSTM)在陸空通話領(lǐng)域表現(xiàn)并不突出,主要是因為陸空通話的特殊應(yīng)用場合要求對話盡可能簡短、緊湊,這就使得LSTM的優(yōu)勢發(fā)揮不了很大的作用;加入卷積的深度神經(jīng)網(wǎng)絡(luò)模型(CDNN-HMM)詞錯誤率進一步降低了2.11百分點,而且比不加卷積的深度神經(jīng)網(wǎng)絡(luò)模型(DNN-HMM)在識別性能上有了進一步提高。
在此基礎(chǔ)上,將英文采用的CMU標(biāo)注映射為TIMIT進行標(biāo)注,映射方法如圖5所示,CMU標(biāo)準(zhǔn)音素表和TIMIT標(biāo)準(zhǔn)音素表中對應(yīng)英文的音標(biāo)相同,但是表現(xiàn)形式不同,TIMIT標(biāo)準(zhǔn)音素表的形式與中文標(biāo)注的聲韻母比較相近,所以融合之后比之前音素的個數(shù)少了17個。
圖5 CMU到TIMIT音素映射過程
實驗結(jié)果如表4所示。在使用TIMIT標(biāo)準(zhǔn)進行標(biāo)注時,由于MONO-GMM-HMM模型只考慮單個音素,沒有考慮協(xié)同發(fā)音效應(yīng)即上下文音素會對當(dāng)前的中心音素發(fā)音有影響,所以效果提升不明顯。而TRI-GMM-HMM模型、DNN-HMM模型和CDNN-HMM模型的識別效果均比使用CMU標(biāo)注時的效果好。由CMU映射到TIMIT之后,再與中文音素進行融合重構(gòu)語言模型的識別方法,音素數(shù)量的減少使得音素彼此之間的影響降低,識別解碼復(fù)雜程度降低,詞錯誤率也有所下降。
表4 TIMIT標(biāo)注中英文語音識別結(jié)果
在聲學(xué)模型的訓(xùn)練過程中,將本文提出的低幀率加入其中,得到的實驗結(jié)果如表5所示。
表5 低幀率(LFR)實驗結(jié)果
可以看出,加入LFR以后,相似幀數(shù)量減少,使得不同音素對應(yīng)幀之間的區(qū)分性增大,從而減小了計算量,進一步提高了識別性能。除此之外,LFR也縮短了訓(xùn)練和解碼的時間。
本文將基于CDNN模型的實驗結(jié)果進行了一個簡單的對比,可以明顯看出用TIMIT標(biāo)注的識別結(jié)果要比CMU標(biāo)注識別的結(jié)果好;而加入LFR后,TIMIT標(biāo)注的效果依然表現(xiàn)良好,不過在耗時方面稍顯遜色。但是從整體上看,加入LFR確實將訓(xùn)練解碼時間縮小,而且性能也有所提升。
本文根據(jù)民航中英文陸空通話語言特點,提出了基于卷積深度神經(jīng)網(wǎng)絡(luò)模型的跨語種陸空通話語音識別方法。對不同卷積模型的實驗結(jié)果分析發(fā)現(xiàn),一維卷積模型更適合陸空通話語音識別任務(wù),加入卷積的深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型(CDNN)比單純的DNN-HMM模型性能更好。從實驗結(jié)果來看,在已有的中英文民航陸空通話語料庫上,采取不同的標(biāo)注形式(CMU/TIMIT)構(gòu)建的語言模型對識別性能有影響,TIMIT標(biāo)注形式適用于跨語種民航陸空通話語音識別。LFR思想的加入,不僅有效地降低了詞錯誤率,而且也縮短了模型訓(xùn)練解碼的時間。最終使用CDNN-HMM模型,結(jié)合詞典以及語言模型實現(xiàn)了跨語種民航陸空通話語音識別,將詞錯誤率降至4.28%。