沈東風 張二華
(南京理工大學計算機科學與工程學院 南京 210094)
語言是人類最重要的信息交流工具,是人們進行溝通、表達的主要方式。語音是語言的外部形式,也是最直接記錄人的思維活動的符號體系。隨著科學技術的不斷發展,語音交流已經不再局限于人與人之間,人與機器之間同樣需要信息的交流。語音識別技術能夠將人類的聲音信號轉化為文字或指令,這樣一來,人類就能輕松地和機器進行語音交流。
語音識別技術最早誕生于20 世紀50 年代,早期的研究主要是簡單的孤立詞語音識別系統。20世紀80年代,GMM-HMM[1]模型的出現促進了語音識別從孤立詞識別到連續語音識別的發展,并且,GMM-HMM 語音識別框架成為了語音識別系統的主導框架。
進入21 世紀后,基于GMM-HMM 的語音識別系統框架已經趨于完善,但是在將語音識別從標準的朗讀轉向日常交流時,由于字和字之間的間隔時間短、連續語音的相互影響、無法準確切分等問題,識別率大幅下降,實用效果受到很大影響,語音識別研究進入瓶頸期。2006 年,隨著深度置信網絡(Deep Belief Network,DBN)[2]的提出,深度學習的崛起突破了這一瓶頸。經過幾年的研究和探索,卷積神經網絡(Convolutional Neural Networks,CNN)和循環神經網絡等在語音識別中取得了顯著效果[3~4]。
2006 年,深度學習理論在機器學習中的成功應用引起了人們的極大關注,隨后,機器學習領域的研究熱點轉向了深度學習。深度學習的歷史可以追溯到19 世紀40 年代,深度學習的概念來源于人工神經網絡(Artificial Neural Network,ANN)[5]。它從信息處理角度對人類大腦的神經元網絡進行抽象,從而達到模擬人腦的認知和學習能力的目的。人工神經網絡經歷了三次發展浪潮[6]。
20世紀40~60年代,深度學習的雛形出現在控制論中。1958 年,Rosenblatt 提出了感知機模型(perceptron),掀起了第一次人工神經網絡研究的熱潮。感知機是第一代神經網絡,但是當時缺少好的學習算法用于訓練多層感知機(Multi-Layer Per?ceptron,MLP)[7],導致第一代神經網絡的研究走向低谷。
20世紀80~90年代,人工神經網絡表現為聯結主義,它的核心思想是模擬生物的神經系統,通過將大量的簡單計算單元連接在一起從而實現智能行為。這一階段,誤差反向傳播算法(Back Propa?gation,BP)[8]被成功應用于訓練MLP。但是經過一段時間的研究,研究人員發現借助BP算法,MLP的訓練也非常困難,性能較差,神經網絡進入第二次衰退,并一直持續到2006年。
2006 年,Hinton 等學者提出的DBN 是一種無監督的概率生成模型,通過逐層訓練受限波爾茲曼機(Restricted Boltzmann Machine,RBN)[9]得到。對于訓練好的DBN,添加一個和目標相關的輸出層就可以構成一個深度神經網絡(Deep Neural Network,DNN)。基于DBN 的初始化使得DNN 的訓練優化變得容易,深層結構的模型優勢開始展現,機器學習領域又一次掀起了研究熱潮。
循 環 神 經 網 絡(RNN)[10]是Jordan,Pineda.Williams,Elman 等于20 世紀80 年代末提出的一種神經網絡結構模型,它是一種節點定向連接成環的人工神經網絡。RNN 之所以稱為循環神經網絡,指一個序列當前的輸出與前面的輸出有關,具體表現為網絡會對前面的信息進行記憶并應用于當前輸出的計算中。以前,無論是ANN,還是CNN,隱藏層之間的節點是無連接的,而RNN 隱藏層之間的節點是有連接的,隱藏層的輸入不僅包括輸入層的輸入,還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。

圖1 RNN結構
圖1 展示的是RNN 的結構,圖中X 表示輸入的向量,S 為隱藏層的值,O 表示輸出向量,U 表示輸入層到隱藏層的權重矩陣,V 表示隱藏層到輸出層的權重矩陣,W 是隱藏層與上一層的權重矩陣。如果沒有W,那么該網絡結構就變成了最普通的全連接神經網絡。將圖1的RNN結構按照時間線展開,得到如圖2所示的結構。

圖2 RNN時間線展開圖
由圖2 可知,RNN 在t時刻接收到輸入Xt后,得到隱藏層的值St,輸出層的值Ot,而隱藏層的值St不僅取決于當前的輸入Xt,還取決于上一隱藏層St-1的值,計算公式如式(1)和式(2)所示。其中,soft?max 和TanHyperbolic(tanh)是激活函數,softmax 將多個神經元的輸出,映射到(0,1)區間內,可以看成是當前輸出是屬于各個分類的概率,主要用于神經網絡最后一層,作為輸出層進行分類,tanh 常用于隱層神經元輸出,加入非線性因素,提高神經網絡對模型的表達能力。

在RNN 的訓練過程中,如果要預測t 時刻的輸出,首先利用上一時刻(t-1)的記憶和當前時刻的輸入,得到t 時刻的記憶,然后利用當前時刻的記憶,通過softmax分類器輸出每個詞出現的概率。
RNN 由于其特有的記憶性,能夠利用上文的信息輔助進行語音識別,進一步提高語音識別的準確率。但是RNN 與其他類型的神經網絡一樣還面臨梯度消失的問題,只不過這種消失問題表現在時間軸上,即如果輸入序列的長度很長,將很難進行有效的梯度更新,也就是對長度的依賴。為解決該問題,先后出現了一系列有效的處理方案,如LSTM等[11]。
長短期記憶網絡(Long Short Time Memory,LSTM)[12]由Schmidhuber 等人于1997 年提出,這是一種時間遞歸神經網絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件,能夠有效解決RNN 的長度依賴問題。該模型中,常規的神經元被存儲單元替代,每個存儲單元都增加了一個細胞狀態,細胞狀態是LSTM 的關鍵,它類似于一條傳送帶,直接在整個鏈上運行,進行線性交互。標準RNN 每一時刻的計算節點只包含一個tanh 函數,而LSTM 中的重復模塊包含四個相互作用的激活函數,如圖3所示。

圖3 LSTM的存儲單元
圖3 展示了3 個相連的存儲單元,以中間的存儲單元為例,三條虛線指示的就是存儲單元中負責向單元移除或添加信息的三個門限,從左至右分別是遺忘門、輸入門和輸出門,門限由sigmoid 激活函數和逐點乘法運算組成,LSTM 的工作依靠這三個門來實現。LSTM 的核心是細胞狀態,也就是位于圖3 中上方,貫穿整個圖的水平線,它表示了從t-1狀態到t狀態,再到t+1狀態的記憶信息更新和傳遞。
以t-1 狀態到t 狀態為例,正向傳遞的第一步是遺忘門限層,它決定了上一時刻的值有多少被保留下來。計算如式(3)所示,其中ft是遺忘門,Whf是遺忘門與前一單元隱含層輸出之間的權重矩陣,Wxf是遺忘門與當前輸入之間的權重矩陣,ht-1是上一個時間節點隱含層的輸出,xt是t 時刻輸入層的輸入,bf是遺忘門的偏移值。

正向傳遞第二步包括兩個部分,分別是生成臨時狀態和更新原來狀態,計算公式如式(4)、式(5)和式(6)所示。其中it是輸入門,控制當前輸入有多少能進入記憶單元,Whi是輸入門與前一單元隱含層輸出之間的權重矩陣,Wxi是輸入門與當前輸入之間的權重矩陣,bi為輸入門的偏移值是臨時狀態,包含進入記憶單元的候選值,Wc和bc分別為臨時狀態的權重矩陣和偏移值;Ct是更新后的狀態。

正向傳遞第三步是輸出,計算公式如式(7)和式(8)所示。其中ot是輸出門,控制記憶單元中輸出的記憶值所占比例,Who是輸出門與前一單元隱含層輸出之間的權重矩陣,Wxo是輸出門與當前輸入之間的權重矩陣,bo分別為輸出門的權重矩陣和偏移值;ht為當前時刻的輸出。

總結起來,LSTM的計算思路為:輸入門作用于輸入信息,遺忘門作用于之前的記憶信息,二者加權和,得到單元的狀態信息;通過輸出門決定輸出信息;由單元的狀態信息和輸出信息得到單元的隱含層輸出,并傳遞給下一單元。所有的權重矩陣,偏置向量都通過訓練得到,這和普通的循環神經網絡沒有區別,根據隨時間反向傳播算法(Backpropa?gation Through Time,BPTT),就能得到這些參數的梯度值。
語音信號是一種復雜的時變信號,而LSTM 能夠在處理時間序列數據的同時,選擇性地記住有效信息,丟棄無用信息,在語音識別上顯示出強大的優越性[13~14]。但是,LSTM 只利用了上文(前一時刻)信息,未利用下文(下一時刻)的信息,存在不足,而連續語音受上下文的影響,有協同發音現象。因此,本文采用雙向長短期記憶網絡(BLSTM)來構建聲學模型,BLSTM 充分考慮了正向時序信息和反向時序信息的影響,提高了魯棒性。文獻[15]證明,在語音識別上,BLSTM 的識別率高于LSTM。BLSTM的結構如圖4所示。

圖4 BLST模型
圖4 矩形框中的LSTM就是2.2節中的LSTM存儲單元,位于圖上方的虛線框為正向傳遞,位于圖下方的虛線框是逆向傳遞,Xt-1、Xt、Xt+1分別為t-1、t、t+1 時刻的輸入,ht-1、ht、ht+1分別為正向傳遞過程中t-1、t、t+1時刻的輸出,ht-1*、ht*、ht+1*分別為逆向傳遞過程中t-1、t、t+1 時刻的輸出,以t 時刻為例,BLSTM 的輸出為ht和ht*兩者的直接拼接,即假設ht和ht*兩者為m×n 的矩陣,拼接后得到的是2m×n的矩陣,該矩陣同時包含了上文信息和下文信息。
連續語音識別,就是將一段語音信號轉換成相對應的文本信息。這一過程中主要包含特征提取、聲學模型及語言模型三大部分,此外為了更有效地提取特征往往還需要對語音信號進行濾波、分幀等預處理工作,為提高識別的準確率,還需要對連續語音進行準確的切分,即將連續語音切分成單個漢字[16~17]。
特征提取是指提取能反映語音信號本質的一組特征參數。本文選取的特征參數是24 維梅爾頻率倒譜系數(Mel Frequency Cepstrum Coefficient,MFCC),MFCC 充分考慮了人耳的聽覺特征,首先對時域信號做傅里葉變換,得到頻譜,再利用Mel濾波器組將線性頻譜映射到基于聽覺感知的Mel非線性頻譜中,然后進行倒譜分析,即對振幅取對數后,再做離散余弦變換得到MFCC。
聲學模型根據語音特征參數計算每一個特征向量在聲學特征上的得分,得到當前語音最有可能對應的漢字語音,由于漢語中普遍存在多音字現象,一個音可能對應多個漢字,所以還需要根據語言模型進行音-字的轉換。
語言模型就是基于語料庫統計出各種詞串出現的概率,結合聲學模型的結果,得到最可能的文本表示,具體過程如圖5 所示,圖中上方的虛線框為語音信號的訓練過程,下方的虛線框為實際語音的識別過程。
聲學模型是語音識別的重要組成部分,是提高識別率的重要環節。本文實驗采取GMM-HMM 模型和BLSTM 模型分別進行聲學模型構建[18],對比分析識別率。

圖5 連續語音識別流程圖
聲學模型的構建過程:首先對語音信號進行分幀、加窗等預處理;其次對信號進行漢字切分,得到單個字的起始位置;然后分別提取每個字的24 維MFCC 作為特征參數,輸入模型進行訓練,得到對應單字有調音節的聲學模型。
實驗語料庫采用南京理工大學NJUST603語音庫的一段漢語文本錄音,文本內容為劉紹棠的散文《師恩難忘》,共596 個漢字,剔除重復的漢字后剩余245 個不重復的漢字。由于樣本數量限制,本文選取切分好的100 個漢字作為實驗對象,每個漢字135個樣本,其中隨機選取120個樣本進行訓練,用其余的15個樣本進行測試。正確率計算公式如下:

隱馬爾可夫模型(Hidden Markov Model,HMM)是一種統計分析模型,是在馬爾科夫鏈的基礎上發展起來的[19]。HMM 模型通過兩個相互關聯的隨機過程來描述信號的統計特性,一個是具有有限狀態的馬爾科夫鏈,用來描述狀態的轉移,是隱含的不可觀測的;另一個是與馬爾科夫鏈的狀態相關聯的特征矢量的隨機過程,用來描述狀態和特征值之間的統計對應關系,是可觀測的。基于這兩個隨機過程,HMM 模型就可以辨識不同平穩信號段的特征參數。
HMM 模型考慮了語音信號的時變特征,但在語音識別系統中,所有狀態的觀察值概率矩陣很難直接給出,高斯混合模型(Gaussian Mixture Model,GMM)可以利用高階多維高斯分布描述連續空間的概率分布,因此HMM 的觀察值概率分布可以用GMM 描述。一般將各個觀察值序列劃分到N(狀態數)個空間中去,將每個空間的特征參數映射為高斯混合模型,每個狀態對應的觀察值分布是高斯混合分布。
實驗利用人工切分好的數據對每個漢字分別建模;然后提取切分好的測試語音的MFCC 參數,利用HMM 模型進行識別,統計每個音節最可能的識別結果,最終正確率為85.6%。
實 驗 使 用TensorFlow 搭 建BLSTM 模 型[20~21],TensorFlow 是一個采用數據流圖進行數值計算的開源軟件庫,被廣泛應用于各類機器學習算法的編程實現。由于每個漢字的語音長短不同,MFCC 序列也就不同。因此,需要按最長序列進行存儲,不足長度的后面補0,并將真實長度存放在一個向量中。
BLSTM 模型的輸入有兩項,一是補0后的所有樣本的訓練數據,將全部數據讀入后重組為(batch_size,n_steps,n_input)的 張 量。 其 中batch_size 是一次性輸入到神經網絡中訓練,完成一次參數計算和更新的個數,這里取batch_size=200;n_steps 是構造的BLSTM 總共有多少個時間上的輸入,這里取訓練樣本中序列最長的樣本的幀數;n_input是一次輸入的數據維數這里取n_input=24。二是對應的每個訓練樣本實際長度的向量。
這是一個多分類問題,本文的實驗對象為100個漢字,也就是100 個類別,BLSTM 的輸出是一個向量,包含當前語音屬于每一類別的計算值。本文采取交叉熵損失函數計算損失J(θ),公式如式(10)所示,其中,m 為訓練樣本的總數,x(i)和y(i)分別表示第i 組數據經BLSTM 后的輸出和期望的輸出,x(i)=(1,x1(i),x2(i),…,x100(i))T,因考慮到偏置項,x(i)的第一項為1,模型的參數為θ=(θ0,θ1,θ2,…,θ100)T,θ0為偏置項。J(θ)對第j 個參數分量θj求偏導可得式(12)。

本文在最優參數θ的求解上采取Adam 優化算法,對梯度的一階矩和二階矩進行綜合考慮,計算出更新步長,它能夠在訓練數據迭代過程中更新神經網絡的參數,得到全局最優解。
利用訓練好的神經網絡對測試樣本進行測試,最終正確率為92.3%。
實驗結果如表1 所示,基于深度學習的聲學建模技術相比于傳統GMM-HMM 技術正確率提高了6.7%,可見深度學習在聲學建模上確實具有明顯的優越性。

表1 兩種聲學模型的識別率對比
雖然BLSTM 模型的訓練結果優于傳統的GMM-HMM 模型,但還存在一些不足,表2 列舉了BLSTM模型測試結果中部分識別錯誤的例子。

表2 部分識別錯誤實例
從表2 分析可得,漢字的韻母相同或相近的音在識別過程中容易混淆,還需進一步改進。
本文通過對比分析基于傳統的GMM-HMM 聲學模型和基于BLSTM 的聲學模型在識別中的正確率,發現后者明顯優于前者。BLSTM 模型解決了一般RNN 模型的梯度爆炸和長度約束問題,充分利用了上下文信息,所以性能更佳。由于本文實驗所用的語音數據集較小,后續研究還需進一步擴大數據集,使實驗結果更加令人信服。