• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Matlab
  • 标签: matlab  

资源简介

该程序是基于谱减法的语音增强程序,用matlab实现,取得了很好的效果。

资源截图

代码片段和文件信息

clear all;
%-------------------------------读入带噪语音文件---------------------------
load yi.mat
tidy=load(‘yi.mat‘‘rt‘) ;
[filenamepathname]=uigetfile(‘*.cnt‘‘请选择带噪语音文件:‘);
wavin=wavread([pathname filename])‘;
%-------------------------------参数定义---------------------------------
frame_len=256; %帧长
step_len=0.5*frame_len; %分帧时的步长,相当于重叠50%
wav_length=length(wavin);
R = step_len;
L = frame_len; 
f = (wav_length-mod(wav_lengthframe_len))/frame_len;
k = 2*f-1; % 帧数
h = sqrt(1/101.3434)*hamming(256)‘; % 汉宁窗乘以系数的原因是使其复合条件要求;
wavin = wavin(1:f*L);  % 带噪语音与纯净语音长度对齐
tidy= tidy(1:f*L);
win = zeros(1f*L); % 设定初始值;
enspeech = zeros(1f*L);                         
%-------------------------------分帧-------------------------------------
for r = 1:k 
    y = wavin(1+(r-1)*R:L+(r-1)*R); % 对带噪语音帧间重叠一半取值;
    y = y.*h; % 对取得的每一帧都加窗处理;
    w = fft(y); % 对每一帧都作傅里叶变换;
    Y(1+(r-1)*L:r*L) = w(1:L); % 把傅里叶变换值放在Y中;
end
%-------------------------------估计噪声-----------------------------------
   NOISE= stationary_noise_evaluate(YLk); %噪声最小值跟踪算法
%     NOISE= non_stationary_noise_evaluate(YLk); % 基于统计信息的非平稳噪声自适应算法
%-------------------------------谱减法-------

评论

共有 条评论