基于小波变换和自相关函数的基音频率检测算法
扫描二维码
随时随地手机看文章
0 引言
基音周期(Pitch)是指发浊音时声带振动所引起的周期运动的时间间隔,而基音频率是基音周期的倒数。由于基音周期只具有准周期性,所有只能采用短时平均方法估计该周期,这个过程也称为基音检测(Pitch De—tection)。在对说话人确认和辨认研究中,基音频率是一个重要的参数,因此准确检测基音频率有着十分重要的意义。
到目前为止,基音检测的方法主要有短时自相关函数法、平均幅度差函数法、倒谱解卷积法、Hil—be;t—Huang变换法等。但尚未找到一个完善的可以适用于不同语音状况和环境的基音检测算法。近几年,小波分析理论发展迅速。它已经被广泛地应用到信号处理中。这里利用小波变换的滤波特性对信号进行预处理,然后利用自相关函数法检测语音的基音频率,该方法利用小波滤波特性有效剔除了高频共振峰和噪音的影响,估计基音频率准确性高,稳定性好,运算速度较快。实验结果表明,此方法是一种有效的基音频率检测算法。
1 小波变换及其滤波特征
在多分辨分析中,塔式正交分解L。(R)空间:
对ν f∈L (R),设f在Vj上的投影系数为Cj,k,在wj上的投影系数为Dj,k(j=J,J一1,…,一J),于是,f有以下分解式:
在式(2)中,第一和式在小波空间中,它表示信号的细节部分(即高频部分),Dj,k就是对应于小波函数φj,k的小波系数;第二和式在尺度空间中(即低频部分),它反映了信号的本征部分,C-j,k就是对应于尺度函数φ-j,k的尺度系数。
这里语音信号使用的采样频率是11 025 Hz,因此原始语音信号频带为0~5 512.5 Hz,如图1所示,原始语音信号s2d0f占据频带为0~5 512.5 Hz,经小波滤波器组滤波后,Sd23f占据频带0~689 Hz,S争f就是需要的低频信号,因为语音基音频率变化范围从老年男性的50 Hz到儿童和女性的450 Hz,所以这部分的信号将用于估计语音的基音频率。
2 自相关函数估计基音周期
经过小波变换后得到低频语音信号记为:as,用长度为36 ms的矩阵窗对语音信号as进行分帧,记第i帧信号为Fi;定义Fi的自相关函数(ACF)R(k)为:
其中:N是帧Fi的长度;k=0,1,…,N一1;mod是取模运算。
自相关函数在基音频率的整数倍位置上出现峰值,通过检测其峰值的位置就可以提取基音频率值,通常取第一极大值点为基音频率点。如图2所示,图中显示某一帧采样频率fs=11025 Hz语音信号的自相关函数曲线,曲线的第一个峰值点x=74,y=4.342,则可以计算出该帧的基音频率厂fb=fs/74=148.9 Hz。
自相关函数估计语音基音频率一般使用矩形窗,窗长至少大于2个基音周期,语音最小基音频率为60 Hz,即16.7 ms,所以窗长使用36 ms是合适的。当单独使用自相关函数估计基音频率时,易受共振峰和噪音的影响,如图3所示,语音信号在小波变换前的自相关函数曲线不平滑,给检测其峰值点造成困难;图2就是语音信号在小波变换后的自相关函数曲线,曲线平滑,容易检测其峰值点。
[!--empirenews.page--]
3 算法流程图
算法过程如下:
(1)采集语音信号。人的语音信号频率都在6 kHz以内,根据Nyqtfist采样定理,fs=11 025 Hz。把采集得到的语音信号记为X;
(2)基音频率变化范围大,从老年男性的50 Hz到儿童和女性的450 Hz。因此使用小波变换进行滤波时,要把50~500 Hz的语音信号加强,把高于500 Hz的语音信号减弱,以去除共振峰和高频噪音的影响;
(3)同一个人在不同情态下发音的基音周期也不同,加之基音周期还受单词发音音调的影响,因此基音检测实际上是估计短时语音的平均周期。采用L点的矩形窗来截取信号,进行短时分析,一般取窗口的长度为36 ms,帧重叠18 ms;
(4)利用自相关函数估计第i帧语音信号的基音
周期fpi。若fpi的频率范围超出了[60 Hz,500 Hz],则判断该帧为清音帧,声带不振动,fpi,置为O Hz。
算法流程图如图4所示:
4 实 验
首先通过一个真实的语音数据来说明第3节算法的有效性,然后将其与传统的自相关函数法的结果进行比较。
在图5中,图5(a)为作者(男性)读“马到成功”的语音信号波形,fs=1l 025 Hz,用普通麦克风在自然环境下录制,时长为2 s。选择db4小波基,对原始语音信号进行二进小波变换,取小波变换后第三层的低频部分信号,该低频信号如图5(b)所示。用帧长为36 ms的矩形窗把图5(a)中原始信号分成165帧,并用自相关函数估计每一帧的基音频率,基音频率的变化曲线如图5(c)所示。同样地把图5(b)中经小波变换后所得的低频语音信号分成165帧,然后用自相关函数估计每一帧的基音频率,基音频率的变化曲线如图5(d)所示。[!--empirenews.page--]
从图5(c)可以看到,用自相关函数法在A,B,C三帧判断错误,使基音频率轨迹估计值偏离了正常的轨迹(通常偏离到正常值的2倍或1/2倍),这就是基音轨迹的“野点”。图5(d)是文中提出的算法的计算结果,很好地去除了这些野点,提高了检测的准确率。
5 结 语
自相关函数法是一种简单,计算速度快的基音频率估计算法。但该方法易受噪音和共振峰的影响,为了提高自相关函数法检测基音频率的准确性,在此使用小波变换对语音信号进行预处理,一定程度上消除了高频噪音和共振峰的影响,能够准确反映语音段中基音频率的变化,得到比较真实的基音频率曲线。
传统的小波变换的基频检测,通过对语音信号进行3个连续尺度上的小波变换,比较相邻两尺度下的极值点位置是否一致,来确定声门闭合时刻,进而求得基音频率。由于需要进行多次小波变换及极值搜索和判定,计算量大,实时性不好。这里只需要在固定的尺度下做1次小波变换,然后用自相关函数法检测基音频率,计算量小,实时性较好。