婁迎曦,袁文浩,彭榮群
(山東理工大學 計算機科學與技術學院,山東 淄博 255000)
在噪聲環(huán)境中,語音增強是語音進行信號處理的必要環(huán)節(jié)[1-2]。傳統(tǒng)的語音增強方法基于概率論中的統(tǒng)計學原理,假設純凈語音和含噪語音服從某種分布,然后根據這種分布關系從含噪語音中估計出純凈語音[3-4]。這種傳統(tǒng)的語音增強方法適用于一些含平穩(wěn)噪聲的語音增強情況[5],但是在多數含有非平穩(wěn)噪聲或者低信噪比的情況下,并沒有很好的處理效果[6],同樣無法適用于復雜多變的噪聲環(huán)境[7]。近年來,隨著深度學習技術的不斷發(fā)展,深度神經網絡(Deep Neural Network,DNN)已經被廣泛地應用在語音增強中,有效地提升了不同類型噪聲環(huán)境下的語音增強性能[8]?;贒NN的語音增強方法是對大量的含噪語音和純凈語音進行建模,通過不斷訓練網絡模型來提高模型對含噪語音的適應能力[9],相比傳統(tǒng)的語音增強方法具有更好的泛化能力[10]。
由于語音具有序列性,文獻[11]使用循環(huán)神經網絡(Recurrent Neural Network,RNN)對含噪語音進行處理。RNN將輸入的含噪語音樣本作為序列問題處理,并隨著時間的變化進行建模,相比基于DNN的方法,顯著提高了語音增強性能。但是RNN網絡模型的循環(huán)連接通常使用反向傳播算法來進行訓練,因此在訓練時有可能面對梯度消失和梯度爆炸的問題,無法體現出RNN長期記憶的效果。
作為RNN的一種升級版本,長短時記憶網絡(Long Short-Term Memory Network,LSTM)有效地緩解了這一問題,其在網絡結構上又添加了門函數和記憶單元,使網絡模型可以通過存儲單元來存儲記憶,因此在處理語音增強問題時,基于LSTM的方法比基于RNN的方法更有效[12]。但由于這種模型每個時間上的計算都依賴于前面時間上的輸出,因此在處理大規(guī)模的含噪語音數據時,LSTM的并行計算能力較弱,導致網絡模型的訓練速度較為緩慢。
實際上在設計語音增強模型時主要考慮兩個方面,一方面,由于含噪語音序列問題上下文之間的相關性,網絡模型必須對含噪語音序列上的時間變化進行建模,另一方面,在保證網絡模型增強性能的前提下,如何盡可能地提高并行計算能力,從而提高模型的訓練效率?;诖?本文提出一種基于準循環(huán)神經網絡(Quasi Recurrent Neural Network,QRNN)的語音增強方法。QRNN通過門函數和記憶單元確保含噪語音序列信息上下文的相關性[13],但在門函數的計算中除去對上一時刻輸出的依賴,同時在處理含噪語音輸入和門函數時利用矩陣的卷積運算同時處理多個時刻的含噪語音序列信息,從而提高網絡模型的并行計算能力。

(1)
其中,xm是網絡第m幀時的含噪語音輸入,θ是網絡參數的集合,則基于DNN的語音增強就是通過訓練網絡模型得到fθ,誤差函數可用范數表示為:

(2)

LSTM作為一個有記憶的網絡,通過存儲單元來存儲記憶,其內部有由上一時刻網絡輸出和當前時刻網絡輸入共同決定的3個門函數以及當前輸入的單元狀態(tài),3個門函數分別是遺忘門、輸入門、輸出門。LSTM通過遺忘門控制哪些之前的序列信息被保留,通過輸入門控制哪些序列信息允許被輸入,從而控制該單元狀態(tài)的內容。且新的單元狀態(tài)由當前輸入的單元狀態(tài)與上一時刻的單元狀態(tài)共同決定。最后通過輸出門控制有多少單元狀態(tài)能作為網絡當前時刻的輸出。
這種時間上具有依賴性的單元狀態(tài)更新方式,一方面,使得LSTM能夠在語音增強中充分利用語音序列中上下文的相關性,另一方面,由于語音增強模型的訓練要依賴于大規(guī)模的含噪語音數據,因此導致LSTM在處理語音增強問題時并行計算能力較差,網絡訓練速度緩慢。

Z=elu(Wz*X)
(3)
QRNN仍然使用門函數獲得池化層需要的序列向量,但其在網絡結構上將LSTM門函數中的線性操作改為卷積操作且僅使用了遺忘門F和輸出門O。QRNN中各個門函數的計算公式為:
對工件再用射線探傷法進行探傷,并用當量法和半波高度法對缺陷進行分析,此缺陷為線狀缺陷,直徑大約在4.0 mm左右.
F=σ(Wf*X)
(4)
O=σ(Wo*X)
(5)

圖1 語音增強網絡模型Fig.1 Speech enhanced network model

(6)
(7)
(8)
QRNN的第二層池化層,是類似于LSTM的單元狀態(tài)構造一個合適的由門控制的函數。為了對含噪語音序列上的時間變化進行建模以維持含噪語音序列上下文的相關性,不同時刻記憶單元狀態(tài)ct更新方式為:
ct=ft°ct-1+(1-ft)°zt
(9)
網絡最終的輸出ht由輸出門和當前時刻的記憶單元狀態(tài)組合得到:
ht=ot°ct
(10)
為驗證本文提出的基于QRNN的語音增強方法能夠提高網絡模型的訓練速度,本文將QRNN語音增強實驗結果與LSTM進行比較,并采用兩種評價標準對兩種網絡模型增強效果進行評估。本次實驗采用的所有純凈語音數據和噪聲數據的采樣頻率都為8 kHz,然后在該采樣頻率下合成含噪語音數據。實驗計算所用的短時傅里葉變換幀長為32 ms,幀移為16 ms。網絡采用連續(xù)15 frame的訓練特征作為輸入,minibatch size分別設為512、1 024、2 048進行訓練和測試。網絡模型的每個隱層都有256個單元節(jié)點。本次實驗采用的網絡訓練工具為微軟的Cognitive Toolkit[17],迭代次數為20。
下文將通過具體的實驗數據對本文提出的QRNN的語音增強效果進行分析。
3.2.1 增強性能對比
本次實驗采用PESQ(Perceptual Evaluation of Speech Quality)來評價增強后語音的質量,其得分范圍為-0.5~4.5,得分越高表示增強后的語音質量越好[18];采用STOI(Short Time Objective Intelligibility)來評價增強后語音的可懂度[19],其得分范圍為0~1,得分越高表示增強后語音的可懂度越高。表1和表2分別給出了4種不同類型噪聲在3種不同信噪比下的PESQ和STOI得分。

表1 兩種方法的平均PESQ得分Table 1 Average PESQ scores of two methods

表2 兩種方法的平均STOI得分Table 2 Average STOI scores of two methods
為了更直觀地比較兩種模型增強性能,圖2給出了LSTM和QRNN兩種網絡模型在同一信噪比下4類噪聲的平均得分取值。綜合以上增強性能實驗結果對比可以發(fā)現,兩種網絡模型在兩種評估標準下都取得了近似的得分。

圖2 LSTM和QRNN在不同評價標準下的語音增強性能對比
3.2.2 訓練時間對比
在本次實驗中,將minibatch size分別設為512、1 024、2 048進行訓練和測試。minibatch在一定取值范圍內取值越大,網絡模型進行一次epoch所需要的迭代次數就越少,那么網絡模型確定梯度下降的方向就越快,從而網絡模型的訓練速度就越快。圖3給出了在3種不同minibatch size取值情況下,2種網絡模型的訓練時間對比,可見QRNN在訓練時間上要遠小于LSTM。

圖3 不同minibatch size下訓練時間對比Fig.3 Comparison of training time under different minibatch sizes
表3給出了在不同含噪語音序列長度和minibatch size取值下,QRNN網絡模型相比LSTM訓練速度的提升率,可見基于QRNN的語音增強方法比基于LSTM的語音增強方法的訓練速度提升了3倍~5倍。且在minibatch size取值相同的情況下,隨著含噪語音序列長度的增加,基于QRNN網絡模型訓練速度增加的更快。

表3 不同minibatch size下訓練速度提升值Table 3 Training speed improvement values under different minibatch sizes
QRNN同時利用了并行性和上下文的相關性,綜合以上增強性能和訓練速度的實驗結果表明,QRNN表現出比LSTM更好的增強效果,在保證語音增強性能提升與LSTM相似的情況下,能在很大程度上提高網絡模型的訓練速度。
由于LSTM的計算方式在時間上具有依賴性,因此該模型在處理大規(guī)模含噪語音數據的語音增強問題時訓練速度十分緩慢。針對該問題,本文提出一種基于QRNN的語音增強方法。QRNN采用門函數和記憶單元來維持含噪語音序列信息上下文的相關性,但在門函數的計算中除去了對上一時刻輸出的依賴性,然后在含噪語音序列的輸入和門函數的計算中引入矩陣的卷積操作以提高模型的并行計算能力,從而加快網絡模型的訓練速度。實驗結果表明,與基于LSTM的語音增強方法相比,該方法能在保證增強后語音性能的前提下大幅提升模型的訓練速度。