[蔡萍]
一種基于維納濾波的語音增強(qiáng)算法
[蔡萍]
由于各式各樣噪聲的存在,語音信號(hào)的質(zhì)量會(huì)大大地降低,環(huán)境噪聲的污染造成了許多語音處理系統(tǒng)的功能性急劇降低。維納濾波是處理噪聲污染的可行辦法之一。維納濾波法是一類以極小的均方誤差為原則、對(duì)平穩(wěn)過程的最優(yōu)估計(jì)器。對(duì)語音信號(hào)進(jìn)行逐幀處理的過程中,傳統(tǒng)的維納濾波法計(jì)算短時(shí)自相關(guān)函數(shù)時(shí)會(huì)遇到求和項(xiàng)數(shù)遞減的問題,造成自相關(guān)函數(shù)估計(jì)的不準(zhǔn)確。針對(duì)這一問題,提出一種計(jì)算修正自相關(guān)函數(shù)的改進(jìn)算法。該算法處理后濾波器系數(shù)更加逼近最優(yōu)值,提高了語音增強(qiáng)的信噪比。
語音增強(qiáng) 維納濾波 自相關(guān)函數(shù)
蔡萍
閩江學(xué)院物理學(xué)與電子信息工程系講師。
語音是人類進(jìn)行交流的重要工具,已經(jīng)越來越被人類重視。但是現(xiàn)實(shí)生活中,語音中總是摻雜著各種噪聲,使得語音失真。語音降噪是解決噪聲污染的一種有效方法,其主要目的是盡可能的去除帶噪語音中的背景噪聲,實(shí)現(xiàn)噪聲和語音分離,從而使語音信號(hào)的質(zhì)量得到改善[1]。維納濾波器對(duì)帶噪語音進(jìn)行降噪的基本原理是依據(jù)最小均方誤差法則進(jìn)行降噪濾波器的設(shè)計(jì),帶噪語音通過設(shè)計(jì)濾波器來進(jìn)行噪聲消除,從而獲取降噪后較純凈的語音[2]。傳統(tǒng)的維納濾波法計(jì)算短時(shí)自相關(guān)函數(shù)時(shí),求和項(xiàng)數(shù)遞減,自相關(guān)函數(shù)值趨于衰減,得不到準(zhǔn)確的自相關(guān)函數(shù)的估計(jì)。本文提出一種修正后的自相關(guān)函數(shù)的計(jì)算方法,很好地克服了這一問題。
設(shè)帶噪語音信號(hào),純凈語音信號(hào)和噪聲信號(hào)分別為y(k),x(k), n(k),y(k)=x(k)+n(k)。將帶噪語音信號(hào)通過維納濾波器,輸出應(yīng)盡量逼近x(k)。用e(k)表示真實(shí)值與估計(jì)值之間的誤差,即
顯然e(k)是隨機(jī)變量。維納濾波的誤差準(zhǔn)則就是最小均方誤差準(zhǔn)則,即令達(dá)到最小值。
對(duì)因果系統(tǒng)而言,
設(shè)h(n)是一個(gè)因果序列且可用有限長(N點(diǎn)長)的序列去逼近它,則式(3)和(4)變?yōu)椋?/p>
要使得均方誤差對(duì)小,將上式對(duì)各h(m)(m=0,1,…,N-1)求偏導(dǎo),并且等于零,得:
于是得到N個(gè)線性方程:
寫成矩陣形式如下:
從維納-霍夫方程中解出的hopt(m)就是最小均方誤差準(zhǔn)則下的最佳濾波器系數(shù)。寫成矩陣形式得[3]:
H=[h(0),h(1),…,h( N-1)]T是待求的單位序列響應(yīng)。兩邊取傅里葉變換,得:
設(shè)y(k)=x(k)+n(k)中,語音信號(hào)x(k)與噪聲信號(hào)n(k)相互獨(dú)立,則
故
式(15)可變成:
計(jì)算Pyy(ω)需用到Ryy(0),Ryy(1),…,Ryy(N-1)根據(jù)語音信號(hào)的短時(shí)平穩(wěn)性,對(duì)語音信號(hào)進(jìn)行維納濾波時(shí)是逐幀進(jìn)行的。設(shè)幀長為L。對(duì)平穩(wěn)隨機(jī)過程,自相關(guān)函數(shù)的計(jì)算式為:
設(shè)該平穩(wěn)隨機(jī)過程具有各態(tài)歷經(jīng)性,將統(tǒng)計(jì)平均轉(zhuǎn)化為時(shí)間平均得一幀內(nèi)的短時(shí)自相關(guān)函數(shù):
采用式(18)計(jì)算出來的短時(shí)自相關(guān)函數(shù),其幅度上是一個(gè)逐漸衰減的曲線。這是由于在計(jì)算短時(shí)自相關(guān)時(shí),窗選語音段的有限長度為L,而求和上限是L-1-n,因此當(dāng)n增加時(shí)可用計(jì)算的數(shù)據(jù)就越來越少了,從而導(dǎo)致n增加時(shí)自相關(guān)函數(shù)的幅度減?。?]。
取起點(diǎn)相同窗長分別為L和2L的語音段y1(k)和y2(k),將式(18)修正為[5]
由于求和上限是L-1,與n無關(guān),求和項(xiàng)數(shù)始終保持為L,自相關(guān)函數(shù)曲線不下降。
仿真環(huán)境在MATLAB7.0下進(jìn)行。通過麥克風(fēng)采集10男10女20段語音信號(hào)。設(shè)帶噪語音信號(hào)的長度為M,計(jì)算輸入和輸出信噪比的公式分別為:
將純凈語音信號(hào)分別以5dB和0dB的信噪比進(jìn)行混合,仿真結(jié)果如圖1、圖2所示。
仿真結(jié)果表明,在5dB信噪比下,改進(jìn)的算法比傳統(tǒng)算法輸出信噪比高1.9dB,0dB條件下改善1.1dB。主觀聽覺上也可比較出改進(jìn)算法的可懂度和舒適度都高于傳統(tǒng)算法。這是因?yàn)樵诜謳幚淼那疤嵯拢瑐鹘y(tǒng)自相關(guān)函數(shù)的計(jì)算方法隨著n取值的增大,參與求和的項(xiàng)數(shù)減少,當(dāng)n值較大時(shí),估計(jì)出的自相關(guān)函數(shù)值偏差較大;而改進(jìn)后算法求和項(xiàng)數(shù)保持L項(xiàng),避免了自相關(guān)函數(shù)衰減的問題。
圖1 5dB信噪比條件下的仿真結(jié)果
圖2 0dB信噪比條件下的仿真結(jié)果
1 胡航.語音信號(hào)處理[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2000
2 趙力.語音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2003
3 朱琦.采用兩級(jí)維納濾波器的消噪系統(tǒng)[J].南京理工大學(xué)學(xué)報(bào),1997, 21 (4):306~308
4 鮑長春,樊昌信.基于歸一化互相關(guān)函數(shù)的基音檢測(cè)算法[J]通信學(xué)報(bào), 1998, 19(10):27~31
5 張雪英.數(shù)字語音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,2010
10.3969/j.issn.1006-6403.2016.06.015
(2016-05-31)