- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语音实验一端点检测
实验一语音信号端点检测实验目的学会MATLAB的使用,掌握MATLAB的程序设计方法;掌握语音处理的基本概念、基本理论和基本方法;掌握基于MATLAB编程实现带噪语音信号端点检测;学会用MATLAB对信号进行分析和处理。5. 学会利用短时过零率和短时能量,对语音信号的端点进行检测。实验仪器设备及软件HP D538、MATLAB实验原理端点检测是语音信号处理过程中非常重要的一步,它的准确性直接影响到语音信号处理的速度和结果。本次实验利用短时过零率和短时能量相结合的语音端点检测算法利用短时过零率来检测清音,用短时能量来检测浊音,两者相配合便实现了信号信噪比较大情况下的端点检测。算法对于输入信号的检测过程可分为短时能量检测和短时过零率检测两个部分。算法以短时能量检测为主,短时过零率检测为辅。根据语音的统计特性,可以把语音段分为清音、浊音以及静音(包括背景噪声)三种。在本算法中,短时能量检测可以较好地区分出浊音和静音。对于清音,由于其能量较小,在短时能量检测中会因为低于能量门限而被误判为静音;短时过零率则可以从语音中区分出静音和清音。将两种检测结合起来,就可以检测出语音段(清音和浊音)及静音段1、短时能量计算定义n时刻某语言信号的短时平均能量为:式中N为窗长,可见短时平均能量为一帧样点值的平方和。特殊地,当窗函数为矩形窗时,有短时过零率过零就是指信号通过零值。过零率就是每秒内信号值通过零值的次数。对于离散时间序列,过零则是指序列取样值改变符号,过零率则是每个样本的改变符号的次数。对于语音信号,则是指在一帧语音中语音信号波形穿过横轴(零电平)的次数。可以用相邻两个取样改变符号的次数来计算。如果窗的起点是n=0,短时过零率Z为波形穿过横轴(零电平)的次数短时过零可以看作信号频率的简单度量浊音的短时平均幅度最大,无声的短时平均幅度最小,清音的短时过零率最大,无声居中,浊音的短时过零率最小。3、短时自相关函数是偶函数;s(n)是周期的,那么R(k)也是周期的;可用于基音周期估计和线性预测分析4、判断语音信号的起点和终点利用短时平均幅度和短时过零率可以判断语音信号的起点和终点。语音端点检测方法可采用测试信号的短时能量或短时对数能量、联合过零率等特征参数,并采用双门限判定法来检测语音端点,即利用过零率检测清音,用短时能量检测浊音,两者配合。首先为短时能量和过零率分别确定两个门限,一个是较低的门限数值较小,对信号的变化比较敏感,很容易超过;另一个是比较高的门限,数值较大。低门限被超过未必是语音的开始,有可能是很短的噪声引起的,高门限被超过并且接下来的自定义时间段内的语音。实验步骤及程序(1)实验步骤:取一段录音作为音频样本。利用公式分别编程计算这段语音信号的短时能量和短时过零率,然后分别画出它们的曲线。调整能量门限。进行幅度归一化并设置帧长、短时能量阈值、过零率阈值等参数。编写程序实现语音端点检测。最后得到语音端点检测图像。(2) 语音信号的端点检测程序流程图:输入语音信号幅度归一化设置参数计算短时能量和过零率调整能量门限开始端点检测输出样本端点检测图像图 1.1 语音信号的端点检测程序流程图(3) 语音信号的端点检测实验源程序:clc;clear;[x,fs]=wavread(2.wav);%% [y] = end_point(x);%%% [f0] = pitch_sift(x,0.38,fs);% plot(f0);%%e_x=(frame(x,lpc_spectrum,fs));%plot(e_x(2,:));%某一维随时间变化plot(e_x(:,89));%一帧信号各维之间变化hold on; c=melcepst(x,fs);plot(c(89,:),k);frame定义% function [y] = frame(x,func,SAMP_FREQ,l,step)% where y is output on a frame by frame basis, x is input speech, % and l is the window size. l and step are optional parameters, % by default SAMP_FREQ is 8000, l is 200, and step is 100.% func is a string e.g. pitch that determines a function that you want % to apply to x on a short-time basis.%% Written by: Levent Arslan Apr. 11, 1994%function [yy] = frame(x,func,SAMP_FREQ
文档评论(0)