matlab端点检测

上传人:新** 文档编号:510994455 上传时间:2023-01-12 格式:DOCX 页数:4 大小:11.65KB
返回 下载 相关 举报
matlab端点检测_第1页
第1页 / 共4页
matlab端点检测_第2页
第2页 / 共4页
matlab端点检测_第3页
第3页 / 共4页
matlab端点检测_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab端点检测》由会员分享,可在线阅读,更多相关《matlab端点检测(4页珍藏版)》请在金锄头文库上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除function x1,x2 = vad(x)%幅度归一化到-1,1x = double(x);x = x / max(abs(x);%常数设置FrameLen = 240;%帧长为240点FrameInc = 80;%帧移为80点amp1 = 10;%初始短时能量高门限amp2 = 2;%初始短时能量低门限zcr1 = 10;%初始短时过零率高门限zcr2 = 5;%初始短时过零率低门限maxsilence = 8; % 8*10ms = 80ms%语音段中允许的最大静音长度,如果语音段中的静音帧数未超过此值,则认为语音还没结束;如果超过了该值

2、,则对语音段长度count进行判断,若countminlen,则认为语音段结束;minlen = 15; % 15*10ms = 150ms%语音段的最短长度,若语音段长度小于此值,则认为其为一段噪音status = 0; %初始状态为静音状态count = 0; %初始语音段长度为0silence = 0; %初始静音段长度为0%计算过零率tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)0.02;zcr = sum(

3、signs.*diffs, 2);%计算短时能量%amp = sum(abs(enframe(filter(1 -0.9375, 1, x), FrameLen, FrameInc), 2);amp = sum(abs(enframe(x, FrameLen, FrameInc), 2);%调整能量门限amp1 = min(amp1, max(amp)/4);amp2 = min(amp2, max(amp)/8);%开始端点检测x1 = 0;x2 = 0;for n=1:length(zcr)goto = 0;switch statuscase 0,1 % 0 = 静音, 1 = 可能开始i

4、f amp(n) amp1 % 确信进入语音段x1 = max(n-count-1,1);status = 2;silence = 0;count = count + 1;elseif amp(n) amp2 | . % 可能处于语音段zcr(n) zcr2status = 1;count = count + 1;else % 静音状态status = 0;count = 0;endcase 2, % 2 = 语音段if amp(n) amp2 | . % 保持在语音段zcr(n) zcr2count = count + 1;else % 语音将结束silence = silence+1;if

5、 silence maxsilence % 静音还不够长,尚未结束count = count + 1;elseif count minlen % 语音长度太短,认为是噪声status = 0;silence = 0;count = 0;else % 语音结束status = 3;endendcase 3,break;endend count = count-silence/2;x2 = x1 + count -1;subplot(311) %subplot(3,1,1)表示将图排成3行1列,最后的一个1表示下面要画第1幅图plot(x)axis(1 length(x) -1 1) %函数中的四

6、个参数分别表示xmin,xmax,ymin,ymax,即轴的范围ylabel(Speech);line(x1*FrameInc x1*FrameInc, -1 1, Color, red);%这里作用为用直线画出语音段的起点和终点,看起来更直观。第一个中的两个参数为线起止点的横坐标,%第二个中的两个参数为线起止点的纵坐标。最后两个参数设置了线的颜色。line(x2*FrameInc x2*FrameInc, -1 1, Color, red);subplot(312) plot(amp);axis(1 length(amp) 0 max(amp)ylabel(Energy);line(x1 x1, min(amp),max(amp), Color, red);line(x2 x2, min(amp),max(amp), Color, red);subplot(313)plot(zcr);axis(1 length(zcr) 0 max(zcr)ylabel(ZCR);line(x1 x1, min(zcr),max(zcr), Color, red);line(x2 x2, min(zcr),max(zcr), Color, red);对汉语语音“七”进行端点检测的结果。【精品文档】第 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号