声音matest.m

来自「自己编写的一个用matlab实现的 语音的合成算法!!加噪去噪都可行!好用」· M 代码 · 共 42 行

M
42
字号
%语音信号采集、处理、传输、显示
[y,fs,bite]=wavread('ma.wav',[1,520000]);
%采集语音信号
sound(y,fs,bite);
% sound(y,3*fs);
%回放语音信号
  figure(1);
   plot(y);  
    title('原语音信号时间幅度图');
   [Y]=fft(y,409600);
   figure(2);
   plot(abs(Y));
   title('原语音信号频谱图');
        prompt={'输入噪声强度(标准差)','输入持续时间/s'};
         titles='参数选择';
         def={'0.08','5'};
         answer= inputdlg(prompt, titles, 1, def);
         var=str2num(answer{1});
         duration=str2num(answer{2});
         n=duration*fs;
         noise= var*randn(n,1);
         %sound(noise,fs,bite);
         len=length(y);
         lnoise=length(noise);
         if lnoise>len
             v=[y(:,1);zeros(abs(lnoise-len),1)];
             wave_change= v+ noise;
         else
             v=[noise(:,1);zeros(abs(lnoise-len),1)];
             wave_change= v+ y(:,1);
         end
     % sound(wave_change,fs,bite);  
      figure(3);
   plot(wave_change);   
     title('叠加噪声的语音信号时间幅度图');
[Y]=fft(wave_change,409600);
 figure(4);
plot(abs(Y));
 title('叠加噪声的语音信号频谱图');
 %sound(wave_change,3*fs);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?