毕业论文-基于matlab的语音信号的基音周期检测说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的语音信号的基音周期检测

摘要:MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将要性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。

MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB 借助符号数学工具箱提供的符号运算功能,基本满足设计需要。例如:解微分方程、傅里叶正反变换、拉普拉斯正反变换和Z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。

本次课程设计为语音信号的基音周期检测,采集语音信号,对语音信号进行处理,区分清音浊音,并通过对采样值进行滤波、分帧、求短时自相关函数,得到浊音的基音周期。

关键字:清音、浊音、基音周期、基音检测、自相关函数

目录

1 概述 (1)

2 AMDF算法原理及实现 (1)

2.1 AMDF算法源程序 (2)

3 ACF算法原理及实现 (4)

3.1 用短时平均能量进行清/浊音的判断 (4)

3.2 自相关函数基音检测的原理 (6)

3.3 算法实现及相关程序 (6)

3.3.1 带通滤波 (7)

3.3.2 取样与分帧 (7)

3.3.3 短时能量分析 (8)

3.3.4 自相关函数分析 (11)

4 总结与心得体会 (13)

参考文献 (13)

1 概述

基音周期检测也称为基频检测(Pitch Detection) ,它的目标是找出和声带振动频率完全一致的基音周期变化轨迹曲线,或者是尽量相吻合的轨

迹曲线。基音周期检测在语音信号的各个处理领域中,如语音分析与合成、有调语音的辨意、低速率语音压缩编码、说话人识别等都是至关重要的,它的准确性及实时性对系统起着非常关键的作用,影响着整个系统的性能。

浊音信号的周期称为基音周期, 它是声带振动频率的倒数, 基音周期的估计称为基音检测。基音检测是语音处理中的一项重要技术之一, 它在有调语音的辨意、低速率语音编码、说话人识别等方面起着非常关键的作用; 但在实现过程中, 由于声门激励波形不是一个完全的周期脉冲串, 而且声道的影响很难去除、基音周期的定位困难、背景噪声的强烈影响等一系列因素, 基音检测面临着很大的困难。而自相关基因检测算法是一种基于语音时域分析理论的较好的算法。

本文在对AMDF、ACF基音检测算法基本原理进行分析的基础上,对此算法进行了深入的探讨,针对以往研究中存在的问题加以改进,给出了一种方便、快捷的检测方案。综合考虑了检测准确度和检测速率两方面的因素,然后通过对一段具体的语音信号进行处理,较准确地得到浊音语音信号的基音周期。

2 AMDF算法原理及实现

语音信号{s(n))的短时平均幅度差函数(AMDF)定义为:

其中,w(m)是窗函数,尺是信号的平均值,因为语音信号的浊音段具有周期性,假设基音周期为p,则在浊音段,在k=p,2p,3p…将出现谷点,谷点间的距离即为基音周期。

与短时自相关函数一样,对周期性的浊音语音,也呈现与

浊音语音周期相一致的周期特性,不过不同的是在周期的各个

整数倍点上具有谷值特性而不是峰值特性,因而通过的计算同

样可以确定基音周期。而对于清音信号,却没有这种周期特性。

利用的这种特性,可以判定一段语音是浊音还是清音,并估计

出浊音语音的基音周期。由于计算函数只需要加、减和取绝对值运算,运算量较之短时自相关函数大大下降。同时,函数在基音周期点的谷值比自相关函数的峰值更加尖锐,因此错判率相对较小,稳健性更高。但是当语音信号的幅度快速变化时,函数的谷值深度会减小,从而影响基音估计的精度。

2.1 AMDF算法源程序

AMDF波形图如图2-1所示。

y=wavread(C:\Documents and Settings\Administrator\桌面\yejianglong '.wav');

y1=b(3500:6000);

N=320;%选择的窗长,加N=320的矩形窗

A=[];

for k=1:320

sum=0;

for m=1:N

sum=sum+abs(y1(m)-y1(m+k-1));%计算自相关end

A(k)=sum;

end

s=y(3500:10000);

figure(1)

subplot(211)

plot(s)

xlabel('样点')

ylabel('幅度')

axis([0,2500,-1,1]);

subplot(212)

plot(A)

xlabel('延时k')

ylabel('AMDF')

axis([0,400,0,200]);

图2-1 AMDF波形图

由图2-1 AMDF波形图可知:平均幅度差函数在基音周期处表现为谷值,这些谷值之间的间隔的平均值就是所要求得的基音周期。输入语音帧的平均幅度差函数的最小值发生在第l点,其值为O,我们可以设置一定的门限,得到低于此门限的局部最低点(不包含第1点)。从图中,

我们可以得到谷点的样本值分别为70、140、210,其间隔平均值为70。因此对应的基音频率为:Fs/(70一1)=Fs/69=37000/69=536,这和采用自相关法的检测结果完全相同。

3 ACF算法原理及实现

用短时平均能量进行清/浊音的判断

语音信号{ x ( n) } 的某帧信号的短时平均能量En 的定义为:

相关文档
最新文档