王 濤,全海燕
(昆明理工大學信息工程與自動化學院,云南 昆明 650500)
不同于用語音增強去抑制噪聲信號來提升目標語音能量,語音分離技術是希望將目標說話人語音從多說話人的混合語音中分離出來。早在20世紀80年代,相關研究人員就對該領域有了深入研究,但這些方法在低信噪比SNR(Signal-to-Noise Ratio)的條件下,分離性能都不太理想。后來隨著計算機性能的提升和人工神經(jīng)網(wǎng)絡技術的成熟,研究者們對語音信號的特征研究更加深入,由于低信噪比SNR下目標說話人語音較弱,其特征不明顯,因此增加了對語音分離的難度。
神經(jīng)網(wǎng)絡是近年來受各領域歡迎的熱門方向。1989年,Tamura團隊[1]提出將神經(jīng)網(wǎng)絡運用到混合語音分離中,來得到目標語音在時域上的非線性映射。隨后,Xie等人[2]通過提取語音信號的頻域特征,再將其送入神經(jīng)網(wǎng)絡來學習目標語音的映射關系。但是,由于計算機性能的限制,早期的神經(jīng)網(wǎng)絡層數(shù)較少,結構簡單,并且訓練數(shù)據(jù)較少,無法得到更為準確的映射關系。而近幾年,在深度學習浪潮的推動下,深度神經(jīng)網(wǎng)絡DNN(Deep Neural Networks)被廣泛應用于語音分離中。2006年,Hinton等人[3]提出深度信念網(wǎng)絡DBN(Deep Belief Networks),使得神經(jīng)網(wǎng)絡真正意義上有了“深度”。Roman等人[4]率先將DNN用于語音分離,通過特征學習來預測每個時頻單元的理想二值掩膜,從本質上提升了分離語音的清晰度。Xu團隊[5]通過一個DNN來實現(xiàn)混合語音與目標語音的對數(shù)幅度譜映射,并根據(jù)相位信息來恢復時域波形。次年,Huang等人[6]提出了基于循環(huán)神經(jīng)網(wǎng)絡RNN(Recurrent Neural Networks)的語音分離方法,其分離性能有所提升,但對長時建模的能力有限。Wang等人[7,8]根據(jù)不同性別說話人之間的差異度,提出了一種無監(jiān)督的DNN進行語音分離,其獲得的分離效果顯著。Goodfellow等人[9]提出的生成對抗網(wǎng)絡GAN(Generative Adversarial Networks)為深度學習帶來了新的突破,其在圖像領域取得了極大成果,但在語音分離上應用較少。Pascual等人[10]提出的語音增強生成對抗網(wǎng)絡SEGAN(Speech Enhanced Generative Adversarial Networks)直接處理時域語音信號,通過對抗學習使用判別模型來促進生成模型分離,提升了高頻信息的恢復,從而獲得更清晰的分離語音。文獻[11]進一步將GAN運用到人聲與背景音樂的分離中,以混合信號的頻譜特征作為系統(tǒng)輸入,能更好地對高頻成分進行分離,從而有效分離出人聲信號。以上方法的優(yōu)勢是在高SNR下能不同程度地提升對目標說話人語音特征提取的能力,但SNR較低時,分離性能受限。
雖然GAN相比于其他神經(jīng)網(wǎng)絡能更好地提升對高頻成分信息的恢復,但其訓練過程中仍只關注目標說話人的語音特征信息,因此在SNR較高時性能突出,而在低SNR下,由于目標說話人的相關語音特征不明顯,所以分離性能有限。研究表明[12],干擾說話人的語音信息(尤其在低SNR下)對分離性能具有重要價值。為了進一步提升分離語音質量,本文提出了一種基于聯(lián)合訓練生成對抗網(wǎng)絡的混合語音分離方法,其以時域波形作為網(wǎng)絡輸入,充分利用GAN的對抗機制,構建聯(lián)合訓練結構使判別模型用于獲取干擾說話人的高維時域特征信息,進而促進生成模型更好地分離出目標說話人語音。在GAN中加入干擾說話人語音,彌補了低SNR下目標說話人特征信息較弱的不足,從而有效提升GAN的語音分離性能。此外,本文通過構建同性(男男、女女)和異性(男女)組合方式的混合語音來驗證所提方法在不同條件下的有效性和泛化性。
GAN是2014年Goodfellow等人提出的一種新的深度學習模型,其各種變形已經(jīng)在圖像處理和自然語言處理等領域取得了顯著效果,并逐漸向其它領域滲入。圖1為GAN模型結構圖,其主要由生成模型G和判別模型D構成,x是服從Pdata(x)分布的真實數(shù)據(jù)樣本,z是服從Pz(z)分布的隨機變量,G的任務是將噪聲數(shù)據(jù)z的分布映射到真實數(shù)據(jù)x的分布上;而D則是對生成數(shù)據(jù)G(z)和真實數(shù)據(jù)x進行判別。
Figure 1 Structure of GAN
GAN與其它深度學習模型最大的不同在于其對抗學習機制,其過程就是D不斷對輸入數(shù)據(jù)進行判別,并通過輸出的概率值對真假樣本進行分類,即D(G(z))=0或D(x)=1;而G則根據(jù)D的判別結果相應地調整生成數(shù)據(jù),使得D無法做出正確的判斷。這個過程可用式(1)所示的交叉熵損失函數(shù)來表示:
Ez~Pz(z)[ln(1-D(G(z)))]
(1)
Figure 2 Architecture of cooperative training speech separation based on GAN
損失函數(shù)是保證參數(shù)更新的關鍵,由于語音數(shù)據(jù)的一維特性,因此采用最小二乘GAN[13]LSGAN(Least Squares GAN)的損失函數(shù)來作為本文SSGAN的損失函數(shù),這樣能更好地衡量分離語音與純凈語音之間的差距。圖2在D的輸入信號中引入xc作為額外條件,能為判別過程提供輔助信息。則G和D的損失函數(shù)分別如式(2)和式(3)所示:
(2)
(3)
為了使分離語音與純凈語音之間的距離最小化,并且加快網(wǎng)絡收斂,Isola等人[14]在G的損失函數(shù)上加入L1范數(shù),并由參數(shù)λ控制,且λ的取值決定著L1范數(shù)對G損失函數(shù)作用的大小。λ取值太大會忽略D對G的反饋作用,取值太小則無法促進G進行有效分離,將λ設置為100時能有效平衡兩者的作用。此外,本文在實際訓練中選取xm替換xc,則將式(2)和式(3)修改為:
(4)
λ(‖G(xm)-x1‖1+‖xm-G(xm)-x2‖1)
(5)
本文采用全卷積神經(jīng)網(wǎng)絡FCN(Fully Convolutional Networks)[15]來構建一個端到端生成模型網(wǎng)絡結構,其主要由卷積和反卷積2部分構成,能不斷提取目標語音的高維特征,并通過反卷積形式來還原目標語音,如圖3所示。
Figure 3 Network structure of generative model
生成模型的卷積階段采用大小為31的卷積核,步長為2,其每層卷積核個數(shù)分別為1,32,64,128,256,512。卷積過程對混合語音進行降維壓縮,最后得到的特征向量包含了高維時域特征。而反卷積階段同卷積階段對稱,并對提取的特征向量進行逐層恢復。此外,每層網(wǎng)絡的輸出激活函數(shù)均采用帶泄漏修正線性單元LeakyReLU[16]。由于在卷積過程中不斷對一維信號進行卷積操作,因此會丟失部分有用的細節(jié)特征,而引入跳躍連接,能為下一層反卷積提供細節(jié)補償。
圖4為判別模型的網(wǎng)絡結構,主要用于訓練干擾說話人的語音特征信息,其網(wǎng)絡有2個信號輸入端,最后輸出為判別概率。判別模型的卷積階段與生成模型的卷積階段類似,不同點在于判別模型采用FCN構建一個二分類卷積網(wǎng)絡[17],最后一層采用步長為1的1×1的卷積核進行下采樣,從而將高維特征映射到一維數(shù)據(jù)上進行分類。
Figure 4 Network structure of discriminative model
實驗采用Aishell中文語音數(shù)據(jù)庫[18]來進行驗證。該數(shù)據(jù)庫總共包含400位說話人,每人大概講350句話,每人的說話內容互不重復。實際生活中的說話人語音混合包含男男混合(M-M)、女女混合(F-F)和男女混合(M-F) 3種情況,為此,從數(shù)據(jù)庫中隨機選取6位不同男性和6位不同女性的語音來構建數(shù)據(jù)集,并且每位說話人包含300句語音。構建M-M訓練集時,隨機選取3位男性作為目標說話人,剩余3人作為干擾說話人,每人選取250句語音,則目標說話人語音和干擾說話人語音分別為750句,然后按照0 dB,-3 dB,-6 dB,-9 dB信噪比等級進行語音混合,分別得到4組不同信噪比下各750句混合訓練語音;測試集和訓練集構建方式相同,將每人余下50句語音作為測試語音,分別得到不同信噪比下各150句混合測試語音。F-F數(shù)據(jù)集、M-F數(shù)據(jù)集與M-M數(shù)據(jù)集構建方式一致。
衡量語音分離性能的客觀評價指標主要包括語音質量感知評估PESQ(Perceptual Evaluation of Speech Quality)[19],這是一種近似主觀測聽的客觀指標,得分一般在1~4.5;短時客觀可懂度STOI(Short-Time Objective Intelligibility)側重于評估語音的可懂度,取值在0~1;而信噪干擾比SIR(Source to Interference Ratio)、信噪偽影比SAR(Source to Artifact Ratio)和信噪失真比SDR(Source to Distortion Ratio)這類客觀指標是主要描述分離信號中仍然存在的干擾信號、噪聲和失真等。
訓練集和測試集語音均在16 kHz下采樣,由于語音信號具有短時平穩(wěn)的特性,所以在訓練前對3組不同等級信噪比的數(shù)據(jù)集進行分幀處理,其幀長設置為1 024個點,幀移512個點,最后得到每種信噪比下81 000幀訓練語音和16 200幀測試語音。訓練時采用RMSprop優(yōu)化算法[20],其訓練批次設置為50,批次大小為128,學習速率為0.000 1。整個訓練流程如圖5所示,其由2部分構成,第1部分是判別模型D對真樣本數(shù)據(jù)對(純凈的干擾語音和混合語音)和假樣本數(shù)據(jù)對(分離的干擾語音和混合語音)訓練,輸出分別為1和0;第2部分是生成模型G對混合語音的分離訓練,這時判別模型D參數(shù)固定,輸出為1。
Figure 5 Training flowing chart of SSGAN
本文選取文獻[12]中基于卷積編解碼器CED (Convolutional Encoder Decoder)和基于FCN的2種語音分離方法進行對比,CED和FCN的網(wǎng)絡結構類似,不同之處在于CED通過改變損失函數(shù)將干擾說話人語音帶入網(wǎng)絡訓練,而FCN只對目標說話人進行訓練,為了保證本文所提方法與以上2種方法對比的有效性,在神經(jīng)網(wǎng)絡的層數(shù)和參數(shù)設置上基本保持一致;同時還對比了SSGAN在Inde-Stru和Coop-Stru 2種訓練結構下的語音分離性能。
由于數(shù)據(jù)集采用分幀的形式進行訓練,所以本文采用線性重疊相加合成法將測試結果還原為原始語音長度,并按5種語音性能評估方法進行打分。表1~表5分別給出了3組混合語音在不同方法下的PESQ、STOI、SAR、SDR和SIR值。其中,表1~表5均采用CED和FCN來直接表示進行對比的2種語音分離方法。從5個表中可以觀察到,隨著SNR減小,所有方法的分離性能都有所降低,說明了低SNR下進行語音分離是困難的。整體上對比(FCN、Inde-Stru)和(CED、Coop-Stru) 2組數(shù)據(jù),可以看到只關注目標說話人的FCN和Inde-Stru在評價得分上明顯低于同時關注目標說話人和干擾說話人的CED和Coop-Stru,并且SSGAN的2種訓練結構都分別優(yōu)于FCN和CED。這說明使用GAN框架的語音分離方法通過判別模型對生成模型進行微調,獲得的語音特征更加準確和豐富,且在加入干擾說話人語音后,能為訓練過程提供更多的分離信息。表2各組數(shù)據(jù)變化不明顯,可能原因是可懂度與說話內容有很大聯(lián)系,而本文所構建的訓練集包含多個說話人的語音數(shù)據(jù),在訓練過程中考慮的是不同說話人的發(fā)音特征,而與說話內容沒有關系,因此在STOI值無較大變化。此外,表1和表2表明,F(xiàn)-F的分離效果要低于M-M的,而表3~表5中F-F的得分卻要好于M-M的,這是由于PESQ和STOI都是基于頻域計算的,男性語音頻率低于女性語音頻率,表明神經(jīng)網(wǎng)絡對于高頻成分的分離性能普遍較差,而Coop-Stru在一定程度上提升了對高頻信息恢復的能力;但SAR、SDR和SIR是基于時域信號進行評價的,所以神經(jīng)網(wǎng)絡對女性語音幅值、相位等時域信息的恢復效果更好。M-F由于是異性語音混合,語音間的區(qū)別最大,所以分離性能最好??傮w來看,無論是同性還是異性語音混合,采用Coop-Stru的SSGAN在語音分離上性能提升顯著,提升了在低SNR下的分離語音質量。
Table 1 PESQ score of three groups of data under different methods
Table 2 STOI score of three groups of data under different methods
Table 3 SAR score of three groups of data under different methods
Table 4 SDR score of three groups of data under different methods
Table 5 SIR score of three groups of data under different methods
Figure 6 Separate speech spectrograms of different methods
為了驗證各方法對高、低頻信息的恢復能力,圖6展示了M-F數(shù)據(jù)集中一句-6 dB信噪比的測試語音在不同分離方法下的語譜圖。圖6a和圖6b分別為混合語音(Mixed)和目標說話人純凈語音(Clean)的語譜圖,圖6c~圖6f為各方法的分離語音語譜圖。
圖6中,Inde_SSGAN和Coop_SSGAN分別表示采用Inde_Stru和Coop_Stru 2種結構的SSGAN。從圖6中可以看到,4種分離方法對于低頻部分的分離效果都要好于高頻部分的,這也進一步解釋了表1中M-M的PESQ得分為何高于F-F的PESQ得分。此外,可以觀察到基于FCN和CED的分離方法得到的語譜圖對于高頻信息的恢復效果要明顯差于Inde_SSGAN和Coop_SSGAN 2種分離方法的,更多高頻語音細節(jié)被丟失,原因在于GAN中的判別模型在訓練過程中不斷向生成模型提供更豐富的細節(jié)信息,從而提升了高頻語音成分的恢復效果。而SSGAN的2種結構雖然對高頻語音部分信息的恢復有較好的提升,但從圖框所包含的信息來看,Inde_SSGAN對部分高頻細節(jié)成分恢復仍然弱于Coop_SSGAN,說明了在訓練過程中加入干擾說話人的語音信息能促進GAN進行更有效的分離。
提高低SNR下的語音分離性能是語音分離技術的研究重點。本文提出了一種基于聯(lián)合訓練GAN的語音分離方法,充分利用對抗機制,使GAN在訓練過程中同時考慮了目標說話人和干擾說話人的語音特征,增加了分離信息來源,提升了低SNR下的分離語音質量。在3組不同混合形式的數(shù)據(jù)集上的實驗結果表明,多數(shù)神經(jīng)網(wǎng)絡對于高頻信息的恢復能力較弱,而本文所提方法能有效提升對高頻信息的恢復能力。未來的工作是研究更優(yōu)的方法來獲得低SNR下的高質量分離語音。