aihot  2017-04-27 08:03:28  OpenCV |   查看评论   

语音信号处理之(二)基音周期估计(Pitch Detection) 

 

1.2、基音周期估计的现有方法

      到目前为止,基音检测的方法大致上可以分为三类:

1)时域估计法,直接由语音波形来估计基音周期,常见的有:自相关法、并行处理法、平均幅度差法、数据减少法等;

2)变换法,它是一种将语音信号变换到频域或者时域来估计基音周期的方法,首先利用同态分析方法将声道的影响消除,得到属于激励部分的信息,然后求取基音周期,最常用的就是倒谱法,这种方法的缺点就是比较复杂,但是基音估计的效果却很好;

3)混合法,先提取信号声道模型参数,然后利用它对信号进行滤波,得到音源序列,最后再利用自相关法或者平均幅度差法求得基因音周期。

 

三、基于自相关的基音周期检测

3.1、自相关函数

      能量有限的语音信号x(n)的短时自相关函数定义为:

语音信号处理之(二)基音周期估计(Pitch Detection)

       此公式表示一个信号和延迟m点后该信号本身的相似性。如果信号x(n)具有周期性,那么它的自相关函数也具有周期性,而且周期与信号x(n)的周期性相同。自相关函数提供了一种获取周期信号周期的方法。在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。

 

3.2、短时自相关函数法

        语音信号是非稳态信号它的特征是随时间变化的,但在一个很短的时间段内可以认为具有相对稳定的特征即短时平稳性。因此语音具有短时自相关性。这个时间段约5ms-50ms。为其统计特性和频谱特性都是对短时段而言的。这使得要对语音信号作数字处理必须先按短时段对语音信号分帧。这样每一帧信号都具有短时平稳性从而进行短时相关分析。

      能量有限的语音信号s(n)的短时自相关函数定义为:

语音信号处理之(二)基音周期估计(Pitch Detection)


       一般要求一帧至少包含2个以上的周期。一般,基频最低50Hz,故周期最长为20ms。而且相邻帧之间要有足够的重叠。具体应用时,窗口长度根据采样率确定帧长。

语音信号处理之(二)基音周期估计(Pitch Detection)

       该帧的自相关函数中,除去第一个最大值后(0处),最大值Kmax= 114,那么该帧对应的基频16kHz/114=140Hz。

 

四、基于自相关的基音周期检测算法实现

       这个实现课程要求是用C++来实现的。然后为了画波形,我用到了我比较熟悉的OpenCVOpenCV画出来的波形还是不错的,而且如果是动态的波形平移,挺好看的,就像心电图那么动人。

      实验采用一段男声读“播放”两个字的声音wav文件,其为16KHz采样率,16bit量化。整段语音长656.7ms,节点共10508个。   

语音信号处理之(二)基音周期估计(Pitch Detection)

      我们先要确定帧长。下面分别是帧长200,320和400个节点时所包含的周期数。200时只有一个周期,而400有三个周期,所以我们采用400的帧长。

语音信号处理之(二)基音周期估计(Pitch Detection)

     通过计算短时能量区分voice和unvoice。语音信号{x(n)}的某帧信号的短时平均能量En的定义为:

语音信号处理之(二)基音周期估计(Pitch Detection)

 1/10    1 2 3 4 5 6 下一页 尾页
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自语音信号处理之(二)基音周期估计(Pitch Detection)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]