山东建筑大学语音信号处理实验四实验报告Word文件下载.docx
《山东建筑大学语音信号处理实验四实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《山东建筑大学语音信号处理实验四实验报告Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
对功率谱有
(4-4)
原始语音的估值为
(4-5)
只要在频域用(4-5)式得到纯净语音的谱估计,就可以根据(4-6)式得到增强后的语音。
(4-6)
根据前面分析,我们可以给出谱相减算法的整个算法流程,如图4-1所示:
图4-1谱减法的算法流程
三、实验程序及结果分析
1、不同强度的噪声与纯净信号叠加后的带噪信号及它们的频谱比较
%在噪声环境下语音信号的增强
%语音信号为读入的声音文件
%噪声为正态随机噪声
clear;
input=wavread('
H:
\sound\b1.wav'
);
count=length(input);
noise1=0.1*randn(1,count);
signal=input;
fori=1:
count
voice1(i)=signal(i)+noise1(i);
end
noise2=0.01*randn(1,count);
voice2(i)=signal(i)+noise2(i);
noise3=randn(1,count);
voice3(i)=signal(i)+noise3(i);
n=1:
count;
figure%对比纯净语音信号,噪音信号和带噪语音信号
subplot(3,1,1);
plot(n,signal);
title('
纯净信号'
)
subplot(3,1,2);
plot(n,noise1);
噪音信号'
subplot(3,1,3);
plot(n,voice1);
带噪信号'
figure%对比纯净语音信号频谱,噪音信号和带噪信号频谱
Fss=fft(signal);
plot(n,abs(Fss));
纯净信号频谱'
Fss1=fft(noise1);
plot(n,abs(Fss1));
噪音信号频谱'
Fv1=fft(voice1);
subplot(3,1,3)
plot(n,abs(Fv1));
带噪信号的频谱'
plot(n,noise2);
plot(n,voice2);
Fss2=fft(noise2);
plot(n,abs(Fss2));
Fv2=fft(voice2);
plot(n,abs(Fv2));
plot(n,noise3);
plot(n,voice3);
Fss3=fft(noise3);
plot(n,abs(Fss3));
Fv3=fft(voice3);
plot(n,abs(Fv3));
实验结果:
(1)noise1=0.1*randn(1,count);
(2)noise2=0.01*randn(1,count);
(3)noise3=randn(1,count);
分析以上三种情况可知,不同强度的噪声叠加到纯净信号上时,对纯净信号的干扰是不同的。
噪声加强,会使原始信号被噪声淹没;
噪声减弱,对原始信号的影响较小。
2、用减谱法给语音信号降噪
noise=0.1*randn(1,count);
signal=input'
;
voice(i)=signal(i)+noise(i);
end
Fv=fft(voice);
anglev=angle(Fv);
Fn=fft(noise);
power1=(abs(Fv)).^2;
power2=(abs(Fn)).^2;
power3=power1-power2;
power4=sqrt(power3);
Fs=power4.*exp(j*anglev);
sound=ifft(Fs);
%纯净语音信号频谱
figure%对比纯净语音信号和输出信号
plot(n,noise);
噪声信号'
plot(n,sound);
输出信号'
figure%对比纯净语音信号频谱和输出语音信号频谱
subplot(3,1,1)
subplot(3,1,2)
plot(n,abs(Fn));
噪声信号频谱'
plot(n,abs(Fs));
输出信号频谱'
max_v=max(voice);
%对带噪信号抽样值点进行归一化处理
re_voice=voice/max_v;
%对输出信号抽样点值进行归一化处理
max_s=max(sound);
re_sound=sound/max_s;
%读出带噪语音信号,存为'
1001.wav'
wavwrite(re_voice,5500,16,'
1001'
%读出处理后语音信号,存为'
1002.wav'
wavwrite(re_sound,5500,16,'
1002'
噪声为0.1*randn(1,coun)
纯净信号为输入信号
分析上面的实验结果可知,用减谱法対带噪信号进行降噪处理后,信号质量明显提升,噪声的干扰减小,从而得到了较纯净的语音信号。
3、用改进的减谱法给语音信号降噪
当噪声为0.1*randn(1,coun),纯净信号为输入信号时,程序如下:
a=3;
b=0.01;
if(power1(i)>
=a*power2(i))
power3(i)=power1(i)-a*power2(i);
else
power3(i)=b*power2(i);
end
subplot(2,1,1)
subplot(2,1,2)
(1)a=3,b=0.01时:
(2)a=9,b=0.01时:
(3)a=0.5,b=0.01时:
(4)a=3,b=0.001时:
(5)a=3,b=0.05
(6)a=3,b=0.1时:
分析以上取不同的a、b值得到的实验结果可知,用改进的减谱法対带噪信号进行语音增强处理后,语音信号质量进一步提高,信号更加地纯净。
参数a、b的选择对结果影响很大,因为本实验所用的是辅音,所以选择a=3,b=0.01左右较合适。
a和b太大或太小,都不能取得较好的降噪和抑制纯音噪声的效果。
4、实验总结
通过本次实验,我掌握了减谱法语音增强的原理,并能够自己设计减谱法语音增强程序。
减谱法能够有效地降低包含在语音中的加性噪声,但是由于减谱法针对的是宽带噪声较为传统和有效的方法,它是在假定加性噪声与短时平稳的语音信号相互独立的条件下,从带噪语音的功率谱中减去噪声功率谱,从而得到较为纯净的语音频谱,所以存在一定的局限性。
但是改进之后的减谱法语音增强的质量进一步提升,可以通过改变参数的值来获取较好的结果。
原理虽然简单,但是自己真正理解并一步步编写程序的过程并不容易,我还有很多不足,知识储备还不够,以后我会继续学习这方面的知识,真正深刻理解所学内容。