matlab-端点检测程序(完全注释版)
《matlab-端点检测程序(完全注释版)》由会员分享,可在线阅读,更多相关《matlab-端点检测程序(完全注释版)(15页珍藏版)》请在装配图网上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datematlab-端点检测程序(完全注释版)端点检测程序端点检测程序第一部分:常数设置%常数设置FrameLen = 240;%指定帧长FrameInc = 80;%指定帧移,每一帧中未重叠的部分amp1 = 10; %初始短时能量高门限amp2 = 2; %初始短时能量低门限zcr1 = 10; %初始过零率高门限zcr2 = 5; %初始过零率低门限maxsilenc
2、e = 8; % 8*10ms = 80ms %语音段中允许的最大静音长度,如果语音段中的静音帧数未超过此值,则认为语音还没结束;如果超过了该值,则对语音段长度count进行判断,若countminlen,则认为语音段结束;minlen = 15; % 15*10ms = 150ms%语音段的最短长度,若语音段长度小于此值,则认为其为一段噪音 status = 0; %初始状态为静音状态 count = 0; %初始语音段长度为0 silence = 0; %初始静音段长度为0第二部分:过零计算 tmp1 = enframe(x(1:end-1), FrameLen, FrameInc); %
3、分帧处理,tmp1和tmp2为分帧后形成的二维数组 tmp2 = enframe(x(2:end) , FrameLen, FrameInc);%语音信号是一种典型的非平稳信号,但是语音信号具有短时平稳性, 因此在处理中要对采样的语音信号进行分割成一帧一帧的短时语音序列。分帧处理有利于对语音信号进行准确的分析 并且能够提高识别率 这时再分别求出每帧的短时能量和短时过零率signs = (tmp1.*tmp2)0;%当 tmp1.*tmp 0,tmp20 或tmp10; 即信号过零点。 diffs = (tmp1 -tmp2)0.02;%当信号过零点,而tmp1与tmp2距离又过近( amp1
4、% 确信进入语音段 x1(end+1) = max(n-count-1,1); status = 2; %进入语音段 silence = 0; count = count + 1; elseif amp(n) amp2 | . % 可能处于语音段%从静音段开始,当amp(n)高于短时能量低门限时,可能进入语音段,如果信号长度大于最短语音长度的话,即为语音段,否则为静音段。在语音段的时候,当amp(n)高于短时能量低门限时,将保持在语音段,当amp(n)低于短时能量低门限时,进入静音段。 zcr(n) zcr2 %从静音段开始,当zcr(n)高于过零率低门限时,可能进入语音段,如果信号长度大于最
5、短语音长度的话,即为语音段,否则为静音段。在语音段的时候,当zcr(n)高于过零率低门限时,将保持在语音段,当amp(n)低于过零率低门限时,进入静音段。status = 1; count = count + 1;else % 静音状态status = 0; % 进入静音段count = 0;else % 语音结束status = 3; end endcase 3, status=0; x2(end+1)=x1(end)+count-silence/2-1; endend % count = count-silence/2;% v_count(i)=v_count(i)+v_count(i-1
6、);% v_silence(i)=v_count(i)+v_silence(i);if length(x2)length(x1) x2(end+1)=length(zcr);endsubplot(311)(将多个图画到一个平面的工具。3是把图排成3行,1是排成1列,1表示在图中的位置,从左到右计数)plot(x)(命令打开图形窗口的工具,将x轴为横坐标)axis(1 length(x) -1 1)( axis(xmin xmax ymin ymax ) -xmin和xmax分别表示在绘图时x、 y轴的上下限 )ylabel(Speech);(ylabel是表明y轴的意义,定义y轴为Speech)for i=1:length(x2);line(x1(i)*FrameInc x1(i)*FrameInc, -1 1, Color, red);line(x2(i)*FrameInc x2(i)*FrameInc, -1 1, Color, green);End(当line(a,b,c)时,相应地会在三维图中画一条线。) -
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。