王先宇 張二華
(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)
語言是人類信息交流的主要途徑,隨著語音信號(hào)處理技術(shù)的不斷發(fā)展,語音分離已經(jīng)成為研究熱點(diǎn)。在復(fù)雜的實(shí)際情況中,語音會(huì)受到各種干擾,給語音交流帶來不利影響。例如:在日常對(duì)話中,過強(qiáng)的背景噪聲可能會(huì)對(duì)語義的辨識(shí)及情感的判別帶來困難;在封閉的機(jī)艙環(huán)境中,噪聲會(huì)增加機(jī)組人員語音交流的難度;在人機(jī)交互中,噪聲干擾會(huì)導(dǎo)致智能家居無法正常識(shí)別指令。采用信噪分離可有效提升語音識(shí)別的正確率,語音分離可作為其他語音處理技術(shù)的前端處理,為后續(xù)處理提供純凈、清晰的語音。
信噪分離是指從帶有噪聲的混合語音中提取目標(biāo)說話人的語音信號(hào)。語音中包含的背景噪聲會(huì)使混合語音變得模糊不清,而信噪分離能夠削弱背景噪聲并增強(qiáng)語音信號(hào)成分,有效提升信噪比和可懂度。相比由麥克風(fēng)陣列采集的多通道語音,只由一個(gè)麥克風(fēng)采集的單通道語音的分離難度更高,因?yàn)閱瓮ǖ阑旌险Z音中沒有多通道語音中的空間信息,這增大了信噪分離的難度。
目前有多種信噪分離的方法。盲源分離是指從觀測到的混合信號(hào)中分離出各原始信號(hào)分量,“盲”強(qiáng)調(diào)了兩點(diǎn):分離時(shí)各信號(hào)分量的相關(guān)信息,也無語音混合系數(shù)的相關(guān)信息。這種方法的局限在于,在低信噪比或陣發(fā)性噪聲的條件下表現(xiàn)不佳。2006年以來,計(jì)算聽覺場景分析(Computational Auditory Scene Analysis,CASA)日趨完善,能夠較好地將分布于同一頻帶的多個(gè)聲音信號(hào)進(jìn)行分離[1],但是計(jì)算聽覺場景分析也存在局限,其分析所依賴的基音周期軌跡在低信噪比或陣發(fā)性噪聲的條件下易受到干擾。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,人們提出了更多基于深度學(xué)習(xí)的信噪分離算法,取得了較好的效果。馮利琪、江華等提出了一種深度神經(jīng)網(wǎng)絡(luò)與譜減法相結(jié)合的信噪分離算法[2],能夠顯著提高分離語音的可懂度與信噪比,但分離結(jié)果與純凈語音信號(hào)相比仍存在差距。Jitong Chen、DeLiang Wang提出了一種以長短時(shí)記憶模型為基礎(chǔ)的有監(jiān)督信噪分離算法[3],對(duì)于未知說話人或未知噪聲的信噪分離都表現(xiàn)優(yōu)異。Santiago Pascual、Antonio Bonafonte等提出了一種語音增強(qiáng)對(duì)抗神經(jīng)網(wǎng)絡(luò)算法[4],使用對(duì)抗神經(jīng)網(wǎng)絡(luò)自動(dòng)進(jìn)行信噪分離,提供了信噪分離的新思路。Zhiheng Ouyang,Hongjiang Yu等提出了一種全卷積神經(jīng)網(wǎng)絡(luò)[5],輸入復(fù)數(shù)頻譜進(jìn)行信噪分離,這種方法不僅能進(jìn)行振幅估計(jì)而且能進(jìn)行相位估計(jì),在節(jié)省內(nèi)存空間的同時(shí)出色地完成信噪分離。
本文將理想浮值掩蔽作為訓(xùn)練目標(biāo),使用長短時(shí)記憶模型進(jìn)行信噪分離,同時(shí)應(yīng)用Griffin-Lim算法進(jìn)行信號(hào)重構(gòu)。本文還增加了消除竄音現(xiàn)象的步驟,能夠減少分離語音中竄音的干擾。將本文算法與深度神經(jīng)網(wǎng)絡(luò)方法、卷積神經(jīng)網(wǎng)絡(luò)方法在多種噪聲和信噪比條件下進(jìn)行對(duì)比實(shí)驗(yàn),評(píng)分結(jié)果表明本文的方法具有更好的信噪分離效果,可將STOI評(píng)分自卷積神經(jīng)網(wǎng)絡(luò)方法的0.41提升至0.62,將PESQ評(píng)分自卷積神經(jīng)網(wǎng)絡(luò)方法的1.08提升至1.53。
梅爾頻率倒譜系數(shù)(Mel-Frequency Cepstral Coefficients,MFCC)是重要的語音特征。實(shí)驗(yàn)表明,人類的聽覺感知并非呈線性關(guān)系,而是非線性關(guān)系。MFCC模擬了人類聽覺感知的特點(diǎn),為提取MFCC首先需要將頻譜通過梅爾濾波器獲得輸出結(jié)果,再對(duì)輸出結(jié)果求倒譜得到MFCC。梅爾濾波器體現(xiàn)了人耳聽覺對(duì)于較高的頻率成分具有較低的頻率分辨力的客觀規(guī)律。這些濾波器的帶寬在低頻區(qū)域較窄,在高頻部分則較寬。濾波器的形態(tài)由許多等腰三角形組成,頂角處的權(quán)值為1,腰的起點(diǎn)處權(quán)值為0,該點(diǎn)也是上一個(gè)相鄰濾波器的中心頻率。圖1為一個(gè)10階的梅爾濾波器的示意圖。
圖1 一個(gè)10階的梅爾濾波器示意圖
當(dāng)準(zhǔn)周期脈沖激勵(lì)進(jìn)入聲道時(shí)會(huì)引起共振特性,產(chǎn)生一組共振頻率,稱為共振峰頻率或簡稱共振峰[8]。共振峰攜帶了可用于語音識(shí)別的信息,頻譜的包絡(luò)線能夠反應(yīng)共振峰的分布形態(tài)。而MFCC能夠通過逆變換還原梅爾頻譜的包絡(luò)線。圖2為某一幀語音前幾維的MFCC重構(gòu)梅爾頻率包絡(luò)線的效果,該語音采樣率為16kHz,有效頻率范圍為0~8kHz,梅爾濾波器共48個(gè),產(chǎn)生的MFCC共48維,其中前24維MFCC在大致還原梅爾頻率包絡(luò)線的同時(shí)有較少的細(xì)節(jié)丟失,因此取前24維作為MFCC參數(shù)的維數(shù)是適合的。
圖2 各維數(shù)MFCC還原梅爾頻譜包絡(luò)線的效果對(duì)比
使用時(shí)頻掩蔽進(jìn)行有監(jiān)督語音分離時(shí),分離語音的頻譜為時(shí)頻掩蔽與混合信號(hào)頻譜的哈達(dá)瑪積(Hadamard product),如式(1)所示:
其中,為混合語音振幅譜,為模型輸出的時(shí)頻掩蔽估計(jì)值,為分離語音的振幅估計(jì),*為矩陣的哈達(dá)瑪積運(yùn)算。
理想浮值掩蔽是理想二值掩蔽的改進(jìn)。理想浮值掩蔽表示在混合語音某時(shí)頻單元中,目標(biāo)語音成分相對(duì)于混合語音的占比,其定義為
其中,t、f分別表示該時(shí)頻單元所在的時(shí)間幀序號(hào)和頻率點(diǎn)序號(hào)。S(t,f)和N(t,f)分別代表語音和噪聲在該時(shí)頻單元中的傅立葉變換系數(shù)[6],其平方為能量,β是可調(diào)節(jié)因子,一般設(shè)為0.5。IRM假定純凈語音與噪聲相互獨(dú)立,其取值為[0,1]上的實(shí)數(shù)。
竄音現(xiàn)象是指在分離語音中仍然能夠聽見噪聲。竄音現(xiàn)象是由頻率掩蔽效應(yīng)產(chǎn)生的。本文分離語音信號(hào)重構(gòu)中還使用了一種振幅平滑的方法,在振幅估計(jì)中能夠觀察到振幅較大的時(shí)頻單元組成的類似諧波結(jié)構(gòu),根據(jù)相同頻率前后幀的時(shí)頻單元的振幅,對(duì)不在類似諧波結(jié)構(gòu)中的時(shí)頻單元的振幅進(jìn)行平滑,這一步驟能夠略微緩解竄音現(xiàn)象。
以時(shí)頻掩蔽作為訓(xùn)練目標(biāo)的深度模型方法都需要進(jìn)行分離語音信號(hào)波形重構(gòu),因?yàn)槟P凸烙?jì)得到的時(shí)頻掩蔽不是真正的波形信號(hào),需要經(jīng)過掩蔽還原得到頻譜,再經(jīng)過波形重構(gòu)才能獲得完整連貫的分離語音。分離語音信號(hào)重構(gòu)采用疊接相加法與Griffin-Lim算法。
疊接相加法需要將頻譜振幅與相位譜還原為復(fù)數(shù)譜。對(duì)復(fù)數(shù)頻譜進(jìn)行傅立葉逆變換,得到分離語音的波形信號(hào)。最后將各幀按原本分幀的位置對(duì)齊后對(duì)應(yīng)相加,多次重疊部分取均值,最終得到了完整的分離語音。
傳統(tǒng)的疊接相加法中使用的相位為混合語音的相位,這意味著,有一部分噪聲的相位進(jìn)入了分離語音。雖然人耳對(duì)初始相位不敏感,但是對(duì)于相位的連續(xù)性很敏感。近年來越來越多的學(xué)者認(rèn)為,相位在信噪分離中也有重要的作用[5,19]。由于混合語音的頻譜是純凈語音頻譜與噪聲頻譜的矢量和,混合語音的相位可能與純凈語音的相位相差較大。即噪聲相位的介入會(huì)導(dǎo)致分離語音受到干擾。因此,使用混合語音的相位進(jìn)行信號(hào)還原存在一定的缺陷。
Griffin-Lim(G-L算法)由Daniel W.Griffin和Jae S.Lim于1984年提出,是一種只利用振幅譜重構(gòu)語音波形的方法,而無需借助相位。G-L算法的過程是:
1)使用隨機(jī)的相位譜與現(xiàn)有的振幅譜通過傅立葉逆變換得到時(shí)域信號(hào),并將各幀疊接相加得到完整的語音波形。
2)對(duì)得到的語音信號(hào)分幀、加窗并進(jìn)行傅立葉變換,得到新的相位譜與振幅譜。
3)舍棄2)中的振幅譜,只利用2)中的相位譜與初始的振幅譜進(jìn)行傅立葉逆變換得到時(shí)域信號(hào)并將各幀疊接相加得到完整的語音波形,再回到步驟2),或達(dá)到最大迭代次數(shù)。
在G-L算法的迭代過程中,振幅譜保持不變,相位譜不斷收斂最終獲得連續(xù)、漸變的重構(gòu)語音相位。
G-L算法在重構(gòu)波形時(shí)無需借助混合語音的相位,這有效地避免了混合語音和噪聲對(duì)于分離語音相位的破壞。利用G-L算法進(jìn)行分離語音的波形重構(gòu),能有效解決信噪分離時(shí)無法進(jìn)行相位分離的問題,使分離語音不僅振幅接近純凈語音并且相位保持連續(xù)漸變,能夠全面提升分離語音質(zhì)量。
本文實(shí)驗(yàn)使用的語音庫為南京理工大學(xué)NJUST603語音庫,包含男、女生各200余人朗讀文章。其中T4語音庫的語料為作家劉紹棠所著《師恩難忘》的朗讀,包含593個(gè)漢字。本次實(shí)驗(yàn)的訓(xùn)練集中男女聲各17段共34段純凈語音片段,每段語音長約1s,采樣率為16kHz。生成混合語音時(shí)使用的噪聲包含白噪聲、狗叫噪聲、沖激噪聲、戰(zhàn)斗機(jī)噪聲、水流噪聲五種,其中狗叫噪聲和沖激噪聲為陣發(fā)性噪聲,白噪聲、戰(zhàn)斗機(jī)噪聲和水流噪聲為平穩(wěn)噪聲,信噪比分別為-3dB、0dB、3dB、6dB、9dB、12dB、15dB、18dB,生成的訓(xùn)練語音集共有1360段混合語音。
本文的算法使用長短時(shí)記憶模型進(jìn)行分離。算法首先提取10幀的MFCC作為輸入特征,維度為240維,經(jīng)過線性變換輸入隱含層。長短時(shí)記憶模型中共有三層隱含層,每層共有512個(gè)節(jié)點(diǎn),隨機(jī)遺忘因子設(shè)置為0.5,最后一層隱含層后接一層257個(gè)節(jié)點(diǎn)的輸出層,對(duì)應(yīng)IRM的0-256樣點(diǎn)(0~8000Hz低頻部分),該輸出是10幀窗口中最后一幀所對(duì)應(yīng)的IRM估計(jì)。隱含層中的隨機(jī)遺忘因子設(shè)置為0.5。網(wǎng)絡(luò)采用Adam優(yōu)化器以10-5的學(xué)習(xí)率進(jìn)行網(wǎng)絡(luò)優(yōu)化,在隨機(jī)初始化后根據(jù)后向傳播調(diào)整網(wǎng)絡(luò)參數(shù)。
實(shí)驗(yàn)的測試集使用訓(xùn)練集之外的男女生各3個(gè)說話人共6段語音,生成混合語音時(shí)使用的噪聲與訓(xùn)練集相同,信噪比分別為-3dB、0dB、3dB、5dB、10dB、20dB,生成的測試語音集共有180段混合語音。
本文算法的分離結(jié)果與DNN方法以及CNN方法的分離結(jié)果進(jìn)行了對(duì)比,其中DNN的網(wǎng)絡(luò)結(jié)構(gòu)為3層全連接層,每層各1024個(gè)節(jié)點(diǎn),輸出層有257個(gè)節(jié)點(diǎn)。CNN中有兩層卷積層與兩層池化層以及3層全連接層,卷積核大小為3*3,池化窗口分別為3*3和2*1,全連接層中各1024個(gè)節(jié)點(diǎn),輸出層有257個(gè)節(jié)點(diǎn)。
本文采用的分離語音評(píng)價(jià)指標(biāo)為短時(shí)客觀可懂性STOI(Short-Time Objective Intelligibility)與客觀語音質(zhì)量評(píng)估PESQ(Perceptual Evaluation of Speech Quality)[9]。STOI基于語音的離散傅立葉變換結(jié)果在短時(shí)的時(shí)頻區(qū)域內(nèi)計(jì)算可懂度指標(biāo)[9],其評(píng)分取值范圍為(0,1),數(shù)值越高則表明分離效果越好。PESQ是ITU-T P.862建議書中的客觀指標(biāo),是客觀上MOS值(Mean Opinion Score)的近似值。PESQ的取值范圍為(-0.5,4.5),數(shù)值越高則表明分離質(zhì)量越好。
評(píng)分結(jié)果按照噪聲類別與信噪比進(jìn)行分組,每一組中的STOI評(píng)分與PESQ評(píng)分取均值,分離結(jié)果的評(píng)分如表1和表2所示。由于結(jié)果相似,此處省略了10dB與20dB信噪比的分離結(jié)果評(píng)分。分析以沖激噪聲、水流噪聲和戰(zhàn)斗機(jī)噪聲為例。
在分離帶有沖激噪聲的混合語音時(shí),噪聲較強(qiáng)的時(shí)頻單元中局部信噪比較低,宏觀結(jié)果就是分離語音中有明顯的竄音現(xiàn)象。如果采用CNN方法,例如在沖激噪聲-3dB信噪比的情況下分離語音的STOI評(píng)分只有0.41,PESQ評(píng)分只有1.12,分離效果較差。在相同噪聲條件下,本文方法的分離結(jié)果明顯優(yōu)于CNN方法的分離結(jié)果,竄音現(xiàn)象明顯減少,目標(biāo)語音成分更加清晰。在表1中,采用本文的方法,在沖激噪聲-3dB信噪比的情況下,分離語音的STOI評(píng)分由CNN方法的0.41提升至0.62,PESQ評(píng)分由1.12提升至1.53。其中G-L算法進(jìn)行相位分離,發(fā)揮了重要作用。
表1 不同方法信噪分離結(jié)果的STOI評(píng)分
在平穩(wěn)噪聲的情況下,本文方法的分離結(jié)果評(píng)分比CNN方法和DNN方法略高。在表2中,采用本文的方法,在平穩(wěn)噪聲戰(zhàn)斗機(jī)噪聲-3dB信噪比的情況下,本文提方法同樣相對(duì)于DNN與CNN方法略有提升,STOI評(píng)分略高0.05,PESQ評(píng)分可提升0.19。在水流噪聲各信噪比的情況下,本文方法的分離結(jié)果評(píng)分都比CNN、DNN的方法略高。雖然本文的方法的分離指標(biāo)評(píng)分與CNN和DNN方法提升較少,但在實(shí)際聽感上則清晰很多,竄音現(xiàn)象明顯減弱,這是客觀評(píng)價(jià)指標(biāo)難以度量的。
表2 不同方法信噪分離結(jié)果的PESQ評(píng)分
從本文的實(shí)驗(yàn)結(jié)果看出,使用長短時(shí)記憶模型進(jìn)行掩蔽估計(jì)、使用G-L算法進(jìn)行波形重構(gòu)的信噪分離方法,分離效果相較于DNN與CNN方法有明顯的提升。應(yīng)用G-L算法進(jìn)行語音重構(gòu),較好地解決了信噪分離無法進(jìn)行相位分離的問題。同時(shí)可以看出,本文研究的算法對(duì)于陣發(fā)性噪聲混合語音也能正常分離,但在低信噪比情況下的表現(xiàn)仍然有待提升。由此可以看出對(duì)于低信噪比的情況,信噪分離任務(wù)依很艱巨,隨著更多深層網(wǎng)絡(luò)結(jié)構(gòu)的提出,信噪分離效果一定能夠得到更大的提升。