端点检测课程报告分解

上传人:新** 文档编号:507882167 上传时间:2022-12-25 格式:DOC 页数:16 大小:200.50KB
返回 下载 相关 举报
端点检测课程报告分解_第1页
第1页 / 共16页
端点检测课程报告分解_第2页
第2页 / 共16页
端点检测课程报告分解_第3页
第3页 / 共16页
端点检测课程报告分解_第4页
第4页 / 共16页
端点检测课程报告分解_第5页
第5页 / 共16页
点击查看更多>>
资源描述

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

1、信息工程系课程设计报告 课 程 MATLAB通信工程仿真 端点检测 专 业 通信工程 班 级 2013级本科一班 学生姓名 学号1314学生姓名 学号1314学生姓名 学号1314学生姓名 学号1314 学生姓名 学号1314二一四年十二月目 录目录.- 1- . 摘要 .- 2- 关键词.- 2 -1.程序描述.- 3-1.1程序功能.- 3-1.2基本原理.- 3-1.3端点检测的过程与目的.- 3-2.程序实现.- 5-2.1代码分析.- 6-2.2过零计算.- 7-2.3计算短时能量.- 8-2.4算法说明.- 9-3.实验结果.- 13-参考文献.- 14-摘 要:通过本次课程设计,

2、主要训练学生对MATLAB通信系统建模与仿真设计的方法和技巧。作为一个完整的语音识别系统,其最终实现及使用的效果不仅仅限于识别的算法,许多相关因素都直接影响着应用系统的成功与否。语音识别的对象是语音信号,端点检测的目的就是在复杂的应用环境下的信号流中分辨出语音信号和非语音信号,并确定语音信号的开始及结束。关键词:过零计算 短时能量计算 端点检测1.程序描述1.1 程序功能: 从包含语音的一段信号中找出语音的起始点及结束点。1.2 基本原理: 整个端点检测可分为四个阶段:静音段、过渡段、语音段、结束。使用一个变量表示当前状态。静音段,如果能量或过零率超过低门限,就开始标记起始点,进入过渡段。过渡

3、段当两个参数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果过渡段中两个参数中的任一个超过高门限,即被认为进入语音段。处于语音段时,如果两参数降低到门限以下,而且总的计时长度小于最短时间门限,则认为是一段噪音,继续扫描以后的语音数据,否则标记结束端点。1.3端点检测的过程与目的: 一般的信号流都存在一定的背景声,而语音识别的模型都是基于语音信号训练的,语音信号和语音模型进行模式匹配才有意义。因此从信号流中检测出语音信号是语音识别的必要的预处理过程。详细说来,端点检测有两个过程:1基于语音信号的特征,用能量、过零率、商(entropy)、音高(pitch)等参数以及它们的衍生参数,来判断

4、信号流中的语音或非语音信号。2在信号流中检测到语音信号后,判断此处是否是语句的开始点或结束点。在商用语音系统中,由于信号多变的背景和自然对话模式而更容易使句中有停顿(非语音),特别是在爆发声母前总会有无声间隙。因此,这种开始或结束的判定尤为重要。此外端点检测的目的还在于: 1减少识别器的数据处理量: 可以大量减少信号传输量及识别器的运算负载,对于语音对话的实时识别有重要作用。 2拒绝非语音的信号:对非语音信号的识别不仅是一种资源浪费,而且有可能改变对话的状态,造成对用户的困扰。 3在需要打断(barge-in)功能的系统中,语音的起始点是必须的。在端点检测找到语音的起始点时,系统将停止提示音的

5、播放。完成打断功能。2. 程序实现 语音信号的端点检测程序流程图: 输出样本端点检测图像 开始端点检测 调整能量门限 计算短时能量和过零率 设置参数 幅度归一化 输入语音信号 2.1代码分析第一部分:常数设置%常数设置FrameLen = 240;%指定帧长FrameInc = 80;%指定帧移,每一帧中未重叠的部分amp1 = 10; %初始短时能量高门限amp2 = 2; %初始短时能量低门限zcr1 = 10; %初始过零率高门限zcr2 = 5; %初始过零率低门限maxsilence = 8; % 8*10ms = 80ms 语音段中允许的最大静音长度,如果语音段中的静音帧数未超过此

6、值,则认为语音还没结束;如果超过了该值,则对语音段长度count进行判断,若countminlen,则认为语音段结束;minlen = 15; % 15*10ms = 150ms语音段的最短长度,若语音段长度小于此值,则认为其为一段噪音 status = 0; %初始状态为静音状态 count = 0; %初始语音段长度为0 silence = 0; %初始静音段长度为02.2 过零计算短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变

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

8、fs = (tmp1 -tmp2)0.02;当信号过零点,而tmp1与tmp2距离又过近(0.02)的话就认为是噪音,舍去. zcr = sum(signs.*diffs, 2);定义语音信号Xn(m)的过零率为Zn,则Zn=2.3计算短时能量语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开amp = sum(abs(enframe(filter(1 -0.9375, 1, x), FrameLen, FrameInc), 2);过零率有两类重要的应用: 用于粗略地描述信号的频谱特性,就是用将为若干个通道, 对各通道进行短时平均过零率和短时能量的计算,即可粗略地估计频谱特性; 用于判别清音和浊音、有话和无话。计算过零率容易受低频干扰, 特别是50 Hz 交流干扰的影响。解决这个问题的办法,一个是做高通滤波器或带通滤波,减小随机噪声的影响(filter函数滤波器)%调整能量门限amp1 = min(amp1, max(amp)/4);amp2 = min(amp2, max(amp)/8);若第N帧音信号Xn(m)短时能量为En,则En=2.4算法说明for n=1:le

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

当前位置:首页 > 办公文档 > 解决方案

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