王凱龍 張二華 曹冠彬
(南京理工大學(xué)計算機科學(xué)與工程學(xué)院 南京 210094)
人類的聽覺系統(tǒng)具有很強的語音分離能力,在嘈雜的雞尾酒會上,人們能有效地傾聽感興趣的聲音,甚至只用一只耳朵也能很好地辨別并專注于某個人的聲音,排除其他語音的干擾,1953年英國科學(xué)家E.Cherry將該現(xiàn)象稱為“雞尾酒會”問題。
盡管目前人們對聽覺感知的機理還沒有完全了解清楚,但通過一些聽覺實驗,揭示了聽覺感知的一些線索。1990年,加拿大麥吉爾大學(xué)的Bregman經(jīng)過20多年的研究,出版了《聽覺場景分析》(Auditory Scene Analysis,ASA)[1]。該書中他沿用了視覺場景分析的概念,提出了聽覺場景分析的理論,并對聽覺場景分析的一系列準(zhǔn)則進行了歸納。此后,人們根據(jù)這一理論,模仿人類聽覺的智能,對語音分離做了大量研究工作,取得了一系列成果。2006年美國俄亥俄州立大學(xué)的DeLiang Wang出版了《計算聽覺場景分析》(Computational Auditory Scene Analysis,CASA),目前基于計算聽覺場景分析的語音分離是該領(lǐng)域的主流方法[2]。
Bregman提出人耳對聲音的處理是按照一定的感知規(guī)則對聲音信號進行分離,再按照一定的方法對感知流進行整合的過程,通過這樣的步驟,人可以將聲源與感知流分別對應(yīng),從而分辨不同的說話人語音。這一理論對于人們理解與再現(xiàn)復(fù)雜聲音環(huán)境中人的信息處理機制有著重要的指導(dǎo)意義。
人在聽到某種聲音的情況下的主觀感知被稱作聽覺事件(auditory events)。這個術(shù)語是由Jens Blauert于1966年提出的,以便在物理聲場和聲音的聽覺之間清楚地區(qū)分出來。聽覺事件是心理聲學(xué)研究的中心對象,這些研究的重點是物理聲場的特征與聽眾的相應(yīng)感知之間的關(guān)系,從這個關(guān)系可以得出人類聽覺系統(tǒng)的有關(guān)處理方法[3]。
一系列的心理學(xué)實驗證明,人耳對信號的分流有如下一些規(guī)律:
1)兩個聲音成分的頻率與出現(xiàn)時間越接近,越容易被整合進同一感知流;
2)一組聲音成分呈諧波關(guān)系,即為同一基頻的不同整數(shù)倍,則易被整合進同一感知流;
3)若聲音成分的頻率成分連續(xù)變化,即在譜中呈現(xiàn)連續(xù)的軌跡,或不連續(xù)但平滑,則易被整合進同一感知流;
4)人耳還更傾向于將同時開始同時結(jié)束的聲音成分歸于同一感知流。
CASA一般包括四個階段[4]:
1)仿人耳聽覺機制,將輸入的混合聲音信號分解到一組基本感知單元。通常,混合聲信號被轉(zhuǎn)換到能夠區(qū)分各個聲源分量的變換域。這種轉(zhuǎn)換一般用類耳蝸頻響的聽覺濾波器組來實現(xiàn)。這種轉(zhuǎn)換的原因是原始混合信號在單個時間軸和頻率軸上具有嚴重的重疊。因此,難以通過經(jīng)典的頻域濾波方法有效地區(qū)分聲源。那么可以推斷,如果轉(zhuǎn)換后的單個感知單元足夠小,那么它將不太可能同時受到多個源的影響;
2)假設(shè)基本感知單元之間存在連續(xù)性,將時頻(Time-Frequency,T-F)空間劃分成若干區(qū)域,這一階段可視為將上階段得到的感知單元進行類內(nèi)聚合。實驗表明,同一聲源會占據(jù)某些特定的局部區(qū)域,那么可以假設(shè),在時頻空間越接近的感知單元,屬于同一聲源的可能性越高;
3)第三階段將上階段得到的分塊區(qū)域按聲源感知差異進行分組,從而將屬于同一聲源的成分歸于同一感知流。按具體操作的差異,此階段可再分為“同時組合”(simultaneous grouping)和“時序組合”(sequential grouping),如圖1所示,B與C的組合屬于“同時組合”,指將相同時間段內(nèi)屬于同一聲源不同頻段的感知分塊進行組合,而A與B的組合屬于“時序組合”,則是進一步沿時間軸對聽覺分塊進行拼合;
4)最后階段在前述得到的感知流基礎(chǔ)上進行語音重建,還原聲音信號。
整個CASA系統(tǒng)的難點在于分離和組合的過程[5],首先要找出較為合適的分離依據(jù),從2.1節(jié)歸納的幾組規(guī)律中總結(jié)出分離依據(jù),包括同時起始/結(jié)束、諧波關(guān)系、連續(xù)性與平滑性、節(jié)奏與空間位置等,然后在應(yīng)用合適的規(guī)則將分塊區(qū)域進行拼合。
圖1 同時組合與時序組合示意圖
CASA 提出之后出現(xiàn)了 Brown-Cooke系統(tǒng)[6],Hu-Wang系統(tǒng)[7~9],Jin算法[10]等一系列語音分離方法,在這些方法中,基音周期都作為分離和組合的重要依據(jù),因而待分離目標(biāo)語音基音周期的精度對分離效果具有決定性影響。然而,目標(biāo)語音的基音周期常常受到噪聲的影響,尤其是在信噪比較低的情況下影響更明顯[11],因此,如何得到魯棒性的基音周期估計是一大難點,受到研究人員的廣泛關(guān)注[12]。
本文在提高基音周期準(zhǔn)確性的基礎(chǔ)上,研究了一條新的思路,先以語音信號的短時穩(wěn)定性為依據(jù)利用傅里葉變換將其轉(zhuǎn)到頻域,每一時段內(nèi)按濁音的諧波特性,以基音周期為依據(jù)進行同時組合,同一說話人時序組合,最后得到分離后的語音。
“短時分析技術(shù)”貫穿整個語音分析過程[13]。因為從整體的角度來看語音信號,其特性和特征其參數(shù)的隨著時間的推移而變化,由于聲音是人體口腔肌肉運動構(gòu)成通道形狀產(chǎn)生的響應(yīng),而這個運動相對于語音頻率非常慢,因此在短時范圍內(nèi)(10ms~30ms),其特征基本不變,即語音信號具有短期穩(wěn)定性。每一段稱為幀,幀長通常需取10ms~30ms,所以對于整體語音信號,分析的是每一幀特征參數(shù)組成的特征參數(shù)序列。
對第n幀信號進行離散時域傅里葉變換可得單幀頻譜,其定義如式(1):
定義中的w(n-m)表示一個滑動窗口,隨n的變化沿序列x(m)移動,窗口長度滿足絕對可和條件,窗口函數(shù)也影響著變換的結(jié)果,這里我們選用漢明窗,如式(2)進行預(yù)處理:
α一般選用0.46,在后續(xù)實驗中用到的頻譜(即振幅譜)與短時傅里葉變換之間的關(guān)系如式(3):
單純的頻譜只包含頻域信息,無法提供時域信息,不能體現(xiàn)感知單元之間的連續(xù)性,因此不能用于CASA的分離與組合過程,我們選用了能同時體現(xiàn)時域與頻域信息的語譜圖(Spectrogram)。
人們將和時序相關(guān)的傅里葉分析的顯示圖形稱為語譜圖,語譜圖為偽三維圖譜,垂直軸為頻率,水平軸為時間,任何給定頻率給定時刻的強弱由相應(yīng)位置灰度表示。在語譜圖中,由于色彩深度有差異,連續(xù)變化的相鄰幀頻率點會形成不同的紋線,稱為“聲紋”,可以清楚地觀察到濁音部分有一系列深色條紋,這即是濁音的一組諧波,后續(xù)的處理便是以準(zhǔn)確提取各組諧波為目的。
基音周期是指發(fā)濁音時聲帶振動的周期性,基音周期是指聲帶振動頻率的倒數(shù),基音周期是語音信號最重要的參數(shù)之一,描述了語音激勵源的重要特征[14]?,F(xiàn)有的基音檢測算法包括自相關(guān)函數(shù)(ACF)法,峰值提取算法(PPA)、平均幅度差(AMDF)法、倒譜法、SIFT、譜圖法、小波分析法等。多數(shù)算法采用了濾波處理和峰值提取方法來檢測基音。由于基音周期本身具有多變性且范圍較寬,在加入寬帶噪聲或語音干擾后,基音周期的檢測精度受極大影響,低信噪比情況下算法表現(xiàn)更加不理想,在以上的諸多方法中,倒譜法為目前最有效的方法。
倒譜法作為傳統(tǒng)的基音周期檢測算法,利用了語音信號的倒譜特征來檢測基音信息[15]。
由語音模型可知,語音s(n)是由聲門脈沖激勵e(n)經(jīng)聲道響應(yīng)v(n)濾波而得,即有
倒譜的本質(zhì)是頻譜的頻譜,設(shè)三者的倒譜分別為 s(n)、e(n)、v(n),則有
可以看出,包含基音信息的聲學(xué)脈沖倒譜可以與信道響應(yīng)倒譜完全分離,因此從倒譜頻域分離e(n)后恢復(fù)出e(n),可從中求出基音周期。
設(shè)語音信號的采樣率為w,則有效信號的最高頻率為w/2,時間采樣間隔Δt為1/w,設(shè)每幀的長度為N個數(shù)據(jù)點,通過短時傅里葉變換進行頻譜分析時,隱含條件是該信號為周期信號,取該信號的一個周期進行分析,即信號周期T為NΔt,基頻 f0為w/N,其他頻率成分都是基頻的整數(shù)倍,頻率采樣間隔為w/N。
進行倒譜分析時,數(shù)據(jù)采樣間隔為Δf,取一幀的振幅譜進行頻譜分析,也隱含著取該信號的一個周期分析,振幅譜信號的周期為NΔf,倒譜域的基頻為1/T=1/NΔf=Δt,倒譜域的采樣間隔為Δt。
若倒譜域中諧波信號的峰值出現(xiàn)在第n個“頻率”成分位置,則諧波位置在倒譜中的“頻率”為NΔt,意味著諧波信號在頻率域中起伏變化的“周期”為1/NΔt,而各諧波的頻率為基音周期的整數(shù)倍,諧波之間的間距就是基音頻率,基音周期為NΔt,另,實驗表明,幀長必須包含約4個基音周期,濁音在倒譜曲線上才能顯現(xiàn)明顯峰值。
A:通過這幾年的實踐,我們認為,VOCs治理應(yīng)該從源頭入手,對過程進行控制,并輔以末端治理。源頭,是我們治理的重點,目前我們使用的是無醇潤版液,因為不用酒精了,整個生產(chǎn)車間的空氣質(zhì)量大大改善,幾乎聞不到刺鼻的氣味。過程控制,主要是做好各項管理,使VOCs排放源處于管控之中。末端治理,即VOCs的收集系統(tǒng),這也是非常關(guān)鍵的一環(huán)。
以語譜圖為啟發(fā),采用偽三維形式顯示倒譜,由于相鄰幀基音周期的變化具有連續(xù)性,在圖中可表現(xiàn)出連續(xù)軌跡,通過對軌跡進行提取,即可得到較準(zhǔn)確的基音周期。圖2所示為一段男聲語音“那年正月新春”的波形圖與基音譜圖。
圖2 語音“那年正月新春”波形圖與基音譜圖
基音譜圖能清楚地顯示基音周期軌跡曲線,但若幀長選取不當(dāng),倒譜曲線上會出現(xiàn)虛假的二次、三次、四次等多次倒譜峰值,這些虛假的倒譜峰值對應(yīng)的基音周期是真實周期的2倍、3倍、4倍等,相應(yīng)地在基音譜圖上也會出現(xiàn)虛假的二次、三次、四次等多次基音周期軌跡,這些虛假的二次、三次、四次等多次倒譜峰值及多次基音周期軌跡的幅值會依次降低。如圖3是某女聲幀長為512時“我不滿六周歲”的語譜基音譜圖,圖中就出現(xiàn)了虛假的二次基音周期軌跡。
圖3 語音“我不滿六周歲”波形圖與基音譜圖
虛假的多次倒譜峰值及基音周期軌跡,是由于幀長過長引起的。一般幀長接近4倍的基音周期時比較合適,若幀長再增加,則會出現(xiàn)虛假的多次倒譜峰值。若幀長合適,倒譜峰值大致位于倒譜曲線中部,虛假的多次倒譜峰值及多次基音周期軌跡會消失。圖4是幀長為256時“我不滿六周歲”的語譜基音譜圖,圖中虛假的二次基音周期軌跡基本消失。
圖4 語音“我不滿六周歲”波形圖與基音譜圖
綜上所述,為了準(zhǔn)確提取基音周期軌跡,必須合理選取幀長。一般情況下,幀長取512對男聲和女聲均比較合適。
常見的基音周期估計算法由于未考慮幀間的基音周期連續(xù)性變化特性,需要對求得的基音周期軌跡進行平滑[16]。
4.5.1 中值平滑處理
令x(n)為輸入信號,y(n)為中值濾波器的輸出,并使用滑動窗口,n0處的輸出值y(n0)是窗口中心移動到n0處時窗內(nèi)的中位數(shù)。換句話說,在n0左右取L點。與平滑點一起形成一組信號樣本,將隊列的中位數(shù)作為輸出。L值通常取1或2,稱為3點或5點中值平滑[5]。
4.5.2 線性平滑處理
其 中 ,{ω(m),m=-L,-L+1,…,0,1,2,…,L} 為2L+1點平滑窗,滿足
線性平滑窗口在校正輸入信號中相鄰點的值時也對附近點值進行了修改。因此盡管增加窗口長度可以增強平滑效果,但也可能導(dǎo)致兩個平滑段之間的階躍更加模糊。
根據(jù)4.2節(jié)的推論,得到濁音的基音周期后可推斷其各諧波成分位置,已獲取的各幀基音周期值已經(jīng)加入了軌跡連續(xù)性特征,可獲得較為準(zhǔn)確的基音周期,因此可以忽略基音周期的后處理,但仍不能確信基音周期所指示的諧波位置完全準(zhǔn)確,我們參考4.5節(jié)中提到的動態(tài)窗口平滑處理,結(jié)合對數(shù)據(jù)的大量觀察,總結(jié)出了一套準(zhǔn)確度較高的諧波位置自動提取方法。
1)盡量遵從各諧波點的理論位置,具體諧波點合理調(diào)整。
2)諧波能量較強時,規(guī)律明顯,連續(xù)性好、抗干擾能力強、穩(wěn)定、可靠,諧波能量較弱時,可靠性較差,可舍去。
3)對于兩條軌跡不重合的諧波點,在諧波的理論位置為中心,單元格振幅為A中,再取上、下兩個單元格,振幅分別為,A上,A下。若A中為局部極大值,則該諧波點位置取A中。若諧波點的理論位置不是局部極大值,但A上或A下為局部極大值,且不是其它軌跡的理論諧波點位置,則將該諧波點的位置調(diào)整為局部極大的A上或A下所在位置。若A上或A下都為局部極大值,則將該諧波點的位置調(diào)整為A上或A下的較大者。
4)同一次諧波在橫向上進行平滑、協(xié)調(diào)。調(diào)整后的頻譜數(shù)據(jù),對于同一次諧波,若某幀的諧波位置明顯偏離總體趨勢,則將該幀的諧波點位置進行合理平滑。利用5點中值濾波,若該幀的諧波頻率點序號與中值頻率點序號相差較大,則將該幀諧波點的位置調(diào)整為中值點所在的位置。
由大量觀察得到絕大多數(shù)元音頻譜中諧波寬度不超過5個頻點,我們?nèi)∫唤M寬度為5個頻率點的濾波器,濾波函數(shù)選擇余弦函數(shù)前半周期,濾波器間距為該幀基音頻率,對每幀頻譜進行提取,得到目標(biāo)說話人的各幀頻譜。
由5.1節(jié)得到目標(biāo)說話人的分幀頻譜,沿時間軸組合便可得到目標(biāo)說話人的完整頻譜,進行逆傅里葉變換即可得到單幀信號,序列逆傅里葉變換定義如下:
由于不同幀時域上有重合,我們在得到分離后的單幀語音后,將同一基音周期軌跡段內(nèi)的相鄰多幀按語音幀的位置對齊后進行疊加,并按參與疊加的語音幀個數(shù)取均值,來重構(gòu)該語音段,即可得到目標(biāo)說話人的語音。
為驗證方法的可行性,我們首先選用了女生語音“我不滿六周歲”,人工標(biāo)記頻譜諧波位置后對原始語音進行語音重構(gòu)效果試驗,實驗結(jié)果如圖5所示,聽覺實驗證明該方法能較好地恢復(fù)源語音。
圖5 原始語音重構(gòu)效果
本文進行了一系列信噪分離實驗,噪聲可以是加性的,也可以是非加性的(非加性噪聲往往可以通過某種變換,轉(zhuǎn)化為加性噪聲)。加性噪聲分為沖激噪聲、周期噪聲、寬帶噪聲、語音干擾噪聲等。
1)沖激噪聲:如放電,點火,爆炸會引起沖激噪聲。
2)周期性噪聲:電動機,風(fēng)扇等的周期性運行產(chǎn)生的周期性噪聲,頻譜中表現(xiàn)為離散的窄譜,通??梢酝ㄟ^陷波濾波方法去除。
3)寬帶噪聲:噪聲譜遍及語音信號頻譜,噪聲難以消除。
4)語音干擾:干擾語音信號與待傳語音信號由同一信道傳輸造成的干擾。
我們將語音信號與沖激噪聲、寬帶噪聲以不同信噪比(Signal-Noise Ratio,SNR)進行混合,分別進行分離試驗,結(jié)果如圖6~圖8所示
圖6 加入白噪聲去噪前后對比圖
圖7 加入沖激噪聲去噪前后對比圖
圖8 加入水聲去噪前后對比圖
實驗所采用的信噪比如式(9),其中 Ps和Pn分別代表信號和噪聲的有效功率。
聽覺實驗結(jié)果聽音效果良好,噪聲去除比較干凈,波形圖上也不難看出,濁音部分噪聲明顯減弱,證實了方法的有效性。
本文介紹了一種基于基音周期的單通道信噪分離方法,首先以圖譜分析方法利用基音周期變化的連續(xù)性對基音周期進行了較準(zhǔn)確的提取,后依據(jù)基音周期準(zhǔn)確定位到說話人語音每幀頻譜中的諧波位置,以梳狀濾波方式提取目標(biāo)頻譜,進而通過反變換與分幀疊加得到分離后的語音,實驗結(jié)果來看取得了較好的效果,驗證了方法的有效性。