主权项 |
一种基于非局部均值滤波的语音增强方法,包括如下步骤:1)采集带噪语音y(i),以每帧256个语音点将带噪语音分为N帧,帧间重叠128个点,并逐帧加汉明窗,通过短时傅里叶变换获得逐帧的频谱Y<sub>λ</sub>(ω),进而得到带噪语音逐帧功率谱|Y<sub>λ</sub>(ω)|<sup>2</sup>,i表示时域信号离散点序列,i=1,2,...,m,m表示语音序号总数目,λ表示帧序列数,λ=1,2,...,N,ω表示离散频率点,ω=1,2,...,256;2)根据带噪语音前n帧功率谱|Y<sub>λ</sub>(ω)|<sup>2</sup>,得到噪声估计功率谱|N(w)|<sup>2</sup>:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mrow><mo>|</mo><mi>N</mi><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup><mo>=</mo><mn>1</mn><mo>/</mo><mi>n</mi><munder><mi>Σ</mi><mrow><mi>λ</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi></mrow></munder><msup><mrow><mo>|</mo><msub><mi>Y</mi><mi>λ</mi></msub><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000511350190000011.GIF" wi="458" he="123" /></maths>其中,n表示语音“寂静段”的功率谱帧序列;3)根据噪声估计功率谱|N(w)|<sup>2</sup>与带噪语音功率谱|Y<sub>λ</sub>(ω)|<sup>2</sup>,逐帧计算带噪语音功率谱|Y<sub>λ</sub>(ω)|<sup>2</sup>的处理系数K<sub>λ</sub>(ω):K<sub>λ</sub>(ω)={r<sub>λ</sub>(ω)|ω=1,2,...,256}其中,r<sub>λ</sub>(ω)表示单个频率点系数:<img file="FDA0000511350190000012.GIF" wi="606" he="167" />式中,|d(ω)|<sup>2</sup>表示噪声功率谱上的离散频率点ω功率,|x<sub>λ</sub>(ω)|<sup>2</sup>表示语音功率谱上的离散频率点ω功率;4)根据带噪语音功率谱|Y<sub>λ</sub>(ω)|<sup>2</sup>和其处理系数K<sub>λ</sub>(ω),得到语音估计功率谱<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msup><mrow><mo>|</mo><msub><mover><mi>Y</mi><mo>^</mo></mover><mi>λ</mi></msub><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup><mo>:</mo></mrow>]]></math><img file="FDA0000511350190000013.GIF" wi="168" he="103" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msup><mrow><mo>|</mo><msub><mover><mi>Y</mi><mo>^</mo></mover><mi>λ</mi></msub><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup><mo>=</mo><msub><mi>K</mi><mi>λ</mi></msub><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><msup><mrow><mo>|</mo><msub><mi>Y</mi><mi>λ</mi></msub><mrow><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup><mo>;</mo></mrow>]]></math><img file="FDA0000511350190000014.GIF" wi="452" he="103" /></maths>5)根据语音估计功率谱<img file="FDA0000511350190000015.GIF" wi="142" he="103" />得到语音估计频谱<img file="FDA0000511350190000016.GIF" wi="144" he="84" />再对语音估计频谱<img file="FDA0000511350190000017.GIF" wi="126" he="84" />进行短时傅里叶逆变换,得到预处理后的语音信号<img file="FDA0000511350190000018.GIF" wi="114" he="83" />i=1,2,...,m;6)用非局部均质滤波算法计算出语音信号<img file="FDA0000511350190000021.GIF" wi="88" he="83" />内所有语音点的修正值<img file="FDA0000511350190000022.GIF" wi="132" he="83" />再用修正值<img file="FDA0000511350190000023.GIF" wi="94" he="83" />替代原始值,得到去噪语音信号<img file="FDA0000511350190000024.GIF" wi="127" he="84" /><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mover><mi>X</mi><mo>~</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>)</mo><mo>,</mo><mo></mo></mrow><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi></mrow>]]></math><img file="FDA0000511350190000025.GIF" wi="533" he="84" /></maths>其中,m表示语音信号总数目。 |