1 / 18
文档名称:

语音处理实验报告.doc

格式:doc   大小:140KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

语音处理实验报告.doc

上传人:ipod0b 2021/4/3 文件大小:140 KB

下载得到文件列表

语音处理实验报告.doc

文档介绍

文档介绍:实验一 语音信号的端点检测
一、实验目的
1、掌握短时能量的求解方法文档来自于网络搜索
2、掌握短时平均过零率的求解方法资料个人收集整理,勿做商业用途
3、掌握利用短时平均过零率和短时能量等特征,对输入的语音信号进行端点检测。个人收集整理 勿做商业用途
二、仪器设备实验仪器设备及软件文档来自于网络搜索
HP计算机,MATLAB文档来自于网络搜索
三、实验原理
端点检测是语音信号处理过程中非常重要的一步,它的准确性直接影响到语音信号处理的速度和结果。本次实验利用短时过零率和短时能量相结合的语音端点检测算法利用短时过零率来检测清音,用短时能量来检测浊音,两者相配合便实现了信号信噪比较大情况下的端点检测。资料个人收集整理,勿做商业用途
算法对于输入信号的检测过程可分为短时能量检测和短时过零率检测两个部分。算法以短时能量检测为主,短时过零率检测为辅。根据语音的统计特性,可以把语音段分为清音、浊音以及静音(包括背景噪声)三种。在本算法中,短时能量检测可以较好地区分出浊音和静音。对于清音,由于其能量较小,在短时能量检测中会因为低于能量门限而被误判为静音;短时过零率则可以从语音中区分出静音和清音。将两种检测结合起来,就可以检测出语音段(清音和浊音)及静音段文档收集自网络,仅用于个人学****br/>1、短时能量计算个人收集整理 勿做商业用途
定义n时刻某语言信号的短时平均能量为:文档来自于网络搜索
式中N为窗长,可见短时平均能量为一帧样点值的平方和。特殊地,当窗函数为矩形窗时,有个人收集整理 勿做商业用途
短时过零率
过零就是指信号通过零值。过零率就是每秒内信号值通过零值的次数。个人收集整理 勿做商业用途
对于离散时间序列,过零则是指序列取样值改变符号,过零率则是每个样本的改变符号的次数。对于语音信号,则是指在一帧语音中语音信号波形穿过横轴(零电平)的次数。可以用相邻两个取样改变符号的次数来计算。个人收集整理 勿做商业用途
如果窗的起点是n=0,短时过零率Z为文档收集自网络,仅用于个人学****br/>波形穿过横轴(零电平)的次数文档来自于网络搜索
短时过零可以看作信号频率的简单度量个人收集整理 勿做商业用途
浊音的短时平均幅度最大,无声的短时平均幅度最小,清音的短时过零率最大,无声居中,浊音的短时过零率最小。文档来自于网络搜索
3、短时自相关函数资料个人收集整理,勿做商业用途
①是偶函数;文档收集自网络,仅用于个人学****br/>②s(n)是周期的,那么R(k)也是周期的;文档来自于网络搜索
③可用于基音周期估计和线性预测分析资料个人收集整理,勿做商业用途
4、判断语音信号的起点和终点资料个人收集整理,勿做商业用途
利用短时平均幅度和短时过零率可以判断语音信号的起点和终点。语音端点检测方法可采用测试信号的短时能量或短时对数能量、联合过零率等特征参数,并采用双门限判定法来检测语音端点,即利用过零率检测清音,用短时能量检测浊音,两者配合。首先为短时能量和过零率分别确定两个门限,一个是较低的门限数值较小,对信号的变化比较敏感,很容易超过;另一个是比较高的门限,数值较大。低门限被超过未必是语音 的开始,有可能是很短的噪声引起的,高门限被超过并且接下来的自定义时间段内的语音。资料个人收集整理,勿做商业用途
四、实验步骤及程序个人收集整理 勿做商业用途
(1) 实验步骤:个人收集整理 勿做商业用途
取一段录音作为音频样本。文档来自于网络搜索
利用公式分别编程计算这段语音信号的短时能量和短时过零率,然后分别画出它们的曲线。资料个人收集整理,勿做商业用途
调整能量门限。文档收集自网络,仅用于个人学****br/>进行幅度归一化并设置帧长、短时能量阈值、过零率阈值等参数。个人收集整理 勿做商业用途
编写程序实现语音端点检测。文档来自于网络搜索
最后得到语音端点检测图像。资料个人收集整理,勿做商业用途
(2) 语音信号的端点检测程序流程图:文档来自于网络搜索
输入语音信号
幅度归一化
设置参数
计算短时能量和过零率
文档来自于网络搜索
调整能量门限
开始端点检测
输出样本端点检测图像
个人收集整理 勿做商业用途
图 语音信号的端点检测程序流程图资料个人收集整理,勿做商业用途
(3) 语音信号的端点检测实验源程序:资料个人收集整理,勿做商业用途
clc;
clear;
c=wavread(''); //读语音文件波形资料个人收集整理,勿做商业用途
e_x = frame(c(:,1),'energy');