%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 功能:实现语音活动检测
% 算法实现:可参见文献
% 输入参数说明:语音信号,一帧信号的长度
% 返回参数说明:语音是否活动的标志
% 作者:姜莎
% 日期:2006.08.24
% 修改日期:2006.10.09
% 参考文献:sohn, "A voice activity detector employing soft decision based noise spectrum adaptation"
% 特殊说明:初始值采用第一帧信号的fft的值的模的平方做初始能量,并加上小的初始定值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
signal= wavread('D:\graduation project\project1\voice\jzy5.wav');
L=256; %一帧信号的长度
N=floor(length(signal)./L); %信号总的帧长
input_signal=signal(1:L.*N);
%采用第一帧信号的fft的值模的平方做lambda的初始值
firstframe = input_signal(1:L);
fftfirstframe = fft(firstframe);
lambda = ones(L,1).*(abs(fftfirstframe).^2);
lambda0 = ones(L,1).*((100./(2.^15)).^2); %避免在静音的时候出现snr无穷大的情况
beta = lambda+lambda0; %计算信噪比所采用的背景噪声的能量
%=================================
% snrbuffer = zeros(10,1);
snrthr=5;
% snrtempcnt=0;
%=================================
snr = zeros(N,1);
snrtemp=zeros(N,1);
proratio = 10; %语音和噪声的概率比probabilityratio,给定为10
for i = 1 : N
signalframe = input_signal((i-1).*L+1 : i.*L);
framesigfft = fft(signalframe);
snr = (1./L).*sum(abs(framesigfft).^2./beta);
snrtemp(i) = snr;
if i <= 20
speechactive(i) = 1;
else
if speechactive(i-1)==1
if snrtemp(i) > snrthr
speechactive(i) = 1;
else
logi = (snrtemp(i-19 : i-1) > snrthr);
if sum(logi) >= 3
speechactive(i) =1;
else
speechactive(i) = 0;
end
end
else
if (snrtemp(i) > snrthr && snrtemp(i-1) > snrthr)
speechactive(i) = 1;
else
speechactive(i) = 0;
end
end
end
if speechactive(i) == 0
lambda =(1./(1+snr.*proratio)).*abs(framesigfft).^2+(snr.*proratio/(1+snr.*proratio)).*lambda;
beta = lambda + lambda0;
end
end
length=300;
times=floor(N/length);
b=zeros(times);
for i=1:times
b(i)=sum(snrtemp(length*(i-1)+1:length*i),1);
end
%==========================
%==========================
录音文件信噪比计算,实现语音活动检测
4星 · 超过85%的资源 需积分: 12 7 浏览量
2014-06-19
22:41:41
上传
评论 4
收藏 2KB RAR 举报
sunmiom
- 粉丝: 0
- 资源: 2
最新资源
- video_20240425_124410_edit.mp4
- IMG_20240425_120538.jpg
- My Complete Genome_6k Base-Pairs of Phenotype SNPs_Complete Raw Data.zip
- qt 的mqtt测试demo
- 移动应用开发教程-zip.zip
- mosquitto-2.018-install-windows-x64
- FTPServer FTP 服务器,绿色免安装,单文件
- 梦畅语音点名软件,上课点名
- 利用ADNI数据集和标签,在tensorflow框架上使用tensorlayer接口,通过架构u-net实现海马体的分割
- Kutools for Word v9.0 office word 插件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页