婁迎曦,袁文浩,彭榮群
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000)
在噪聲環(huán)境中,語音增強(qiáng)是語音進(jìn)行信號(hào)處理的必要環(huán)節(jié)[1-2]。傳統(tǒng)的語音增強(qiáng)方法基于概率論中的統(tǒng)計(jì)學(xué)原理,假設(shè)純凈語音和含噪語音服從某種分布,然后根據(jù)這種分布關(guān)系從含噪語音中估計(jì)出純凈語音[3-4]。這種傳統(tǒng)的語音增強(qiáng)方法適用于一些含平穩(wěn)噪聲的語音增強(qiáng)情況[5],但是在多數(shù)含有非平穩(wěn)噪聲或者低信噪比的情況下,并沒有很好的處理效果[6],同樣無法適用于復(fù)雜多變的噪聲環(huán)境[7]。近年來,隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)已經(jīng)被廣泛地應(yīng)用在語音增強(qiáng)中,有效地提升了不同類型噪聲環(huán)境下的語音增強(qiáng)性能[8]。基于DNN的語音增強(qiáng)方法是對(duì)大量的含噪語音和純凈語音進(jìn)行建模,通過不斷訓(xùn)練網(wǎng)絡(luò)模型來提高模型對(duì)含噪語音的適應(yīng)能力[9],相比傳統(tǒng)的語音增強(qiáng)方法具有更好的泛化能力[10]。
由于語音具有序列性,文獻(xiàn)[11]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對(duì)含噪語音進(jìn)行處理。RNN將輸入的含噪語音樣本作為序列問題處理,并隨著時(shí)間的變化進(jìn)行建模,相比基于DNN的方法,顯著提高了語音增強(qiáng)性能。但是RNN網(wǎng)絡(luò)模型的循環(huán)連接通常使用反向傳播算法來進(jìn)行訓(xùn)練,因此在訓(xùn)練時(shí)有可能面對(duì)梯度消失和梯度爆炸的問題,無法體現(xiàn)出RNN長(zhǎng)期記憶的效果。
作為RNN的一種升級(jí)版本,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory Network,LSTM)有效地緩解了這一問題,其在網(wǎng)絡(luò)結(jié)構(gòu)上又添加了門函數(shù)和記憶單元,使網(wǎng)絡(luò)模型可以通過存儲(chǔ)單元來存儲(chǔ)記憶,因此在處理語音增強(qiáng)問題時(shí),基于LSTM的方法比基于RNN的方法更有效[12]。但由于這種模型每個(gè)時(shí)間上的計(jì)算都依賴于前面時(shí)間上的輸出,因此在處理大規(guī)模的含噪語音數(shù)據(jù)時(shí),LSTM的并行計(jì)算能力較弱,導(dǎo)致網(wǎng)絡(luò)模型的訓(xùn)練速度較為緩慢。
實(shí)際上在設(shè)計(jì)語音增強(qiáng)模型時(shí)主要考慮兩個(gè)方面,一方面,由于含噪語音序列問題上下文之間的相關(guān)性,網(wǎng)絡(luò)模型必須對(duì)含噪語音序列上的時(shí)間變化進(jìn)行建模,另一方面,在保證網(wǎng)絡(luò)模型增強(qiáng)性能的前提下,如何盡可能地提高并行計(jì)算能力,從而提高模型的訓(xùn)練效率。基于此,本文提出一種基于準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)(Quasi Recurrent Neural Network,QRNN)的語音增強(qiáng)方法。QRNN通過門函數(shù)和記憶單元確保含噪語音序列信息上下文的相關(guān)性[13],但在門函數(shù)的計(jì)算中除去對(duì)上一時(shí)刻輸出的依賴,同時(shí)在處理含噪語音輸入和門函數(shù)時(shí)利用矩陣的卷積運(yùn)算同時(shí)處理多個(gè)時(shí)刻的含噪語音序列信息,從而提高網(wǎng)絡(luò)模型的并行計(jì)算能力。
(1)
其中,xm是網(wǎng)絡(luò)第m幀時(shí)的含噪語音輸入,θ是網(wǎng)絡(luò)參數(shù)的集合,則基于DNN的語音增強(qiáng)就是通過訓(xùn)練網(wǎng)絡(luò)模型得到fθ,誤差函數(shù)可用范數(shù)表示為:
(2)
LSTM作為一個(gè)有記憶的網(wǎng)絡(luò),通過存儲(chǔ)單元來存儲(chǔ)記憶,其內(nèi)部有由上一時(shí)刻網(wǎng)絡(luò)輸出和當(dāng)前時(shí)刻網(wǎng)絡(luò)輸入共同決定的3個(gè)門函數(shù)以及當(dāng)前輸入的單元狀態(tài),3個(gè)門函數(shù)分別是遺忘門、輸入門、輸出門。LSTM通過遺忘門控制哪些之前的序列信息被保留,通過輸入門控制哪些序列信息允許被輸入,從而控制該單元狀態(tài)的內(nèi)容。且新的單元狀態(tài)由當(dāng)前輸入的單元狀態(tài)與上一時(shí)刻的單元狀態(tài)共同決定。最后通過輸出門控制有多少單元狀態(tài)能作為網(wǎng)絡(luò)當(dāng)前時(shí)刻的輸出。
這種時(shí)間上具有依賴性的單元狀態(tài)更新方式,一方面,使得LSTM能夠在語音增強(qiáng)中充分利用語音序列中上下文的相關(guān)性,另一方面,由于語音增強(qiáng)模型的訓(xùn)練要依賴于大規(guī)模的含噪語音數(shù)據(jù),因此導(dǎo)致LSTM在處理語音增強(qiáng)問題時(shí)并行計(jì)算能力較差,網(wǎng)絡(luò)訓(xùn)練速度緩慢。
Z=elu(Wz*X)
(3)
QRNN仍然使用門函數(shù)獲得池化層需要的序列向量,但其在網(wǎng)絡(luò)結(jié)構(gòu)上將LSTM門函數(shù)中的線性操作改為卷積操作且僅使用了遺忘門F和輸出門O。QRNN中各個(gè)門函數(shù)的計(jì)算公式為:
對(duì)工件再用射線探傷法進(jìn)行探傷,并用當(dāng)量法和半波高度法對(duì)缺陷進(jìn)行分析,此缺陷為線狀缺陷,直徑大約在4.0 mm左右.
F=σ(Wf*X)
(4)
O=σ(Wo*X)
(5)
圖1 語音增強(qiáng)網(wǎng)絡(luò)模型Fig.1 Speech enhanced network model
(6)
(7)
(8)
QRNN的第二層池化層,是類似于LSTM的單元狀態(tài)構(gòu)造一個(gè)合適的由門控制的函數(shù)。為了對(duì)含噪語音序列上的時(shí)間變化進(jìn)行建模以維持含噪語音序列上下文的相關(guān)性,不同時(shí)刻記憶單元狀態(tài)ct更新方式為:
ct=ft°ct-1+(1-ft)°zt
(9)
網(wǎng)絡(luò)最終的輸出ht由輸出門和當(dāng)前時(shí)刻的記憶單元狀態(tài)組合得到:
ht=ot°ct
(10)
為驗(yàn)證本文提出的基于QRNN的語音增強(qiáng)方法能夠提高網(wǎng)絡(luò)模型的訓(xùn)練速度,本文將QRNN語音增強(qiáng)實(shí)驗(yàn)結(jié)果與LSTM進(jìn)行比較,并采用兩種評(píng)價(jià)標(biāo)準(zhǔn)對(duì)兩種網(wǎng)絡(luò)模型增強(qiáng)效果進(jìn)行評(píng)估。本次實(shí)驗(yàn)采用的所有純凈語音數(shù)據(jù)和噪聲數(shù)據(jù)的采樣頻率都為8 kHz,然后在該采樣頻率下合成含噪語音數(shù)據(jù)。實(shí)驗(yàn)計(jì)算所用的短時(shí)傅里葉變換幀長(zhǎng)為32 ms,幀移為16 ms。網(wǎng)絡(luò)采用連續(xù)15 frame的訓(xùn)練特征作為輸入,minibatch size分別設(shè)為512、1 024、2 048進(jìn)行訓(xùn)練和測(cè)試。網(wǎng)絡(luò)模型的每個(gè)隱層都有256個(gè)單元節(jié)點(diǎn)。本次實(shí)驗(yàn)采用的網(wǎng)絡(luò)訓(xùn)練工具為微軟的Cognitive Toolkit[17],迭代次數(shù)為20。
下文將通過具體的實(shí)驗(yàn)數(shù)據(jù)對(duì)本文提出的QRNN的語音增強(qiáng)效果進(jìn)行分析。
3.2.1 增強(qiáng)性能對(duì)比
本次實(shí)驗(yàn)采用PESQ(Perceptual Evaluation of Speech Quality)來評(píng)價(jià)增強(qiáng)后語音的質(zhì)量,其得分范圍為-0.5~4.5,得分越高表示增強(qiáng)后的語音質(zhì)量越好[18];采用STOI(Short Time Objective Intelligibility)來評(píng)價(jià)增強(qiáng)后語音的可懂度[19],其得分范圍為0~1,得分越高表示增強(qiáng)后語音的可懂度越高。表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
為了更直觀地比較兩種模型增強(qiáng)性能,圖2給出了LSTM和QRNN兩種網(wǎng)絡(luò)模型在同一信噪比下4類噪聲的平均得分取值。綜合以上增強(qiáng)性能實(shí)驗(yàn)結(jié)果對(duì)比可以發(fā)現(xiàn),兩種網(wǎng)絡(luò)模型在兩種評(píng)估標(biāo)準(zhǔn)下都取得了近似的得分。
圖2 LSTM和QRNN在不同評(píng)價(jià)標(biāo)準(zhǔn)下的語音增強(qiáng)性能對(duì)比
3.2.2 訓(xùn)練時(shí)間對(duì)比
在本次實(shí)驗(yàn)中,將minibatch size分別設(shè)為512、1 024、2 048進(jìn)行訓(xùn)練和測(cè)試。minibatch在一定取值范圍內(nèi)取值越大,網(wǎng)絡(luò)模型進(jìn)行一次epoch所需要的迭代次數(shù)就越少,那么網(wǎng)絡(luò)模型確定梯度下降的方向就越快,從而網(wǎng)絡(luò)模型的訓(xùn)練速度就越快。圖3給出了在3種不同minibatch size取值情況下,2種網(wǎng)絡(luò)模型的訓(xùn)練時(shí)間對(duì)比,可見QRNN在訓(xùn)練時(shí)間上要遠(yuǎn)小于LSTM。
圖3 不同minibatch size下訓(xùn)練時(shí)間對(duì)比Fig.3 Comparison of training time under different minibatch sizes
表3給出了在不同含噪語音序列長(zhǎng)度和minibatch size取值下,QRNN網(wǎng)絡(luò)模型相比LSTM訓(xùn)練速度的提升率,可見基于QRNN的語音增強(qiáng)方法比基于LSTM的語音增強(qiáng)方法的訓(xùn)練速度提升了3倍~5倍。且在minibatch size取值相同的情況下,隨著含噪語音序列長(zhǎng)度的增加,基于QRNN網(wǎng)絡(luò)模型訓(xùn)練速度增加的更快。
表3 不同minibatch size下訓(xùn)練速度提升值Table 3 Training speed improvement values under different minibatch sizes
QRNN同時(shí)利用了并行性和上下文的相關(guān)性,綜合以上增強(qiáng)性能和訓(xùn)練速度的實(shí)驗(yàn)結(jié)果表明,QRNN表現(xiàn)出比LSTM更好的增強(qiáng)效果,在保證語音增強(qiáng)性能提升與LSTM相似的情況下,能在很大程度上提高網(wǎng)絡(luò)模型的訓(xùn)練速度。
由于LSTM的計(jì)算方式在時(shí)間上具有依賴性,因此該模型在處理大規(guī)模含噪語音數(shù)據(jù)的語音增強(qiáng)問題時(shí)訓(xùn)練速度十分緩慢。針對(duì)該問題,本文提出一種基于QRNN的語音增強(qiáng)方法。QRNN采用門函數(shù)和記憶單元來維持含噪語音序列信息上下文的相關(guān)性,但在門函數(shù)的計(jì)算中除去了對(duì)上一時(shí)刻輸出的依賴性,然后在含噪語音序列的輸入和門函數(shù)的計(jì)算中引入矩陣的卷積操作以提高模型的并行計(jì)算能力,從而加快網(wǎng)絡(luò)模型的訓(xùn)練速度。實(shí)驗(yàn)結(jié)果表明,與基于LSTM的語音增強(qiáng)方法相比,該方法能在保證增強(qiáng)后語音性能的前提下大幅提升模型的訓(xùn)練速度。