資源簡介
基于RLS算法的語音噪聲回聲消除處理MATLAB代碼,可以對有回聲或者有噪音的語音信號進(jìn)行自適應(yīng)濾波處理重建原始語音信號。

代碼片段和文件信息
clc
clear?all
close?all
[s?fs]?=?audioread(‘1.wav‘);?
N=length(s);
time=(0:N-1)/fs;
figure(1);???
plot(times);
xlabel(‘時間‘);ylabel(‘幅度‘);????%?x軸、y軸標(biāo)題
title(‘原始信號波形‘);
hold?on?
a=mean(s);
s=s-a;
b=max(abs(s));
s=s/b;
%?s=awgn(s10);
%?s1=s.*b;
%?s1=s1+a;
%?audiowrite(‘2.wav‘s1fs);
%?
%?clean=s‘;
%?ref_noise=.1*randn(1length(s));
%?mixed?=?clean+ref_noise;
[echo?f1s]?=?audioread(‘1echo.wav‘);?
%?s1=mixed‘*b;
%?s1=s1+a;
figure(2);?
plot(timeecho);
xlabel(‘時間‘);ylabel(‘幅度‘);????%?x軸、y軸標(biāo)題
title(‘有回聲信號波形‘);
hold?on?
audiowrite(‘2.wav‘echof1s);
a=mean(echo);
echo=echo-a;
b=max(abs(echo));
echo=echo/b;
mu=0.05;M=2;espon=1e-4;
%?[enwnyn]=lmsFunc(muMref_noisemixed);
%?[enwnyn]=nlmsFunc(muMref_noisemixedespon);
delta?=?1e-7;
lambda?=?1;
[enwy]=rls(lambdaMsechodelta);
s2=y‘*b;
s2=s2+a;
figure(3);?
plot(times2);
xlabel(‘時間‘);ylabel(‘幅度‘);????%?x軸、y軸標(biāo)題
title(‘去回聲后信號波形‘);
hold?on?
audiowrite(‘3.wav‘s2fs);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1097778??2018-11-21?21:34??回聲處理\1.mp3
?????文件?????558196??2018-11-22?20:08??回聲處理\1.wav
?????文件?????558196??2018-11-22?20:13??回聲處理\1echo.wav
?????文件?????558196??2018-12-01?14:26??回聲處理\2.wav
?????文件?????558196??2018-12-01?14:26??回聲處理\3.wav
?????文件???????1048??2018-12-01?14:31??回聲處理\audio.m
?????文件????????141??2018-11-22?19:58??回聲處理\getaudio.m
?????文件????????162??2018-11-22?20:13??回聲處理\getecho.m
?????文件????????858??2018-11-22?16:56??回聲處理\rls.m
?????文件???????3000??2018-11-22?20:57??回聲處理\Unti
?????文件????????632??2018-11-22?16:43??回聲處理\wavread.asv
?????文件??????29492??2018-12-01?14:27??回聲處理\原始信號波形.png
?????文件??????30219??2018-12-01?15:48??回聲處理\去回聲后信號波形.png
?????文件??????27832??2018-12-01?14:28??回聲處理\有回聲信號波形.png
?????目錄??????????0??2018-12-01?15:48??回聲處理
-----------?---------??----------?-----??----
??????????????3423946????????????????????15
評論
共有 條評論