文档详情

实验三语音信号的基音周期提取.doc

发布:2017-04-19约2.18千字共6页下载文档
文本预览下载声明
实验三语音信号的基音周期提取 实验目的 熟练运用MATLAB软件的运用,学习通过MATLAB软件编程来进行语音信号的基因周期提取。 掌握语音信号的基音周期提取的方法,实现其中一种基频提取方法。 学会用自相关法进行语音信号的基因检测。 实验仪器设备及软件 MATLAB 实验原理 浊音信号的自相关函数在基因周期的整数倍位置上出现峰值,而清音的自相关函数没有明显的峰值出现。因此检测自相关函数是否有峰值就可以判断是清音还是浊音,而峰-峰值之间对应的就是基音周期。 影响从自相关函数中正确提取基音周期的最主要原因是声道响应。当基音的周期性和共振峰的周期性混在一起时,被检测出来的峰值可能会偏离原来峰值的真实位置。另外,在某些浊音中,第一共振频率可能会等于或低于基音频率。此时,如果其幅度很高,它就可能在自相关函数中产生一个峰值,而该峰值又可以同基音频率的峰值相比拟。 1、自相关函数 对于离散的语音信号x(n),它的自相关函数定义为: R(k)=Σx(n)x(n-k), 如果信号x(n))具有周期性,那么它的自相关函数也具有周期性,而且周期与信号x(n) 的周期性相同。自相关函数提供了一种获取周期信号周期的方法。在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。 2、短时自相关函数 语音信号是非平稳的信号,所以对信号的处理都使用短时自相关函数。短时自相关函数是在信号的第N个样本点附近用短时窗截取一段信号,做自相关计算所得的结果 Rm(k)=Σx(n)x(n-k) 式中,n表示窗函数是从第n点开始加入。 3、算法 通过对自相关基音检测原理的分析,考虑到检测准确度和检测速率2方面的因素,提出了算法实现方案,并对算法进行了Matlab编程实现。算法包含6个功能模块:带通滤波、取样、分帧、短时能量分析、相关运算、基音检测。 基因周期检测 短时自相关分析 分帧 取样 语音信号 带通滤波 图2.1 基音检测框图 实验步骤及程序 实验步骤 取一段录音作为音频样本。 对样本音频进行采样。 ???采样后样本音频进行分帧。 对每一帧求短时自相关函数 算出对应周期。 进行带通滤波去除野点。 (2)语音信号基音周期提取的程序流程图: 输入语音信号 采样 分帧 短时自相关分析 带通滤波 输出图像 图2.2 语音信号基音周期提取的程序流程图 实验源程序 function pitch x=wavread(1.wav); figure(1); stem(x,.); n=160; for m=1:length(x)/n; for k=1:n; Rm(k)=0; for i=(k+1):n; Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n); end end p=Rm(10:n); [Rmax,N(m)]=max(p); end N=N+10; T=N/8; figure(2);stem(T,.);axis([0 length(T) 0 10]); xlabel(帧数(n));ylabel(周期(ms));title(各帧基音周期); T1= medfilt1(T,5); figure(3);stem(T1,.);axis([0 length(T1) 0 10]); xlabel(帧数(n));ylabel(周期(ms));title(各帧基音周期); 实验结果与分析 图2.3 样本语音原始图像 图2.4滤波前各帧基音周期 图2.5滤波后各帧基音周期 通过图像可以清楚地看出每一帧对应的基音周期,实验效果比较理想,达到了预期目标。实验中取了16000个点进行分析,每20ms的声音片段进行采样,然后对每一帧进行自相关分析得到对应的基音周期,但是存在开始的几个点的值比第一个周期的峰值还大的情况,因此无法正确提取出第一个峰值对应的点,所以经过滤波后得到比较理想的基音周期图像。 实验体会 通过本次实验是我更加理解短时自相关函数法进行基
显示全部
相似文档