阮振裔,王 濤,石超宇
(上海大學 通信與信息工程學院,上海 200444)
語音增強的作用是提高受損語音的質量和可懂度[1]。于現(xiàn)實中采集到的語音信號往往伴有周圍的環(huán)境噪聲,人聲干擾以及其他因素的影響。在許多語音系統(tǒng)如語音通信,語音識別中都需要使用到語音增強算法來提升系統(tǒng)的性能。
根據(jù)麥克風的數(shù)量進行分類,可以把語音增強算法分為單通道(單麥克風)語音增強和多通道(多麥克風或麥克風陣列)語音增強。本文所研究的算法屬于單通道語音增強。單通道語音增強算法又可以大致分為以下幾類:譜減法[2],基于統(tǒng)計模型的算法[3-4],子空間算法[5],以及基于機器學習的算法[6-7]。需要指出的是,這些算法大多只關注幅度譜的修正,而采取使用含噪語音信號相位代替純凈語音信號相位的做法。其原因在于早期研究人員認為人耳對于相位信息并不敏感[8];在高信噪比情況下,含噪語音信號相位譜和純凈語音信號相位譜非常接近[9];純凈語音信號相位譜的準確較難估計,會增加算法的復雜度等等。因此,從20世紀開始的很長一段時間范圍內,語音增強主要是對信號的幅度譜進行增強。而對于相位譜的研究較少。
隨著語音增強技術的發(fā)展,僅僅對幅度譜進行增強后實現(xiàn)的效果提升越來越有限。同時硬件資源的提升使得算法復雜度較高的方法也能夠被接受。因此,研究人員將目光轉向相位譜。Paliwal K等人設計了多種實驗證明了相位譜在語音增強中的重要性[10]。近年來,越來越多的研究致力于相位譜語音增強[11-13]。
本文提出了具有相位補償?shù)母倪Mlog-MMSE語音增強算法。本文使用基于GMM的VAD算法[14]來估計噪聲和改進基礎的log-MMSE增益函數(shù)。傳統(tǒng)的通過VAD來估計噪聲的方法只在噪聲段更新,而在語音段保持不變。本文結合VAD所產(chǎn)生的語音存在概率改進噪聲功率譜更新方式,使得噪聲信息能夠一直得到更新。另外根據(jù)VAD給出的幀單位上檢測結果和語音存在概率改進了基礎的log-MMSE增益函數(shù)。最后使用一個相位補償因子[15]來對相位譜作出補償。從而對含噪語音信號的相位譜和幅度譜同時進行增強。
本文在TIMIT和NOISEX-92,NOIZEUS數(shù)據(jù)集下,設立多種噪聲環(huán)境進行算法有效性驗證。實驗數(shù)據(jù)表明,本文所提出的具有相位補償?shù)母倪Mlog-MMSE語音增強算法與其他經(jīng)典語音增強算法相比,能夠實現(xiàn)更好的噪聲抑制效果,更好地提升語音質量。
假設噪聲是加性的。則時域中含噪語音信號由可由式(1)來表示。
x(n)=s(n)+v(n)
(1)
其中,x(n)、s(n)、v(n)分別表示時域中的含噪語音,純凈語音和噪聲信號。
含噪語音信號經(jīng)過語音信號預處理過程,從時域變換到頻域后,用幅度譜和相位譜表示如下:
|X(k,l)|eiφX(k,l)=|S(k,l)|eiφS(k,l)+
|V(k,l)|eiφV(k,l)
(2)
其中,|X(k,l)|、|S(k,l)|、|V(k,l)|分別表示含噪語音、純凈語音、噪聲的幅度譜。φX(k,l)、φS(k,l)、φV(k,l)分別表示含噪語音、純凈語音、噪聲的相位譜。
基礎log-MMSE增益函數(shù)通過令估計純凈語音與實際純凈語音對數(shù)幅度譜均方誤差最小化推導得出,可以表示如下:
(3)
然后通過增益函數(shù)增強幅度譜,并且使用含噪語音相位代替純凈語音相位。最后通過逆傅里葉變換轉換到時域上。其過程可以用圖1來展示。
基于GMM的VAD算法選取子帶對數(shù)能量作為語音特征,其計算過程如下。
P(k,l)=αP(k,l-1)+(1-α)|X(k,l)|2
(4)
(5)
對含噪語音進行建模,GMM可以表示如下(為了表達簡潔,式中省略了部分索引):
(6)
其中,w,μ,κ分別表示權重,均值和方差,這三個值組成GMM參數(shù)集λ。下標z=0,1分別表示噪聲分量和語音分量標簽。
初始化GMM模型參數(shù)集之后,對參數(shù)集進行實時更新。通過參數(shù)集來求得語音存在概率,語音存在概率的計算公式如下:
(7)
其中,spp(b,l)表示第l幀中第b個子帶上的語音存在概率,w1(b,l)表示對應的語音模型權重,p(y(b,l)|z=1,λl)表示對應噪聲模型的概率密度函數(shù),λl表示第l幀的參數(shù)集。子帶上的語音存在概率spp(b,l)通過變換可以得到各頻點上的語音存在概率spp(k,l)。統(tǒng)計一幀中各子帶的語音存在概率,與一個閾值進行比較得到可以每一幀信號的VAD結果。
傳統(tǒng)基于VAD進行噪聲估計的方法可以表示如下:
(8)
上述方法的缺點是在語音段無法更新噪聲功率譜,實際上語音段內的噪聲功率譜可能會發(fā)生變化。因此本文對上面的噪聲估計方法做出了改進,通過一個可變平滑因子使得噪聲功率譜更新在語音段也能夠進行。改進后的噪聲估計方法可以用下式來表示。
(9)
其中αn(k,l)表示第l幀第k個頻點上的平滑因子,其計算公式如下:
αn(k,l)=α0+spp(k,l)(1-α0)
(10)
前文所給出的基礎log-MMSE增益函數(shù)是假設語音和噪聲都存在時推導得出的。但是人在說話過程中必然會有停頓,此時只有噪聲信號的存在。因此對于一段含噪語音信號,一般不直接使用增益函數(shù)與之相作用,而需要結合語音存在概率對增益函數(shù)作出修正。另外當增強信號幅度為零時,會出現(xiàn)惱人的音樂噪聲影響語音質量。因此為了保證增益函數(shù)不為零,還需要為其設定一個最小值。
值得注意的是,在有些情況下,GMM的建??赡艹鲥e,在這種情況下得到的語音存在概率是有誤的,若繼續(xù)使用其進行語音增強會對語音有較大損傷。盡管頻點上的語音存在概率可能會出錯,但是幀單位上的VAD判決結果由于子帶融合機制一般是正確的,因此本文的增益函數(shù)最終設置如下:
(11)
其中G′(k,l)表示本文所用改進增益函數(shù),Gm是為了防止語音存在概率為零時導致最終增益為零所設置的最小增益值,Gn是為了防止原先增益為零時導致最終增益為零所設置的最小增益值。
在高信噪比情況下,含噪語音的相位與純凈語音相位接近,但在低信噪比情況下,兩者的差距會十分明顯。因此只對含噪語音進行幅度譜增強而忽略相位譜的做法并不是最優(yōu)的。我們使用一個簡單的實驗來說明上述現(xiàn)象。即選取一段純凈的語音信號,疊加高斯白噪聲設立多種信噪比。并把這兩種信號轉換到頻域上,觀察兩者的相位譜,實驗結果如表1所示。
表1 不同信噪比情況下含噪語音信號與純凈語音信號相位的比較
信噪比/dB-505101520φX(k,l)/度-28.9-37.3-42.5-45.5-47.2-48.2φS(k,l)/度-49.5-49.5-49.5-49.5-49.5-49.5
可見信噪比越低,兩者的差距越來越大。
因此本文使用一個相位補償因子來對相位譜進行補償[15]。給出相位補償因子如下:
Λ(k,l)=cΨ(k)|V(k,l)|
(12)
其中c為一經(jīng)驗值常數(shù),|V(k,l)|表示噪聲幅度譜,Ψ(k)為一反對稱性函數(shù),其形式如下:
(13)
相位補償首先通過給原先的含噪信號加上相位補償因子:
XΛ(k,l)=X(k,l)+Λ(k,l)
(14)
然后通過上式中的XΛ(k,l)來求得補償后的相位譜:
φXΛ(k,l)=ARG[XΛ(k,l)]
(15)
最終的增強信號通過結合增強之后的幅度譜和補償?shù)南辔蛔V來得到:
(16)
綜上所述,本文所提出的改進語音增強算法主要研究內容如下:
(1)使用基于GMM的VAD算法所得到的語音存在概率,改進了傳統(tǒng)通過VAD算法進行噪聲估計的方法,使得噪聲功率譜更新在語音段也能夠進行。
(2)使用基于GMM的VAD算法所得到幀單位上檢測結果和語音存在概率,改進了基礎的log-MMSE增益函數(shù),在盡可能抑制噪聲的同時盡量保證語音成分不失真。
(3)使用相位補償因子對相位譜作出補償,從而同時進行幅度譜和相位譜的增強。
本文所設計的具有相位補償?shù)母倪Mlog-MMSE語音增強算法的整體流程圖如圖2所示。
為了評估所提出的具有相位補償?shù)母倪Mlog-MMSE語音增強算法的性能,我們從TIMIT語料庫中選擇純凈語音信號。并從NOISEX-92和NOIZEUS噪聲庫中選取噪聲,對純凈語音信號疊加不同的噪聲,設立多組信噪比作為測試數(shù)據(jù),對比本文算法與其他經(jīng)典語音增強算法的性能。
本文使用信噪比和PESQ來評價增強之后的語音質量。算法處理后的信號信噪比越高意味著噪聲抑制的效果越好。但語音增強不僅僅是對噪聲進行抑制,還需要同時盡量保證語音成分不失真。語音質量感知評價(PESQ)是一種比較常用的客觀評價方式。PESQ給出的得分越高,則說明增強的語音質量越高。通過這兩種評價方式來對比算法的性能。本文中語音信號采樣頻率為16 kHz,幀長20 ms,平滑功率譜平滑常數(shù)α取0.98,噪聲功率譜平滑常數(shù)α0取0.75,增益控制值Gm取0.103,增益控制值Gn取0.001,相位補償因子常數(shù)c取3.74。
首先從NOISEX-92噪聲庫中選取平穩(wěn)噪聲:white噪聲和pink噪聲,以及非平穩(wěn)噪聲babble噪聲構成不同的含噪信號,通過信噪比來對比本文算法和其他經(jīng)典算法的降噪性能。表2展示了不同噪聲環(huán)境下,使用其他算法和本文算法進行增強后的輸出信噪比情況。
表2 多種噪聲環(huán)境下各算法的輸出信噪比比較
噪聲類型輸入信噪比/dB輸出信噪比/dB譜減法維納濾波Log-MMSE本文算法-50.411.532.067.03white04.734.334.939.4359.057.668.2011.851013.4211.2711.8114.20-51.02-0.021.616.41pink04.574.574.908.8958.698.698.0911.511013.3911.6512.1414.21-50.381.962.162.91babble04.205.375.676.2558.248.889.179.731012.7513.2713.5313.39
從表3的實驗結果我們可以看到,除了在babble噪聲含噪語音信號輸入信噪比為10 dB情況下,本文算法的輸出信噪比略低于log-MMSE,其余情況下本文算法的輸出信噪比都高于其他算法。
為了直觀形象地展示其他語音增強算法和本章所設計的算法的效果。圖3展示了在white噪聲0 dB情況下各算法輸出波形圖。從圖3我們可以看到相對而言譜減法的噪聲抑制效果最差,譜減法在高信噪比情況下能夠取得不錯的噪聲抑制效果,但是在低信噪比情況下,其效果會急劇下降。在低信噪比情況下,維納濾波具有較小的增益函數(shù),因此具有更強的噪聲抑制效果。但與此同時,和純凈語音信號的波形圖對比可以看到,一些有效語音成分也被消除掉,這是我們不希望看到的結果。log-MMSE保留了更多的語音成分,但也殘留了較多噪聲。而本文算法最終的增強效果既最大程度保留了語音的有效成分,也具有更低的噪聲殘留。
為了進一步驗證本文算法的有效性。除了在NOISEX-92中選取的噪聲,另外從NOIZEUS噪聲庫中選取日常生活中常見的street噪聲和car噪聲組成測試集。對比各算法處理后的PESQ值,結果如表3所示。
表3 多種噪聲環(huán)境下各算法的PESQ比較
噪聲類型輸入信噪比/dBPESQ含噪信號譜減法維納濾波log-MMSE本文算法white-51.061.061.111.091.4201.081.101.161.191.6951.131.201.301.411.97101.281.451.681.832.32pink-51.061.061.171.101.4701.091.121.121.351.6551.201.291.291.661.94101.441.651.752.072.39babble-51.111.121.201.191.2401.191.211.231.381.4151.371.431.421.651.73101.371.861.932.152.19street-51.101.111.191.261.3001.171.231.281.481.5651.351.471.461.801.91101.651.922.022.272.31car-51.111.111.301.301.5101.191.201.641.691.8551.361.442.002.112.27101.651.852.362.502.75
從表3中結果可以看到,本文算法在各種噪聲環(huán)境下都具有最高的PESQ得分。因此本文算法比其他算法更好的增強效果。
本文提出了具有相位補償?shù)母倪Mlog-MMSE語音增強算法。傳統(tǒng)的通過VAD來估計噪聲的方法只在噪聲段更新,而在語音段保持不變。本文結合基于GMM的VAD所產(chǎn)生的語音存在概率改進噪聲功率譜更新方式,使得噪聲信息在語音段也能更新。另外結合VAD給出的幀單位上檢測結果和語音存在概率改進了基礎的log-MMSE增益函數(shù)。最后使用一個相位補償因子來對相位譜作出補償。從而對含噪語音信號的相位譜和幅度譜同時進行增強。在多種噪聲環(huán)境下的實驗結果表明,本文提出的算法相比于其他經(jīng)典語音增強算法,具有更好的噪聲抑制效果,能夠獲得更好的語音質量。