陳 宇,尹文兵,高 戈,王 霄,曾 邦,陳 怡
1(公安部第一研究所,北京 100048)
2(武漢大學(xué) 國家多媒體軟件工程技術(shù)研究中心,武漢 430072)
3(華中師范大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430077)
在現(xiàn)實(shí)環(huán)境中錄制的語音信號(hào)常常會(huì)受到背景噪聲的干擾. 語音增強(qiáng)可以通過去除帶噪語音中的噪聲獲得干凈的語音信號(hào),從而提高語音質(zhì)量與可懂度. 它在聽覺輔助設(shè)備、語音通信、語音識(shí)別前端等應(yīng)用中發(fā)揮著重要作用.
傳統(tǒng)語音增強(qiáng)算法以譜減法[1]、二值掩碼[2]、維納濾波法[3]以及最小均方差法[4]為主. 這些方法假設(shè)語音信號(hào)是平穩(wěn)的,只能在高信噪比環(huán)境下對(duì)穩(wěn)態(tài)的加性噪聲發(fā)揮作用. 然而現(xiàn)實(shí)中大部分帶噪語音的信噪比較低,并且?guī)в谢祉懪c非平穩(wěn)的噪聲,傳統(tǒng)語音增強(qiáng)方法無法處理該類低信噪比的帶噪語音.
過去幾年里,深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNNs)逐漸應(yīng)用到語音增強(qiáng)任務(wù)中來[5]. 憑借對(duì)復(fù)雜映射的強(qiáng)大建模能力,DNNs 可以從數(shù)據(jù)中學(xué)習(xí)到語音或噪聲的深層特征,例如使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[6]或循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[7]學(xué)習(xí)帶噪語音到干凈語音的頻譜映射過程,從而達(dá)到去噪的目的. 為了引入語音的上下文信息,長短時(shí)記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[8]也被應(yīng)用到語音增強(qiáng)中. 這些方法通常使用短時(shí)傅里葉變換(short-time Fourier transform,STFT)所得的頻域幅度譜作為網(wǎng)絡(luò)映射目標(biāo),同時(shí)使用帶噪相位進(jìn)行語音重構(gòu),這會(huì)導(dǎo)致幅度譜與相位譜不匹配的情況出現(xiàn). 為了解決該問題,時(shí)域語音增強(qiáng)方法[9–11]逐漸受到人們重視. 該類方法通過直接增強(qiáng)語音的時(shí)域波形,避免了逆短時(shí)傅里葉變換(ISTFT)過程,使其性能不依賴相位估計(jì)的準(zhǔn)確性[12].
生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)[13]通過學(xué)習(xí)底層數(shù)據(jù)分布來生成類似于真實(shí)數(shù)據(jù)的樣本. GAN 作為最先進(jìn)的深度生成模型被迅速應(yīng)用到語音相關(guān)的任務(wù)中來,如語音轉(zhuǎn)換[14]、語音合成[15]等. Pascual 等人提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的語音增強(qiáng)方法(speech enhancement generative adversarial network,SEGAN)[16],該方法使用生成器將帶噪語音的時(shí)域波形直接映射生成干凈語音波形,保留了大量原始語音的底層信息. 同時(shí)使用鑒別器區(qū)分干凈語音信號(hào)與增強(qiáng)語音信號(hào),將鑒別結(jié)果反饋給生成器,指導(dǎo)生成器學(xué)習(xí)類似于真實(shí)干凈語音的信號(hào)分布. 盡管已有實(shí)驗(yàn)證明GAN 在語音增強(qiáng)任務(wù)上的應(yīng)用是成功的,但增強(qiáng)語音失真與缺乏對(duì)各種語音特征的考慮[12]等問題依然存在. 在圖像處理任務(wù)中,許多人通過修改損失函數(shù)[17]或改進(jìn)生成器和鑒別器結(jié)構(gòu)[18,19],以改善GAN 的效果. 但在語音增強(qiáng)任務(wù)中該問題還未得到廣泛研究,SEGAN 仍存在語音失真與低信噪比條件下表現(xiàn)不佳的問題.
為了解決該問題,Phan 等人[20]提出了SEGAN 的改進(jìn)算法,即基于迭代生成對(duì)抗網(wǎng)絡(luò)的語音增強(qiáng)算法(ISEGAN)和基于深度生成對(duì)抗網(wǎng)絡(luò)的語音增強(qiáng)算法(DSEGAN),通過對(duì)增強(qiáng)語音進(jìn)行多重映射,達(dá)到進(jìn)一步細(xì)化語音和噪聲差別的目的. 同時(shí),文獻(xiàn)[21]提出了一種基于時(shí)頻域生成對(duì)抗網(wǎng)絡(luò)的語音增強(qiáng)算法(timefrequency domain SEGAN,TFSEGAN),該方法采用了時(shí)頻雙鑒別器的模型結(jié)構(gòu)和時(shí)頻域L1 損失函數(shù),提升了低信噪比下SEGAN 增強(qiáng)語音的語音質(zhì)量和語音可懂度,但該方法仍存在增強(qiáng)語音失真的現(xiàn)象.
受文獻(xiàn)[20,21]啟發(fā),本文提出一種新的生成對(duì)抗網(wǎng)絡(luò)語音增強(qiáng)框架,該框架包含多個(gè)生成器與多個(gè)鑒別器. 其中串聯(lián)的多生成器可以對(duì)語音信號(hào)進(jìn)行多階段映射,通過不斷對(duì)增強(qiáng)語音進(jìn)行優(yōu)化,取得更優(yōu)的生成結(jié)果. 并聯(lián)的多鑒別器分別將增強(qiáng)語音的時(shí)域特征與頻域特征作為輸入,指導(dǎo)生成器間接地學(xué)習(xí)語音頻域特征分布. 相應(yīng)的本文使用時(shí)頻域聯(lián)合損失函數(shù),通過在生成器的損失函數(shù)中引入頻域損失,提高生成器對(duì)頻域細(xì)節(jié)信息的捕獲能力. 實(shí)驗(yàn)結(jié)果表明,本文所提出的方法在PESQ[22]與STOI[23]評(píng)價(jià)指標(biāo)上比SEGAN基線表現(xiàn)更優(yōu),并且在低信噪比條件下相較DSEGAN[20]與TFSEGAN[21]方法具有更好的去噪效果與更少的語音失真.
SEGAN 與CGAN[24]的結(jié)構(gòu)類似,由一個(gè)生成器G與一個(gè)鑒別器D組成. 在訓(xùn)練過程中,生成器將隨機(jī)采樣的帶噪語音x?作為輸入,通過映射的方式產(chǎn)生相應(yīng)的增強(qiáng)語音信號(hào)x?. 干凈語音x與 增強(qiáng)語音x?分別與帶噪語言x?成對(duì)送入鑒別器. 鑒別器接收到輸入信號(hào),需要鑒別該信號(hào)是否為真實(shí)的干凈語音,并將結(jié)果反饋給生成器. 為了生成一個(gè)真實(shí)的樣本,生成器被訓(xùn)練來欺騙鑒別器,而鑒別器被訓(xùn)練來區(qū)分真實(shí)樣本x和x?. SEGAN通過最小最大化博弈的對(duì)抗性訓(xùn)練來模擬真實(shí)數(shù)據(jù)的復(fù)雜分布,以此促進(jìn)模型學(xué)習(xí)語音的樣本分布信息,結(jié)構(gòu)如圖1 所示,其中 ⊕為特征拼接(contact)操作.
圖1 SEGAN 模型框架
SEGAN 生成器是一個(gè)編碼器-解碼器結(jié)構(gòu),負(fù)責(zé)實(shí)現(xiàn)語音增強(qiáng)的功能,其結(jié)構(gòu)如圖2 所示. 編碼器的輸入為帶噪語音原始波形,經(jīng)過多層卷積與PReLU 壓縮得到高維的中間向量c. 該中間向量c與隨機(jī)噪聲z一起送往解碼器. 解碼器結(jié)構(gòu)與編碼器網(wǎng)絡(luò)結(jié)構(gòu)鏡像對(duì)稱,通過反卷積與PReLU 激活函數(shù)將編碼器結(jié)果還原為語音時(shí)域特征,即增強(qiáng)后的語音波形x?. 由于使用的語音時(shí)域波形特征是直接對(duì)語音進(jìn)行分幀、采樣得到的,沒有其他特征提取操作,模型的輸出無需進(jìn)行語音波形重構(gòu)等操作來得到增強(qiáng)語音,避免了傳統(tǒng)譜映射方法中估計(jì)幅度譜與帶噪相位譜不匹配的問題.
圖2 SEGAN 的生成器
SEGAN 鑒別器的主要作用是監(jiān)督生成器進(jìn)行訓(xùn)練,只工作于模型的訓(xùn)練階段,并不參與模型測試等階段. 鑒別器由12 個(gè)1 維卷積層與1 個(gè)全連接層組成,其結(jié)構(gòu)如圖3 所示. 鑒別器對(duì)輸入信號(hào)進(jìn)行分類,判斷其真假,并將判別打分反饋給生成器. 在訓(xùn)練過程中,鑒別器學(xué)會(huì)將這對(duì)信號(hào)(x,)分類為真,(x,)分類為假,而生成器試圖欺騙鑒別器,使鑒別器將(x,)分類為真.
圖3 SEGAN 的鑒別器
受最小二乘法GAN[25]的啟發(fā),SEGAN 采用最小二乘法損失來提高鑒別器的穩(wěn)定性. 鑒別器D和生成器G的最小二乘目標(biāo)函數(shù)被明確寫為:
其中,D表示鑒別器,G表示生成器,x表示干凈語音,表示帶噪語音,z表示隨機(jī)噪聲,≡G(z,)為生成器輸出的增強(qiáng)語音.
在式(2)中,干凈語音x和增強(qiáng)語音x?時(shí)域幅值之間的L1 距離被計(jì)算在內(nèi),以鼓勵(lì)生成器G生成更精細(xì)和真實(shí)的結(jié)果[16]. L1-norm 項(xiàng)的影響由超參數(shù) λ調(diào)節(jié),λ在文獻(xiàn)[16]中被設(shè)定為100.
為了提升SEGAN 在低信噪比條件下的增強(qiáng)性能,同時(shí)減少增強(qiáng)語音失真對(duì)語音識(shí)別后端的影響,本文提出了一種多階段生成器與時(shí)頻鑒別器的生成對(duì)抗網(wǎng)絡(luò)(MS-TFSEGAN),其結(jié)構(gòu)如圖4 所示.
圖4 MS-TFSEGAN 模型框架
文獻(xiàn)[26]在GAN 的基礎(chǔ)上使用了額外的生成器組成串聯(lián)生成器的結(jié)構(gòu),取得了更好的圖像重構(gòu)性能.以此為鑒,Phan 等人在文獻(xiàn)[20]中探索了SEGAN 多重映射的方法,證實(shí)了該方法在語音增強(qiáng)中同樣有效.本文采用文獻(xiàn)[20]中的DSEGAN 的生成器框架,采用兩個(gè)生成器進(jìn)行串聯(lián),實(shí)現(xiàn)多階段的增強(qiáng),取代SEGAN中單生成器單階段增強(qiáng)的方法,其結(jié)構(gòu)如圖5.
圖5 MS-TFSEGAN 的生成器
生成器G1與G2與SEGAN 的生成器結(jié)構(gòu)相同,但參數(shù)相互獨(dú)立.G1的輸入為帶噪語音信號(hào)與隨機(jī)噪聲z1,生成增強(qiáng)語音信號(hào). 生成器G2接收到前一級(jí)G1的輸出以及隨機(jī)噪聲z2,再次進(jìn)行增強(qiáng)映射,輸出一個(gè)更好的增強(qiáng)信號(hào),即:
傳統(tǒng)SEGAN 的生成器與鑒別器輸入均為語音時(shí)域特征,完全忽略了語音信號(hào)在頻域上的特征分布情況. 而低信噪比條件下,語音信號(hào)會(huì)淹沒在噪聲中,使帶噪語音的時(shí)域分布信息難以捕獲. 鑒于此,本文采用雙路鑒別器結(jié)構(gòu),使生成器能夠同時(shí)學(xué)習(xí)語音的時(shí)域與頻域中的特征分布,如圖6 所示,其中鑒別器D1為時(shí)域鑒別器,鑒別器D2為頻域鑒別器.
圖6 MS-TFSEGAN 的鑒別器框架
鑒別器D1與D2與SEGAN 的鑒別器結(jié)構(gòu)相同,如圖3 所示,D1輸入為時(shí)域波形特征,D2輸入為語音信號(hào)經(jīng)過FFT 變換之后的頻域特征. 鑒別器D1和D2都是由12 層卷積層和1 層Softmax 全連接層組成,并在LeakyReLU 激活前使用虛擬批歸一化(virtual batch-norm)[27],α=0.3. 在訓(xùn)練時(shí),兩個(gè)鑒別器都將接收到生成器G1與G2輸出的增強(qiáng)語音,并對(duì)兩路增強(qiáng)語音進(jìn)行鑒別打分,打分結(jié)果通過損失函數(shù)分別送回生成器G1與G2.
MS-TFSEGAN 在訓(xùn)練時(shí),鑒別器D1與D2將生成器G1、G2輸出的數(shù)據(jù)對(duì)都鑒別為假,只有(x,)鑒別為真. MS-TFSEGAN 時(shí)域鑒別器D1的損失函數(shù)與SEGAN 鑒別器的損失函數(shù)相似,但要對(duì)生成器G1和G2的輸出都進(jìn)行鑒別打分,其損失函數(shù)如式(5)所示:
其中,D1表示時(shí)域鑒別器,G表示生成器,x表示干凈語音,表示帶噪語音,z表示隨機(jī)噪聲,≡Gn(zn,)為第n個(gè)生成器輸出的增強(qiáng)語音,當(dāng)n為0 時(shí),
MS-TFSEGAN 頻域鑒別器D2的輸入為傅里葉頻譜特征. L1 損失可以直接最小化估計(jì)頻譜和干凈頻譜之間的距離[16],可以帶來比L2 損失更好的語音增強(qiáng)性能[28],所以MS-TFSEGAN 的損失函數(shù)采用L1 范式計(jì)算頻域損失,其計(jì)算方式如式(6)所示:
其中,D2表示頻域鑒別器,FFT[·]指快速傅里葉變換操作.
另外,文獻(xiàn)[21]表明,頻域鑒別器雖然能監(jiān)督生成器捕獲部分頻域特征,但該部分特征較為模糊與粗糙,其細(xì)膩程度嚴(yán)重不足并缺乏現(xiàn)實(shí)意義. 為了解決該問題,本文采用文獻(xiàn)[21]中的時(shí)頻聯(lián)合損失函數(shù),向生成器損失函數(shù)中引入頻域L1 損失項(xiàng). 故整個(gè)生成器的損失函數(shù)如式(7)所示:
為了在多個(gè)階段規(guī)范損失大小,式(7)中的權(quán)值λn和 μn的值大小分別被設(shè)置為和[20]. 通過上述設(shè)置,一個(gè)生成器的增強(qiáng)后輸出的L1 損失項(xiàng)是其前一個(gè)生成器的兩倍.
本文的實(shí)驗(yàn)環(huán)境為64 位操作系統(tǒng)Ubuntu 16.04,主要使用的開源工具為SOX、TensorFlow 和Kaldi. 本文使用的數(shù)據(jù)集為開源中文語音數(shù)據(jù)集Aishell-1,噪聲數(shù)據(jù)集則為MUSAN[29].
訓(xùn)練集設(shè)置: 增強(qiáng)模塊網(wǎng)絡(luò)的帶噪語音訓(xùn)練集由包含340 個(gè)說話人、共150 小時(shí)的Aishell-1 干凈中文語音數(shù)據(jù)集和噪聲數(shù)據(jù)集MUSAN 仿真而成. 通過SOX工具給Aishell-1 數(shù)據(jù)集加上了?15 dB、?10 dB、?5 dB、0 dB、5 dB 和10 dB 這6 組不同信噪比的隨機(jī)種類噪聲,可以得到不同信噪比的帶噪語音訓(xùn)練數(shù)據(jù)集.
測試集設(shè)置: 本次實(shí)驗(yàn)的測試集包括6 個(gè)子集,6 個(gè)子集中的帶噪語音的信噪比分別為?15 dB、?10 dB、?5 dB、0 dB、5 dB 和10 dB. 其中,每個(gè)子集包含1 000條帶噪語音,子集之間除了信噪比不同,其他設(shè)置均相同. 與訓(xùn)練集相同,測試集的語音是使用SOX 工具給Aishell-1 測試集添加MUSAN 噪聲集. 實(shí)驗(yàn)結(jié)果將由PESQ、STOI 和語音識(shí)別CER 這3 種參數(shù)進(jìn)行評(píng)估.
在本實(shí)驗(yàn)中,MS-TFSEGAN 生成器與鑒別器(包括時(shí)域鑒別器和頻域鑒別器)的網(wǎng)絡(luò)參數(shù)均與SEGAN的網(wǎng)絡(luò)參數(shù)一致. 語音信號(hào)采樣率為16 kHz,幀長為1 s,幀移為500 ms,FFT 采樣點(diǎn)數(shù)為16 384. 另外,模型訓(xùn)練的batchsize 設(shè)為100,初始化學(xué)習(xí)率為0.000 1,優(yōu)化方式采用RMSProp 優(yōu)化器.
本次實(shí)驗(yàn)的基線系統(tǒng)為SEGAN,選取DSEGAN和TFSEGAN 作為額外的基線系統(tǒng),其性能僅作為參考. 實(shí)驗(yàn)的結(jié)果將從增強(qiáng)后語音的質(zhì)量、可懂度以及對(duì)后端語音識(shí)別系統(tǒng)的影響3 個(gè)方面進(jìn)行分析. 其中,PESQ 作為增強(qiáng)語音質(zhì)量的評(píng)估標(biāo)準(zhǔn); STOI 作為增強(qiáng)語音可懂度的評(píng)估標(biāo)準(zhǔn); 以Kaldi 的Chain model 作為后端語音識(shí)別系統(tǒng),對(duì)增強(qiáng)語音進(jìn)行識(shí)別得到的CER作為對(duì)后端語音識(shí)別系統(tǒng)的影響的評(píng)估標(biāo)準(zhǔn). 本次實(shí)驗(yàn)的結(jié)果以及分析如下所示.
(1)語音質(zhì)量比較
采用PESQ 作為語音作為增強(qiáng)后語音的評(píng)估標(biāo)準(zhǔn),對(duì)MS-TFSEGAN 在不同信噪比條件下的增強(qiáng)語音的質(zhì)量進(jìn)行評(píng)估,評(píng)估結(jié)果如表1 所示.
表1 4 種模型的PESQ 對(duì)比
由表1 所示,在提升語音質(zhì)量方面,各信噪比下MS-TFSEGAN 增強(qiáng)效果均比DSEGAN 與TFSEGAN優(yōu)秀. 與SEGAN 相比,MS-TFSEGAN 的增強(qiáng)性能平均提升了約13%,尤其在?15 dB 條件下,其性能提升約15.15%. 這說明MS-TFSEGAN 很大程度上解決了SEGAN 在低信噪比條件下增強(qiáng)語音質(zhì)量較差的問題.
同時(shí)如表1 所示,MS-TFSEGAN 在DSEGAN 的基礎(chǔ)上引入了時(shí)頻鑒別器,取得了約10%的性能提升.與TF-SEGAN 相比,使用了多階段的生成映射,取得了約9%的性能提升,尤其在高信噪比條件下同樣取得了約8.27%的提升,解決了TFSEGAN 在高信噪比下提升效果不明顯的問題[21].
(2)語音可懂度結(jié)果比較
采用STOI 作為語音可懂度評(píng)估標(biāo)準(zhǔn),對(duì)MSTFSEGAN 在不同信噪比條件下的增強(qiáng)語音的可懂度進(jìn)行評(píng)估,評(píng)估結(jié)果如表2 所示.
表2 4 種模型STOI 的對(duì)比
由表2 可知,在提升語音可懂度方面,MS-TFSEGAN的性能明顯強(qiáng)于SEGAN、DSEGAN 和TFSEGAN.MS-TFSEGAN 的STOI 相較SEGAN 提升了約8.97%,相較DSEGAN 與TFSEGAN 也獲得了約6.67%的提升. 特別是在?10 dB 與?15 dB 時(shí),由于SEGAN 存在語音失真的問題,導(dǎo)致增強(qiáng)后語音的可懂度比原帶噪語音更低. 而MS-TFSEGAN 在?15 dB 與?10 dB 條件下STOI 分別取得了15.4%與12.54%的提升,明顯優(yōu)于其他方法,進(jìn)一步說明MS-TFSEGAN 能夠有效緩解語音失真導(dǎo)致的語音可懂度下降.
(3)語音識(shí)別結(jié)果比較
采用CER 作為標(biāo)準(zhǔn)評(píng)估MS-TFSEGAN 對(duì)后端語音識(shí)別系統(tǒng)準(zhǔn)確率的影響. 6 組不同信噪比數(shù)據(jù)經(jīng)過各語音增強(qiáng)模型后,得到的增強(qiáng)語音的識(shí)別結(jié)果CER 的值如表3 所示.
表3 4 種模型的CER 對(duì)比
表3 顯示,在?15 dB 條件下,SEGAN、DSEGAN對(duì)識(shí)別準(zhǔn)確率并無提升,反而由于增強(qiáng)語音存在失真導(dǎo)致識(shí)別錯(cuò)誤率上升. 相較之下,由于引入了頻域信息,TFSEGAN 與MS-TFSEGAN 在低信噪比條件下對(duì)語音識(shí)別準(zhǔn)確率有所提升,尤其是MS-TFSEGAN 相較SEGAN 在準(zhǔn)確率上有約10%的提升. 同時(shí)在高信噪比下,相較于原語音也有1%的識(shí)別準(zhǔn)確率的提升.
在復(fù)雜度方面,由于MS-TFSEGAN 需要訓(xùn)練兩個(gè)生成器與兩個(gè)鑒別器,導(dǎo)致其訓(xùn)練速度相比于SEGAN較慢. 但在增強(qiáng)階段,鑒別器組不參與增強(qiáng)過程,MSTFSEGAN 的計(jì)算速度與SEGAN 基線模型相當(dāng).
綜合3 組實(shí)驗(yàn)可以得到,MS-TFSEGAN 由于其多階段映射與時(shí)頻鑒別器的結(jié)構(gòu),無論在語音增強(qiáng)性能上還是提升語音識(shí)別準(zhǔn)確率的性能方面,都要優(yōu)于SEGAN 等基線模型. 說明MS-TFSEGAN 更適合處理低信噪比語音以及作為語音識(shí)別的前端模塊.
為了解決SEGAN 存在的問題和不足,本文提出了多生成器與時(shí)頻鑒別器的生成對(duì)抗網(wǎng)絡(luò)語音增強(qiáng)算法(MS-TFSEGAN). 在模型結(jié)構(gòu)方面,MS-TFSEGAN采用了串聯(lián)的生成器結(jié)構(gòu),對(duì)帶噪語音進(jìn)行多階段的增強(qiáng). 同時(shí)使用了并聯(lián)的時(shí)頻鑒別器結(jié)構(gòu),時(shí)域鑒別器輸入語音樣本的時(shí)域特征,頻域鑒別器輸入語音樣本的頻域特征. 在兩個(gè)鑒別器的作用下,MS-TFSEGAN的生成器能夠同時(shí)學(xué)習(xí)語音樣本在時(shí)域和頻域中的分布規(guī)律和信息. 在損失函數(shù)方面,MS-TFSEGAN 采用了時(shí)頻域聯(lián)合損失函數(shù).
實(shí)驗(yàn)證明,在負(fù)信噪比條件下,MS-TFSEGAN 的語音質(zhì)量和可懂度與SEGAN 相比分別提升了約14.63%和12.47%. 同時(shí)語音識(shí)別的實(shí)驗(yàn)證明,MS-TFSEGAN 相比于SEGAN 與其他模型能夠更好地捕獲語音樣本中的頻域中的分布信息,在語音識(shí)別準(zhǔn)確率的提升上更為優(yōu)秀. MS-TFSEGAN 一定程度上解決了SEGAN 在低信噪比條件下增強(qiáng)性能不佳的問題,同時(shí)減少了增強(qiáng)語音的失真現(xiàn)象,在作為語音識(shí)別前端模塊具有明顯優(yōu)勢.