樊良輝 韓俊剛 王怡斐
(西安郵電大學計算機學院 西安 710121)
關于語音技術的研究主要分為兩個方面:語音識別和語音去噪。語音去噪也叫語音增強,它是在嘈雜的環境中對語音進行過濾,有效地獲取語音中的信息[1]。語音去噪在實際中具有很廣泛的應用,比如在移動通信、語音識別、安全監聽、人機對話、人工電子耳蝸等領域均有應用的場景[1~3]。
目前,語音增強技術研究內容主要分為無監督的傳統的方法和有監督的深層神經網絡的方法。傳統的方法主要包括譜減法[4~5]、基于統計模型的方法[6]和信號子空間法[7~10]。經典譜減法通過對噪聲信號的平穩性做出假設,利用無語音段估計得出平均噪聲譜,接著用帶噪語音譜減去估計出的噪聲譜,得到干凈語音信號譜的估計。基于統計模型的降噪算法,需要對語音信號和噪聲信號的分布做出假設。以維納濾波[11]為代表的一類算法。基于信號子空間的語音增強方法是利用線性代數和矩陣分析進行降噪的技術,該方法在干凈的語音子空間和噪聲信號的子空間上進行運算,將帶噪語音信號映射到兩個子空間中,得到純凈語音信號。由于噪聲與干凈語音具有非線性關系,使用神經網絡建模的方法被提出,文獻[12~13]使用淺層神經網絡作為非線性濾波器,但模型在小數據集上效果較差。文獻[14~15]開始使用深層神經網絡進行語音增強任務,但是它們的算法復雜,且效果并不很理想。文獻[16]提出使用最小二乘生成對抗網絡到語音增強任務中,增強效果比較理想。卻存在模型復雜、訓練緩慢的問題。
在實際的語音增強算法研究中,對加性噪聲的增強是主要的內容。因為加性噪聲與其他類型的噪聲相比更能夠反映現實情況,具有更廣泛的應用場景。本文也是對加性噪聲語音進行的增強。
本研究中數據集是由干凈語音集和噪聲集融合而成的,融合完成之后再對數據進行截取、標準化以及劃分。
2.1.1 數據準備
本實驗干凈語音使用的時TIMIT 數據集[17],該數據集一共包含6300 條語音,語音頻率為16kHz,一共有630 個說話人。 噪聲集采用的是NOISEX-92 數據集以及俄亥俄州立大學認知神經動力學實驗室提供的100 種噪音數據[18~19],本研究中使用的帶噪語音數據集是由干凈語音和噪聲隨機疊加而成的,疊加過程中的信噪比有-5db、0db、5db、10db、15db、20db 六種。最終帶噪語音一共724500條。
2.1.2 數據劃分及數據預處理
在生成帶噪語音之后,我們按照7∶3 的比例隨機將數據劃分為訓練集和測試集。訓練集和測試集中沒有一樣的說話內容。由于每一條干凈語音的長度不一致,無法輸入到深度網絡中,我們對訓練集和測試集的語音分別進行重疊加窗處理,處理之后每一條數據的長度一致。采用的窗寬為8192,大約為0.5s,窗重疊200ms。這樣處理不僅能夠符合網絡輸入的要求,也能夠達到增加數據量的作用。

表1 實驗環境
條件生成式對抗網絡(CGAN)是對生成式對抗網絡的一種有效改進,能夠指導對抗網絡的訓練,加快訓練速度并提高模型的性能。本文使用了條件生成對抗網絡來做語音增強任務,與使用原始的對抗網絡相比,能夠解決模型訓練不穩定的問題,加快語音增強模型的訓練。
生成式對抗網絡是受到博弈論中零和博弈的啟發發展來的,包含生成模型和判別模型。生成網絡采用隨機輸入并輸出樣本。判別網絡則是用來判斷生成樣本和真實樣本的。雙方不斷競爭優化,最終達到“納什平衡”,此時生成模型能夠達到制造真實樣本的能力。對于原始的對抗網絡,由于其生成模型輸出的隨機性,用于語音增強任務中效果并不理想。而在原始的生成式對抗網絡中加入生成樣本的附件條件,即條件生成式對抗網絡,生成模型就可以按照指定的方向工作。
條件生成式對抗網絡,通過對抗訓練網絡將帶噪語音映射到干凈語音。在噪聲z 輸入到生成模型前,我們將帶噪語音的作為條件,與噪聲結合在一起輸入到生成模型,產生可控的增強語音。判別模型用來分辨增強語音和干凈語音。與原始的生成對抗網絡相比,CGAN 為模型引入了條件變量,可指導性的生成增強后的語音。在本文的研究中,我們增加的條件變量是帶噪語音。我們研究還發現,選擇何種方法作為優化模型的目標,對增強效果有明顯的影響。在本文中,我們針對語音增強的任務,對原始的CGAN 的目標函數進行了改進,在目標函數中增加了一項,增加項用來平衡原始CGAN 中的損失函數。本文算法參考文獻[1]并在網絡結構上進行了優化。并經過多次實驗,調整出最優的網絡參數。CGAN模型滿足如下關系:

在文中,z 為隨機噪聲,服從正態分布;x 為干凈語音,服從分布pdata(x),y為帶噪語音。對抗的過程可描述為:生成模型最大化D(G(z|y)),從而使判別模型分辨不出生成語音和干凈語音。而判別模型的最小化(1),盡力分辨生成語音和干凈語音,以此開展網絡對抗訓練,達到增強語音的目的。
2.3.1 生成模型
生成模型的網絡結構分為卷積和反卷積兩個過程。它輸入的是隨機噪聲和帶噪語音,生成對應的增強語音。實際的研究中,假設噪音與干凈語音呈現線性關系,如式(2)所示。

本文采用卷積神經網絡提取噪聲特征,以達到去除噪聲的目的,在反卷積階段,對語音進行恢復。在網絡中加入ReLU激活函數增加網絡的非線性,同時也可以解決因網絡層數增加,導致的梯度消失,訓練無法繼續的問題。網絡采用全卷積結構,無全連接層。為了提高訓練模型的速度,降低初始化參數對訓練結果的影響,在每一層卷積后中加入BN 層(Batch Normalization),同時加入池化層對特征進行稀疏處理,減小模型的規模。在卷積階段,根據以往研究經驗,設置濾波器個數分別為64,128,256,512,1024,1024,1024,1024,1024。卷積核大小為32,步長為1。為了能夠恢復輸入的語音信號,反卷積過程采用的是與卷積階段相似的設置,反卷積核數量對稱。
在本文中,生成模型的目標函數如式(3)所示:

其中e 為經驗值,實驗發現,在目標函數中增加一項經驗值能夠數值下溢,有利于增強網絡性能。并且在目標函數中增加一項損失函數,能夠平衡生成模型誤差,增加網絡的增強性能。最終生成模型的目標函數如式(4)所示:
2.3.2 判別模型
本文判別模型網絡結構采用與生成模型卷積階段類似的結構。它的目的是輸入語音,判別出輸入的語音是生成模型生成的語音還是干凈的語音。由于采用與生成模型類似的結構,判別模型在一開始區分生成的增強語音和干凈語音具有很好的性能,但是隨著生成模型根據目標函數不斷優化時,判別模型的性能就逐漸下降,最終達到判別模型無法正確區分生成的增強語音和干凈語音。此時,生成模型就達到了對語音進行去噪的目的。在判別模型中,首先對輸入的語音進行卷積,提取特征,由于干凈語音提取出的特征與生成的增強語音提取出的存在區別,判別模型根據此來區分干凈語音和生成語音。設置卷積濾波器個數分別為64,128,256,512,1024,1024,1024,1024,1024。卷積核大小為32,步長為1。同樣在卷積之后加入BN層,激活函數使用Leaky ReLU,最后的卷積層后使用全連接層輸出判別結果。在本文中,判別模型使用的目標函數如公式所示:

2.3.3 模型訓練
語音增強條件生成式對抗網絡的框架如圖1所示。在訓練一開始,將數據輸入到語音增強網絡中進行訓練。生成模式由輸入的帶噪語音和隨機噪聲產生增強語音。判別模型輸入的語音分為兩個過程。第一個過程為干凈語音和帶噪語音,第二個過程是生成的增強語音和帶噪語音。兩個過程的損失聯合起來作為最終判別模型的損失。由于在訓練初期判別模型和生成模型的性能均較差,同時進行訓練過程緩慢。本文采取的訓練方式是先對判別模型進行預訓練,當判別模型性能達到要求時,再同時對生成模型和判別模型進行交替訓練,這樣能夠加快訓練速度。
實驗中使用的優化算法是Adam 優化算法,β1為0.8,β2 為0.999。實驗中迭代500 次,學習率為設置為0.001,batch 大小為200。設置生成模型中λ 1和λ2 分別為1和200。

圖1 條件生成式對抗網絡框架
為了驗證本文提出方法的有效性,本文對比了不同實驗設置下模型性能,采用的語音質量評價指標為PESQ。
為了證明在生成模型中增加一項絕對誤差項能夠提高模型的性能,我們進行了兩組實驗。一組實驗中生成模型目標函數不含絕對誤差項,另一組中包含絕對誤差項。兩組實驗中訓練集和測試集數據均一致。在測試集上按照信噪比計算每組語音的平均質量,如表1所示。

表1 不同目標函數的性能對比
從表中可以看出,在生成模型中增加一項絕對損失項后在各個信噪比下的平均語音質量均有提高。說明增加絕對損失項是有效的,能夠提升模型的性能。
我們還將本文方法與DNN 算法以及降噪自編碼(DA)進行了對比,結果如表2所示。

表2 CGAN與其他網絡在加性噪聲上性能對比
本組實驗中,三種方法使用的數據均相同。條件生成式對抗網絡使用的是含有絕對損失的目標函數。從實驗結果可以看出,自編碼和條件生成式對抗網絡的方法整體優于深度神經網絡方法。而條件生成式對抗網絡在信噪比較低時表現比自編碼網絡好,在信噪比高時性能不如自編碼網絡。如圖2 所示,在測試集隨機選擇四種語音,使用三種方法在頻譜上的對比結果。

圖2 CGAN與其他網絡對比展示
我們分析原因可能是信噪比較低時,該結構的條件生成式對抗網絡依然能夠分析出噪聲的特性,能夠從帶噪語音中去除一定的噪聲,但是增強后的語音存在一定的失真現象。這也是我們下一步研究的重點。
為了對帶噪語音進行去噪,本文提出了一種使用條件生成式對抗網絡的方法。針對語音增強這個具體的問題,提出使用絕對損失的方法提升模型的性能,并與其他的方法進行對比,發現該方法具有一定的有效性。在研究過程中,對準備數據并對數據進行劃分、預處理,增加實驗中的數據量,這也有利于提高模型的性能。對于實驗結果,使用權威的PESQ 評價指標進行評價,平均PESQ 值比深度神經網絡和自編碼網絡都高。部分數據可視化,直觀感受增強后語音的質量。實驗證明條件生成式對抗網絡能夠有效的對語音進行去噪增強,并且在信噪比較高時性能好。