失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【短时幅度谱】短时幅度谱估计在语音增强方面的MATLAB仿真

【短时幅度谱】短时幅度谱估计在语音增强方面的MATLAB仿真

时间:2022-05-18 13:04:08

相关推荐

【短时幅度谱】短时幅度谱估计在语音增强方面的MATLAB仿真

1.软件版本

matlaba

2.本算法理论知识

处理宽带噪声的最通用技术是谱减法,即从带噪语音估值中减去噪声频谱估值,而得到纯净语音的频谱。由于人耳对语音频谱分量的相位不敏感,因而这种方法主要针对短时幅度谱。假定语音为平稳信号,而噪声和语音为加性信号且彼此不相关。此时带噪语音信号可表示为。

3.部分核心代码

function enhancedsignal=wiener(noisyspeech,samplefrequency)x=noisyspeech;fs=samplefrequency;nx=length(x);enhanced_x=zeros(1,nx);%分帧和加窗FrameLen=fix(0.025*fs);%取25毫秒为一帧overlap=FrameLen/2;inc=FrameLen-overlap; %帧移x_frame=enframe(x,FrameLen,inc); %分帧nf=size(x_frame,1); % 帧数win=hamming(FrameLen)';x_window=[];for k=1:nfx_row=x_frame(k,:).*win;% 加窗x_window=[x_window;x_row]; end%对带噪语音进行DFTy=fft(x_window');ymag = abs(y);yphase = angle(y);NNoise=23; %取噪音段(语音的初始段)帧数MN=mean(ymag(:,1:NNoise)')';PN=mean(ymag(:,1:NNoise)'.^2)'; %初始噪声功率谱均值NoiseCounter=0;%连续噪声段长度SmoothFactor=9;%噪声平滑因子Alpha=0.95; %语音平滑因子SNRPre=ones(size(MN));%维纳滤波for k=1:nfif k<=NNoise SpeechFlag=0;NoiseCounter=NNoise;else NoiseMargin=3;HangOver=8;SpectralDist= 20*(log10(ymag(:,k))-log10(MN));SpectralDist(find(SpectralDist<0))=0;Dist=mean(SpectralDist); if (Dist < NoiseMargin) NoiseFlag=1; NoiseCounter=NoiseCounter+1;elseNoiseFlag=0;NoiseCounter=0;end if (NoiseCounter > HangOver) SpeechFlag=0; else SpeechFlag=1; end endif SpeechFlag==0 MN=(SmoothFactor*MN+ymag(:,k))/(SmoothFactor+1);%更新噪声均值PN=(SmoothFactor*PN+(ymag(:,k).^2))/(1+SmoothFactor); %更新噪声功率end%------滤波SNRNew=(ymag(:,k).^2)./PN-1;SNRPost=Alpha*SNRPre+(1-Alpha).*max(SNRNew,0);Gain=SNRPost./(SNRPost+1);smag=Gain.*ymag(:,k);SNRPre=smag.^2./PN;spectrum= smag.*exp(j*yphase(:,k));enhanced_x((inc*(k-1)+1):(inc*(k-1)+FrameLen))=enhanced_x((inc*(k-1)+1):(inc*(k-1)+FrameLen))+real(ifft(spectrum,FrameLen))';endenhancedsignal=enhanced_x;

4.仿真结论

5.参考文献

[1] 易克初. 语音信号处理[M]. 北京:国防工业出版社, 2000.

[2] LiZhao, KOBAYASHI, NIIMI Y Tone. Recongnition of Chinese continuous speech using continuous HMMs[J]. Journal of the Acoustical Society of Japan, 53(12), 933-940, 1997.

A03-03

6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅,免费获得教程案例代码以及本博任意2份完整源码

如果觉得《【短时幅度谱】短时幅度谱估计在语音增强方面的MATLAB仿真》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。