張 威 翟明浩 黃子龍 李 巍 曹 毅
(1 江南大學機械工程學院 無錫 214122)
(2 蘇州工業職業技術學院 蘇州 215104)
自動語音識別(Automatic speech recognition,ASR)技術是人機交互的一項關鍵技術,近年來,基于深度學習的語音識別技術取得了跨越式的發展[1-2],在語音搜索、個人數碼助理及車載娛樂系統[3]等領域廣泛應用。迄今為止,已有不少旨在提高語音識別聲學模型準確率的方法,上述方法大致可概括為2 類:(1)深度神經網絡-隱馬爾科夫模型(Deep neural networks-hidden Markov model,DNN-HMM)聲學模型[4];(2)端到端(End-to-end)語音識別聲學模型[5]。
DNN-HMM是對高斯混合模型-隱馬爾科夫模型(Gaussian mixture model-hidden Markov model,GMM-HMM)的改進,由DNN代替GMM來描述語音聲學特征的概率分布,彌補了GMM 對語音特征建模能力不足的缺點[6]。Li 等[7]使用DNN-HMM替代GMM-HMM使得語音識別識別性能得到顯著的提升;Peddinti 等[8]提出了一種結合時延神經網絡(Time delay neural network,TDNN)與長短時記憶網絡(Long short-term memory,LSTM)聲學模型,其可顯著提高聲學模型的識別準確率。
然而,訓練一個DNN-HMM 系統過程尤為復雜,并且模型的優劣很大程度上依賴人為經驗[9]。相較于訓練上述系統,端到端語音識別系統的訓練過程非常簡單。目前,端到端語音識別系統主要有3 種:連接時序分類(Connectionist temporal classification,CTC)模型[10]、循環神經網絡轉換機制(Recurrent neural network transducer,RNN Transducer)[11]以及基于注意力機制(Attentionbased)模型[12]。CTC 由于其建模過程簡單被廣泛關注。于重重等[13]基于BLSTM(Bidirectional long short-term memory)-CTC 對瀕危語音識別進行研究,相較于混合系統取得了較好的實驗結果;姚煜等[14]基于BLSTM-CTC-WFST(Weighted finite-state transducer)構建中文語音識別系統,明顯降低了識別錯誤率。但上述聲學模型多使用RNN網絡結構,該結構參數繁多且容易出現梯度問題,卷積神經網絡(Convolutional neural network,CNN)由于權值共享、局部連接以及池化等操作[15],有效地彌補了RNN 的缺點,使其區別于DNN、RNN等網絡架構成為神經網絡的一個重要分支,并在圖像識別[16-18]、視頻動作識別[19]等領域取得到顯著成功。Abdel 等[20]首次結合CNN 與HMM,構建CNN-HMM 混合系統取得了開創性的進展;Sainath 等[21]采用深度卷積神經網絡(Deep convolutional neural networks,DCNN)應用于聲學模型并取得顯著成功;Zhang 等[22]結合DCNN-CTC構建了端到端語音識別,取得了相對較好的結果;Hu 等[23]提出SENet (Squeeze-and-excitation networks)網絡結構,對DCNN 結構提取的特征權值進行重標定,進而提高網絡性能。
綜上所述,本文首先在深入研究DCNN 網絡的基礎上,結合CTC 損失函數,構建DCNN-CTC聲學模型。然后,在上述模型基礎上對DCNN 模型在寬度上進行增加,從而提出多路卷積神經網絡(Multipath convolutional neural network,MCNN)-CTC聲學模型。最后,綜合考慮SENet與MCNN網絡優勢構建深度SE-MCNN-CTC 語音識別聲學模型,并通過實際數據集對上述聲學模型有效性進行驗證,模型最終錯誤率降至22.21%。
CNN 主要包括卷積層、池化層以及全連接層,層與層之間通過局部連接、權值共享操作使得CNN參數相較于DNN 以及RNN 網絡架構得到極大的減少,并在一定程度上可以避免梯度問題[16]。
圖1給出了卷積神經網絡用于語音識別聲學模型建模時,卷積層與池化層的結構圖,其中卷積層通過卷積核對特征局部進行加權計算,并且不斷移動卷積窗口得到不同位置的特征;池化層對前一層提取的特征進行降采樣,每一個特征圖與相鄰前一層的卷積層特征圖唯一對應。池化層旨在通過降采樣操作得到特征圖空間不變性特征,同時降低網絡的參數與計算量[15],相應的計算如式(1)和式(2)所示:


圖1 卷積神經網絡結構圖Fig.1 The structure of convolutional neural networks
CTC 是由Graves 等[10-11]提出的一種時序分類方法。CTC 與傳統的基于DNN-HMM 聲學模型不同,其不需要在時間維度上幀級別對齊標簽,輸入語音特征即可預測結果,通過訓練降低CTC損失值進而降低預測值與真實標簽差異,該過程極大地簡化了聲學模型的訓練流程。必須指出的是,CTC 額外引入“blank”標簽對靜音、字間重疊等建模,簡化建模過程。因此CTC 尤其適合序列建模,其模型結構如圖2所示。

圖2 DCNN-CTC 聲學模型結構圖Fig.2 The structure of DCNN-CTC
設給定序列X= (x1,x2,···,xT)表示輸入T幀語音特征,經過神經網絡輸出的每幀的預測為Y= (y1,y2,···,yT′),由于CNN 中池化函數的存在,使得序列的長度成倍的變短T=nT′,n為經過池化計算后特征圖減小的倍數,其中yi= (y1I,y2i,···,yki,···,ymi),m為建模單元總數,yki為第i幀的第k個建模單元位置。則給定輸入序列X,t時刻第k個建模單元由神經網絡softmax 函數輸出的后驗概率為

由式(3),依次得到T′幀中對應的建模單元的概率分布:

式(4)中,π為生成預測T′序列的路徑,通過累積得到對應路徑π的概率;由于π與y為多對一關系,ψ為路徑與預測值轉換函數,由式(5)得到路徑對應預測值序列的概率:

式(6)通過給定真實標簽y*,得到最終CTC 損失函數,通過訓練不斷降低CTC損失值使得預測結果逐步朝著真實標簽逼近:

目前CTC 解碼主要有三種:最大路徑解碼、前綴束解碼以及束解碼[10]。最大路徑解碼旨在尋找每個概率最大的前z(z≤m,m為建模單元個數)條路徑對應的標簽,無需字典、語言模型等先驗知識,解碼過程極其簡單,式(7)、式(8)代表其計算過程,y′為最終的解碼結果:

近些年,卷積神經網絡大多在深度方向對網絡進行優化,“串聯式”連接所有層,通過提取更高維、抽象的特征以達到更佳的分類性能[16-18]。然而,對于更寬CNN研究卻相對匱乏。因此,本文在上述研究的基礎上對DCNN寬度上進行深入研究,進而提出MCNN 網絡結構,即通過“并聯”方式將網絡進行融合構建既深又寬的網絡,最終結合CTC目標函數構建MCNN-CTC聲學模型,其結構如圖3所示。

圖3 多路卷積神經網絡語音識別聲學模型結構圖Fig.3 Acoustic model structure diagram of speech recognition based on multipaths convolutional neural network
傳統的深度卷積神經網絡僅在單條分支上提取語音序列中代表性特征[24],由于語音序列的多樣性,造成DCNN 在提取特征時遺漏重要特征,從而降低整體的識別準確率。為解決上述問題,本文提出了多路卷積神經網絡,即采用3 條不同的分支分別提取語音序列特征,彌補了單條分支提取特征的不足,降低了由于特征缺乏對模型識別率的影響。最終,采用反向傳播(Back propagation,BP)算法對模型中可訓練參數進行調整[15]。
MCNN 先提取語音特征,分別將其無差別的輸入到3 條不同分支的DCNN 中,既能在深度方向提取網絡的重要特征,又可在寬度方向通過不同的卷積核提取具有代表性的語音特征,加強模型的非線性化程度,從而使得網絡具有更優越的擬合性能[15,24],最后對提取的高維特征進行拼接,得到全部的特征序列:

式(9)中,hli、hlj、hlk分別代表3條不同支路的第i、j、k張特征圖,Concat(·)函數表示拼接特征圖得到第l層的總特征圖Hl。
圖4中,Xi表示對應層的輸入特征矩陣,Xo表示經過SENet 模型輸出的特征矩陣。H、W、C分別表示特征矩陣的三維信息;Fsq(·)、Fex(·,Wi)、Fscale(·,)分別代表SENet內部變換,計算公式如下:

其中,uc表示經過卷積變換后第c個特征;zc表示經過全局平均池化變換后的第c個特征映射;σ(·)表示sigmoid 激活函數;sc表示經過全連接之后相應特征圖對應的權值;W1、W2分別代表兩層全連接層的權值矩陣,其中W1∈Rc/γ×c、W2∈Rc×c/γ,其中γ為第一層全連接層的維度變換率;通過上述計算,最終自適應得到特征圖對應的權重[25]。
綜合利用SENet與MCNN各自的優勢,構建了SE-MCNN-CTC 模型,使用SENet 模型對MCNN提取的特征進行概率重標定,在合適的參數范圍內減少MCNN模型特征冗余現象。SE-MCNN模型如圖5所示。

圖4 SENet 模型結構圖Fig.4 The structure of SENet

圖5 SE-MCNN-CTC 聲學模型結構圖Fig.5 Structure diagram of acoustic model for SE-MCNN-CTC
值得指出的是,SENet模型與MCNN模型結合主要有三種優點:(1)使得網絡具有更強的非線性,可以更好地擬合數據;(2)通過巧妙地設置全連接層數中的維度變換率,在提升模型的擬合能力的同時,極大地減小了SENet 模型中全連接層神經元數目;(3)通過對特征圖的概率重標定,最大程度地利用特征圖的信息,減小對冗余特征的依賴[26]。
本文使用的數據集為清華大學開源的約30 h數據集(Thchs30)和北京沖浪科技公司開源的約150 h 中文語音數據集(ST-CMDS)。其中Thchs30數據集中訓練、驗證集以及測試集分別為10000句、893 句以及2495 句;ST-CMDS 語音數據集共102600句,在訓練階段采用文獻[27] 對數據進行劃分;兩種數據集訓練集、驗證集以及測試集之間均無交疊。
實驗所用硬件配置為I7-8700K 處理器,32 GB運行內存,GPU 顯卡為NVIDIA GTX-1080Ti;軟件運行環境為64 位Ubuntu16.04 操作系統下搭建的Keras+Tensorflow 深度學習框架。
該文以幀長25 ms、幀移為10 ms 提取語音原始信息。其中,Thchs30數據集提取語譜圖(spectrogram)為輸入特征,共200 維;ST-CMDS 數據集以FBank(Filter Bank)作為語音的輸入特征,加上其一階、二階差分統計量,前后拼接一幀[28],共360維。在訓練階段選取適應性動量估計算法(Adaptive moment estimation,Adam)作為模型的優化器,該算法不僅能夠對不同參數計算適應性學習率,而且能夠加速網絡收斂速度[29];在每層卷積層之后添加批量歸一化(Batch normalization,BN)對網絡中的權重進行自適應調整,以此提高網絡的訓練速度和泛化能力[30];在池化層之后使用丟棄法(Dropout)[31]以此有效地降低網絡的過擬合風險,初始學習率設置為1×10-3;在微調階段,以隨機梯度下降算法(Stochastic gradient descent,SGD)作為模型的優化器,通過設置更小的學習率使得網絡在后期優化更為穩定,微調學習率設置為1×10-5。
表1是對圖2、圖4所示的聲學模型參數進行配置,其中[3×3×32k]×m表示使用3×3 卷積核初始數目為32 個,每經過一個池化層,卷積核數目成倍增加;對于偶數層卷積層,則m= 2,奇數層則m= 3;512-1422 表示最后全連接層神經元數目依次為512、1422。
MCNN網絡由于寬度增加而造成參數繁多,為此,將MCNN 每層的卷積核數目相較于DCNN 減小一半。最終實驗表明:上述參數設置策略不但沒有造成參數繁多難以訓練現象,而且使得該配置的網絡在參數減小的情況下,MCNN 模型的泛化性均無影響,所設計的聲學模型如表1所示。

表1 卷積神經網絡配置參數信息Table1 Convolutional neural network configuration parameter information
為驗證提出的MCNN-CTC 以及SE-MCNNCTC 聲學模型的性能,在Thchs30 以及ST-CMDS數據集上對上述模型進行實驗。
3.4.1 Thchs30 實驗結果分析
首先以音節為建模單元在Thchs30 數據集進行聲學模型實驗,參考文獻[32]構建神經網絡模型,然后采用7 層卷積層,并聯合CTC 損失函數,構建了DCNN(7)-CTC 聲學模型。在上述聲學模型基礎上,增加卷積層數目到8 層和9 層,研究不同卷積層數目對聲學模型的影響。最終,DCNN-CTC聲學模型結構如圖2所示,其實驗結果如表2所示。
表2中,對比GMM-HMM 以及DNN-HMM 的實驗結果,其中建模單元為音素,最終得到測試集字錯誤率;本文建模單元均為音節,最終得到音節錯誤率;DCNN(7)-CTC 表示聲學模型中卷積層數目為7 層,表2不僅驗證了DCNN-CTC 用于聲學建模的有效性,而且可得出隨著CNN 深度增加,錯誤率在不斷降低,最終DCNN-CTC錯誤率降至25.42%。

表2 DCNN-CTC 聲學模型實驗結果Table2 The experimental results of DCNN-CTC acoustic model

表3 MCNN-CTC 與SE-MCNN-CTC 聲學模型實驗結果Table3 The experimental results of MCNN-CTC and SE-MCNN-CTC acoustic model
表3列出了本文提出的兩種聲學模型實驗結果,其中MCNN(7)-CTC 表示MCNN 層數為7 層;SENet 模型在7 層MCNN 模型上進行改進,其中SE-MCNN(7)-CTC 訓練、微調訓練曲線如圖6(a)與圖6(b)所示。

圖6 Thchs30 實驗損失值曲線圖Fig.6 The loss curve of Thchs30 dataset
綜上所述:(1)MCNN(7)-CTC、MCNN(8)-CTC 以及MCNN(9)-CTC 相較于DCNN(7)-CTC、DCNN(8)-CTC、DCNN(9)-CTC 音節錯誤率分別相對降低12.08%、3.16%以及1.89%,由此可以得出MCNN-CTC 聲學模型相較于DCNN-CTC 聲學模型效果更佳;(2)SE-MCNN(7)-CTC 聲學模型參數僅相對增加1.04%,最終識別結果相較于DCNN(7)-CTC 錯誤率相對降低13.51%,融入SENet 模型的聲學模型識別效果更強。
3.4.2 ST-CMDS 實驗結果分析
為 驗 證MCNN-CTC 以 及SE-MCNN-CTC 聲學模型的泛化能力,選取Thchs30 數據集 中DCNN(7)-CTC、 MCNN(7)-CTC以及SEMCNN(7)-CTC 三個不同的聲學模型在ST-CMDS數據集上進一步實驗。圖7(a)和圖7(b)分別表示聲學模型訓練與微調的損失值變化曲線。可以看出,隨著訓練數據量的增加,聲學模型逐漸趨于收斂,最終損失值減小到固定的范圍內。DCNN-CTC損失值減小至19 左右,MCNN-CTC 可降至16 附近,最終改進后的SE-MCNN-CTC 可以減小至14以下,證明SE-MCNN-CTC 較傳統的DCNN-CTC及MCNN-CTC能更好地訓練深層模型以及上述模型能夠訓練聲學模型的有效性。

圖7 ST-CMDS 實驗損失值曲線圖Fig.7 The loss curve of ST-CMDS dataset
由表4可得出,MCNN-CTC 相較于DCNNCTC 參數量得到了極大的降低,可訓練參數相對降低13.60%,在驗證集和測試集錯誤率分別相對降低3.94%、3.49%;SE-MCNN-CTC 相較于DCNN-CTC 在驗證集和測試集錯誤率分別有4.11%、6.68%的相對降低,錯誤率最低。

表4 ST-CMDS 數據集的實驗結果Table4 The experimental results of STCMDS dataset
本文提出了MCNN-CTC 和SE-MCNN-CTC兩種端到端聲學模型,并且通過大量的實驗驗證了聲學模型的錯誤率以及泛化性能,得出結論如下:
(1)以音節為建模單元構建了DCNN-CTC 聲學模型,驗證了其對于聲學建模的優越性;
(2)提出了MCNN-CTC 聲學模型,不但在識別錯誤率相較于DCNN-CTC 聲學模型取得了較大的降低,而且具有較強的泛化性能;
(3)融合了SENet 與MCNN 模型,提出了SEMCNN-CTC 聲學模型,通過特征通道自適應重標定既減小特征冗余的影響,又實現了聲學模型性能的進一步提升。