沈紅紅,何利力
(浙江理工大學 信息學院,浙江 杭州 310018)
近年來,由于語音信號處理技術取得顯著的成果,促進了語音識別、計算機聽覺以及語音增強等技術研發,推動了智能家居、消費電子產品、通信以及智能汽車等領域的發展,而語言之間的相互轉換成為了目前語音信號方面的研究熱點。但是語音信號具有多樣性和復雜性,尤其是語音信號的質量方面。要想準確地獲取語音特征詞,就必須去除語音信號中的噪音成分。所以,為了能夠消除噪音對語音信號質量的影響,很多學者進行了相關的研究。如唐銘卓[1]提出了一種帶分解的分數傅里葉變換語音去噪法,利用分數階域的最佳濾波算子和最佳變換階實現語音和噪聲的分離。基于傅里葉變換去噪法,在提高信噪比和空間分辨率上存在相互矛盾,且去噪效果不佳。在此基礎上,研究者張曉寧[2]提出了采用小波閾值去噪法,利用小波變換的多分辨率特性,有效地去除了信號噪聲。鑒于小波變換對非線性時變隨機信號的處理效果差,研究者郭會芹[3]提出了一種Hilbert-Huang的語音信號去噪算法;該算法具有的多分辨率和高度自適應的特性,能夠很好地處理非平穩、非線性的時變隨機信號。為了避免語音信號去噪后失真,研究者黃珊[4]提出了一種稀疏編碼去噪方法。以上這些研究方法都在不同程度進行了語音信號去噪。
本文結合小波去噪和奇異值分解去噪研究方法的優缺點,提出了一種新的WT-SVD去噪方法,利用一段加噪的語音信號進行實驗,仿真結果表明該方法有效地去除了語音信號噪音,提高了信號分辨率。
語音信號在不同場景中含有的噪音大小也不一樣,為了適用于不同場合的信號去噪,通過調節小波閾值函數,確定最佳閾值,從而達到更好的去噪效果。設f(t)為有限能量的語音信號,連續小波變換[5]定義式為:

(1)

在連續小波變換中,參數a,b是連續的。但是,在實際語音信號處理過程中,為了減小計算誤差,避免信號的失真,對連續小波變換進行離散化處理,即a,b參數離散化,得到離散型小波變換(DWT)[6]。DWT處理過程,首先將原始語音信號分解為近似系數和細節系數,近似系數中包含主要語音信息,然后對信號中的低頻成分繼續分解,反復該過程。

圖1 三層小波分解過程
與傅里葉變換不同,小波變換將原始信號轉換到頻域范圍,同時,也將一維的時域信號轉換到二維“時間-尺度”空間上,所以f(t)的小波變換具有多分辨率特性。通過改變參數a和b可以得到一個小波序列以達到對f(t)在任意一個位置的匹配。
小波去嗓[7]是通過對信號進行一定尺度分解后得到其在當前尺度的系數向量W,然后通過所選擇的閾值量化處理函數對此小波系數向量進行處理得到Wδ,并由此重構出去噪后的估計信號。其中小波閾值去噪包括硬閾值去噪和軟閾值去噪[8],其閾值函數分別如式(2)、式(3)所示:
(2)
(3)
從軟硬閾值函數可以看出,若小波系數W的絕對值小于閾值δ時,則為噪聲,并將其置0。若所得小波系數W大于閾值δ,則保留該信號并對其進行處理。原始信號所包含的語音信號信息主要存在于部分小波系數上,而噪聲信號所包含的信息量較少,所以與噪聲成分相應的小波系數會遠小于主要信號。小波閾值去噪的步驟如下:
① 選擇小波基函數并確定小波分解尺度得到當前尺度下的小波分解系數向量W;
② 對各小波系數進行閾值的量化處理得到估計的小波系數向量Wδ;
③ 基于Wδ重構出去噪信號。
小波去嗓過程中,閾值函數[9]的選擇和閾值的確定是小波系數向量的閾值量化處理過程中最重要的環節。閾值的確定需要根據具體的語音信號所處的環境而定,當閾值太大,則會出現信號溢出現象,即過濾掉非噪音信號。若閾值選取太小,則去噪效果差。其中小波閾值確定的4種方式如下:
② 無偏風險軟閾值估計(rigrsure):得到給定閾值m的似然估計,并最小化似然函數,就可以獲得對應閾值;
③ 最小極大方差閾值(minimaxi):此方法選取的閾值也是固定的,其計算公式為:

(4)
④ 選擇啟發式閾值(heursure):此閾值確定方式是sqtwolog和 rigrsure閾值確定方式的綜合,因為根據rigrsure所確定的閾值在信噪比比較高的情況下表現一般,heursure采用了一種啟發函數選擇sqtwolog和rigrsure中較好的閾值作為最終閾值。綜合考慮,本文選擇綜合sqtwolog和rigrsure的閾值選取規則的優點的heursure方法。
軟硬閾值量化處理函數存在缺陷,如圖2所示,采用硬閾值函數去噪時,則所得Wδ存在間斷點。當小波系數進行信號重構時會導致去噪后的信號出現振蕩,造成重構信號失真。采用軟閾值函數去噪時,則大于閾值的那部分ωjk會發生偏移,即與原來的值相比出現誤差,這對于重構信號與原始信號的近似程度影響較大。

圖2 軟硬閾值函數對比
針對以上2種閾值函數的缺陷,引入了一種新閾值函數[10],通過在硬閾值函數的基礎上增加一個指數型的修正系數,函數在原間斷點附近導數極大,且函數連續,盡可能減少小波系數的偏差,其表達式如下:

(5)
式中,λ為閾值,x為小波系數,ηx,λ為處理后的小波系數。其閾值函數如圖3所示,可以看到,當x的絕對值小于λ時,同樣將其全部置為0,避免去噪效果不佳,當x逐漸接近λ時,函數的收斂速度加快,使原本硬閾值量化處理函數當中的間斷點消失,這樣就解決了硬閾值函數會導致重構信號存在震蕩的問題。當閾值函數遠離λ時,此函數對x的處理較為平緩,當距離遠到一定程度時則不再存在偏差,這樣就盡量克服了軟閾值量化處理函數對x造成的固定偏移。

圖3 新閾值函數
奇異值分解[11](SVD)是一種非線性濾波,SVD降噪[12]主要依據信號量與重構矩陣奇異值之間的對應關系,將包含語音信號的矩陣分解到一系列奇異值和奇異值矢量對應的時頻子空間中。一般而言,較大的奇異值會對應信息量大的信號分量,較小的奇異值對應信息量小的分量;當有用信號未被噪聲淹沒時,噪聲信號分量對應的奇異值數值較小,只會淹沒掉原信號中信息量小的分量。所以通過適當地舍棄小奇異值對應的信號分量,用大奇異值進行信號還原,則可以達到既消除噪聲的影響,又保留原始信號的主要信息,得到了對原信號較好的估計,從而得到降噪信號[13]。
設有矩陣E,且存在i×i的正交矩陣C,j×j的正交矩陣U以及i×j的Σ矩陣;Σ矩陣上主對角線上的元素都為奇異值(δ1≥δ2≥…≥δr),其余元素為零。則矩陣E的SVD為:E=CΣUT。
矩陣E的秩為r,r與非零奇異值的個數相等,則‖EQ‖可表示為:

(6)
式中,矩陣C的前rE列是以矩E的列向量為基礎的,而UT的前rE行是以矩陣E的行向量為基礎的。為了得到一個和矩陣E相似的矩陣Em,m≤rE,令矩陣E中除了m個最大的奇異值之外的其他奇異值為零。由Brain提出的奇異值分解理論認為,可以通過最小化近似矩陣Em來確定原始矩陣E和近似矩陣之間的距離:

(7)
將經過小波濾波后的語音信號進行SVD二次降噪處理,奇異值分解降噪過程如下:
① 利用語音信號X=(x(1),x(2),…x(N))構造矩陣E;
② 對矩陣E進行奇異值分解,得到C∈Ri×i,Σ∈Ri×j以及U∈Rj×j,則E=CΣUT;
③ 選取奇異值閾值,然后對奇異值矩陣Σ進行處理,將小于奇異值閾值的奇異值置零,處理后的矩陣為Σ-;
④ 利用矩陣C、U和Σ-重構矩陣E-,E-∈Ri×j,則E-=CΣ-UT;
⑤ 由矩陣E-第1行的所有元素和第2行第i列至第j行第i列的j-1個元素,構造新的數據序列X-,表達式如下:
X-=[x1,1:ix(2:j,i)T]。
盡管奇異值分解具有簡化數據、減少噪音的優點,但在信號去噪的過程中也存在奇異值選取難的問題。選擇合適的奇異值個數進行信號重構,信號去噪效果好。如果選擇的奇異值個數過多,則去噪后的信號中會仍然會有大量噪音存在,去噪效果差;如果選擇奇異值個數表示過少,則會破壞原始信號,導致信號失真。為了解決奇異值個數選擇問題,研究者給出了不同的解決方案。例如:① 利用差分譜的方法自動劃分出奇異值個數;② 利用特征均值的方法,通過奇異值的特征值均值判定奇異值個數;③ 利用奇異值中值法判定個數。這些方法在一定程度上解決了奇異值個數選取問題,但是仍然存在很多缺陷。對此本文采用奇異值方差法解決該問題。
奇異值方差法:將含噪信號的矩陣經過奇異值分解后,得到奇異值δ1,δ2,…,δr),則:
δs=varδ1,δ2,…,δr),
式中,δs為奇異值方差,var為MATALB中求方差的運算命令。
根據奇異值的方差值來判定奇異值的個數,當判定的奇異值小于方差值時,將其奇異值置為零;當大于方差時,則保留該奇異值,作為重構矩陣的元素,實現信號降噪。
為了檢測WT-SVD去噪方法的有效性,本文選擇MATALAB進行語音信號的仿真,選擇如圖4所示的一段加噪的語音信號,首先進行WT濾波,如圖5所示,然后將經過WT濾波的語音信號進行SVD濾波,如圖6所示。
由圖4可以看出,該語音信號受噪音的影響比較大,然后對該語音信號進行WT濾波;由圖5可以看出,大部分的噪音都被過濾掉,但是仍然存在某些噪音未被過濾。然后對圖6語音信號繼續進行SVD濾波,由圖6可以看出該語音信號去噪效果明顯,幾乎沒有明顯的噪音信號,且和原始信號相比,去噪后的語音信號未出現失真情況。

圖4 原始加噪信號

圖5 WT去噪信號

圖6 WT-SVD去噪信號
總結了語音信號的去噪方法,研究了語音信號去噪方法中的改進問題。介紹了小波閾值去噪中的缺點,為了能夠確定最優閾值函數,引入了一種新的閾值函數。克服了傳統軟硬值函數的缺點,縮小了小波系數固有偏差。過濾掉語音信號中的部分噪音后,利用奇異值分解濾波,過濾掉剩余的語音信號噪音。通過對語音信號進行仿真,結果表明,經過雙層濾波后,極大地消除了語音信號中的噪音。在后續工作中,考慮語音信號所處環境不同,噪音大小也不同問題,將繼續研究消除噪音課題。