貴州大學大數據與信息工程學院 盧錦濤 羅楊川云
基于db3小波閾值法的語音信號降噪研究
貴州大學大數據與信息工程學院 盧錦濤 羅楊川云
語音信號是一維非平穩(wěn)準周期信號,在產生和傳播過程中易混入各種噪聲,導致對其語音效果造成影響。為了對信號進行降噪,本文對語音信號降噪進行研究,給出小波語音信號降噪的基本方法,并在matlab環(huán)境下應用db3小波對攜帶噪聲的語音信號進行處理。文中采用硬閾值法、軟閾值法以及軟硬閾值法結合對信號處理,并在降噪算法的自適應性上進行研究結果對比分析顯示,軟硬閾值結合的方法降噪效果最佳,可以既保證信號不失真,同時達到較好的信噪比。
語音降噪;matlab;db3小波;閾值算法
移動互聯網使語音識別技術越來越重要。語音音質問題,語音識別技術發(fā)展尚未達到智能化,完全識語音讓用戶感到困擾。其中最主要的是語音噪聲對其的干擾。在移動通信中,語音端點檢測順利完成后,保證良好的音質的關鍵就是對噪聲的抑制和處理,即語音降噪,是保證良好音質的基礎。語音降噪是降低噪聲,突顯有用信號的技術,目的是提高信噪比,提高語音質量,提高自然語音的可辨度。語音信號是一種一維準周期信號,信號容易獲取,但是由于在發(fā)生過程中和聲音傳遞過程中不可避免的會受到噪聲的干擾,混入其中,稱為加性噪聲,記為式y(n)=X(n)+s(n)其中,X(n)是純凈的語音信號,s(n)是加入的高斯白噪聲。
高斯白噪聲頻帶寬,與語音信號相互重疊,沒有規(guī)律性,無法區(qū)分語音信號和白噪聲,所以語音降噪很難達到令人滿意的效果。再加上濾波去的濾波參數在設計的時候就已固定,不能根據信號的實時特點來自行調整濾波參數對降噪結果有很大影響。因為傅里葉變換沒有局部性,不具有多分辨率,如果將信號用傅里葉變換,頻域觀察再采取措施進行降噪,不能對信號的微弱變化進行提取,達不到降噪的效果[3]。因此針對高斯白噪聲的這些特征提出一種基于小波分解和重構的閾值降噪。
本文獲取的語音信號源是通過使用Cool Edit Pro下的錄音機錄音后存儲為16k采樣的.wav格式。在原始語音信號的基礎上加入隨機噪聲,改變其攜帶噪聲的程度得到不同信噪比的信源。
根據小波理論和matlab仿真,白噪聲的小波系數和有用信號的小波系數在幅值上有明顯不同的表現特征,據此可選擇適當的閾值將它們進行分離。為達到良好的降噪效果,保證信號的完整識別,選取合適的小波函數作為小波基,對小波進行適當層數的分解和設置適當的閾值是小波閾值降噪領域的關鍵設計環(huán)節(jié)[2]。另外為了提高可靠性和降噪系統的可移植性和適應性,實現對不通信號達到基本相同的降噪效果,通過反饋提高降噪的適應性和穩(wěn)定性,最大程度保證信號的不失真和有效提取。
小波閾值降噪算法直觀有效,對語音這樣的非平穩(wěn)信號,小波的多分辨率特性可以描繪出噪聲出現時的邊緣和尖峰等突變點。小波分解采用db3小波函數對信號進行分解,再根據小波的高頻系數進行閾值量化,不同分解尺度下選擇合適的閾值進行閾值處理。小波閾值降噪的閾值函數主要以硬閾值和軟閾值兩種函數。硬閾值可以很好的保留信號邊緣等的局部特征,但相對平滑會造成邊緣模糊等失真現象。
2.1分幀加窗
加hamming窗可使每幀語音信號的時域波形兩端變化趨于線性,緩慢的降為零,降低語音幀的截斷效應。通過可以改變位置的有限長度hamming窗進行加權的方法來實現,即使用一定的窗函數w(t)來乘y(t),從而形成加窗后的語音信號式:
2.2小波分解
信號的小波分解情況如下:
已知式的fN,確定fN-M及gj,j=N-1,…,N-M。
cj,k和dj,k分別為j尺度空間的剩余系數和小波系數。
db3小波為緊支正交基,滿足精確重構的條件。其小波函數與尺度函數的有效支撐長度為5,小波函數的消失矩為3。db3小波函數表達式如式:
緊支區(qū)間內迭代1次得到的db3小波函數和尺度函數。
2.3小波閾值降噪
小波降噪的核心是根據噪聲信號與原始有效信號在各尺度上的小波譜不同的特點,將各尺度上由噪聲產生的小波譜分量以及噪聲小波譜占主導地位的尺度上的譜分量去掉同時保留并適當地增強有效信號的小波譜,利用小波變換重構算法重構信號。具體方法:將攜帶噪聲的語音信號分幀處理,對各幀信號在db3小波函數下進行小波分解,得到各層的分解系數?;诿繉影挠行盘枀^(qū)別成分,采用硬閾值、軟閾值以及軟硬閾值結合的方法對系數處理的,各層系數采用不同的閾值進行處理;在信號中起重要作用的分量作適當的增強處理對噪聲譜分量作抑制處理提高信噪比達到更好的降噪效果。
輸出信噪比snr作為降噪的重要指標,它通過下式得出。
Pf和Py分別為純信號功率和處理后信號的噪聲功率。若輸出信噪比越大,則表面降噪效果越明顯。
采用不同的閾值函數對不同信噪比的一系列輸入信號“wavebbt.wav” (語音信號采樣頻率為16k,量化16比特)等分別進行降噪處理。將一段不同信噪比的語音信“wavebbt.wav”(輸入信號信噪比通過改變噪聲的方差實現)的時域波形載入matlab 7.10;分幀加窗,將“wavebbt.wav”采用每幀為25ms,10ms的重疊方式的分幀處理,并加以hamming窗;小波分解:對帶噪信號進行一維小波多尺度分解,對信號進行6層分解后進行對每幀信號采取不同的閾值處理后在基于相同小波進行重構還原信號;分幀處理后的語音片段連接成連續(xù)語音;改變輸入信號噪聲方差,反復研究。
仿真及結果:
[c,l] = wavedec(zl1,6,’db3’);
a6 = appcoef(c,l,’db3’,6);
d6 = detcoef(c,l,6);
d5 = detcoef(c,l,5);
d4 = detcoef(c,l,4);
d3 = detcoef(c,l,3);
d2 = detcoef(c,l,2);
d1 = detcoef(c,l,1);
ythard1 = wthresh(d1,’h’,0);
ythard2 = wthresh(d2,’h’,0.1);
ythard3 = wthresh(d3,’h’,0.4);
ythard4 = wthresh(d4,’h’,0.3);
ythard5 = wthresh(d5,’h’,0.2);
ythard6 = wthresh(d6,’h’,0.05);
c2 = [a6 ythard6 ythard5 ythard4 ythard3 ythard2 ythard1];
s3 = waverec(c2,l,’db3’);
在不同噪聲方差的輸入信號下,得到對信號處理后的結果。根據仿真結果分析顯示:在硬閾值法下數值大于T的小波系數保留,其余系數全為0;軟閾值法先將小波系數與閾值T進行比較,然后根據比較結果再向0進行收縮。軟硬閾值結合的方法能使降噪結果得到最高的信噪比。從聽覺看來:硬閾值法得到的語音較生硬,而軟硬閾值結合法聽覺效果達到最佳。
小波閾值處理應采取軟硬閾值結合的方法處理,軟閾值次之,硬閾值的效果最差。為了增強降噪效果和算法的自適應性,打算在后期研究中對輸出的反饋信號進行分析。本文在閾值的選取方法需要優(yōu)化,降噪閾值過大或過小都影響最終的降噪效果,閾值過大會造成語音的細節(jié)部分丟失,得到很空曠的語音;閾值過小則影響降噪效果。在下一步的算法降噪時,主要考慮閾值降噪的自適應性,達到更好的效果說。
[1]蔡鐵,朱杰.小波閾值降噪算法中最優(yōu)分解層數的自適應選擇[J].控制與決策,2006,21(02):217-220.
[2]趙力.語音信號處理(第2版)[M].北京:機械工程出版社,2010:34-36.
[3]趙文忠.基于小波變換的語音降噪處理[D].合肥工業(yè)大學,2002.