資源簡介
經過實驗驗證有效的語音增強算法,直接可運行,對非沖擊噪聲有較好的去噪效果。
lx_main為主程序,NS_lxwz為噪聲估計模塊,lxG_wz為增益估計模塊,noise_sound為測試用含噪語音。
算法原理參見本人的文章《一種引入延遲的語音增強算法》

代碼片段和文件信息
function?X=lxG(abs_Y2lamda_dframe_numberY)
h?=?waitbar(0‘Please?wait...‘);%進度顯示
%參數設置
alpha_x=0.9;
c=1.25;
%-------------------------------------
%對第一幀的初始化處理
?ebslon_p(:1)=zeros(1281)+0.01;
?X(:1)=Y(:1);
?%------------------------------------
?%對每一幀進行譜估計
?for?l=2:1:frame_number
??????post_SNR(:l)=abs_Y2(:l)./lamda_d(:l);%后驗信噪比
??????if?lame_number-4
??????????t1=zeros(1281);
??????????for?n=-1:1:1
??????????????t1=t1+abs_Y2(:l+n)./lamda_d(:l+n);
??????????end
??????????ebslon_f(:l)=max(t1/3-20);
??????????for?k=1:1:128
??????????????if?lamda_d(kl)/lamda_d(kl-1)<1/c|lamda_d(kl)/lamda_d(kl-1)>c????
??????????????????ebslon_p(kl)=max(ebslon_f(kl)0.01);
??????????????else
??????????????????ebslon_k(kl)=alpha_x*ebslon_p(kl-1)+(1-alpha_x)*ebslon_f(kl);
??????????????????ebslon_p(kl)=max(alpha_x*(abs(X(kl-1))).^2./lamda_d(kl-1)+(1-alpha_x)*?ebslon_k(kl)0.01);
??????????????end
??????????end
??????????E_pr_SNR(:l)=ebslon_p(:l);%./(1.+ebslon_p(:l)).*(1.+ebslon_p(:l).*?post_SNR(:l)./(1.+ebslon_p(:l)));
??????else
??????????E_pr_SNR(:l)=max(0.7*(abs(X(kl-1))).^2./lamda_d(:l)+0.3.*max(post_SNR(:l)-10)0.03);
??????end???
???????G(:l)=E_pr_SNR(:l)./(1+E_pr_SNR(:l));?
???????X(:l)=Y(:l).*G(:l);
??????waitbar(l/frame_numberhnum2str(fix(100*l/frame_number)))
?end
??????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????176108??2010-07-02?11:42??能用的語音增強MATLAB代碼\noise_sound.wav
?????文件???????1909??2011-06-08?15:14??能用的語音增強MATLAB代碼\NS_lxwz.m
?????文件????????922??2011-06-08?15:18??能用的語音增強MATLAB代碼\lx_main.m
?????文件???????1394??2010-09-25?11:53??能用的語音增強MATLAB代碼\lxG_wz.m
?????文件????????145??2011-06-08?15:20??能用的語音增強MATLAB代碼\說明.txt
?????目錄??????????0??2011-06-08?15:10??能用的語音增強MATLAB代碼
-----------?---------??----------?-----??----
???????????????180478????????????????????6
評論
共有 條評論