王先宇 張二華
(南京理工大學計算機科學與工程學院 南京 210094)
語言是人類信息交流的主要途徑,隨著語音信號處理技術的不斷發展,語音分離已經成為研究熱點。在復雜的實際情況中,語音會受到各種干擾,給語音交流帶來不利影響。例如:在日常對話中,過強的背景噪聲可能會對語義的辨識及情感的判別帶來困難;在封閉的機艙環境中,噪聲會增加機組人員語音交流的難度;在人機交互中,噪聲干擾會導致智能家居無法正常識別指令。采用信噪分離可有效提升語音識別的正確率,語音分離可作為其他語音處理技術的前端處理,為后續處理提供純凈、清晰的語音。
信噪分離是指從帶有噪聲的混合語音中提取目標說話人的語音信號。語音中包含的背景噪聲會使混合語音變得模糊不清,而信噪分離能夠削弱背景噪聲并增強語音信號成分,有效提升信噪比和可懂度。相比由麥克風陣列采集的多通道語音,只由一個麥克風采集的單通道語音的分離難度更高,因為單通道混合語音中沒有多通道語音中的空間信息,這增大了信噪分離的難度。
目前有多種信噪分離的方法。盲源分離是指從觀測到的混合信號中分離出各原始信號分量,“盲”強調了兩點:分離時各信號分量的相關信息,也無語音混合系數的相關信息。這種方法的局限在于,在低信噪比或陣發性噪聲的條件下表現不佳。2006年以來,計算聽覺場景分析(Computational Auditory Scene Analysis,CASA)日趨完善,能夠較好地將分布于同一頻帶的多個聲音信號進行分離[1],但是計算聽覺場景分析也存在局限,其分析所依賴的基音周期軌跡在低信噪比或陣發性噪聲的條件下易受到干擾。
隨著深度學習技術的發展,人們提出了更多基于深度學習的信噪分離算法,取得了較好的效果。馮利琪、江華等提出了一種深度神經網絡與譜減法相結合的信噪分離算法[2],能夠顯著提高分離語音的可懂度與信噪比,但分離結果與純凈語音信號相比仍存在差距。Jitong Chen、DeLiang Wang提出了一種以長短時記憶模型為基礎的有監督信噪分離算法[3],對于未知說話人或未知噪聲的信噪分離都表現優異。Santiago Pascual、Antonio Bonafonte等提出了一種語音增強對抗神經網絡算法[4],使用對抗神經網絡自動進行信噪分離,提供了信噪分離的新思路。Zhiheng Ouyang,Hongjiang Yu等提出了一種全卷積神經網絡[5],輸入復數頻譜進行信噪分離,這種方法不僅能進行振幅估計而且能進行相位估計,在節省內存空間的同時出色地完成信噪分離。
本文將理想浮值掩蔽作為訓練目標,使用長短時記憶模型進行信噪分離,同時應用Griffin-Lim算法進行信號重構。本文還增加了消除竄音現象的步驟,能夠減少分離語音中竄音的干擾。將本文算法與深度神經網絡方法、卷積神經網絡方法在多種噪聲和信噪比條件下進行對比實驗,評分結果表明本文的方法具有更好的信噪分離效果,可將STOI評分自卷積神經網絡方法的0.41提升至0.62,將PESQ評分自卷積神經網絡方法的1.08提升至1.53。
梅爾頻率倒譜系數(Mel-Frequency Cepstral Coefficients,MFCC)是重要的語音特征。實驗表明,人類的聽覺感知并非呈線性關系,而是非線性關系。MFCC模擬了人類聽覺感知的特點,為提取MFCC首先需要將頻譜通過梅爾濾波器獲得輸出結果,再對輸出結果求倒譜得到MFCC。梅爾濾波器體現了人耳聽覺對于較高的頻率成分具有較低的頻率分辨力的客觀規律。這些濾波器的帶寬在低頻區域較窄,在高頻部分則較寬。濾波器的形態由許多等腰三角形組成,頂角處的權值為1,腰的起點處權值為0,該點也是上一個相鄰濾波器的中心頻率。圖1為一個10階的梅爾濾波器的示意圖。

圖1 一個10階的梅爾濾波器示意圖
當準周期脈沖激勵進入聲道時會引起共振特性,產生一組共振頻率,稱為共振峰頻率或簡稱共振峰[8]。共振峰攜帶了可用于語音識別的信息,頻譜的包絡線能夠反應共振峰的分布形態。而MFCC能夠通過逆變換還原梅爾頻譜的包絡線。圖2為某一幀語音前幾維的MFCC重構梅爾頻率包絡線的效果,該語音采樣率為16kHz,有效頻率范圍為0~8kHz,梅爾濾波器共48個,產生的MFCC共48維,其中前24維MFCC在大致還原梅爾頻率包絡線的同時有較少的細節丟失,因此取前24維作為MFCC參數的維數是適合的。

圖2 各維數MFCC還原梅爾頻譜包絡線的效果對比
使用時頻掩蔽進行有監督語音分離時,分離語音的頻譜為時頻掩蔽與混合信號頻譜的哈達瑪積(Hadamard product),如式(1)所示:

其中,為混合語音振幅譜,為模型輸出的時頻掩蔽估計值,為分離語音的振幅估計,*為矩陣的哈達瑪積運算。
理想浮值掩蔽是理想二值掩蔽的改進。理想浮值掩蔽表示在混合語音某時頻單元中,目標語音成分相對于混合語音的占比,其定義為

其中,t、f分別表示該時頻單元所在的時間幀序號和頻率點序號。S(t,f)和N(t,f)分別代表語音和噪聲在該時頻單元中的傅立葉變換系數[6],其平方為能量,β是可調節因子,一般設為0.5。IRM假定純凈語音與噪聲相互獨立,其取值為[0,1]上的實數。
竄音現象是指在分離語音中仍然能夠聽見噪聲。竄音現象是由頻率掩蔽效應產生的。本文分離語音信號重構中還使用了一種振幅平滑的方法,在振幅估計中能夠觀察到振幅較大的時頻單元組成的類似諧波結構,根據相同頻率前后幀的時頻單元的振幅,對不在類似諧波結構中的時頻單元的振幅進行平滑,這一步驟能夠略微緩解竄音現象。
以時頻掩蔽作為訓練目標的深度模型方法都需要進行分離語音信號波形重構,因為模型估計得到的時頻掩蔽不是真正的波形信號,需要經過掩蔽還原得到頻譜,再經過波形重構才能獲得完整連貫的分離語音。分離語音信號重構采用疊接相加法與Griffin-Lim算法。
疊接相加法需要將頻譜振幅與相位譜還原為復數譜。對復數頻譜進行傅立葉逆變換,得到分離語音的波形信號。最后將各幀按原本分幀的位置對齊后對應相加,多次重疊部分取均值,最終得到了完整的分離語音。
傳統的疊接相加法中使用的相位為混合語音的相位,這意味著,有一部分噪聲的相位進入了分離語音。雖然人耳對初始相位不敏感,但是對于相位的連續性很敏感。近年來越來越多的學者認為,相位在信噪分離中也有重要的作用[5,19]。由于混合語音的頻譜是純凈語音頻譜與噪聲頻譜的矢量和,混合語音的相位可能與純凈語音的相位相差較大。即噪聲相位的介入會導致分離語音受到干擾。因此,使用混合語音的相位進行信號還原存在一定的缺陷。
Griffin-Lim(G-L算法)由Daniel W.Griffin和Jae S.Lim于1984年提出,是一種只利用振幅譜重構語音波形的方法,而無需借助相位。G-L算法的過程是:
1)使用隨機的相位譜與現有的振幅譜通過傅立葉逆變換得到時域信號,并將各幀疊接相加得到完整的語音波形。
2)對得到的語音信號分幀、加窗并進行傅立葉變換,得到新的相位譜與振幅譜。
3)舍棄2)中的振幅譜,只利用2)中的相位譜與初始的振幅譜進行傅立葉逆變換得到時域信號并將各幀疊接相加得到完整的語音波形,再回到步驟2),或達到最大迭代次數。
在G-L算法的迭代過程中,振幅譜保持不變,相位譜不斷收斂最終獲得連續、漸變的重構語音相位。
G-L算法在重構波形時無需借助混合語音的相位,這有效地避免了混合語音和噪聲對于分離語音相位的破壞。利用G-L算法進行分離語音的波形重構,能有效解決信噪分離時無法進行相位分離的問題,使分離語音不僅振幅接近純凈語音并且相位保持連續漸變,能夠全面提升分離語音質量。
本文實驗使用的語音庫為南京理工大學NJUST603語音庫,包含男、女生各200余人朗讀文章。其中T4語音庫的語料為作家劉紹棠所著《師恩難忘》的朗讀,包含593個漢字。本次實驗的訓練集中男女聲各17段共34段純凈語音片段,每段語音長約1s,采樣率為16kHz。生成混合語音時使用的噪聲包含白噪聲、狗叫噪聲、沖激噪聲、戰斗機噪聲、水流噪聲五種,其中狗叫噪聲和沖激噪聲為陣發性噪聲,白噪聲、戰斗機噪聲和水流噪聲為平穩噪聲,信噪比分別為-3dB、0dB、3dB、6dB、9dB、12dB、15dB、18dB,生成的訓練語音集共有1360段混合語音。
本文的算法使用長短時記憶模型進行分離。算法首先提取10幀的MFCC作為輸入特征,維度為240維,經過線性變換輸入隱含層。長短時記憶模型中共有三層隱含層,每層共有512個節點,隨機遺忘因子設置為0.5,最后一層隱含層后接一層257個節點的輸出層,對應IRM的0-256樣點(0~8000Hz低頻部分),該輸出是10幀窗口中最后一幀所對應的IRM估計。隱含層中的隨機遺忘因子設置為0.5。網絡采用Adam優化器以10-5的學習率進行網絡優化,在隨機初始化后根據后向傳播調整網絡參數。
實驗的測試集使用訓練集之外的男女生各3個說話人共6段語音,生成混合語音時使用的噪聲與訓練集相同,信噪比分別為-3dB、0dB、3dB、5dB、10dB、20dB,生成的測試語音集共有180段混合語音。
本文算法的分離結果與DNN方法以及CNN方法的分離結果進行了對比,其中DNN的網絡結構為3層全連接層,每層各1024個節點,輸出層有257個節點。CNN中有兩層卷積層與兩層池化層以及3層全連接層,卷積核大小為3*3,池化窗口分別為3*3和2*1,全連接層中各1024個節點,輸出層有257個節點。
本文采用的分離語音評價指標為短時客觀可懂性STOI(Short-Time Objective Intelligibility)與客觀語音質量評估PESQ(Perceptual Evaluation of Speech Quality)[9]。STOI基于語音的離散傅立葉變換結果在短時的時頻區域內計算可懂度指標[9],其評分取值范圍為(0,1),數值越高則表明分離效果越好。PESQ是ITU-T P.862建議書中的客觀指標,是客觀上MOS值(Mean Opinion Score)的近似值。PESQ的取值范圍為(-0.5,4.5),數值越高則表明分離質量越好。
評分結果按照噪聲類別與信噪比進行分組,每一組中的STOI評分與PESQ評分取均值,分離結果的評分如表1和表2所示。由于結果相似,此處省略了10dB與20dB信噪比的分離結果評分。分析以沖激噪聲、水流噪聲和戰斗機噪聲為例。
在分離帶有沖激噪聲的混合語音時,噪聲較強的時頻單元中局部信噪比較低,宏觀結果就是分離語音中有明顯的竄音現象。如果采用CNN方法,例如在沖激噪聲-3dB信噪比的情況下分離語音的STOI評分只有0.41,PESQ評分只有1.12,分離效果較差。在相同噪聲條件下,本文方法的分離結果明顯優于CNN方法的分離結果,竄音現象明顯減少,目標語音成分更加清晰。在表1中,采用本文的方法,在沖激噪聲-3dB信噪比的情況下,分離語音的STOI評分由CNN方法的0.41提升至0.62,PESQ評分由1.12提升至1.53。其中G-L算法進行相位分離,發揮了重要作用。

表1 不同方法信噪分離結果的STOI評分
在平穩噪聲的情況下,本文方法的分離結果評分比CNN方法和DNN方法略高。在表2中,采用本文的方法,在平穩噪聲戰斗機噪聲-3dB信噪比的情況下,本文提方法同樣相對于DNN與CNN方法略有提升,STOI評分略高0.05,PESQ評分可提升0.19。在水流噪聲各信噪比的情況下,本文方法的分離結果評分都比CNN、DNN的方法略高。雖然本文的方法的分離指標評分與CNN和DNN方法提升較少,但在實際聽感上則清晰很多,竄音現象明顯減弱,這是客觀評價指標難以度量的。

表2 不同方法信噪分離結果的PESQ評分
從本文的實驗結果看出,使用長短時記憶模型進行掩蔽估計、使用G-L算法進行波形重構的信噪分離方法,分離效果相較于DNN與CNN方法有明顯的提升。應用G-L算法進行語音重構,較好地解決了信噪分離無法進行相位分離的問題。同時可以看出,本文研究的算法對于陣發性噪聲混合語音也能正常分離,但在低信噪比情況下的表現仍然有待提升。由此可以看出對于低信噪比的情況,信噪分離任務依很艱巨,隨著更多深層網絡結構的提出,信噪分離效果一定能夠得到更大的提升。