当前位置: 首页 > 范文大全 > 公文范文 >

基于ACF的基音检测改进算法

时间:2022-03-17 10:06:57  浏览次数:

摘 要: 自相关函数法是基音周期提取中一种简单而有效的检测算法,针对传统的自相关函数法在低信噪比环境下鲁棒性较差的问题,提出一种改进的基音周期提取算法。该算法通过谱减法对语音信号降噪,随后进行端点检测,并提取元音的主体,在自相关函数的基础上进行改进,对元音主体及过渡区间进行基音检测。实验结果表明,该算法具有较高的准确率,与传统自相关检测算法相比,鲁棒性明显提高。

关键词: 基音周期; 自相关函数; 谱减法; 基音检测; 语音处理

中图分类号: TN912.3⁃34 文献标识码: A 文章编号: 1004⁃373X(2017)19⁃0071⁃04

Improved pitch detection algorithm based on ACF

HAN Fang, WANG Xuechun, JIN Zongxin

(School of Information Engineering, Huanghe Science & Technology College, Zhengzhou 450063, China)

Abstract: Autocorrelation function (ACF) method is a simple and effective detection algorithm in pitch periodic extraction. Aiming at the poor robustness of the traditional ACF method in a low SNR environment, an improved pitch periodic extraction algorithm is proposed. In this algorithm, the spectral subtraction method is used to reduce noise in speech signals, endpoint detection is performed, main vowels are extracted and improved on the basis of the ACF, and pitch detection is performed for main vowels and the transition zone. The experimental results show that the algorithm has a higher accuracy rate, and the robustness is improved significantly in comparison with the traditional autocorrelation detection algorithm.

Keywords: pitch period; autocorrelation function; spectral subtraction; pitch detection; speech processing

0 引 言

基音周期是語音信号处理的一个重要参数,准确可靠地对语音信号进行估计并提取基音周期,是语音信号处理的一个重要环节[1⁃2]。基音检测广泛地应用于语音分析合成、语音压缩编码、语音识别以及语音分段等方面[3],研究人员们已经提出了许多基音检测算法, 例如自相关函数法(Autocorrelation Function,ACF)[4]、平均幅度差函数法(Average Magnitude Difference Function, AMDF)[5]、小波变换法[6⁃7]、倒谱法[8]等。理论上,这些算法都可以精确地提取无噪声干扰的语音基音周期。但通常得到的语音信号含有各种各样的背景噪声 ,当信噪比较低时,检测的准确率就不够理想,所以有必要找到一种低信噪比下鲁棒性较好的基音周期检测算法。

自相关函数是适用于低信噪比情况下的一种基音周期提取算法[9⁃10],利用自相关函数进行基音提取时,过渡区间获得的基音周期估算值往往是实际基音周期值的整数倍或半值,过渡区内提取基音参数时,也常会出现野点,当野点个数较多或幅值较大时,用中值滤波和线性平滑也很难来处理这些问题。文献[11]中提出利用小波变换对语音信号进行预处理,与自相关函数相结合,在一定程度上消除了高频噪声和共振峰的影响,但是在低信噪比情况下效果非常不理想。文献[12]中提出将谱减法和自相关函数法相结合,利用谱减法对语音信号进行消噪,然后再提取基音周期,在一定程度上改善了低信噪比下基音检测的准确率,但是仍然不够理想。

基于以上文献对基音周期检测算法的分析,本文基于音节组成的原理,在自相关函数算法的基础上先提取元音主体的基音周期,然后在元音主体基音周期的基础上向前和向后过渡区间延伸基音的提取,把元音主体的基音周期值作为基准,向两端过渡区间扩展搜索和寻找最接近于元音主体基音的基音周期值,这样可以减少发生基音周期估算值是实际基音周期值的整数倍或半值的现象。为了提高低信噪比下基音检测的准确率,本文将谱减法与提出的改进自相关函数法相结合,首先对带噪语音进行降噪,再将增强后的语音作为基音检测的待处理语音进行加窗分帧处理,并对语音进行端点检测和元音主体检测,通过数字滤波和再次加窗分帧,计算元音主体延伸区间及长度,并对元音主体和过渡区间进行基音检测,最后通过平滑滤波处理。仿真结果表明,该方法在一定程度上减小了基音提取误差,并在不同的信噪比下取得了满意效果。

1 谱减法

在基本谱减法[13]中,假设语音信号为[x(n)],对[x(n)]进行加窗分帧处理,得到第[i]帧语音信号[xi(m)],对每一帧语音信号[xi(m)]进行离散傅里叶变换(Discrete Fourier Transform,DFT)后得到:

[Xi(k)=m=0N-1xi(m)expj2πmkN,k=0,1,2,…,N-1] (1)

式中:[xi(m)]为语音信号[x(n)]加窗分帧后第[i]帧语音信号,每帧帧长为[N。]

然后对[Xi(k)]求出每个分量的幅值和相角,幅值和相角分别为[Xi(k)]和[Xiangle(k)=arctanImXi(k)ReXi(k)],在谱减法中将幅值和相角保存。通过已知的前导无话段时长为IS,对应的帧数为NIS,求出该噪声段平均能量值[D(k)=1NISi=1NISXi(k)2]。谱减算法为:

[X(k)2=Xi(k)2-a×D(k),Xi(k)2≥a×D(k)b×D(k),Xi(k)2

谱减法的原理图如图1所示。

2 自相关函数法

短时自相关函数为[Ri(k)=m=1N-mxi(m)xi(m+k)],其中下标[i]表示第[i]帧,每帧的帧长为[N,k]是时间的延迟量,[xi(m)]为语音信号序列[x(n)]加窗分帧处理后得到的第[i]帧语音信号。短时自相关函数是获取基音周期信号的一种方法,具有以下重要性质:

(1) 如果[xi(m)]是周期信号,周期是[P,]则[Ri(k)]也是周期信号,且周期相同,则[Ri(R)=Ri(R+P)]。

(2) 当[k=0]时,短时自相关函数具有最大值,在延迟量为0,[±P,][±2P,]…时,周期信号的自相关函数也达到最大值。

(3) 短时自相关函数是偶函数,[Ri(k)=Ri(-k)]。

利用自相关函数这些性质进行基音检测,通过原始信号和延迟后的信号之间的类似性比较确定基音周期[14]。如果延迟量等于基音周期,原始信号和延迟后的信号具有最大类似性。用短时自相关函数检测基音时,也常用归一化自相关函数[ri(k)=Ri(k)Ri(0)]表示,当[k=0]时,[Ri(0)]为最大值。

3 算法提出

3.1 算法基本原理

设带噪语音信号[y(n)]由语音信号[s(n)]和噪声[v(n)]组成,语音模型公式为:

[y(n)=s(n)+v(n)] (3)

对式(3)两边进行傅里叶变换,得到[Y(k)=][X(k)+N(k),]对噪声谱[N(k)]进行噪声估计,表示为:

[N(jw)=EN(jw)≅N(jw)=1Ki=0K-1Ni(jw)] (4)

对纯净语音幅度谱进行估计,表示为:

[X(k)=Y(k)-N(k),Y(k)-N(k)≥00,Y(k)-N(k)<0] (5)

把谱减前[θy(ejω)]的相位直接用到谱减后信号中,对其进行频谱估计,表示为:

[X(ejω)=X(ejω)ejθy(ejω)→x(n)=IFFTX(ejω)] (6)

利用自相关函数对元音主体提取基音周期,一般元音主体的确定是通过能熵比值较大的部分来定的,但是各个音节的能熵比值都不一样,很难设定一个固定的值,即使自适应地调整阈值,非元音主体的成分也很有可能包含进去,再加上元音主体本身也不完全是稳态信号,所以利用自相关函数对语音的元音主体提取基音周期進行优化。在元音主体中每一帧数据计算自相关函数时,在[Pmin~Pmax]范围内取三个峰值和它们对应的三个延迟量,将这三个延迟量作为基音周期的候选值存放于数据组,且只保存峰值的位置。

3.2 算法流程图

本文算法具体步骤如下:

(1) 用传统谱减法对语音进行降噪,得到语音信号[x(n),]然后进行加窗分帧,得到第[i]帧语音信号[xi(n)。]

(2) 利用能熵比法对加窗分帧后的序列[xi(n)]进行端点检测,同时利用能熵比法提取元音主体。能熵比算法中取两个阈值[T1,T2,]其中[T1]用于判断语音的端点,[T2=Emax*r2,]大于[T2]值的部分提取元音主体,[Emax]是每个有话段中能熵比的最大值,[r2]是比例系数。

(3) 对降噪后的信号[x(n)]进行带通滤波,滤波后的序列为[x(n)],对[x(n)]进行加窗分帧处理得到第[i]帧语音信号[xi(n)]。

(4) 对元音主体属于哪个有话段进行检测。一个有话段只有一个元音主体;一个有话段有多个元音主体,本元音主体是第一个元音主体;在一个有话段中有多个元音主体,本元音主体是中间元音主体;在一个有话段中有多个元音主体,本元音主体是最后的元音主体。分四种情况计算出每个元音主体向过渡区间延伸求取基音的区间范围和延伸长度。

(5) 利用自相关函数提取元音主体的基音周期,对每一帧数据计算自相关函数时,取三个峰值作为基音周期的候选值。

(6) 以元音主体基音周期为基准,延伸向前向后区域进行基音检测,仍然使用元音主体检测的方法,对延伸区间的每一帧数据通过计算自相关函数求出三个峰值对应的位置,作为基音的候选值。

算法流程图如图2所示。

4 实验仿真

4.1 仿真结果

本实验所采用的语音样本是在实验室安静环境下录制完成的,语音内容为“妈妈,好吗,上马,骂人”,采样频率为8 000 Hz,分辨率为16 b。将语音信号分成若干帧,每帧长25 ms,帧移10 ms。利用汉明窗进行加窗处理,在纯净语音中加入SNR=5 dB的随机噪声,采用自相关函数法、文献[11]提出的小波⁃自相关函数法、文献[12]提出的谱减⁃自相关函数法以及本文提出的方法进行对比仿真实验。实验结果如图3~图6所示。

从图3中可以看出自相关法基音检测在非有话段会提取假的基音频率,识别出错。图4~图6通过自相关法和其他算法的结合,非有话段几乎不产生干扰基音频率,基本能正确提取基音周期,但从图4和图5中也可以看出仍然存在倍频和半值现象。图6为SNR=5 dB的本文算法基音频率波形图和对应的语谱图。从图6(a)中可以看出,通过减噪后再利用改进自相关函数法进行基音周期提取,能够对有话段进行准确提取;从图6(b)中可以看出提取的基音频率能够和实际基音频率很好地重合。

4.2 实验结果分析

为了验证本文方法的性能,在SNR=5 dB时,用ACF方法、文献[11⁃12]提出的方法以及本文提出算法对它们的基音检测性能进行对比分析。实验中基音检测性能的好坏用检测的正确率进行衡量。定义基频正确率为:

[检测正确率=正确帧数处理总帧数] (7)

以ACF为基础,人工标记的方法设定参照的基音频率,如果实际计算的基音频率和参照的基音频率值误差在10 Hz之内,则认为检测的帧都是正确的,结果如表1所示。

从图7可以看出,文献[11⁃12]提出的小波⁃自相关法和谱减⁃自相关算法在高信噪比下较ACF方法有了较大提高,但是随着信噪比的增大,基音检测的正确率有了一定的提高,但是在低信噪比下这两种算法均不能很好地提取基音周期,效果不理想,而本文提出的基于ACF的改进算法在相同信噪比下较其他三种算法,其基音检测的正确率有明显的提高,在高信噪比下(SNR=20 dB)准确率达到97%,即使在低信噪比下(SNR=-5 dB)准确率也达到了70%。当信噪为0 dB时,基音检测的正确率也达到了94%,从上述实验分析可知,本文方法在SNR[≥]0 dB时,基音检测都能得到很好的效果,说明本文建议的基音检测算法具有较强的抗噪性。

虽然基音检测算法好坏的指标由检测正确率来判断,但是在实际应用中还要考虑到算法运行的时间问题。图8是自相关方法、小波⁃自相关方法、谱减⁃自相关方法和本文算法的运行时间对比图,从图8中可以看出,自相关算法检测用时最短,谱减⁃自相关方法次之,本文算法运用时间在谱减⁃自相关方法和小波⁃自相关方法之间,从实际应用领域的角度来说,本文方法还需要进一步减少运行时间。

5 结 论

本文提出一种改进的自相关函数法,结合谱减法作为预处理对噪声进行降噪,再利用改进的方法进行基音检测。仿真结果表明,该方法在不同的信噪比下能很好地检测出基音周期,在信噪比为0 dB的情况下仍然有很高的检测正确率,对语音信号的基音周期的提取提高了检测精度,也具有很好的鲁棒性。

参考文献

[1] 刘维巍.语音信号基音周期检测算法研究[D].哈尔滨:哈尔滨工程大学,2010.

[2] 李坤,刘加.基于小波变换和线性预测的基音提取[J].计算机工程,2010,36(10):276⁃278.

[3] 赵静,罗兴国,蔡文涛.噪声环境下语音信号的基音检测[J].电声技术,2007,31(3):54⁃56.

[4] KRUBSACK D A, NIEDERJOHN R J. An autocorrelation pitch detector and voicing decision with confidence measures developed for noise⁃corrupted speech [J]. IEEE transactions on signal processing, 1991, 39(2): 319⁃329.

[5] ROSS M, SHAFFER H, COHEN A, et a1. Average magnitude difference function pitch extractor [J]. IEEE transactions on acoustics speech & signal processing, 1974, 22(5): 353⁃362.

[6] CAI R, ZHU Y, SHI S. A modified pitch detection method based on wavelet transform [C]// Proceedings of 2010 International Conference on Multimedia & Information Technology. [S.l.]: IEEE, 2010: 246⁃249.

[7] KADAMBE S, BOUDREAUX?BARTELS G F. Application of the wavelet transform for pitch detection of speech signals [J]. IEEE transactions on information theory, 1992, 38(2): 917⁃924.

[8] AHMADI S, SPANIAS A S. Cepstrum⁃based pitch detection using a new statistical V/UV classification algorithm [J]. IEEE transactions on speech & audio processing, 2002, 7(3): 333⁃338.

[9] 陈小利.含噪语音基音周期检测算法的研究[D].郑州:解放军信息工程大学,2007.

[10] 沈晓东.语音增强技术研究[D].北京:清华大学,2010.

[11] 李鹏飞,张维强,徐晨.基于小波变换和自相关函数的基音频率检测算法[J].现代电子技术,2009,29(32):121⁃123.

[12] 赵振东,胡喜梅,田景峰.基于谱减法的基音检测算法[J].计算机工程与应用,2008,44(5):197⁃198.

[13] 肖全宝,徐晨,宋广为.用于语音识别的基于高谱分辨率的谱减法[J].广西师范大学学报,2006,24(4):26⁃29.

[14] 焦蓓.语音信号的基音检测法研究[D].湘潭:湘潭大学,2013:56⁃62.

推荐访问: 基音 算法 改进 检测 ACF