徐瓏婷, 田娩鑫, 魏郅林
(東華大學 信息科學與技術(shù)學院, 上海 201620)
語音是人們交流常用的一種信息載體。在實際環(huán)境中,語音信號總會受到外界噪聲的干擾,常見的噪聲包括自然界的白噪聲、其他人說話的干擾聲以及錄音設備中的內(nèi)部電噪聲等。過多噪聲的存在,會使原有語音無法分辨。語音增強是解決噪聲污染的一種有效方法,通過抑制背景噪聲,從嘈雜的語音中保留干凈的語音信號,進而提高語音質(zhì)量和清晰度。
語音增強算法早期大多基于濾波的概念,例如頻譜減法算法[1]、Winner濾波[2]、信號子空間算法[3]和最小均方誤差頻譜估計器[4]。隨后又發(fā)展出K奇異值分解[5]、非負矩陣分解(nonnegative matrix factorization, NMF)[6]等算法。隨著深度學習的發(fā)展,深度神經(jīng)網(wǎng)絡(deep neural networks, DNN)已被廣泛且有效地應用于語音增強。比如Xu等[7]提出了一個基于回歸的語音增強框架,利用多層深度架構(gòu)的DNN來實現(xiàn)語音增強,試驗結(jié)果表明,與對數(shù)最小均方誤差方法相比,基于DNN的語音增強算法在各類語音質(zhì)量評測標準中都取得了明顯的優(yōu)勢。Huang等[8]提出了一種基于DNN的多波段激勵的語音增強方法,在增強階段利用每幀的音高和DNN的輸出來增強有噪聲的語音,該方法在不同信噪比下均優(yōu)于基線。因此DNN在語音增強領域有很大的潛力。生成對抗網(wǎng)絡(generative adversarial network, GAN)是基于零和博弈思想構(gòu)建的一種深度學習模型,它的生成器和鑒別器一般均由DNN構(gòu)成。GAN在語音增強領域最大的優(yōu)勢是能夠?qū)W習任何分布下的數(shù)據(jù),并能生產(chǎn)相似分布的數(shù)據(jù)[9],通過對純凈語音樣本的學習,使含噪語音轉(zhuǎn)換為類似于純凈語音的增強語音,以達到語音增強的目的。但GAN需要大量成對的數(shù)據(jù)集進行訓練,訓練的難度增大,不利于實際的應用。
Zhu等[10]提出的循環(huán)一致性生成對抗網(wǎng)絡(cycle-consistent generative adversarial network, CycleGAN)模型,適用于兩種不同風格語音域之間的轉(zhuǎn)換。CycleGAN通過添加循環(huán)一致性損失函數(shù),有效地解決了缺少成對的訓練語音的問題。為進一步提高CycleGAN生成語音的質(zhì)量,通過改進CycleGAN的生成器網(wǎng)絡結(jié)構(gòu)(2-1-2D CNN)提出一種基于改進CycleGAN的語音增強模型,即CycleGAN-2-1-2D模型。CycleGAN-2-1-2D結(jié)合了1D-CNN和2D-CNN的優(yōu)勢,能更好地捕捉特征的動態(tài)變化和局部特征的細節(jié)。
GAN的網(wǎng)絡結(jié)構(gòu)主要包括生成器和鑒別器,生成器的任務是模仿X域樣本并生成翻譯數(shù)據(jù),鑒別器的任務是將這些生成的翻譯數(shù)據(jù)與X域樣本進行區(qū)分[11]。隨著生成器與鑒別器不斷地對抗訓練,生成器生成的翻譯數(shù)據(jù)便會獲得與X域樣本越來越相似的風格,鑒別器判別能力也會隨著不斷提高,最終使得生成器與鑒別器達到一種平穩(wěn)態(tài)。該過程目標函數(shù)如式(1)所示。
Ez~p(z)[log2(1-D(G(z)))]
(1)
式中:x為X域的語音樣本;z為隨機噪聲,其同時作為生成器的輸入;pdata(x)為X域的概率分布;p(z)為隨機噪聲的概率分布;G為生成器參與的z→x映射過程中的映射函數(shù);G(z)為生成器生成的翻譯語音;D為鑒別器的判別函數(shù);D(G(z))為鑒別器判定翻譯語音為X域樣本的概率;D(x)為鑒別器判定x是X域樣本的概率;E為數(shù)學期望;~表示服從關(guān)系。
CycleGAN是在GAN的基礎上發(fā)展來的,用于訓練不成對的數(shù)據(jù)集,CycleGAN模型訓練原理如圖1所示。CycleGAN由生成器、逆生成器、鑒別器1和鑒別器2組成。CycleGAN的前向循環(huán)過程中,生成器將X域的樣本x映射為Y域的y′,逆生成器將Y域的樣本y′映射為X域的x′。CycleGAN的后向循環(huán)過程中,逆生成器將Y域的樣本y映射為X域的x′,生成器將X域的樣本x′映射為Y域的y′。鑒別器1用于判斷y′是否為Y域的樣本,鑒別器2用于判斷x′是否為X域的樣本。
圖1 CycleGAN原理圖
Ex~pdata(x)[log2(1-Dy(G(x)))]
(2)
(3)
式中:pdata(y)為Y域的概率分布;F為逆生成器參與的y→x映射過程中的映射函數(shù);G(x)為X域樣本x輸入到生成器所生成的與Y域語音相似的翻譯語音;F(y)為Y域樣本y輸入到逆生成器生成的與X域語音相似的翻譯語音;Dy為鑒別器1的判別函數(shù);Dy(G(x))為鑒別器1判定生成器生成的語音G(x)屬于Y域的概率;Dx為鑒別器2的判別函數(shù);Dx(F(y))為鑒別器2判定逆生成器生成的語音F(y)屬于X域的概率。
Ey~pdata(y)[‖G(F(y))-y‖]
(4)
Ex~pdata(x)[‖G(x)-x‖]
(5)
結(jié)合4個損失函數(shù),總體損失函數(shù)如式(6)所示。
(6)
式中:λcyc為用于控制循環(huán)一致?lián)p失函數(shù)相對重要性的常數(shù);λid為用于控制標識映射損失函數(shù)相對重要性的常數(shù)。
最后,兩個生成器按式(7)進行求解。
(7)
循環(huán)生成對抗網(wǎng)絡的語音增強可以通過訓練兩個具有特殊內(nèi)部結(jié)構(gòu)的自動編碼器來實現(xiàn)上述循環(huán)對抗生成網(wǎng)絡,即加噪語音和純凈語音可以通過中間表示層映射到自身。這種設置也可以看作是生成對抗自動編碼器的一種特殊情況,它使用對抗損失來訓練瓶頸層以匹配任何目標分布。
(8)
圖2 CycleGAN模型的兩次對抗性損失
1D-CNN生成器結(jié)構(gòu)由降采樣層、殘差層和升采樣層組成,在保留時間結(jié)構(gòu)的同時捕獲幀與幀之間的特征關(guān)系以及特征方向,因此1D-CNN更適合捕捉動態(tài)變化。但1D-CNN中的降采樣和升采樣會損失部分采樣特征結(jié)構(gòu),導致語音增強效果較差。相比之下,2D-CNN將轉(zhuǎn)換后的區(qū)域限制為局部,更適合在轉(zhuǎn)換特征的同時更清晰地保留原始語音特征,從而實現(xiàn)良好的語音增強效果。
為了兼顧1D-CNN和2D-CNN的優(yōu)勢,本文使用了2-1-2D CNN的網(wǎng)絡架構(gòu)。在該網(wǎng)絡中,將2D-CNN用于降采樣和升采樣,并將1D-CNN用于主要轉(zhuǎn)換過程。為了調(diào)整通道尺寸,在重塑特征圖之前或之后應用1×1卷積。生成器結(jié)構(gòu)如圖3所示。由圖3可知,1D-CNN、2D-CNN和2-1-2D CNN輸入特征的尺寸由Q×T×1表示,其中:r為降采樣率和升采樣率;c為殘差層的固有尺寸;Q為特征維數(shù);T為序列長度。
圖3 生成器結(jié)構(gòu)
FullGAN使用2D-CNN[12]作為鑒別器,以專注于二維結(jié)構(gòu),更準確地說,在最后一層使用了一個完全連接的層來確定考慮輸入的整體結(jié)構(gòu)的真實性。但最近在計算機視覺中的研究[12]表明,鑒別器的寬范圍接受區(qū)域需要更多的參數(shù),這使得訓練時間大大加長。受此啟發(fā),使用PatchGAN[13]取代了FullGAN。兩種鑒別器結(jié)構(gòu)如圖4所示。
圖4 鑒別器結(jié)構(gòu)
PatchGAN在最后一層使用了卷積網(wǎng)絡,該網(wǎng)絡用于捕獲特征統(tǒng)計信息,輸出為m×m的矩陣,將矩陣中的每一個元素求和取均值,最終影響語音的判別結(jié)果。使用PatchGAN結(jié)構(gòu)的鑒別器需要較少的參數(shù),在大大縮短訓練時間的同時也能有效捕捉語音的關(guān)鍵特征,使生成的語音保持高清晰度。
CycleGAN-2-1-2D模型的語音增強方案是將帶噪語音轉(zhuǎn)變成類似于純凈語音風格的去噪語音,訓練出一個智能的語音增強模型。該增強方案的具體實施分為數(shù)據(jù)集準備階段、訓練模型階段、測試模型階段。
用LibriTTS語料庫[14]作為數(shù)據(jù)集,該語料庫包含以24 kHz采樣率閱讀英語語音約585 h的語音樣本。3種噪聲的類型設為機艙噪聲、工廠車間噪聲1和工廠車間噪聲2。由于CycleGAN-2-1-2D網(wǎng)絡的訓練時間較長,設置機艙噪聲、工廠車間噪聲1和工廠車間噪聲2分別對應的信噪比(SN/R)為5、10和15 dB。
從LibriTTS語料庫中分別選取男/女性語音各N個樣本,其中,N/4個樣本加噪后作為訓練集A,N/4個樣本作為訓練集B,對N/2個樣本加噪后作為測試集。其中N應盡量大,以滿足CycleGAN-2-1-2D模型的訓練需求。
訓練集A={a1,a2,…,aN/4}作為CycleGAN-2-1-2D模型的加噪語音域,訓練集B={b1,b2,…,bN/4}作為CycleGAN-2-1-2D模型的純凈語音域。將訓練集A={a1,a2,…,aN/4}和B={b1,b2,…,bN/4}置入CycleGAN-2-1-2D模型中進行訓練學習,訓練過程如圖5所示。設置每迭代1 000次保存1次模型。
圖5 基于CycleGAN-2-1-2D的語音增強模型的訓練過程
鑒別器與生成器間隨著迭代次數(shù)的增加不斷博弈,使學習結(jié)果和學習目標之間的差異不斷減少。生成訓練模型后,把測試樣本(含噪語音)輸入到最終的生成器中,以檢驗增強效果。
從LibriTTS語料庫中隨機抽取N/2條語音加噪作為測試集,將測試集輸入到訓練過的CycleGAN-2-1-2D模型后得到增強語音。經(jīng)CycleGAN-2-1-2D模型增強后的語音長度會發(fā)生變化,與純凈語音長度不相同。所以采用無參照的語音評估方式,即MOSNet神經(jīng)網(wǎng)絡模型[15]來預估語音的平均意見得分。MOSNet是基于深度學習的語音質(zhì)量評估模型,測量語音自然度和相似度的能力很強,利用MOSNet神經(jīng)網(wǎng)絡模型評估增強語音的平均意見得分,測試過程如圖6所示。
圖6 基于CycleGAN-2-1-2D的語音增強模型的測試過程
殘差層的特點是易優(yōu)化,其內(nèi)部的殘差塊通過跳躍連接的方式將信息傳遞到網(wǎng)絡的更深層,在不增加計算復雜度的條件下解決梯度消失的問題,同時也加快了神經(jīng)網(wǎng)絡的收斂速度。卷積核是帶著一組固定權(quán)重的神經(jīng)元,可以用來提取特定的特征,每個卷積核的參數(shù)通過反向傳播算法優(yōu)化得到。2-1-2D CNN生成器由2層降采樣層、6層相同結(jié)構(gòu)的殘差層、1-2D轉(zhuǎn)換層、2-1D轉(zhuǎn)換層、2層升采樣層構(gòu)成,具體的結(jié)構(gòu)參數(shù)如表1所示。PatchGAN鑒別器由4層降采樣層和2D卷積層構(gòu)成,其結(jié)構(gòu)參數(shù)如表2所示。
表1 2-1-2D CNN生成器結(jié)構(gòu)參數(shù)
表2 PatchGAN的結(jié)構(gòu)參數(shù)
設置CycleGAN-2D和NMF的語音增強模型作為CycleGAN-2-1-2D模型的對照試驗,分別對3種模型進行試驗,試驗結(jié)果如表3所示。
表3 3種不同語音增強模型的MOSNet評估結(jié)果
由表3可知:對3種噪音條件下的男性語音進行增強時,CycleGAN-2-1-2D模型的語音增強效果皆優(yōu)于NMF模型,證實了CycleGAN-2-1-2D模型中的2D-CNN結(jié)構(gòu)能較為完整地保留語音特征的細節(jié),實現(xiàn)良好的訓練效果;對3種噪音條件下的女性語音進行增強時,CycleGAN-2-1-2D模型的語音增強效果皆優(yōu)于NMF和CycleGAN-2D模型。這由于相對男聲而言,女聲的頻率要高且動態(tài)變化更大,CycleGAN-2-1-2D模型中的1D-CNN結(jié)構(gòu)更適合捕捉特征的動態(tài)變化,因此CycleGAN-2-1-2D模型對女聲處理能達到更理想的效果。綜上所述,CycleGAN-2-1-2D模型既具有2D-CNN擅長捕獲局部特征細節(jié)的特點,又結(jié)合了1D-CNN對動態(tài)變化敏感的特點,在解決成對數(shù)據(jù)集缺失的問題的同時,進一步增強了模型的語音增強效果。
從深度學習角度對語音增強機制進行研究,通過將1D-CNN和2D-CNN結(jié)構(gòu)引入到CycleGAN-2-1-2D生成器,使得CycleGAN-2-1-2D生成器更加關(guān)注語音轉(zhuǎn)換的特征細節(jié)和動態(tài)變化,其中CycleGAN-2-1-2D模型中的PatchGAN鑒別器也可以大大縮短訓練時長。試驗結(jié)果表明:在原始數(shù)據(jù)十分有限的情況下,CycleGAN-2-1-2D模型能有效地學習樣本的多維度特征,實現(xiàn)語音的高效增強,更適用于實際的應用場景。在下一步的研究工作中,將對CycleGAN-2-1-2D模型的結(jié)構(gòu)參數(shù)進行合理化調(diào)整,對神經(jīng)網(wǎng)絡學習語音增強過程的靶點精細化,有望進一步提高語音增強效果。