function [voiceseg,vsl,SF,NF]=vad_ezrm(x,wlen,inc,NIS)
x=x(:); % 把x转成列数组
maxsilence = 15; % 初始化
minlen = 5;
status = 0;
count = 0;
silence = 0;
%计算短时能量
y=enframe(x,wlen,inc)'; % 分帧
fn=size(y,2); % 帧数
amp=sum(y.^2); % 求取短时平均能量
zcr=zc2(y,fn); % 计算短时平均过零
ampm = multimidfilter(amp,5); % 中值滤波平滑处理
zcrm = multimidfilter(zcr,5);
ampth=mean(ampm(1:NIS)); % 计算初始无话段区间能量和过零率的平均值
zcrth=mean(zcrm(1:NIS));
amp2=1.2*ampth; amp1=1.5*ampth; % 设置能量和过零率的阈值
zcr2=0.8*zcrth;
%开始端点检测
xn=1;
for n=1:fn
switch status
case {0,1} % 0 = 静音, 1 = 可能开始
if amp(n) > amp1 % 确信进入语音段
x1(xn) = max(n-count(xn)-1,1);
status = 2;
silence(xn) = 0;
count(xn) = count(xn) + 1;
elseif amp(n) > amp2 | ... % 可能处于语音段
zcr(n) < zcr2
status = 1;
count(xn) = count(xn) + 1;
else % 静音状态
status = 0;
count(xn) = 0;
x1(xn)=0;
x2(xn)=0;
end
case 2, % 2 = 语音段
if amp(n) > amp2 | ... % 保持在语音段
zcr(n) < zcr2
count(xn) = count(xn) + 1;
else % 语音将结束
silence(xn) = silence(xn)+1;
if silence(xn) < maxsilence % 静音还不够长,尚未结束
count(xn) = count(xn) + 1;
elseif count(xn) < minlen % 语音长度太短,认为是噪声
status = 0;
silence(xn) = 0;
count(xn) = 0;
else % 语音结束
status = 3;
x2(xn)=x1(xn)+count(xn);
end
end
case 3, % 语音结束,为下一个语音准备
status = 0;
xn=xn+1;
count(xn) = 0;
silence(xn)=0;
x1(xn)=0;
x2(xn)=0;
end
% fprintf('%4d \n',status);
end
el=length(x1);
if x1(el)==0, el=el-1; end % 获得x1的实际长度
if x2(el)==0 % 如果x2最后一个值为0,对它设置为fn
fprintf('Error: Not find endding point!\n');
x2(el)=fn;
end
SF=zeros(1,fn); % 按x1和x2,对SF和NF赋值
NF=ones(1,fn);
for i=1 : el
SF(x1(i):x2(i))=1;
NF(x1(i):x2(i))=0;
end
speechIndex=find(SF==1); % 计算voiceseg
voiceseg=findSegment(speechIndex);
vsl=length(voiceseg);
没有合适的资源?快使用搜索试试~ 我知道了~
语音信号在不同信噪比条件下的端点检测matlab仿真+仿真录像
共24个文件
m:13个
wav:7个
jpg:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 27 浏览量
2022-11-04
23:58:49
上传
评论
收藏 2.64MB RAR 举报
温馨提示
1.版本:matlab2021a,我录制了仿真操作录像,可以跟着操作出仿真结果 2.领域:语音信号端点检测 3.内容:语音信号在不同信噪比条件下的端点检测matlab仿真+仿真录像
资源推荐
资源详情
资源评论
收起资源包目录
语音信号在不同信噪比条件下的端点检测matlab仿真.rar (24个子文件)
语音信号在不同信噪比条件下的端点检测matlab仿真
untitled1.jpg 21KB
matlab
functions
enframe.m 784B
vad_ezr.m 3KB
frame2time.m 136B
zc2.m 608B
Gnoisegen.m 475B
vad_ezm1.m 3KB
multimidfilter.m 94B
findSegment.m 753B
polydetrend.m 363B
vad_ezrm.m 3KB
Runme1.m 1008B
DATA
bluesky1.wav 63KB
demo1.wav 463KB
demo4.wav 20KB
bluesky3.wav 37KB
demo2.wav 699KB
bluesky32.wav 37KB
demo3.wav 19KB
Runme2.m 1011B
Runme3.m 1009B
untitled2.jpg 20KB
untitled3.jpg 20KB
操作录像0034.avi 4.2MB
共 24 条
- 1
资源评论
- 2401_835050452024-04-21资源很好用,有较大的参考价值,资源不错,支持一下。
fpga和matlab
- 粉丝: 16w+
- 资源: 2561
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功