孫林慧 王 燦 梁文清 李平安
(南京郵電大學通信與信息工程學院 南京 210003)
在日常生活中,語音是人類溝通的重要媒介之一。當兩個說話人同時在講話時,人類可以準確分辨他們各自說了哪些話;但對于智能機器來說卻不是一件輕松的事情,這可能導致人機交互的體驗變差。單通道語音分離是指將目標語音從單個通道混合語音信號中分離出來,屬于盲源分離[1-3]的一個分支。經典的基于短時譜估計的單通道語音分離算法有譜減法[4]、維納濾波法[5]等。隨著AI席卷全球學術研究的各個領域,深度學習得到了迅猛的發展。近年來,深度人工神經網絡憑借其優秀的建模能力、高度抽象的預測能力以及優秀的關系映射能力,成為當下計算機領域的寵兒。近幾年來,基于深度學習的單通道語音分離算法在語音分離領域中被廣泛的應用和研究[6-10]。
根據預測目標的不同,基于深度學習的語音分離方法可分為基于時頻(T-F)掩蔽的方法和基于頻譜映射的方法。基于時頻掩蔽的方法旨在學習從混合信號到時頻掩蔽的映射,然后使用估計的掩蔽和混合信號計算得到分離后的語音。Wang[11]于2005年提出了一種理想二值掩蔽(Ideal Binary Mask,IBM)作為訓練目標,用于聽覺場景分析。IBM將語音分離問題抽象為一個二分類問題,如果一個時頻單元的信噪比超過了閾值就判定為1,否則為0。Kim等人[12]于2009年利用高斯混合模型(Gaussian Mixture Model, GMM)來學習目標和干擾的概率分布,然后用貝葉斯分類器來估計IBM。Han等人[13]用支持向量機來估計IBM,實驗得出用支持向量機估計IBM比基于GMM的效果要好。由于IBM是一種硬判決,很多時候會造成目標語音信息丟失。因此,文獻[14]于2006年提出了一種比值型的訓練目標,即理想比值掩蔽(Ideal Ratio Mask, IRM),該訓練目標可以基于能量、幅度、功率等的比值。大量的研究發現,相比于IBM,IRM能夠更好地保留分離目標的語音信息。Zhang等人[15]提出一種利用組合學習(Deep Neural Network, DNN)來預測IRM的方法,該方法層層疊加多個深度神經網絡DNN,多層DNN聯合估計,這使得估計的IRM更加準確。Huang等人[16]構建了一個用于語音分離的循環神經網絡(Recurrent Neural Network, RNN),IRM作為一個處理層嵌入到網絡的輸出層,實驗驗證了該方法優于NMF(Nonnegative Matrix Factorization)方法。基于頻譜映射的方法是一種從混合語音當中直接學習目標語音頻譜的估計方法。Du等人[17]利用輸入語音信號的信噪比正負性分別訓練正負DNN,用于估計目標語音的幅度譜,在分離系統后接入語音識別系統用來判斷分離語音質量,實驗驗證該方法比基于GMM-HMMs模型的效果好。在此之后,Wang等人[18]又提出一種基于性別檢測的多DNN的無監督單通道語音分離算法。首先利用DNN進行性別組合檢測,然后在各個子類中選擇相應的DNN分離模型用于估計目標語音幅度譜,分離語音的質量得到了提升。由于在一般場景中基于頻譜映射比基于時頻掩蔽的方法性能要差,目前基于深度神經網絡的單通道語音分離算法大多基于時頻掩蔽方法。
基于深度學習的語音分離算法是在損失函數約束下實現深度神經網絡參數訓練的,損失函數設置的好壞對系統性能有直接的影響。Li等人[19]提出了一種基于語音頻譜變化感知損失函數的DNN語音分離算法,該算法的損失函數與語音頻譜變換相關,并引入了增益函數,使得分離語音質量比傳統方法要高。我們團隊[20]提出了一種基于雙輸出DNN的單通道語音分離聯合約束算法,該算法的損失函數不僅約束了雙輸出的掩蔽誤差,還約束了雙輸出分離信號掩蔽的聯合關系,使得分離語音的性能得到了提升。傳統的基于掩蔽的單輸出語音分離算法的損失函數只考慮了預測掩蔽值和真實值的誤差,這使得分離后的語音與純凈語音之間誤差較大。本文提出了一種新的聯合約束損失函數,該損失函數不僅約束了預測掩蔽值和真實值的誤差,還懲罰了預測值對應幅度譜和目標語音幅度譜之間的誤差。需要強調的是,文獻[20]針對的是雙輸出分離系統,約束了雙輸出信號掩蔽間的聯合關系。而本文針對更常用的單輸出分離系統,聯合約束了掩蔽和幅度譜的預測誤差,并且引入正則系數α調節二者的約束力度。另外,在單通道語音分離算法中,常常利用混合語音幅度譜作為輸入特征來訓練分離模型,由于輸入特征單一,模型的分離效果有限。為了解決該問題,本文提出一種基于深度學習特征融合和聯合約束的單通道語音分離方法,該方法首先基于具有融合功能的卷積神經網絡(Convolutional Neural Network, CNN)得到融合特征,然后在聯合損失函數約束下訓練語音分離模型來提升單通道語音分離效果。
根據語音混合方式常用的語音分離模型分為兩種:線性混合語音模型和卷積混合語音模型。線性混合語音模型是指將多個語音信號線性加權疊加形成混合信號,這個過程不考慮語音信號之間的相關性和時延。卷積混合語音模型則是由各語音信號相互卷積而混合的信號模型,可能存在時延。本文研究的信號分離模型為線性混合模型,可以表示為

深度神經網絡具有強大的數據挖掘能力,可以很好地映射網絡輸入輸出間的非線性關系。與傳統基于現代信號處理理論的單通道語音分離算法相比,基于深度學習的單通道語音分離算法在語音分離模型的構建上更加準確,語音分離也更加有效。基于深度學習的單通道語音分離主要學習混合語音到預測目標的映射關系,該映射關系由深度神經網絡的參數決定。常用的深度神經網絡有DNN, CNN和RNN等。CNN的卷積層提取小塊區域特征,可以很好地保留語音特征的空間信息,另外池化層對冗余信息進行篩選,可以減少計算量,CNN具有更為出色的語音特征映射能力。以兩個源語音混合信號的分離為例,基于CNN網絡的單通道語音分離系統框圖如圖1所示。

圖1 基于CNN的單通道語音分離系統框圖
基于CNN網絡的語音分離包含兩個階段:訓練階段和分離階段。在訓練階段,提取兩個源語音信號的聲學特征以及兩源語音混合后信號的聲學特征,對其進行歸一化等處理后,利用這些特征和預測目標在損失函數的約束下訓練CNN。在測試階段,首先提取混合語音的聲學特征,然后將其作為訓練好的CNN的輸入得到分離語音的預測目標,結合相位信息得到頻域信號,最后通過短時傅里葉逆變換得到重構語音的時域波形。
在基于傳統CNN結構的語音分離中,當輸入單一特征時得到的分離語音質量有限。主要由于CNN對語音特征信息進行高度抽象化,導致部分全局信息丟失。為了提高分離語音的質量,本文提出了一種含特征融合層的CNN結構,該結構在傳統CNN基礎上增加了特征融合層,利用CNN提取多通道輸入特征的深度特征,在融合層中將深度特征與聲學特征融合,該融合特征用于訓練語音分離模型。
受圖像信號RGB處理方式啟發,本文將語音多種聲學特征以多通道形式作為CNN的輸入,提取語音更加全面的深度特征。在基于深度學習的單通道語音分離中,混合信號的幅度譜是最常見的輸入特征[17];另外,由于本文最終需要重建目標語音幅度譜,輸入多種與幅度譜相關的特征可以捕捉到多元化的目標語音信息,便于高質量重建分離目標。基于這兩方面的考慮,本文將歸一化后語音信號的幅度譜特征、功率譜特征以及對數功率譜特征作為CNN的3通道輸入用于提取深度特征。這里的多通道輸入語音的多個特征,其實也是一種在特征維度方面的融合,可以使提取的高度抽象深度特征具有更豐富的表征能力。
為了充分利用多種特征的互補性,本文在傳統的CNN架構中加入了一個特征融合層,用于將CNN提取的語音深度特征和語音的幅度譜特征進行融合。這樣做不僅可以彌補CNN多層特征提取造成的全局特征信息丟失,而且讓分離模型的特征更加豐富。這里選擇幅度譜特征與深層特征融合是有考究的,首先所使用的特征必須具有表征語音信號全局信息的能力,幅度譜特征具備此能力;其次所選取的特征必須與深層特征有相關性,由于語音的幅度譜特征也是CNN的輸入之一,所以與深層特征一定相關;另外,模型的輸出IRM是為了重構目標語音的幅度譜,因此相對于在幅度譜基礎上計算得到的功率譜和對數功率譜特征,幅度譜特征與重建目標更具有直接相關性。本文提出的含融合層的CNN語音分離模型結構框圖如圖2所示,該圖展示了含有2個卷積層、2個池化層、1個融合層和1個全連接層的用于語音分離的卷積神經網絡。首先提取語音的多種聲學特征,以多通道的方式輸入到CNN中,然后通過多組的“卷積+池化”操作提取輸入特征的深度特征。經過CNN提取的深度特征進行拉平操作后得到1維特征,然后在融合層將深度特征和混合語音的原始輸入特征融合作為全連接層的輸入,最后得到分離語音的掩蔽或幅值。

圖2 含融合層的CNN語音分離模型
含融合層的CNN結構具體設計:為了挖掘語音信號幀間的空間信息,首先將每個通道相鄰2幀512維的信號合并成1024維,再將其轉化為32 ×32的特征,最后形成3通道的3 × 32 × 32的聲學特征。然后選取2個卷積層和2個池化層,對輸入的3通道特征提取深層特征。第1層的3個卷積核的大小是3 × 3,池化核的大小是2 × 2的,步長是1。因為采用了padding操作,輸出特征的大小變為1 ×32 × 32。第2層卷積核的大小是1 × 1,池化核的大小是2 × 2,步長是2,輸出特征大小為1 × 16 ×16。得到深層特征后,利用flatten操作將其轉化為大小為256 × 1的特征。然后將深層特征和512 ×1的混合語音幅度譜特征在融合層進行融合得到768 × 1的融合特征,作為全連接層的輸入。全連接網絡的結構是768-1024-1024-512。需要說明的是,由于挖掘空間信息時打破了語音信號的時序性,因此深度特征與幅度譜特征融合既可以利用空間信息又可以保證時序性信息不丟失。
在大多數基于深度學習的單通道語音分離算法中,由于語音分離任務是一種線性回歸的深度學習預測過程,一般采用最小均方誤差(Minimum Mean Squared Error, MMSE)作為損失函數的誤差測量標準。通用的損失函數可以表示為


CNN分離模型的訓練包含兩個過程,即前向傳播(Forward Propagation, FP)和反向傳播(Backward Propagation, BP)。CNN的FP階段是通過隨機初始化權重和偏置粗略估計輸出的過程。輸入特征利用每層網絡參數進行線性加權運算,在激活函數作用下得到該層的輸出。再依次向后面的網絡層傳播,最后得到輸出層的預測值。BP與FP階段的差別在于計算的起點不同,BP從輸出層出發,從后向前反向運算,控制反向調參的主體是損失函數。通過梯度下降算法對損失函數進行尋優,使目標損失函數盡可能接近最小值。每個訓練周期不斷調整各層網絡的權重和偏置逐步完成整個網絡的訓練。本文CNN分離模型的全連接層在MMSE準則下每幀信號的損失函數為


本文提出的基于CNN特征融合的單通道語音分離聯合約束算法包含3個階段:訓練階段、分離階段和語音重構階段,以估計第1個目標信號為例,具體流程見表1。在訓練階段,首先提取語音的多個幅度相關聲學特征,作為CNN的多通道輸入來提取深度特征;然后與語音信號幅度譜特征在融合層進行融合,將融合后特征作為全連接網絡的輸入;最后以IRM為目標在聯合約束損失函數(式(3))的約束下,利用整合優化算法尋優語音分離模型。IRM的計算公式可以表示為

表1 基于CNN特征融合的單通道語音分離聯合約束算法流程

在分離階段輸入測試混合語音的3通道特征,經過訓練好的具有融合功能的CNN網絡,得到分離語音的IRM估計值。在語音重構階段,將IRM估計值與混合語音的幅度譜相乘得到估計的目標幅度譜:

本文采用的語音庫是GRID[21],該語料庫的語種是英文,由34個說話人(18位男性和16位女性)組成,每個說話人錄有1000條語句,每條語句的持續時間大概為1~2 s左右。實驗的訓練集、測試集、驗證集都來自此語料庫。整個實驗的任務是對兩個說話人的混合語音進行分離,因此基于性別進行劃分可分為男-男組合、男-女組合、女-女組合,因此至少需要2位男性和2位女性。實驗中,從整個語料庫中隨機選取2位男性和2位女性的語音,每2個人的語音以混合系數為1進行疊加構成混合信號1000條。在這1000條混合語音中,隨機選取500條語句作為訓練集,然后在余下的500條語句中選擇100條語句作為驗證集,剩下的400條語句中隨機選擇50條語句作為測試集,實驗結果是50條語句結果的平均值。每條語音的采樣率為25 kHz,這里將語音的采樣率下采樣到16 kHz,通過512點STFT獲得語音的幅度譜,窗函數使用的是窗長為512的漢明窗,幀移為1/2的窗長。
本文采用多個語音指標來衡量所提算法的準確性和有效性,包括PESQ, SDR和STOI,這些指標的數值與語音分離性能都是正相關的。
(1)損失函數的正則化系數對于分離性能的影響。由于不同性別組合聯合約束的約束程度不同,本小節分析正則項系數α對3種性別組合的影響程度。從語料庫中隨機選取2男2女的語料混合作為實驗對象,這里可劃分成3個性別組合,分別是男-男(M-M)、男-女(F-M)和女-女(F-F)。α的取值范圍為[0,1],每次遞增0.1。這里以分離后語音的PESQ為例討論正則項系數α對語音分離性能影響,實驗結果如圖3所示。
從圖3可以看出,本文提出的聯合約束的正則項對語音分離性能提升有明顯作用。當α=0時就是傳統損失函數的分離性能,當α>0時是聯合損失函數的分離性能,增加的正則項對損失函數的約束起到了很好的提升效果。當α<0.5時,3種組合的分離語音PESQ都是隨著α的增大而增加,在FM組合下增長速度最為明顯,這表明在一定范圍內,這個正則項對損失函數都是有約束作用的,約束程度隨著α的調節而改變。但α并不是越大越好,在F-F組合中,當α>0.7之后,分離語音質量降低;在F-M組合中,當α>0.5之后,分離語音質量降低;在M-M組合中,當α>0.7之后,分離語音質量降低。這表明,不同性別組合語音特征的差異性使得最佳約束力度不相同。因此在不同的性別組合分離實驗當中設置不同的正則化系數,F-M組合時α=0.5, F-F和M-M組合時α=0.7。

圖3 不同正則化系數對應的分離語音PESQ
(2)CNN超參數設置。本小節從卷積層的個數和池化層的池化方式角度分析CNN的超參數設置。在這兩個參數對比實驗中,以F-F組合實驗結果為例進行展示。
首先通過實驗驗證了當CNN結構中含有兩個卷積層時,語音分離的效果較好。CNN卷積層的個數分別為1, 2和3時的實驗結果如圖4所示。實驗中使用1層卷積的卷積核大小是3 × 3;使用兩層卷積時第1層卷積核大小也為3 × 3,第2層卷積核設置為1 × 1的大小,這樣可以保持特征的維度不變;使用3層卷積時,第1層卷積核的大小是3 × 3,第2層和第3層卷積核大小都為1 × 1。從圖4可以看出,以SDR為指標時,兩個卷積層的分離效果比單個卷積層要高1.54 dB;然而使用3個卷積層比2個卷積層的分離性能略微有些下降,這是因為卷積層過多容易造成全局特征信息過度丟失。因此,后續實驗中的CNN結構都使用兩個卷積層來提取深度特征。

圖4 選取不同卷積層數的性能比較
然后考察池化層池化方式對分離語音性能的影響。池化核的大小選取要得當,否則在進行均值池化或者最大值池化時,會造成語音信號特征的信息由于壓縮降維產生信息丟失的問題。實驗中使用池化核的大小為2 × 2,步長大小為1。使用的兩種池化方式的實驗結果如圖5所示。可以看到,在使用平均池化時比使用最大值池化時,分離語音的效果要好,在SDR, PESQ和STOI指標上分別高了0.70 dB,0.15和0.08。因此,本文后續實驗使用均值池化方式。

圖5 池化方式的性能比較
(1)與單通道單一輸入特征CNN分離算法對比。為了解決在單一特征輸入時語音分離模型的分離性能提升有限的問題,選擇多種與幅度譜相關的聲學特征作為CNN的輸入。用于對比實驗的兩個含有融合層的CNN除了輸入特征不一樣外,其他部分的設置相同。輸入特征都是歸一化聲學特征,單通道輸入是512點幅度譜特征,多通道輸入是幅度譜特征、功率譜特征以及對數功率譜特征構成的3 ×512的多特征。實驗結果如圖6所示。
從圖6可以看出,多通道的多輸入特征在每個性別組合實驗中的分離性能都表現得比單通道的單一輸入特征的分離性能要好,最明顯的差異是在SDR這個指標上,在M-M, F-M, F-F這3個性別組合中分別高了1.14 dB, 1.76 dB, 0.80 dB,也可以看出本算法針對F-M性別組合分離的能力更出色一些。實驗結果驗證了使用多通道多特征用于提取深度特征的效果比單通道單一特征的效果要好,主要因為輸入單一的幅度譜特征包含的語音信息相對較少,導致高度抽象的深度特征表征的語音信息不豐富,后續實驗使用多通道多特征。另外,無論輸入的是單一特征還是多通道特征,F-M組合的分離效果要比其他兩個性別組合的分離效果要好,說明異性相對同性更容易區分;M-M性別組合的分離效果稍微比F-F組合差一點,由于兩說話人是隨機選取的,兩說話人的語音相似度可能導致不同性別組合分離性能不一。

圖6 多通道多特征與單通道單一特征性能對比
(2)與不含特征融合層的CNN語音分離算法對比。對本文提出算法與沒有特征融合的CNN分離算法進行性能對比,驗證在傳統的CNN結構中加入特征融合層的有效性。兩個網絡模型都使用3通道特征作為輸入,使用的卷積核與池化層的設置相同,CNN最后的拉平操作的維度都是256維,最后的全連接網絡層的設置也相同。區別主要在全連接層的輸入,一個是深度特征和聲學特征的融合特征,一個是深度特征。實驗的結果如圖7所示。
從圖7可以看出,本文提出的含有特征融合層算法在分離性能上比沒有特征融合的CNN分離算法的性能要好。無論是哪種性別組合下沒有特征融合的CNN分離算法的分離效果都非常得不理想。特別在F-M實驗中本文算法在SDR, PESQ, STOI上與對比算法相比分別提升了4.45 dB, 1.01, 0.27。基于傳統的CNN架構的算法中,CNN能夠提取到語音信號的深度特征,但是在卷積層提取特征時一些淺層的聲學特征信息被丟失了,從而損失了語音的一些全局信息特征。另外,語音分離任務是預測分離后的語音或者比值掩蔽,較少維數的深度特征不能準確地表征語音信號的所有信息,導致分離模型的性能較低。本文方法將深度特征與淺層聲學特征相融合,可以彌補信息丟失問題,使得語音分離模型能夠更加準確地分離和重構語音。

圖7 有無特征融合層的CNN分離效果對比
(1)與基于聯合約束DNN架構的語音分離方法比較。本文方法與文獻[20]中DNN架構方法進行對比。為了更好地驗證在本文提出的聯合約束下使用CNN來提取語音信號的融合特征是優秀的,單輸出的DNN架構的單通道語音分離模型也采用本文的聯合約束損失函數。基于聯合約束DNN架構的單通道語音分離的輸入特征是歸一化的混合語音幅度譜,采用的DNN結構是512-1024-1024-1024-512,即輸入輸出層有512個神經元節點,有3個隱層,每個隱層的神經元節點個數是1024。本文方法利用CNN提取功率譜、對數功率譜和幅度譜的深度特征,然后再與語音的幅度譜融合作為全連接層的輸入。實驗所得到的結果如表2所示。
從表2可以看到,對于3種性別組合方式,基于CNN特征融合的單通道語音分離算法都比基于DNN的單通道語音分離算法的表現要好。F-M性別組合實驗的效果是最好的,因為男性語音信號和女性語音信號的差異性較大,他們混合之后的幅度譜的貼合沒有同性別組合的那么緊密,因此相對于同性別組合來說更容易分離。本文提出的基于CNN特征融合的方法相比于基于DNN的方法的分離性能,在SDR, PESQ以及STOI指標上F-M組合分別提升了1.7 dB, 0.26和0.08,F-F組合中分別提升了1.1 dB, 0.26和0.08,M-M組合中分別提升了0.9 dB,0.27和0.06。這說明,利用CNN提取的語音信號深層特征和幅度譜特征的融合起了效果,使得分離語音的質量得到了提升。整體算法在短時客觀可懂度(STOI)上有提升但不大,主要是因為該值的范圍就是在0和1之間。本次選取的兩個女性組合的實現效果比較好,最主要的原因是兩個選取的說話人語音之間的相似度比較低,比較容易區分,因此分離的效果比較好,而選擇的兩位男性說話人的語音相似度比較高,因此分離的效果略低于女性別組合方式。可以發現同性別下信號相似度影響語音分離性能。但整體來說,所提出的算法優于基于DNN的算法,分離語音性能有了進一步的提升。另外,從男女混合信號中恢復的語音信號的時域波形圖如圖8所示,可以看出,與基于DNN的單通道語音分離算法相比,無論是男生語音還是女生語音,本文方法恢復的語音信號波形與純凈語音波形的包絡更加接近。

圖8 本文方法和文獻[20]時域波形對比

表2 本文方法與基于DNN方法性能對比
(2)與其他損失函數和其他訓練目標的性能比較。首先對文獻[15]使用的損失函數和本文的聯合約束損失函數進行語音分離實驗,并對它們的分離性能進行比較分析,來驗證所提的聯合約束損失函數可以提高分離語音的質量。然后將本文所提算法用于文獻[17]中以TMS為目標的語音分離,來觀察本文算法在不同的訓練目標下的分離性能差異。實驗結果如表3所示。

表3 不同損失函數和訓練目標性能對比
從表3可以觀察到不同的損失函數對于本文所提算法的分離性能的影響是很大的,所提出的聯合約束函數對于本文算法的網絡結構的參數訓練有很強的指導作用。當以IRM為目標時,本文基于聯合約束損失函數的分離效果比文獻[15]損失函數的分離效果要突出,在F-F性別組合下SDR, PESQ和STOI上分別高了1.44 dB, 0.22和0.06。在F-M性別組合下SDR, PESQ和STOI上分別高了0.93 dB,0.23和0.07。在M-M性別組合下SDR, PESQ和STOI上分別高了1.09 dB, 0.12和0.07。由于STOI指標的范圍在0到1之間,性能提高數值表現上相對不太明顯。另外,3種性別組合下以IRM為訓練目標比文獻[17]以TMS為訓練目標的分離效果要好。而且TMS對于在F-F和M-M這兩組性別實驗中得到的分離效果基本相近,但在以IRM為訓練目標的這兩組性別實驗中,F-F的分離性能是要優于M-M的分離性能的,這是因為TMS是直接預測分離目標的幅度譜,對單通道兩分離語音信號之間的相似度比較敏感,容易受其影響。總之,在本文提出的具有聯合約束關系的損失函數的指導下,訓練出來的分離模型的分離性能要比其他損失函數的優越。本文提出的基于CNN特征融合和聯合約束的單通道語音分離算法是非常優秀的。
本文針對輸入單一特征和基于傳統損失函數訓練分離模型時分離語音質量提升有限的問題,提出了基于CNN特征融合的單通道語音分離聯合約束算法。該算法在傳統的損失函數基礎上,通過增加一個正則項對網絡參數進行聯合約束,不僅使預測的比值掩蔽接近理想值,而且使恢復出的目標信號幅度譜和實際的幅度譜接近,從而提高了分離模型的準確性。另外,該算法充分利用CNN在提取深層次特征時的出色能力,首先提取了多通道聲學特征的深度特征,然后再將混合信號的幅度譜特征與深度特征在融合層進行融合來訓練分離模型。由于輸入的特征所包含的語音信息更加豐富,因此語音分離系統性能進一步得到了提升。實驗結果表明,本文所提算法可以有效提升分離語音的清晰度和可懂度。