李文志 屈曉旭
(海軍工程大學(xué)電子工程學(xué)院 武漢 430000)
隨著通信技術(shù)的發(fā)展,語音增強(qiáng)技術(shù)是信號處理領(lǐng)域的一個(gè)重要的研究熱點(diǎn),它可以從被噪聲污染的語音信號中提取有用的語音信號,改善語音質(zhì)量和可懂度,廣泛應(yīng)用于各種語音信號處理中[1]。
傳統(tǒng)的語音增強(qiáng)算法包括譜減法[2]、維納濾波法[3]、最小均方誤差法[4]和基于小波分解[5~6]的語音增強(qiáng)算法等。傳統(tǒng)的這些增強(qiáng)算法一般需要各種假設(shè)才能有較好的效果,但是對于非平穩(wěn)信號,增強(qiáng)效果會(huì)明顯下降。近年來,深度學(xué)習(xí)技術(shù)不斷發(fā)展,基于深度學(xué)習(xí)的有監(jiān)督的語音增強(qiáng)算法取得了重大進(jìn)展,主要有基于深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)[7~9]、卷積神經(jīng)(Convolutional Neural Network,CNN)[10~14]和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[15~16]。基于有監(jiān)督的深度學(xué)習(xí)方法不需要假設(shè),只需要從大量的含噪語音信號中學(xué)習(xí)語音與噪聲之間的非線性關(guān)系,得到一個(gè)訓(xùn)練模型,從而通過這個(gè)模型增強(qiáng)語音信號,具有較好的去噪效果。
本文提出的基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)算法,該方法將殘差學(xué)習(xí)和注意力機(jī)制融合到卷積神經(jīng)網(wǎng)絡(luò)中,通過設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu),將含噪語音的語譜圖作為輸入特征,輸出為增強(qiáng)后語音的語譜圖,最后重構(gòu)語音信號。
卷積神經(jīng)網(wǎng)絡(luò)一般由卷積層、池化層,上采樣層和全連接層組成,通過這些網(wǎng)絡(luò)層就可以構(gòu)建一個(gè)卷積神經(jīng)網(wǎng)絡(luò)。卷積層是通過卷積核和前一網(wǎng)絡(luò)層輸出進(jìn)行卷積運(yùn)算來提取特征的,然后偏置項(xiàng)相加,得出當(dāng)前層的特征。卷積核具有權(quán)值共享特性,相對于DNN和RNN可以大大減少參數(shù)。卷積層的更新公式如下[17]:
式(1)中:xmj代表當(dāng)前層m的第j個(gè)特征圖輸入;f表示激活函數(shù);M表示當(dāng)前層的特征圖集合;k表示卷積核的權(quán)值;b表示偏置項(xiàng)。
殘差學(xué)習(xí)(Residual Learning)是一種優(yōu)化網(wǎng)絡(luò)的方法,解決了由于隨著深層網(wǎng)絡(luò)結(jié)構(gòu)的愈加復(fù)雜,梯度下降算法得到局部最優(yōu)解的可能性就會(huì)越大,出現(xiàn)“退化”的問題[18]。
殘差學(xué)習(xí)網(wǎng)絡(luò)框架如圖1所示,從圖中可以看到,框架有兩部分組成,一部分是由兩層或多層神經(jīng)網(wǎng)絡(luò)層組成的殘差映射,另一部分是由跳連層(Shortcut Connections)組成。
圖1 殘差學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)
假設(shè)輸入x經(jīng)過兩層卷積層得到的殘差映射為F(x),目標(biāo)輸出的映射為H(x),則殘差映射表示為
當(dāng)F(x)為0時(shí)則:
由此可以看出,殘差學(xué)習(xí)只需要擬合殘差映射F(x),不需要對H(x)進(jìn)行擬合,這樣網(wǎng)絡(luò)結(jié)構(gòu)更容易擬合。
卷積神經(jīng)網(wǎng)絡(luò)建立在卷積運(yùn)算的基礎(chǔ)上,通過在局部信息和信道信息來提取信息特征。為讓網(wǎng)絡(luò)模型能學(xué)習(xí)到全局信息,在網(wǎng)絡(luò)中加入了注意力機(jī)制。
圖2 SE-Net結(jié)構(gòu)
圖2表示的是主力注意力機(jī)制SE-Net(Squeeze-and-Excitation Networks),SE-Net是一個(gè)輕量級的模塊[19],首先是一個(gè)擠壓操作,把輸入的每個(gè)特征圖根據(jù)全局信息擠壓成一個(gè)固定值zc:
式中uc表示輸入的特征圖集合,H和W表示特征圖的高和款,c表示第幾個(gè)通道。
激勵(lì)部分是通過兩層卷積層融合各通道的特征信息,得到各個(gè)通道的權(quán)重s:
式中f1和f2表示兩層卷積造作,δ表示是relu激活函數(shù),σ表示sigmoid激活函數(shù)
本文提出的基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)模型結(jié)構(gòu)由卷積網(wǎng)絡(luò)、殘差結(jié)構(gòu)和注意力機(jī)制組成。殘差結(jié)構(gòu)可以很好地防止“退化”現(xiàn)象,還可以防止梯度消失和梯度爆炸,從而提升網(wǎng)絡(luò)模型的精度。注意力機(jī)制可以有效地從復(fù)雜的特征圖集合中提取更重要的特征,抑制不重要的特征,使得訓(xùn)練更有針對性。
基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)模型結(jié)構(gòu)如圖3所示,該網(wǎng)絡(luò)的輸入為129×16的語譜圖,然后經(jīng)過一層卷積網(wǎng)絡(luò)得到特征圖集合,經(jīng)過兩層殘差學(xué)習(xí)網(wǎng)絡(luò),其結(jié)構(gòu)如圖1所示,中間一層設(shè)置為注意力層,然后經(jīng)過兩層殘差學(xué)習(xí)結(jié)構(gòu),最后兩層卷積層把特征圖映射到129×16的目標(biāo)語譜圖。其中注意力機(jī)制模塊的組成如圖3右圖所示,通過一個(gè)全局池化層將特征圖集合壓縮到一個(gè)一維向量,然后通過兩層卷積層作為激勵(lì)部分學(xué)習(xí)各個(gè)通道特征圖的重要程度,最后對各通道的特征進(jìn)行加權(quán)。圖中卷積層括號內(nèi)表示的是卷積核和卷積核個(gè)數(shù)。
圖3 結(jié)構(gòu)設(shè)計(jì)
基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)算法流程分為兩個(gè)階段:訓(xùn)練階段和增強(qiáng)階段。
首先假設(shè)帶噪語音信號為
式(7)中s(n)表示原始語音信號,d(n)表示噪聲,m(n)表示含噪語音信號。
在訓(xùn)練階段然后將含噪語音信號和純凈語音信號進(jìn)行分幀,然后對每幀語音做STFT運(yùn)算,通過取對數(shù)得到語譜圖。最后通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到模型。
在增強(qiáng)階段,含噪語音信號通過分幀和STFT變換,提取相位信息,然后再提取語譜圖,輸入模型后得到增強(qiáng)后的語譜圖,最后通過語譜圖和相位信息重構(gòu)信號,得到增強(qiáng)后的語音信號。過程如圖4所示。
圖4 算法流程
本次仿真實(shí)驗(yàn)是在Python Tensorflow 2.3深度學(xué)習(xí)框架下進(jìn)行,CPU為Intel Core i7-10750H,GPU為NVIDIA GTX 1065 Ti。網(wǎng)絡(luò)訓(xùn)練時(shí)學(xué)習(xí)率設(shè)置為0.001,損失函數(shù)選擇均方誤差(Mean Squared Error,MSE),選用自適應(yīng)矩估計(jì)(Adaptive Moment Estimation,Adam)優(yōu)化器,迭代次數(shù)為50次。
本小節(jié)采用TIMIT語音庫的訓(xùn)練語音信號和測試語音信號,采用8000Hz采樣率進(jìn)行上采樣,對于訓(xùn)練的語音,是把語音庫中測試集中的3696個(gè)句子做分幀處理,幀的長度設(shè)置為1000,即每幀語音時(shí)長為125ms,從中隨機(jī)的選取100000幀。噪聲選用 NOISEX-92中的 buccaneer1、factory1、hfchan?nel、pink和white五種噪聲,每幀純凈語音信號添加噪聲的強(qiáng)度在-5dB~15dB之間隨機(jī)取值。然后對含有噪聲的語音和純凈語音做STFT變換,提取語譜圖特征。
本文主要使用SNR、語音質(zhì)量感知評估(Per?ceptual Evaluation of Speech Quality,PESQ)和對數(shù)譜距離(Log Spectral Distance,LSD)對仿真結(jié)果進(jìn)行客觀的評估。PESQ是國際電信聯(lián)盟推出的P.862標(biāo)準(zhǔn),用來評估語音質(zhì)量的客觀評價(jià),評價(jià)得分取值范圍為-0.5~4.5,數(shù)值越大表示語音質(zhì)量越好。
SNR和LSD[13]可以分別在時(shí)域和頻域上評估語音的失真程度。其公式分別為
為了驗(yàn)證本文提出的基于注意力機(jī)制和殘差卷積方法(記為ResAtt)的性能,分別與文獻(xiàn)[12]中的基于深度卷積網(wǎng)絡(luò)方法(記為DCNN)和文獻(xiàn)[14]中的冗余卷積編碼器譯碼器方法(記為R-CED)進(jìn)行對比。DCNN中神經(jīng)網(wǎng)絡(luò)包含3個(gè)卷積層和3個(gè)全連接層;R-CED方法神經(jīng)網(wǎng)絡(luò)由15層做成。
表1、表2、表3和表4分別表示在測試集中添加-5dB、0dB、5dB和10dB與訓(xùn)練噪聲匹配的white噪聲之后,本文算法與兩外兩種方法的對比。表中黑體數(shù)字表示在該項(xiàng)指標(biāo)中最好的得分。
表1 匹配white噪聲下的性能(-5dB)
表2 匹配white噪聲下的性能(0dB)
表3 匹配white噪聲下的性能(5dB)
表4 匹配white噪聲下的性能(10dB)
從以上表中可以看出,本文方法在SNR、LSD和PESQ指標(biāo)中都比其他兩種方法獲得更好的得分,說明經(jīng)過本文方法增強(qiáng)后的語音的質(zhì)量和可懂度都優(yōu)于另兩種方法。
為了驗(yàn)證本文方法的泛化能力,表5表示了本文ResAtt方法、DCNN和R-CED在5dB的不匹配f16噪聲情況下的三種方法的性能。
表5 不匹配f16噪聲下的性能(5dB)
從仿真結(jié)果可以看到,本文提出的方法在不匹配噪聲環(huán)境下,也表現(xiàn)出較好的效果,在評價(jià)指標(biāo)SNR、LSD和PESQ中效果是最好的,表明本文方法在未知噪聲環(huán)境下也有較好的增強(qiáng)效果,有較強(qiáng)的泛化能力。
為了更直觀地比較三種方法的性能,選用含有信噪比為5dB white噪聲的一段語音,用三種方法分別進(jìn)行增強(qiáng),圖5和圖6中(a)~(e)分別表示純凈語音、含噪語音、DCNN增強(qiáng)語音、RCED增強(qiáng)語音和本文ResAtt增強(qiáng)語音的時(shí)域圖和語譜圖。從圖中可以看出,經(jīng)過本文ResAtt方法增強(qiáng)后的語音,噪聲殘留更少。
圖5 5dB white噪聲下的語音增強(qiáng)時(shí)域圖
圖6 5dB white噪聲下的語音增強(qiáng)語譜圖
綜合比較可以看出本文提出的基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)方法在低信噪比下可以有效地去除噪聲,提高語音信號的質(zhì)量,并具有良好的泛化能力。
為了進(jìn)一步提高語音增強(qiáng)算法的性能,本文提出了一種基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)算法。該方法在卷積神經(jīng)網(wǎng)絡(luò)中添加殘差學(xué)習(xí)和注意力機(jī)制,使得網(wǎng)絡(luò)更好地學(xué)習(xí)特征圖集中的全局信息,增強(qiáng)了網(wǎng)絡(luò)的學(xué)習(xí)能力。通過與DCNN和R-CED方法進(jìn)行對比,驗(yàn)證了本文提出的基于注意力機(jī)制和殘差卷積網(wǎng)絡(luò)的語音增強(qiáng)方法可以顯著提高語音信號的質(zhì)量,與另外兩種方法相比有更好的語音增強(qiáng)性能,并且有良好的泛化能力。