基于MATLAB的自相关函数基音检测的优化

时间:2022-05-22 11:40:35

基于MATLAB的自相关函数基音检测的优化

摘要:基音是语音信号的一个重要参数,它是指发浊音时声带振动所引起的周期性。基音的提取是语音处理中的重要任务。目前对基音的检测方法有很多,典型的就有自相关法,AMDF(短时平均幅度差)法,倒谱法等等。这里介绍一种自相关和倒谱相结合的算法,较传统的自相关法有一定的改进和优化。

关键词:自相关;倒谱;三电平中心削波

中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)36-10611-02

The Autocorrelation Function based on MATLAB Optimization of Pitch Detection

WANG Li

(Qinghai Normal University Physics Department Pronunciation and Image Laboratory, Xi'ning 810008, China)

Abstract: Pitch is an important parameter of speech signals, which is when the hair dullness caused by the cyclical nature of vocal fold vibration. Pitch extraction is an important task of speech processing. Currently there are a lot of pitch detection methods, typically there is self-correlation method, AMDF (short-time average magnitude difference) method, cepstrum, etc. Here are a self-correlation and cepstrum combination of algorithms, the more traditional autocorrelation have some improvements.

Key words: autocorrelation; cepstrum; the three-level center clipping

基音是语音信号处理中的一个非常重要的参数。准确地检测出基音周期对语音的分析,合成,以及语音的压缩编码,语音识别等有重要的意义。

自相关法和倒谱分析是基音周期估计比较常用的方法,浊音信号的自相关函数在基音周期的整数倍位置上出现峰值。文献[3]采用对浊音信号的预处理,改进自相关函数,文献[4]采用自相关函数与短时平均幅度差函数的结合,改进自相关函数。本文提出自相关法和倒谱分析相结合的处理方法,获得优于传统自相关函数的检测效果。

1 各种函数应用于基音检测的原理

1.1 自相关函数应用于基音检测的原理

对于时间离散化的确定性信号,自相关函数定义为:

(1)

对于周期性信号序列,自相关函数定义为:

,式中k为延迟点数。 (2)

自相关反映了信号和其自身作了一段延迟后的相似程度,一个周期信号的自相关函数也是周期的,并且和原信号的周期相同,有R(k)=R(k+Np)。浊音是声带的周期性开启,闭合产生的,具有周期性。所以它的自相关的周期就代表着浊音的周期,且在周期整数倍位置上出现峰值,一般情况取最大峰值点作为基频点;清音是不由声带振动产生的,因而不具周期性。自相关法就是通过这个性质来检测基音的。

1.2 倒谱应用于基音检测的原理

倒谱定义为时间序列的z变换的模的对数的逆z变换。具体说,序列x(n)的倒谱c(n)定义为:

(3)

或表示成傅立叶变换形式:

(4)

语音产生模型是一个由周期脉冲序列(浊音)或白噪声序列(清音)激励的线性滤波器,在一帧内近似认为滤波器是时不变的,因此,语音信号序列是激励源和滤波器的冲激响应的卷积。倒谱将卷性语音变换为加性语音,分离出激励源和滤波器。

1.3 三电平中心削波的原理

三电平中心削波的输入输出函数为:

(5)

即削波器的输出在x(n)>CL时为1,x(n)

2 改进的算法的提出与实现

改进的算法主要包含一下几个方面:分帧加窗及低通滤波,浊音信号预处理(三电平中心削波),作自相关变换,倒谱分析,基音检测6个部分。

语音是不平稳的时变信号,在时间足够短的情况下,可以近似认为是平稳的,这就涉及到分帧,一般要求一帧至少包含2个以上的周期,基于自相关和倒谱分析,折中选择窗长为180。语音的基频一般都在500HZ以下,即使女高音C调最高也不会超过1kHZ[2]。所以从只保留基频的角度出发,用一个1kHZ带宽的低通滤波器对语音事先滤波是有好处的。估计基音周期真正有用的是出现在周期处的振幅高的自相关峰,其他较低的谐波峰都是多余的。基于这种认识,用三电平中心削波,去除大多数次要的峰,保留具有周期性的峰。然后作自相关,在自相关的基础上再进行倒谱分析,以防止自相关出现的半频和倍频的错误,使基音检测更准确。本文采用一段8kHZ采样的纯净语音的一帧为例来说明本文算法的优越性。应用自相关和倒谱分析相结合的算法,较传统的自相关有所改进。

3 实验验证

语音采样为8kHZ,帧长为180,帧移为60,取出其中一帧浊音帧,如图1。

从图1我们可以大致估计一下基音周期,180个样点大致包含了5个周期,那么周期就应该在30左右。

图2是用传统方法作的自相关函数,根据自相关函数中的周期是在第一最高峰所对应的位置,得出周期为16。这就出现了与图1中的结论不一致,出现了倍频现象。图3是经过低通滤波和三电平中心削波后作的自相关函数,它的最高峰在第二个峰上,读出周期为32,符合图1中的结论,说明是准确的。

图4是传统的倒谱图,在n=0的附近有很高的峰起,它的周期性表现在具有同样周期的冲激上。在0~40之间,存在着两个冲激,峰值相差不大,就很难判断是哪个冲激是我们需要的,这就给基音检测增加了难度。图5是经过低通滤波和三电平中心削波后的自相关的倒谱,它与图4相比较,具有明显的冲激,可以很容易得读出周期32。图5具有较图2,图3,图4更好的检测周期的性能。本文所提出的算法较传统的自相关函数和倒谱分析均有改进之处,并取得了较好的实验结果。

4 总结

该文提出了一种结合自相关函数和倒谱分析的算法,并通过实验证明了它较传统的自相关和倒谱分析的准确性更高,有更好的检测效果。

参考文献:

[1] 胡航.语音信号处理[M].哈尔滨:哈尔滨工业大学出版社,2002.

[2] 姚天任.数字语音处理[M].武汉:华中科技大学出版社,2007.

[3] 杨森斌,陈砚圃,李真.一种改进的自相关函数基音检测算法[J].现代电子技术,2008,272(9):135-137.

[4] 李娟,张雪英.一种改进的抗噪基音检测算法[J].太原理工大学学报,2008,39(2):116-118.

[5] 胡瑛,陈宁,夏旭.一种改进的自相关基音检测算法[J].电子科技,2007(2):25-28.

[6] 付青青,吴爱平.基于Matlab的语音信号自相关基音检测[J].长江大学学报:自然科学版,2006,3(4):99-102.

上一篇:在线考试系统组卷策略分析 下一篇:浅析数据挖掘技术