郭琪雯,陳福恩
(北京交通大學 電子信息工程學院,北京 100044)
目前常用的基音檢測[1]方法中,ACF法[2]易出現(xiàn)基音半頻、倍頻錯誤,AMDF法[3]常會出現(xiàn)均值下降的現(xiàn)象,倒譜法[4]的檢測誤差受噪聲影響較大。
針對上述方法在噪聲環(huán)境下的檢測精度不夠理想的問題,近年來許多學者提出了改進的基音檢測算法。潘崢嶸等[5]提出了將經(jīng)過經(jīng)驗模式分解的AMDF與ACF進行加權的基音檢測算法,有效減少了半頻、倍頻的錯誤,但其算法較為復雜。徐昕等[6]提出通過基于聽覺掩蔽的多頻帶譜減法對帶噪語音進行減噪,再利用多門限法判決清濁音并加權ACF、AMDF進行基音檢測,其檢測正確率在信噪比很低的情況下仍較為理想,但譜減法對于非平穩(wěn)的語音信號會產(chǎn)生一定的檢測誤差。
在信號處理中,LMS濾波是自適應濾波算法中最常用的方法之一,而變步長LMS自適應濾波不僅繼承了傳統(tǒng)LMS算法的優(yōu)點,還同時兼顧了快速收斂和低穩(wěn)態(tài)失調(diào)誤差,能很好地處理信號中的噪聲[7]。基于以上分析,本文將變步長LMS自適應濾波減噪與基音檢測兩者結合起來。首先利用變步長LMS自適應濾波器對帶噪語音信號進行減噪,將減噪后的語音作為待處理信號,基于其自相關函數(shù)、平均幅度差函數(shù)以及倒譜建立非線性組合函數(shù),通過檢測峰值提取基音周期,判斷所得結果是否在置信區(qū)間并處理野點,從而更準確地定位基頻點。實驗結果表明,該算法與傳統(tǒng)的方法相比平滑了基音軌跡,準確性更高,且在信噪比為-5 dB的環(huán)境下仍可得到較準確的結果。
最小均方誤差(LMS)算法是在迭代過程中根據(jù)輸入信號估計梯度矢量并更新權系數(shù),最終使得輸出最優(yōu)的自適應迭代算法。其準則是使濾波器的輸出信號與已知期望響應之間誤差的均方值最小[8],理論基礎是梯度最陡下降方法。
如圖1所示,輸入信號矢量為X(n)=[x1(n),x2(n),…,xM(n)]T,濾波器的權矢量為W(n)=[w1(n),w2(n),…,wM(n)]T,d(n)為期望輸出信號,實際輸出為
y(n)=WTX(n)
(1)
則誤差估計可表示為
e(n)=d(n)-y(n)
(2)
將式(1)帶入式(2),兩邊取數(shù)學期望后得均方誤差為
E[e2(n)]=E[d2(n)]-2E[d(n)XT(n)]W+
WTE[X(n)XT(n)]W
(3)
由式(3)可看出均方誤差是權向量的二次函數(shù),因此為了得到最小均方誤差,選擇采用最陡下降法尋求加權矢量的最優(yōu)值,即先設置一個權初值W(0),權向量的所有分量在每個迭代周期發(fā)生改變[9],沿著負梯度方向不斷調(diào)整W,其迭代公式為
(4)
(5)
圖1 LMS算法原理
在固定步長LMS算法中,濾波器的延遲導致輸出的語音波形前端仍有較大噪聲,通過增大步長因子μ值可加快收斂速度,減少自適應濾波器初始端的延遲量,但μ值增大同時會減小濾波后的信噪比,增大穩(wěn)態(tài)誤差。因此本文采用一種基于Sigmoid函數(shù)的變步長LMS算法,其步長因子μ(n)是誤差e(n)的Sigmoid函數(shù)[10],表達式為
(6)
1.2.1 短時自相關函數(shù)(ACF)
對于一語音信號x(n),經(jīng)加窗分幀后得第i幀語音信號為xi(m),則其短時自相關函數(shù)可表示為如式(7)所示
(7)
式中:k是時間的延遲量。
由于語音信號中只有濁音幀具有周期性,所以濁音幀的自相關函數(shù)也是周期信號,且兩者周期相同,若設周期為T,則可知在延遲量為0,±T, ±2T,…時濁音幀的自相關函數(shù)達到峰值,因此可以通過檢測峰值的位置計算出基音周期。
1.2.2 改進短時平均幅度差函數(shù)(MAMDF)
第i幀語音信號的短時平均幅度差函數(shù)可表現(xiàn)為如式(8)所示
(8)
對于呈周期性的濁音幀,其短時平均幅度差函數(shù)也具有與濁音周期一致的周期特性,而不一樣的是短時平均幅度差函數(shù)在基音周期的整數(shù)倍上不是達到峰值,而是谷點值。由于檢測谷值不如峰值方便,因此通過線性變換將尋找谷值轉換為尋找峰值[11]。
平均幅度差函數(shù)的極大值可連成一條負斜率的直線,把該直線與短時平均幅度差函數(shù)之間的差值做線性變換
(9)
式(9)中Di,max是Di(k)的最大值,其對應的位置是ni,max,N為負斜率直線與x軸交點的橫坐標,DiM(k)是線性變換后改進的AMDF,稱為MAMDF,從而可以實現(xiàn)谷值向峰值的轉變,則直接檢測峰值即可獲取基音周期。
1.2.3 倒譜
信號序列x(n)的倒譜是將其幅值譜取對數(shù)后再進行傅里葉逆變換而得到的,表示為
(10)
式中:FT和FT-1分別表示傅里葉變換和逆變換。
由語音的數(shù)字信號模型可知,若不考慮口唇端輻射,語音x(n)可看作是由聲門脈沖激勵u(n)經(jīng)聲道響應v(n)濾波所得的信號[12],即
x(n)=u(n)*v(n)
(11)
將式(11)左右兩端同時取倒譜得
(12)
由式(12)可知包含基音信息的聲門脈沖倒譜可與聲道響應倒譜分離,濁音信號的周期性激勵在倒譜上也有著相同周期的沖激,因此可以通過檢測倒譜波形的峰值估算出基音周期。
然而以上3種方法單獨使用時都有各自的缺陷,如ACF函數(shù)法會出現(xiàn)半頻或倍頻的誤判,倒譜法的檢測結果易受噪聲影響,無法獲得較理想的基音檢測結果。分析可知,語音信號第i幀所求的短時自相關函數(shù)Ri(k)、改進MAMDF值DiM(k)以及倒譜Bi(k)周期性基本一致,因此本文建立了一個非線性組合函數(shù),記作
Wti(k)=Rni2(k)×(DiM(k)+Bi(k))
(13)
為了避免函數(shù)Wti(k)的幅值過大而影響基音檢測結果,式(13)中的Rni(k)取第i幀短時自相關函數(shù)Ri(k)的歸一化值。通過檢測Wti(k)的峰值來計算基音周期,目的是在現(xiàn)有方法的基礎上更加突出基音周期處的峰值,從而提高基音檢測的準確性。
通過上述方法進行基音檢測后,所求基音頻率曲線仍會出現(xiàn)有些基頻值明顯偏離了正常值的現(xiàn)象,為了去除這部分野點需要對其作平滑處理。首先,求出每一幀Wti(k)的峰值所對應的位置pi(即延遲量),其次計算出其平均值m和標準差t,并設置一個置信區(qū)間為(m-t+2,m+t-2),對于標準差很小的計算結果不作處理,而當標準差大于2時,對于Wti(k)峰值所對應的延遲量不在置信區(qū)間內(nèi)的幀,即pi
(14)
若|Fr(i)*2-Fr(i-1)|<25,則將該幀的基頻值更改為如式(15)所示
Fr(i)’=Fr(i)*2
(15)
這樣可以更有效地消除半頻、倍頻錯誤對于基音檢測結果的影響。
本文提出的改進基音檢測算法流程可分為語音信號的預處理,變步長LMS減噪,歸一化ACF函數(shù)、MAMDF函數(shù)和倒譜的非線性組合函數(shù)計算,基音周期、基音頻率的提取以及平滑處理。具體流程框架如圖2所示,其步驟總結如下:
(1)對語音信號x(n)進行加窗分幀,并利用能熵比法進行端點檢測;
(2)使用帶寬為60 Hz~500 Hz的橢圓帶通濾波器對x(n)進行初濾波,以減少共振峰和低頻噪聲的干擾;
(3)對預處理后的語音信號采用變步長LMS自適應濾波器進行降噪;
(4)分別計算降噪后信號的短時自相關函數(shù)歸一化值、改進短時平均幅度差函數(shù)以及倒譜,然后求其非線性組合函數(shù)Wti(k),找到每一幀Wti(k)的峰值所對應的位置pi,對于pi不在置信區(qū)間內(nèi)的所在幀進行糾正,從而得到基音周期;
(5)計算基音頻率并通過判斷相鄰幀的基頻差值,做進一步的平滑處理。
圖2 基音檢測改進算法的流程
為了驗證本文提出的改進基音檢測方法的有效性,使用MATLAB軟件進行仿真實驗。實驗中采用的語音樣本是計算機聲卡在安靜環(huán)境下錄制的wav格式語音文件,采樣頻率為8000 Hz,量化比特為16 Bit,分幀幀長取為200采樣點,幀移取為100采樣點。
選用一時長約5 s的女聲錄音文件作為實驗樣本,通過添加高斯白噪聲分別生成信噪比為5 dB、0 dB以及-5 dB的帶噪語音。利用變步長LMS濾波器對這3種語音信號的減噪效果分別如圖3(a)~圖3(c)所示,由圖可知該方法在3種不同情況下都使信噪比得到了大幅度提升,5 dB時信噪比提高到17 dB,0 dB時信噪比提高到約15 dB,即使在信噪比為-5 dB的情況下,經(jīng)過濾波后的語音信噪比也提高到12 dB,減噪效果顯著。
圖3 不同信噪比情況下的變步長LMS濾波效果
取實驗一中的一幀去噪語音,分別計算它的ACF歸一化值、MAMDF值、倒譜值以及本文建立的非線性組合函數(shù)值,其對應的函數(shù)波形圖分別如圖4(a)~圖4(d)所示。由圖4(a)、圖4(b)可知,ACF函數(shù)、MAMDF函數(shù)在采樣點約20的位置都呈現(xiàn)出“偽峰值”,其實際對應于共振峰峰值點。而圖4(c)中的倒譜波形波動幅度小,呈現(xiàn)出的峰值相對不尖銳。本文建立的非線性組合函數(shù)相較于單一的ACF函數(shù)、MAMDF函數(shù)、倒譜而言,在周期的整數(shù)倍處(采樣點約40的位置)峰值更加突出,有效地削弱了“偽峰值”點的影響。
圖4 一幀語音的不同函數(shù)波形對比
分別用短時自相關函數(shù)法、改進短時平均幅度差函數(shù)法、倒譜法以及本文方法對實驗一中的語音信號進行基音檢測,其中信噪比為-5 dB時各方法得到的基音周期如圖5所示。圖6(a)~圖6(d)將每種方法所得基音頻率波形放在語譜圖上進行對比,可看出單一的ACF函數(shù)法、MAMDF函數(shù)法以及倒譜法都出現(xiàn)了明顯的半頻、倍頻等誤判的情況,而本文方法所求得基頻曲線與語譜圖上的實際基頻曲線重合度很高,幾乎無倍頻、半頻的錯誤,基頻軌跡也相對更加平滑。
圖5 不同方法基音檢測結果對比
為了檢驗本文方法的魯棒性,在200組干凈語音(其中100組男聲、100組女聲)中分別加入信噪比為5 dB、0 dB以及-5 dB的高斯白噪聲,并以短時自相關函數(shù)法加人工校正得到的基音值作為正確參考值,對ACF函數(shù)法、MAMDF函數(shù)法、倒譜法以及本文方法的基音檢測正確率進行比較。
圖6 不同方法語譜圖上的基頻曲線對比
從表1可以看出,在3種不同的信噪比環(huán)境下,ACF法、MAMDF法、倒譜法的檢測正確率都維持在80%到87%左右,而本文方法的檢測正確率一直保持在90%以上,明顯高于傳統(tǒng)的基音檢測方法。即使在信噪比為-5 dB的情況下,正確率也達到了91.9%,比另3種方法都提高了10%左右,從而驗證了本文方法具有更高的準確性,且魯棒性很好。
表1 不同方法基音檢測正確率對比/%
本文將變步長LMS自適應濾波與組合短時自相關函數(shù)、改進短時平均幅度差函數(shù)、倒譜三者的基音檢測法相結合,提出了一種改進的基音檢測算法。首先采用變步長LMS 自適應濾波器對帶噪語音進行減噪,其次改進傳統(tǒng)的ACF、MAMDF、倒譜法再對減噪后的語音進行基音檢測,最后利用置信區(qū)間以及相鄰基頻差值對檢測結果做平滑處理。仿真結果表明,本文的改進算法不僅有效地減少了倍頻、半頻的誤判,提高了基音檢測的精度,而且即使在信噪比為-5 dB的情況下,檢測結果依然明顯優(yōu)于傳統(tǒng)算法,魯棒性最好。