matlab端点检测.ppt

matlab端点检测.ppt

ID:48186596

大小:278.50 KB

页数:11页

时间:2020-01-18

matlab端点检测.ppt_第1页
matlab端点检测.ppt_第2页
matlab端点检测.ppt_第3页
matlab端点检测.ppt_第4页
matlab端点检测.ppt_第5页
资源描述:

《matlab端点检测.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Matlab端点检测程序功能:从包含音的一段信号中找出语音的起始点及结束点。基本原理:整个端点检测可分为四段:静音段、过渡段、语音段、结束。使用一个变量表示当前状态。静音段,如果能量或过零率超过低门限,就开始标记起始点,进入过渡段。过渡段当两个参数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果过渡段中两个参数中的任一个超过高门限,即被认为进入语音段。Matlab端点检测处于语音段时,如果两参数降低到门限以下,而且总的计时长度小于最短时间门限,则认为是一段噪音,继续扫描以后的语音数据,否则标一记结束端点。代码分析:第一部

2、分:常数设置%常数设置FrameLen=240;%指定帧长FrameInc=80;%指定帧移,每一帧中未重叠的部分Matlab端点检测amp1=10;%初始短时能量高门限,这是一个经验值amp2=2;%初始短时能量低门限zcr1=10;%初始过零率高门限zcr2=5;%初始过零率低门限maxsilence=8;%8*10ms=80ms语音段中允许的最大静音长度,如果语音段中的静音帧数未超过此值,则认为语音还没结束;如果超过了该值,则对语音段长度count进行判断,若count

3、音状态0;若count>minlen,则认为语音段结束;minlen=15;%15*10ms=150ms语音段的最短长度,若语音段长度小于此值,则认为其为一段噪音status=0;%初始状态为静音状态count=0;%初始语音段长度为0silence=0;%初始静音段长度为0Matlab端点检测第二部分:过零计算短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变符号次数t

4、mp1=enframe(x(1:end-1),FrameLen,FrameInc);%分帧处理,tmp1和tmp2为分帧后形成的二维数组tmp2=enframe(x(2:end),FrameLen,FrameInc);语音信号是一种典型的非平稳信号,但是语音信号具有短时平稳性,因此在处理中要对采样的语音信号进行分割成一帧一帧的短时语音序列。分帧处理有利于对语音信号进行准确的分析并且能够提高识别率这时再分别求出每帧的短时能量和短时过零率signs=(tmp1.*tmp2)<0;diffs=(tmp1-tmp2)>0.02;zcr=

5、sum(signs.*diffs,2);Matlab端点检测第三部分:计算短时能量语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开amp=sum(abs(enframe(filter([1-0.9375],1,x),FrameLen,FrameInc)),2);过零率有两类重要的应用:用于粗略地描述信号的频谱特性,就是用多带滤波器将信号分为若干个通道,对各通道进行短时平均过零

6、率和短时能量的计算,即可粗略地估计频谱特性;用于判别清音和浊音、有话和无话。计算过零率容易受低频干扰,特别是50Hz交流干扰的影响。解决这个问题的办法,一个是做高通滤波器或带通滤波,减小随机噪声的影响(filter函数)Matlab端点检测%调整能量门限amp1=min(amp1,max(amp)/4);amp2=min(amp2,max(amp)/8);第四部分:端点检测forn=1:length(zcr)goto=0;switchstatuscase{0,1}%0=静音,1=可能开始Matlab端点检测ifamp(n)>am

7、p1%确信进入语音段x1(end+1)=max(n-count-1,1);status=2;silence=0;count=count+1;elseifamp(n)>amp2

8、...%可能处于语音段zcr(n)>zcr2status=1;count=count+1;else%静音状态status=0;count=0;iflength(x1)~=length(x2)x2(end+1)=x1(end)+count-silence/2-1;endendMatlab端点检测case2,%2=语音段ifamp(n)>amp2

9、...%保持

10、在语音段zcr(n)>zcr2count=count+1;else%语音将结束silence=silence+1;ifsilence

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。