ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:325.50KB ,
资源ID:101757      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-101757.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MATLAB的语音信号的基音周期检测说明书.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于MATLAB的语音信号的基音周期检测说明书.doc

1、 基于 MATLAB 的语音信号的基音周期检测 洗手 摘要 : befMATLAB 是一种科学计算软件 , 吃饭 专门以矩阵的形式处理数据 。 洗手MATLAB 将要性能的数值计算和可视化集成在一起 , 吃饭并提供了大量的内置函数 , 吃饭从而被广泛的应用于科学计算 、 bef控制系统和信息处理等领域的分析 、 b e e f仿真和设计工作 。 洗手 洗手 MATLAB 在信号与系统中的应用主要包括符号运算和数值计算仿真分析 。 洗手由于信号与系统课程的许多内容都是基于公式演算 , 吃饭 而 MATLAB借助符号数学工具箱提供的符号运算功能 , 吃饭基本满足设计需要 。 洗手 例如 : bef

2、解微分方程 、 b eef傅里叶正反变换 、 b e e f拉普拉斯正反变换和 Z 正反变换等 。 洗手MATLAB 在信号与系统中的另一主要应用是数值计算与仿真分析 , 吃饭主要包括函数波形绘制 、 b eef函数运算 、 bef冲击响应仿真分析 、 bef信号的时域分析 、 bef信号的频谱分析 、 b e e f系统的 S域分析和零极点图绘制等内容 。 洗手 洗手 本次课程设计为语音信号的基音周期检测 , 吃饭采集语音信号 , 吃饭 对语音信号进行处理 , 吃饭区分清音浊音 , 吃饭 并通过对采样值进行滤波 、 bef分帧 、 bef求短时自相关函数 , 吃饭 得到浊音的基音 周期 。

3、洗手 洗手 关键字 : b e e f清音 、 b e e f浊音 、 b e e f基音周期 、 b e e f基音检测 、 b e e f自相关函数 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 目录 洗手 1 概述 1 洗手 2 AMDF 算法原理及实现 1 洗手 2.1 AMDF算法源程序 2 洗手 3 ACF 算 法原理及实现 3 洗手 3.1 用短时平均能量进行清 /浊音的判断 3 洗手 3.2 自相关函数基音检测的原理 4 洗手 3.3 算法实现及相关程序 4 洗手 3.3.1 带通滤波 5 洗手 3.3.2 取样与分帧 5 洗手 3.3.3 短时能量分析 5 洗手 3.

4、3.4 自相关函数分析 8 洗手 4 总结与心得体会 9 洗手 参考文献 10 洗手 1 1 概述 洗手 基音周期检测也称为基频检测 (Pitch Detection) ,它的目标 是找出和声带振动频率完全一致的基音周期变化轨迹曲线 ,或者是尽量相吻合的轨迹曲线 。 洗手 基音周期检测在语音信号的各个处理领域中 ,如语音分析与合成 、bef有调语音的辨意 、 bef低速率语音压缩编码 、 bef说话人识别等都是至关重要的 ,它的准确性及实时性对系统起着非常关键的作用 ,影响着整个系统的性能 。 洗手 洗手 浊音信号的周期称为基音周期 , 它是声带振动频率的倒数 , 基音周期的估计称为基音检测

5、。 洗手 基音检测是语音处理中的一项重要技术之一 , 它在有调语音的辨意 、 beef低速率语音编码 、 bef说话人识别等方面起着非常 关键的作用 ;beef 但在实现过程中 , 由于声门激励波形不是一个完全的周期脉冲串 , 而且声道的影响很难去除 、 beef基音周期的定位困难 、 bef背景噪声的强烈影响等一系列因素 , 基音检测面临着很大的困难 。 洗手 而自相关基因检测算法是一种基于语音时域分析理论的较好的算法 。 洗手 洗手 本文在对 AMDF、 beefACF 基音检测算法基本原理进行分析的基础上 ,对此算法进行了深入的探讨 ,针对以往研究中存在的问题加以改进 ,给出了一种方便

6、、 bef快捷的检测方案 。 洗手 综合考虑了检测准确度和检测速率两方面的因素 ,然后通过对一段具 体的语音信号进行处理 ,较准确地得到浊音语音信号的基音周期 。 洗手 洗手 2 AMDF 算法 原理 及实现 洗手 洗手 语音信号 s(n)的短时平均幅度差函数 (AMDF)定义为 : beef洗手 洗手 其中 , 吃饭 w(m)是窗函数 , 吃饭 尺是信号的平均值 , 吃饭 因为语音信号的浊音段具有周期性 , 吃饭 假设基音周期为 p, 吃饭 则在浊音段 , 吃饭 在 k=p, 吃饭 2p, 吃饭 3p将出现谷点 , 吃饭 谷点间的距离即为基音周期 。 洗手洗手 与短时自相关函数一样 , 吃饭

7、 对周期性的浊音语音 , 吃饭 也呈现与 洗手 浊音语音周期相一致的周期特性 , 吃饭 不过不同的 是 在周期的各个 洗手 整数倍点上具有谷值特性而不是峰值特性 , 吃饭 因而通过 的计算同 洗手 样可以确定基音周期 。 洗手 而对于清音信号 , 吃饭 却没有这种周期特性 。 洗手洗手 利用 的这种特性 , 吃饭 可以判定一段语音是浊音还是清音 , 吃饭 并估计 洗手 出浊音语音的基音周期 。 洗手 由于计算函数只需要加 、 bef减和取绝对值运算 , 吃饭 洗手 2 运算量较之短时自相关函数大大下降 。 洗手 同时 , 吃饭 函数在基音周期点的谷 洗手 值比自相关函数的峰值更加尖锐 , 吃饭

8、 因此错判率相对较小 , 吃饭 稳健性更高 。 洗手洗手 但是当语音信号的幅度快速变化时 , 吃饭 函数 的谷值深度会减小 , 吃饭 从而影 洗手 响基音估计的精度 。 洗手洗手 2.1 AMDF 算法源程序 洗手 AMDF 波形图如图 2-1 所示 。 洗手 洗手 y=wavread(C:Documents and SettingsAdministrator 桌面 yejianglong .wav);beef洗手 y1=b(3500:6000);beef洗手 N=320;beef%选择的窗长 , 吃饭 加 N=320 的矩形窗 洗手 A=;beef洗手 for k=1:320 洗手 sum=

9、0;beef洗手 for m=1:N 洗手 sum=sum+abs(y1(m)-y1(m+k-1);beef%计算自相关 洗手 end 洗手 A(k)=sum;beef洗手 end 洗手 s=y(3500:10000);beef洗手 figure(1)洗手 subplot(211)洗手 plot(s)洗手 xlabel(样点 )洗手 ylabel(幅度 )洗手 axis(0,2500,-1,1);beef洗手 subplot(212)洗手 plot(A)洗手 xlabel(延时 k)洗手 ylabel(AMDF)洗手 axis(0,400,0,200);beef洗手 3 洗手 图 2-1 AM

10、DF波形图 洗手 由 图 2-1 AMDF 波形图 可知 : beef平均幅度差函数在基音周期处表现为谷值 ,吃饭 这些谷值之间的间隔的平均值就是所要求得的基音周期 。 洗手 输入语音帧的平均幅度差函数的最小值发生在第 l 点 , 吃饭 其值为 O, 吃饭 我们可以设置一定的门限 , 吃饭 得到低于此门限的局部最低点 (不包含第 1 点 )。 洗手 从图中 , 吃饭 洗手 我们可以得到谷点的样本值分别为 70、 bef140、 bef210, 吃饭 其间隔平均值为 70。洗手 因此对应的基音频率为 : befFs (70 一 1)=Fs 69=37000 69=536, 吃饭 这和采用自相关法

11、的检测结果完全相同 。 洗手 洗手 3 ACF 算法原理 及实现 洗手 3.1 用短时平均能量进行清 /浊音的判断 洗手 语音信号 x ( n) 的某帧信号的短时平均能量 En 的定义为 : 洗手 洗手 式中 ,w ( n) 为窗函数 ;bef N 为窗长 。 洗手 令 h( n) = w2 ( n) ,则有洗手 由此表明 ,窗口加权短时平均能量 En 相当于将 “语音平方 ”信号通过一个单位函数响应为 h( n) 的线性滤波器的输出 。 洗手 试验统计发现 ,语音浊音段4 的短时平均能量远远大 于清音段的短时平均能量 。 洗手 因此 ,短时平均能量 En 的计算给出了区分清音段与浊音段的依据

12、 ,即 En (浊 ) En (清 ) 。 洗手 根据 En 由高到低的跳变可定出浊音变为清音语音的时刻 , En 由低向高的跳变可定出清音变为浊音语音的时刻 ;beef而只有浊音才有基音周期 ,清音的基音周期为零 。 洗手 故清浊音判断是基音检测的第一步 。 洗手 洗手 该算法中窗口选择汉明窗 ,其定义为 : beef洗手 洗手 选择汉明窗的理由是窗函数的选取原则为窗函数截取后的 x ( n) 尽量是中间大两头小的光滑函数 ,冲激响应对应的滤波器具有低通 特性 。 洗手 从汉明窗的构成及频率响应特性上看 , 汉明窗具有这种特性 , 而矩形窗及汉宁窗则稍逊之 。 洗手 汉明窗虽然主瓣最高 (带

13、宽大 ) ,但旁瓣最低 (通带外的衰减大 ) , 可以有效地克服泄露现象 ,具有更好的低通特性 。 洗手 故选择汉明窗而不选择别的窗函数 ,能使短时平均能量 En 更能反映语音信号的幅度变化 。 洗手 洗手 3.2 自相关函数基音检测的原理 洗手 对于离散的数字语音信号序列 x ( n) ,自相关函数定义如下 : beef洗手 洗手 式中 , k 为信号的延迟点数 。 洗手 对于随机性信号序列或周期性信号序列 ,自相关函数定义为 :洗手 洗手 自相关函数具有以下的性质 :如果序列 x ( n) 具有周期 Np ,则其自相关函数也是同周期的周期函数 。 洗手 即 : befx ( n) = x

14、( n + N p ); bef则 : befR( k) = R ( k + N p ) 。 洗手洗手 清音信号没有周期性 ,它的自相关函数也没有周期 , R( k) 会随着 k 的增大迅速衰减 。 洗手 浊音信号具有准周期性 ,它的自相关函数 R ( k) 具有与 x ( m) 相同的周期 。 洗手 自相关法基音检测正是利用 R ( k) 的这一性质对语音信号进行基音检测的 。 洗手 洗手 3.3 算法实现及相关程序 洗手 通过对自相关基音检测原理的分析 , 考虑到检测准确度和检测速率 2 方面的因素 , 提出了算法实现方案 , 并对算法进行了 Matlab 编程实现 。 洗手 算法包含 6

15、 个功能模块 : 带通滤波 、 beef取样 、 bef分帧 、 bef短时能量分析 、 bef相关运5 算 、 beef基音检测 。 洗手 框图如图 3-1 所示 。 洗手 洗手 洗手 图 3-1 基因检测框图 洗手 3.3.1 带通滤波 洗手 该研究以采样频率为 8kHz、 bef精度为 16 比特的 wav 文件作为声源 , 以网络录音机录制自己的一段语音 。 洗 手 因为语音信号包含非常丰富的谐波分量 , 基音频率最低可达 80Hz , 最高可达 500Hz , 但基音频率大多数分布在100 200Hz 之间 。 洗手 因此 ,浊音信号可能含有三四十次谐波分量 , 而其基波分量往往不是

16、最强的分量 。 洗手 语音信号的第一共振峰通常在 3001000Hz 范围内 , 即基音的 2 8 次谐波成分比基波分量还要强 。 洗手 为了提高检测的准确度 , 算法中引入了一个 60 500Hz 带通滤波模块滤除语音帧的高次谐波分量 。 洗手 该算法中用音效编辑软件 Cooledit 提供的功能直接滤波 , 方便快速 , 它在保持 语音信息的前提下 , 可以大大减少谐波成分 。洗手 洗手 3.3.2 取样与分帧 洗手 取样模块从以采样频率为 8kHz 的语音信号中截取 Lengt h (样点数 ) 长个样点值 , 一般取样点数为帧长的整数倍即可 , 程序中取了 18000 个样点数进行分析

17、 。 洗手 分帧模块主要完成将取样模块中获得的语音样值点分为若干个语音帧 , 算法中分析帧长 30ms , 即每帧长为 240 个样点 。 洗手 然后用短时平均能量判断出浊音帧 , 再对浊音帧进行自相关计算 , 最后进行基音周期检测 。 洗手 洗手 3.3.3 短时能量分析 洗手 原始信号及其频谱波 形如图 3-2 所示 。 洗手 洗手 6 洗手 图 3-2 原始信号及其频谱波形 洗手 洗手 %原始信号 洗手 y,fs,nbits=wavread (C:Documents and SettingsAdministrator 桌面yejianglong.wav);beef 洗手 %把语音信号进行

18、加载入 Matlab 仿真软件平台中 洗手 sound(y,fs,nbits);beef %回放语音信号 洗手 n = length (y) ;beef %求出语音信号的长度 洗手 Y=fft(y,n);beef %快速傅里叶变换 洗手 subplot(2,1,1);beefplot(y);beeftitle(原始信号波形 );beef洗手 grid;beef洗手 subplot(2,1,2);beefplot(abs(Y);beeftitle(原始信号频谱 );beef洗手 grid;beef洗手 洗手 短时能量的函数由以下程序实现 ,短时能量曲线如图 3-3 所示 。 洗手 洗手 7 洗手

19、 图 3-3 短时能量曲线 洗手 洗手 %经滤波后波形 洗手 N=240 洗手 y=WAVREAD(C:Documents and SettingsAdministrator 桌面yejianglong.wav),洗手 1 18000);beef洗手 L=length(y)%30 秒 , 吃饭 每秒 8000 个点 , 吃饭 一共 240000 个点 洗手 LL=length(y)/N %一共 1000 帧 洗手 %短时能量 洗手 figure(1)洗手 F1 = enframe(y,200);beef洗手 eng = sum(F1.2);beef洗手 plot(eng);beefxlabel

20、(帧 );beefylabel(短时平均能量 );beeftitle(短时能量 )洗手 %短时平均幅度 Mn=sum(abs(Y)/N 洗手 figure(2)洗手 F2 = enframe(y,200);beef洗手 eng = sum(abs(F2);beef洗手 plot(eng);beefxlabel(帧 );beefylabel(短时平均幅度 );beeftitle(短时平均幅度 );beef 洗手 8 短时平均幅度函数曲线如图 3-4 所示 。 洗手洗手 图 3-4 短时平均幅度曲线 洗手 洗手 %分帧 函数 洗手 function f=enframe(x,win,inc)洗手 n

21、x=length(x(:);beef洗手 len = win;beef洗手 if (nargin 3)洗手 inc = len;beef洗手 end 洗手 nf = fix(nx-len+inc)/inc);beef洗手 f=zeros(nf,len);beef洗手 indf= inc*(0:(nf-1).;beef洗手 inds = (1:len);beef洗手 f(:) = x(indf(:,ones(1,len)+inds(ones(nf,1),:);beef洗手 f = f;beef洗手 3.3.4 自相关函数分析 洗手 从图 3-3 可以看出 En 值大的对应于浊音段 ,而 En 值小的对应于清音段 。洗手 由此可以大致判断浊音变为清音或清音变为浊音的时刻 。 洗手 浊音段的自相关函数由以下程序实现 , 得到波形图如图 3-5 所示 。 洗手 洗手 %短时自相关函数 洗手

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。