胡少東,袁文浩,時(shí)云龍
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255000)
傳統(tǒng)語(yǔ)音增強(qiáng)方法多基于統(tǒng)計(jì)學(xué)原理或噪聲平穩(wěn)的假設(shè),在低信噪比(Signal-to-Noise Ratio,SNR)和復(fù)雜噪聲環(huán)境下表現(xiàn)不佳?;谏疃葘W(xué)習(xí)的時(shí)頻域語(yǔ)音增強(qiáng)方法,其泛化能力和降噪能力相比傳統(tǒng)語(yǔ)音增強(qiáng)方法有著顯著提升[1]。由多層全連接層(Fully Connection Layers,FC)組成的前饋型深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)最先被應(yīng)用于時(shí)頻域語(yǔ)音增強(qiáng)任務(wù)。文獻(xiàn)[1]以對(duì)數(shù)功率譜(Logarithm Power Spectrum,LPS)作為DNN的訓(xùn)練目標(biāo),將含噪語(yǔ)音時(shí)頻譜通過(guò)DNN映射到純凈語(yǔ)音的LPS,形成了從含噪語(yǔ)音到純凈語(yǔ)音的時(shí)頻譜映射關(guān)系,提高了語(yǔ)音增強(qiáng)性能。但DNN忽略了語(yǔ)音時(shí)頻譜中存在的時(shí)間依賴性和空間相關(guān)性,因此文獻(xiàn)[2]提出了在時(shí)間維度對(duì)語(yǔ)音增強(qiáng)任務(wù)進(jìn)行建模的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)。為提高RNN的長(zhǎng)時(shí)序列建模能力,改進(jìn)型RNN被提出,如長(zhǎng)短時(shí)記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)、門(mén)控循環(huán)單元(Gated Recurrent Unit,GRU)網(wǎng)絡(luò)。文獻(xiàn)[3]提出了一種基于LSTM的時(shí)頻域語(yǔ)音增強(qiáng)模型,通過(guò)利用長(zhǎng)時(shí)依賴關(guān)系進(jìn)一步提高了語(yǔ)音增強(qiáng)性能。語(yǔ)音時(shí)頻譜除時(shí)間維度中相鄰幀之間具有時(shí)間依賴性外,在頻率維度中頻帶之間還具有強(qiáng)烈的局部和全局的空間相關(guān)性。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)具有提取輸入特征局部空間相關(guān)性的能力[4]。文獻(xiàn)[5]提出了用于語(yǔ)音增強(qiáng)的編碼器-解碼器結(jié)構(gòu)的全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Neural Network,FCN),以多幀時(shí)頻譜特征作為網(wǎng)絡(luò)輸入。而文獻(xiàn)[6]提出了一種包含CNN、池化層、FC的語(yǔ)音增強(qiáng)模型,提高了語(yǔ)音增強(qiáng)模型的泛化能力。受限于卷積核大小,基于CNN的增強(qiáng)網(wǎng)絡(luò)只關(guān)注了較小范圍的時(shí)頻譜局部相關(guān)性,文獻(xiàn)[7]通過(guò)空洞卷積提高了卷積關(guān)注時(shí)頻譜局部相關(guān)性的范圍,但仍無(wú)法關(guān)注全局相關(guān)性。文獻(xiàn)[8]提出了串聯(lián)RNN和CNN的編碼器-解碼器網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)使用CNN提取時(shí)頻譜特征的局部相關(guān)性,使用LSTM提取相鄰幀的時(shí)間依賴關(guān)系。但串聯(lián)RNN和CNN的方法不能同時(shí)提取時(shí)間依賴性和局部相關(guān)性,且依然忽略了含噪語(yǔ)音時(shí)頻譜中的全局相關(guān)性。
針對(duì)上述問(wèn)題,本文首先借鑒GRU對(duì)時(shí)間序列的建模能力,以CNN代替GRU中的FC,構(gòu)成卷積門(mén)控循環(huán)網(wǎng)絡(luò)(Convolutional Gated Recurrent Network,CGRN),CGRN在對(duì)時(shí)間維度建模的同時(shí)可以提取頻率維度中的局部相關(guān)性。但CGRN無(wú)法關(guān)注幀內(nèi)的全局相關(guān)性,因此本文在CGRN中進(jìn)一步引入借鑒人類注意力機(jī)制提出的自注意力(Self-attention,SA)[9],構(gòu)成自注意-卷積門(mén)控循環(huán)網(wǎng)絡(luò)(Self-attention-Convolutional Gated Recurrent Network,SA-CGRN),其中SA通過(guò)自注意力計(jì)算,能有效地關(guān)注輸入信息的全局相關(guān)性。實(shí)驗(yàn)證明,SA-CGRN通過(guò)同時(shí)關(guān)注時(shí)間依賴性、局部相關(guān)性和全局相關(guān)性,顯著提高了語(yǔ)音增強(qiáng)性能。
基于深度學(xué)習(xí)的時(shí)頻域語(yǔ)音增強(qiáng)是回歸任務(wù),其主要包含數(shù)據(jù)預(yù)處理階段、訓(xùn)練階段以及增強(qiáng)階段。
第一階段是數(shù)據(jù)預(yù)處理。訓(xùn)練集的純凈語(yǔ)音和含噪語(yǔ)音經(jīng)短時(shí)傅里葉變換(Short-time Fourier Transform,STFT)得到對(duì)應(yīng)的頻率譜,一幀頻率譜Fl如下:
(1)
式中:Fl為第l時(shí)間幀的頻率譜,Sl,k表示Fl中第l時(shí)間幀中第k個(gè)頻帶的特征值。由Fl可知,連續(xù)時(shí)域語(yǔ)音信號(hào)經(jīng)STFT后在時(shí)頻域內(nèi)幀間具有時(shí)間依賴性,幀內(nèi)k個(gè)頻帶之間具有空間相關(guān)性。
在訓(xùn)練階段,本文時(shí)頻域語(yǔ)音增強(qiáng)網(wǎng)絡(luò)的輸入x是含噪語(yǔ)音LPS特征,目標(biāo)y對(duì)應(yīng)含噪語(yǔ)音和純凈語(yǔ)音的幅度譜掩蔽特征,x、y計(jì)算如下:
x=ln(|Fnoisy|2),
(2)
(3)
(4)
以平均絕對(duì)值誤差(Mean Absolute Error,MAE)作為網(wǎng)絡(luò)訓(xùn)練的代價(jià)函數(shù),通過(guò)梯度下降最小化如下代價(jià)函數(shù):
(5)
式中:n為輸入網(wǎng)絡(luò)樣本的Mini-Batch大小。
RNN與DNN這類獨(dú)立處理每個(gè)樣本的前饋型網(wǎng)絡(luò)不同,其將輸入樣本視為一個(gè)時(shí)間序列,在樣本可擴(kuò)展的時(shí)間維度建模。由于傳統(tǒng)的RNN在長(zhǎng)時(shí)序列建模時(shí)容易發(fā)生梯度消失和梯度爆炸,LSTM和GRU通過(guò)引入門(mén)控機(jī)制來(lái)避免這一問(wèn)題。GRU相比LSTM少一個(gè)門(mén)控結(jié)構(gòu),同一場(chǎng)景下GRU參數(shù)量更少易于訓(xùn)練和收斂。
一層GRU網(wǎng)絡(luò)有序列時(shí)間長(zhǎng)度個(gè)單元,第t單元在時(shí)序建模時(shí),t時(shí)刻的輸入特征xt和t-1時(shí)刻的單元態(tài)特征ht-1通過(guò)門(mén)控結(jié)構(gòu)更新本單元的狀態(tài)特征ht,因此GRU通過(guò)迭代可以捕獲時(shí)間序列的長(zhǎng)時(shí)依賴。圖1(a)為GRU單元的結(jié)構(gòu)圖,圖1(b)為GRU單元中FC的計(jì)算方式,可見(jiàn)GRU單元中門(mén)控計(jì)算和單元狀態(tài)更新均經(jīng)FC計(jì)算,在FC中每一個(gè)結(jié)點(diǎn)與其他結(jié)點(diǎn)進(jìn)行全連接,參數(shù)量較大。
圖1 GRU單元結(jié)構(gòu)圖
GRU單元中重置門(mén)rt和更新門(mén)zt的計(jì)算過(guò)程為
rt=σ(Wr[ht-1,xt]+br),
(6)
zt=σ(Wz[ht-1,xt]+bz)。
(7)
式中:“σ”是激活函數(shù)Sigmoid,“[]”為張量拼接,W#和b#分別為FC的權(quán)重張量和偏置。在本文的時(shí)頻域語(yǔ)音增強(qiáng)任務(wù)中,xt是輸入網(wǎng)絡(luò)的LPS序列特征的第t幀。FC的權(quán)重張量W#與xt和ht-1的特征拼接張量做矩陣乘法加上對(duì)應(yīng)偏置項(xiàng)b#,經(jīng)Sigmoid激活后,便得到了rt和zt。
利用rt和zt,同時(shí)結(jié)合x(chóng)t和ht-1來(lái)更新本單元狀態(tài)。單元狀態(tài)更新過(guò)程為
(8)
(9)
由于GRU的門(mén)控計(jì)算和單元狀態(tài)更新均經(jīng)FC計(jì)算,無(wú)法提取幀內(nèi)空間相關(guān)性,因此利用CNN提取局部特征相關(guān)性的能力改進(jìn)GRU結(jié)構(gòu),同時(shí)CNN權(quán)值共享和局部連接特性相較于FC大大減少了參數(shù)量。本文利用CNN代替GRU中的FC構(gòu)成CGRN,CGRN單元結(jié)構(gòu)如圖2(a)所示,CGRN單元中CNN的計(jì)算方式如圖2(b)所示,可見(jiàn)進(jìn)入CGRN單元的Xt和Ht-1經(jīng)過(guò)填充后進(jìn)行特征維度不變的卷積,區(qū)別于FC中的全連接方式,CNN的局部連接降低了網(wǎng)絡(luò)參數(shù)量并可以捕獲特征的局部相關(guān)性。因此,CGRN在捕獲含噪語(yǔ)音時(shí)頻特征長(zhǎng)時(shí)依賴的前提下可以提取輸入特征的局部空間相關(guān)性。融合CNN之后的CGRN的門(mén)控計(jì)算過(guò)程為
圖2 CGRN單元結(jié)構(gòu)圖
Zt=σ(WZ*[Ht-1,Xt]+bZ),
(10)
Rt=σ(WR*[Ht-1,Xt]+bR)。
(11)
式中:“*”為卷積運(yùn)算;b#為對(duì)應(yīng)的偏置項(xiàng),但與GRU中FC的權(quán)重不同,CGRN中W#為CNN的多通道卷積核,門(mén)控輸入經(jīng)卷積運(yùn)算得到Rt和Zt。
為加速網(wǎng)絡(luò)的收斂速度,將GRU中更新單元狀態(tài)的激活函數(shù)tanh改為指數(shù)線性單元(Exponential Linear Unit,ELU)。CGRN的單元狀態(tài)更新為
(12)
(13)
通過(guò)融入CNN,CGRN在時(shí)序建模的同時(shí)可以捕獲輸入特征的局部相關(guān)性,但受限于CNN卷積核的大小,CGRN仍無(wú)法捕獲輸入特征的全局相關(guān)性。人類注意力機(jī)制在全局復(fù)雜噪聲信息中可以關(guān)注感興趣聲音,通過(guò)在CGRN中引入借鑒人類注意力機(jī)制提出的SA,關(guān)注輸入特征的全局相關(guān)性,最終提出了SA-CGRN。SA通過(guò)計(jì)算查詢(Query,Q)、鍵(Key,K)、值(Value,V)之間的映射關(guān)系關(guān)注全局相關(guān)性,其中Q、K、V為同一輸入。計(jì)算SA時(shí),將輸入特征張量和其自身轉(zhuǎn)置通過(guò)點(diǎn)擊進(jìn)行相似度計(jì)算得到注意力權(quán)重,為防止權(quán)重發(fā)散通常除以特征張量的維度。特征張量與經(jīng)Softmax()函數(shù)歸一化的權(quán)重值相乘,便得到了含有注意力信息的特征張量,從而關(guān)注輸入特征中重要的全局相關(guān)性。
如圖3(a)所示,在SA-CGRN單元中,需對(duì)Xt和Ht-1施加SA,SA-CGRN單元中的其他結(jié)構(gòu)與CGRN保持一致。其中,對(duì)Xt進(jìn)行SA計(jì)算的計(jì)算過(guò)程如圖3(b)所示,將Xt通過(guò)多通道CNN映射到高維度特征空間得到XQ、XK、XV,其過(guò)程為
XQ=WQ*Xt+bQ,
(14)
XK=WK*Xt+bK,
(15)
XV=WV*Xt+bV。
(16)
然后,經(jīng)自注意力層得到包含注意力信息的特征SAattention(Xt):
(17)
式中:T為矩陣轉(zhuǎn)置;XQXKT為自注意力得分,為梯度穩(wěn)定得分需除以XK的維度dXK,然后得分經(jīng)Softmax()函數(shù)歸一化后與XV相乘,以此來(lái)關(guān)注Xt中重要的全局相關(guān)性;最后,為防止特征丟失需加上Xt。同理,Ht-1也需經(jīng)過(guò)上述變換得到SAattention(Ht-1)。
(a)SA-CGRN
本文使用Voice Bank+DEMAND[10]數(shù)據(jù)集驗(yàn)證SA-CGRN的有效性。該數(shù)據(jù)集共有30個(gè)說(shuō)話人錄制的12 396條采樣頻率為48 kHz的音頻。其中,28個(gè)說(shuō)話人的11 572條音頻作為訓(xùn)練集純凈語(yǔ)音,2個(gè)說(shuō)話人的824條音頻作為測(cè)試集純凈語(yǔ)音。訓(xùn)練集的含噪語(yǔ)音是純凈語(yǔ)音與來(lái)自DEMAND數(shù)據(jù)集的8種真實(shí)噪聲和兩種生成噪聲,按照SNR為0 dB、5 dB、10 dB、15 dB合成得到。真實(shí)噪聲為cafeteria、car、kitchen、meeting、metro、restaurant、station、traffic,生成噪聲為ssn、babble。其中,ssn是通過(guò)與男性說(shuō)話人長(zhǎng)期語(yǔ)音水平相匹配的頻率響應(yīng)濾波器對(duì)白噪聲濾波產(chǎn)生的,babble是Voice Bank中未被訓(xùn)練或測(cè)試使用的6個(gè)說(shuō)話人語(yǔ)音。訓(xùn)練集含噪語(yǔ)音中噪聲數(shù)量統(tǒng)計(jì)如圖4所示,ssn噪聲數(shù)量最多,但各噪聲數(shù)量之間相差不大。同時(shí)測(cè)試集按照SNR為2.5 dB、7.5 dB、12.5 dB、17.5 dB合成含噪語(yǔ)音,可有效檢驗(yàn)?zāi)P头夯芰Α1疚氖褂迷摂?shù)據(jù)集可減少數(shù)據(jù)集處理方法對(duì)網(wǎng)絡(luò)增強(qiáng)性能的影響,進(jìn)而更準(zhǔn)確地驗(yàn)證SA-CGRN的有效性。
圖4 噪聲數(shù)量統(tǒng)計(jì)圖
本文以國(guó)際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(mén)P.862建議書(shū)給出的語(yǔ)音質(zhì)量感知評(píng)估(Perceptual Evaluation of Speech Quality,PESQ)[11]指標(biāo),同時(shí)結(jié)合語(yǔ)音失真評(píng)價(jià)(Speech Signal Distortion,CSIG)、整體質(zhì)量評(píng)價(jià)(Overall Effect,COVL)、噪聲抑制等級(jí)評(píng)價(jià)(Background Noise Intrusiveness,CBAK)[12]三種指標(biāo)對(duì)語(yǔ)音增強(qiáng)模型性能進(jìn)行量化分析。其中,PESQ得分范圍為0.5~4.5,其余指標(biāo)得分范圍為1~5,得分越高表示語(yǔ)音增強(qiáng)模型相應(yīng)的性能越好。
為驗(yàn)證SA-CGRN在時(shí)頻域語(yǔ)音增強(qiáng)任務(wù)中的有效性,將其與GRU、CGRN的語(yǔ)音增強(qiáng)結(jié)果進(jìn)行對(duì)比。由于考慮到非因果網(wǎng)絡(luò)實(shí)際應(yīng)用的局限性,本文方法采用因果形式的網(wǎng)絡(luò)結(jié)構(gòu)。實(shí)驗(yàn)環(huán)境:CPU為AMD Ryzen7 1700,主機(jī)內(nèi)存32 GB,GPU為NVIDIA RTX 2070 Super 8 GB,深度學(xué)習(xí)框架為PyTorch。本文GRU的隱層節(jié)點(diǎn)數(shù)和CGRN、SA-CRGN的隱藏層通道數(shù)、卷積核大小與文獻(xiàn)[13]相同,但三種網(wǎng)絡(luò)均采用5層順序結(jié)構(gòu)。
表1為SA-CGRN中SA和CGRN的模塊結(jié)構(gòu),其中的模塊和子模塊與圖3對(duì)應(yīng)。表中3個(gè)超參數(shù)依次代表CNN的輸入通道數(shù)、輸出通道數(shù)、卷積核大小。每個(gè)模塊的輸入為C×H,其中C為通道數(shù),H為頻率特征維度。在SA中Xt和Ht-1經(jīng)輸入通道數(shù)為64,輸出通道數(shù)為32的CNN進(jìn)行降維映射,經(jīng)注意力信息計(jì)算后再恢復(fù)特征通道數(shù),得到SAattention(Xt)和SAattention(Ht-1)。
表1 SA-CGRN結(jié)構(gòu)
同時(shí)為便于訓(xùn)練,在數(shù)據(jù)預(yù)處理階段網(wǎng)絡(luò)的輸入和目標(biāo)都被截取或填充成連續(xù)的1 s,三種網(wǎng)絡(luò)的輸入均進(jìn)行全局均值方差歸一化處理,純凈語(yǔ)音和含噪語(yǔ)音頻率譜由采樣頻率為16 kHz的對(duì)應(yīng)音頻,經(jīng)幀長(zhǎng)為512點(diǎn)(32 ms)、幀移為256點(diǎn)(16 ms)的STFT得到。
表2為三種網(wǎng)絡(luò)模型在四種評(píng)價(jià)指標(biāo)下對(duì)測(cè)試集含噪語(yǔ)音進(jìn)行增強(qiáng)的效果比較,可見(jiàn)基于GRU、CGRN和SA-CGRN的語(yǔ)音增強(qiáng)模型均明顯地提升了增強(qiáng)語(yǔ)音的質(zhì)量;三種語(yǔ)音增強(qiáng)網(wǎng)絡(luò)模型中,SA-CGRN在所有指標(biāo)下語(yǔ)音增強(qiáng)性能最好,CGRN次之,GRU的語(yǔ)音增強(qiáng)性能最低。上述結(jié)果表明,針對(duì)語(yǔ)音時(shí)頻特征的多種特性對(duì)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行的優(yōu)化,能適應(yīng)時(shí)頻域語(yǔ)音增強(qiáng)任務(wù)。
表2 GRU、CGRN及SA-CGRN的語(yǔ)音增強(qiáng)效果
基于語(yǔ)音時(shí)頻特征特性提出的SA-CGRN,其首先通過(guò)對(duì)含噪語(yǔ)音的LPS特征在時(shí)間維度建模,關(guān)注含噪語(yǔ)音LPS幀間的時(shí)間依賴性;其次用卷積提取頻率特征的局部相關(guān)性,使得SA-CGRN在關(guān)注時(shí)間依賴性的同時(shí)關(guān)注了頻帶間的局部相關(guān)性;最后通過(guò)SA對(duì)幀內(nèi)頻率特征進(jìn)行自注意計(jì)算,提取頻率的全局相關(guān)性。綜上,SA-CGRN通過(guò)同時(shí)關(guān)注含噪語(yǔ)音LPS中的時(shí)間依賴性、局部相關(guān)性、全局相關(guān)性明顯提升了語(yǔ)音增強(qiáng)性能。
表3所示為GRU、CGRN、SA-CGRN的模型參數(shù)量比較,可見(jiàn)GRU的網(wǎng)絡(luò)參數(shù)量最多。這是因?yàn)镚RU網(wǎng)絡(luò)中的門(mén)控計(jì)算和網(wǎng)絡(luò)更新需經(jīng)FC,而CGRN和SA-CGRN經(jīng)CNN進(jìn)行門(mén)控計(jì)算和單元狀態(tài)更新;SA-CGRN相比于CGRN,在沒(méi)有明顯增加參數(shù)量的基礎(chǔ)上顯著提高了語(yǔ)音增強(qiáng)效果。由此可見(jiàn),SA-CGRN主要是通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化來(lái)提高增強(qiáng)語(yǔ)音質(zhì)量,而并非是通過(guò)增加網(wǎng)絡(luò)參數(shù)量。
表3 不同網(wǎng)絡(luò)的參數(shù)量
為了進(jìn)一步驗(yàn)證SA-CGRN的有效性,本文與Voice Bank+DEMAND數(shù)據(jù)集上的其他語(yǔ)音增強(qiáng)方法在PESQ、CSIG、CBAK和COVL四種指標(biāo)的平均得分下進(jìn)行對(duì)比,結(jié)果如表4所示,可見(jiàn)在平均PESQ得分下,本文方法明顯優(yōu)于SEGAN[14]、MMSE-GAN[15]、MDPhd[16]、WaveNet[17]、DFL[18];在平均CSIG和COVL得分下,本文方法同樣明顯優(yōu)于其他所有方法;在平均CBAK得分下,本文方法優(yōu)于SEGAN、MMSE-GAN、WaveNet但稍弱于MDPhd和DFL;同時(shí)相比SEGAN、MMSE-GAN、MDPhd、WaveNet的非因果形式網(wǎng)絡(luò)結(jié)構(gòu),SA-CGRN因果形式的網(wǎng)絡(luò)結(jié)構(gòu)在應(yīng)用性方面具有明顯優(yōu)勢(shì)。
表4 SA-CGRN及其他方法的語(yǔ)音增強(qiáng)性能
在時(shí)頻域語(yǔ)音增強(qiáng)任務(wù)中,GRU可以對(duì)連續(xù)幀在時(shí)間維度建模,捕獲含噪語(yǔ)音幀之間的長(zhǎng)時(shí)依賴關(guān)系,但由于結(jié)構(gòu)限制,GRU無(wú)法捕獲幀內(nèi)的空間相關(guān)性。因此本文首先利用CNN代替GRU網(wǎng)絡(luò)中的FC構(gòu)成CGRN,該網(wǎng)絡(luò)在時(shí)間維度建模的基礎(chǔ)上可以提取幀內(nèi)頻帶間局部相關(guān)性,提高了語(yǔ)音增強(qiáng)性能。但由于CNN受限于卷積核大小無(wú)法關(guān)注幀內(nèi)頻帶間的全局相關(guān)性,本文進(jìn)一步在CGRN的基礎(chǔ)上通過(guò)引入SA提出了SA-CGRN。相比GRU和CGRN,SA-CGRN在捕獲時(shí)間依賴關(guān)系的同時(shí)關(guān)注了幀內(nèi)局部空間相關(guān)性和全局空間相關(guān)性,進(jìn)一步提高了語(yǔ)音增強(qiáng)性能。在下一階段研究中可以根據(jù)語(yǔ)音時(shí)域特征特點(diǎn)改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),以提高語(yǔ)音增強(qiáng)性能。