您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > matlab端点检测
function[x1,x2]=vad(x)%幅度归一化到[-1,1]x=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%语音段中允许的最大静音长度,如果语音段中的静音帧数未超过此值,则认为语音还没结束;如果超过了该值,则对语音段长度count进行判断,若countminlen,则认为前面的语音段为噪音,舍弃,跳到静音状态0;若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;diffs=(tmp1-tmp2)0.02;zcr=sum(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;forn=1:length(zcr)goto=0;switchstatuscase{0,1}%0=静音,1=可能开始ifamp(n)amp1%确信进入语音段x1=max(n-count-1,1);status=2;silence=0;count=count+1;elseifamp(n)amp2|...%可能处于语音段zcr(n)zcr2status=1;count=count+1;else%静音状态status=0;count=0;endcase2,%2=语音段ifamp(n)amp2|...%保持在语音段zcr(n)zcr2count=count+1;else%语音将结束silence=silence+1;ifsilencemaxsilence%静音还不够长,尚未结束count=count+1;elseifcountminlen%语音长度太短,认为是噪声status=0;silence=0;count=0;else%语音结束status=3;endendcase3,break;endendcount=count-silence/2;x2=x1+count-1;subplot(311)%subplot(3,1,1)表示将图排成3行1列,最后的一个1表示下面要画第1幅图plot(x)axis([1length(x)-11])%函数中的四个参数分别表示xmin,xmax,ymin,ymax,即轴的范围ylabel('Speech');line([x1*FrameIncx1*FrameInc],[-11],'Color','red');%这里作用为用直线画出语音段的起点和终点,看起来更直观。第一个[]中的两个参数为线起止点的横坐标,%第二个[]中的两个参数为线起止点的纵坐标。最后两个参数设置了线的颜色。line([x2*FrameIncx2*FrameInc],[-11],'Color','red');subplot(312)plot(amp);axis([1length(amp)0max(amp)])ylabel('Energy');line([x1x1],[min(amp),max(amp)],'Color','red');line([x2x2],[min(amp),max(amp)],'Color','red');subplot(313)plot(zcr);axis([1length(zcr)0max(zcr)])ylabel('ZCR');line([x1x1],[min(zcr),max(zcr)],'Color','red');line([x2x2],[min(zcr),max(zcr)],'Color','red');对汉语语音“七”进行端点检测的结果。
本文标题:matlab端点检测
链接地址:https://www.777doc.com/doc-4971322 .html