• 大小: 35.99MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-24
  • 语言: Matlab
  • 标签: MATLAB  语音信号  

资源简介

阐述了语音信号处理的原理、方法、技术和应用,同时给出了部分内容对应的MATLAB仿真源程序。

资源截图

代码片段和文件信息

clear all;
%-------------------------------读入带噪语音文件---------------------------
[filenamepathname]=uigetfile(‘*.wav‘‘请选择纯净语音文件:‘);
tidy=wavread([pathname filename])‘;
[filenamepathname]=uigetfile(‘*.wav‘‘请选择带噪语音文件:‘);
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); % 基于统计信息的非平稳噪声自适应算法
%-------------------------------谱减法-------------------------------------
for     t = 1:k     
         X = abs(Y).^2;   
         S = X(1+(t-1)*L:t*L)-NOISE(1+(t-1)*L:t*L); % 含噪语音功率谱减去噪声功率谱;
         S = sqrt(S);
         A = Y(1+(t-1)*L:t*L)./abs(Y(1+(t-1)*L:t*L)); % 带噪于语音的相位;
         S = S.*A; % 因为人耳对相位的感觉不明显,所以恢复时用的是带噪语音的相位信息;
         s = ifft(S);   
         s = real(s); % 取实部;
         enspeech(1+(t-1)*L/2:L+(t-1)*L/2) = enspeech(1+(t-1)*L/2:L+(t-1)*L/2)+s; % 在实域叠接相加;
         win(1+(t-1)*L/2:L+(t-1)*L/2) = win(1+(t-1)*L/2:L+(t-1)*L/2)+h; % 窗的叠接相加;
end
enspeech = enspeech./win; % 去除加窗引起的增益得到增强的语音;
%-----------------------信噪比--------------------------------------------
SNR_before=SNR1(tidywavin);
SNR_after=SNR2(tidyenspeech);
%-------------------------------画出波形----------------------------------------

 subplot(311);plot(tidy);title(‘(a)纯净语音‘);xlabel(‘样点数‘);ylabel(‘幅度‘);axis([0 2.5*10^4 -0.3 0.3]);
 subplot(312);plot(wavin);title(‘(b)带噪语音(10dB白噪声)‘);xlabel(‘样点数‘);ylabel(‘幅度‘);axis([0 2.5*10^4 -0.3 0.3]);
 subplot(313);plot(enspeech);title(‘(c)谱减法-增强语音‘);xlabel(‘样点数‘);ylabel(‘幅度‘);axis([0 2.5*10^4 -0.3 0.3]);
 axis([0 7*10^4 -1 1]);
 axis([0 2.5*10^4 -0.3 0.3]);
 wavwrite(enspeech‘spectruesub_enspeech.wav‘); % 写出增强语音;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-06-08 17:25  20160608语音教材MATLAB程序提交出版社\
     目录           0  2016-06-07 20:10  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\
     文件       19968  2016-06-08 17:53  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\Readme.doc
     目录           0  2016-06-07 20:08  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\
     文件       45102  2009-06-05 17:00  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\SNR0_sp01.wav
     文件       45102  2009-06-05 17:00  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\SNR10_sp01.wav
     文件       45102  2009-06-05 17:08  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\SNR15_sp01.wav
     文件       45102  2009-06-05 18:02  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\SNR5_sp01.wav
     文件        2720  2016-03-10 14:46  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\chapter10_1.m
     文件        2723  2016-03-07 11:59  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\chapter10_2.m
     文件        3899  2010-03-31 19:19  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\chapter10_3.m
     文件        4678  2015-12-19 22:41  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\chapter10_4.m
     文件        2023  2016-03-10 14:55  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\chapter10_5.m
     文件       45102  2005-07-12 08:58  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\sp01.wav
     文件         987  2009-05-12 15:28  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第10章\stationary_noise_evaluate.m
     目录           0  2016-06-07 20:08  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\
     文件         349  2016-03-08 15:19  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_1.m
     文件         366  2016-03-08 15:20  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_2.m
     文件         274  2016-03-08 15:21  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_3.m
     文件         373  2016-03-08 15:22  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_4.m
     文件         318  2016-03-08 15:23  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_5.m
     文件         307  2016-03-08 15:24  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_6.m
     文件         248  2016-03-08 15:25  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_7.m
     文件        2597  2016-03-08 15:25  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_8.m
     文件        1570  2016-03-09 11:49  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\chapter11_9.m
     文件        3562  2015-12-20 19:58  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\wu.wav
     文件        1650  2016-03-08 15:47  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第11章\yingshe.m
     目录           0  2016-06-07 20:08  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第12章\
     目录           0  2016-06-07 20:08  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第12章\RBF\
     文件         967  2016-02-24 20:35  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第12章\RBF\RBF.asv
     文件        1445  2016-02-24 20:37  20160608语音教材MATLAB程序提交出版社\语音教材MATLAB程序提交出版社\第12章\RBF\RBF_Test.m
............此处省略607个文件信息

评论

共有 条评论