基于主体-延伸法的基音周期检测改进算法

2022-03-17 11:32佘石豪孟玉茹
西安工程大学学报 2022年1期
关键词:噪声语音信号

牟 莉,佘石豪,孟玉茹

(西安工程大学 计算机科学学院,陕西 西安 710048)

0 引 言

基音周期是现代语音信号处理领域的一个重要参数,准确地提取和估算基音周期,是保证语音信号在人机交流中更有效地产生、传输、存储、获取和应用的一个重要过程[1-2]。基音周期检测在语音识别[3-4]、复杂时频域交换的语音分析与合成[5-6]、低码频率语音编码[7]、噪声环境下的语音识别[8]、听觉障碍的残疾人语言指导[9]等多个领域有着广泛地应用。不同应用领域下的基音周期检测算法会直接影响到语音识别的识别率、合成语音是否真实再现原始语音信号、语音压缩编码的正确率。目前检测基音周期的算法主要有主体-延伸法[10]、自相关函数(autocorrelation function,ACF)法[11]、平均幅度差函数(average magnitude difference function,AMDF)法[12]、倒谱法[13]、小波变换法[14]等。这些算法在无噪环境下提取基音周期比较准确,但是在有噪环境下样点检测错误率明显增加,基音周期估计不够理想,所以寻求一种抗噪能力强,基音检测精度高的算法是语音信号处理的一个重要环节。

主体-延伸法是适用于噪声环境下的一种基音周期检测算法[15],利用主体-延伸法对音调区域的前过渡音和后过渡音的区间内提取一个音调基音估计参数时,会存在估算周期值是其实际周期估计值的整数倍或半值,称为“野点”问题[16]。文献[17]提出利用谱减法对带噪语音信号降噪,结合ACF法去除共振峰的响应,但是噪声会将功率谱中较低的电平段覆盖掉,导致语音信号的时频域分析中出现错误,检测误差随之增加,效果不够理想。文献[18-19]利用小波变换准确检测出基音峰值点,但对于语音信号幅度迅速产生变化时,会直接出现均值下降的情况,基音周期估计的精度也不够理想。

本文基于对音节组成的分析和基音周期检测过程中存在的野点问题,提出了一种改进的基音周期检测算法。实验结果表明:该方法在有噪环境下可以改善基音频率检测,估算的基音频率曲线和实际的基音频率曲线可以较好地重合,减少野点问题,一定程度上增加了基频提取的准确性。

1 算法描述

为了能够准确地提取带噪语音的信号的基音周期参数,首先将带噪语音的信号经小波变换和谱减法相结合进行消噪,语音增强后的信号中存在共振峰及残留干扰噪声,对减噪语音信号进行2次加窗分帧。一方面对多个端点和元音的主体检测,另一方面通过数字带通滤波[20]后更方便进行多窗谱估计[21],得到过减因子并且保留谱减后的幅值,最后平滑处理,消除基音周期检测中的部分野点。具体实现流程如图1所示。

图 1 基音周期检测流程Fig.1 Flow chart of pitch period detection

1.1 小波-谱减法

谱减法降噪后的语音具有明显的音乐噪声[22],并且大大降低了对语音信号的准确性和可懂程度,这是由残留噪声造成的。小波变换以傅里叶分析为基础,实现了时频域局部变换和分析,能将信号在多尺度多分辨率上进行小波分解,从而获取信号中的局部信息。

设带有干扰噪声的语音信号时间序列为α(n),则该信号的附加噪声模型可表示为

α(n)=β(n)+γ(n)

(1)

式中:β(n)为纯净语音信号;γ(n)为加性噪声。

因为语音β(n)和噪声γ(n)这2个参数是独立且互不相关的,所以可以通过快速傅里叶变换(fast Fourier transform,FFT)得到第i帧的语音带噪信号为αi(m),帧数的长度设为N。分别对α(n),β(n),γ(n)进行FFT,得到

(2)

则可以计算出带噪语音信号α(n)的功率谱:

(3)

对其中任何一帧信号αi(m)进行离散傅里叶变换(discrete Fourier transform,DFT)后,得

k=0,1,…,N-1

(4)

传统谱减法实现降噪的主要原因是信号频域帧内的短时功率谱减去噪声谱,但是计算过程中存在残余功率谱,使得在频域上产生很多的尖峰点,不同帧之间有一定程度的重叠。为了有效防止增加处理后的信号的失真程度及其残留的音乐噪声,将小波变换的基函数引入到语音信号的时间序列,通过对小波基函数的平移和延迟、伸缩来实现多尺度的信号分析,分解低频和高频信息,自动调整信号的时域窗和频域窗大小以满足实际语音信号分析的要求。

一段连续信号f(x)的小波变换可表示为

(5)

式中:φ(x)为时频域上局部性质较好的小波函数。

假设存在一个实数对(a1,b2),且参数a1>0表示一个尺度因子,参数b2表示一个位移因子。当尺度因子和位移因子存在小波函数当中时,小波的基函数φa1,b2(x)可表示为

(6)

式中:φ(x)为母小波,是经过移位和伸缩变换后所产生的一簇函数。

分析可知,小波会对时间序列进行分解,低频中丢失的信息由高频捕获。低频信号接收器的时间分辨率相对较低而频率信号分辨率相对较高;高频信号接入点处的频率分辨率相对较低而时间分辨率相对较高。最后重构了不同尺度的小波系数,使一些语音尖峰点被消除,从而获得一些去噪后的有用语音信号。

1.2 端点和元音主体检测

为了提高基因检测的可靠性,提出端点和元音主体检测对第1次加窗分帧后的语音信号进行预处理。由于语音信号的头、尾部并不具有声带振动那样的周期性,所以采用能熵比法[23]进行端点和元音主体检测。设第1次加窗分帧后的语音信号在频域中的短时能量可表示为

(7)

式中:L为帧长;i为第i帧;yi(n)为分帧处理后得到的第i帧语音信号。

根据语音帧的短时能量,可以确定一个较低的阈值,然后将该阈值和能熵比值比较,把大于能熵比值的部分作为有话段的端点候选值,端点检测完成后再进一步判断有话段的元音主体。把端点候选值中能熵比较大的部分作为元音主体。

1.3 多窗谱估计

带噪语音经过第2次加窗分帧后,首先对同一信号序列求出直接谱[24],然后多个数据窗选取相互正交后求其平均值,最后通过计算得到直接谱估计和较小的谱估计方差[25]。由于过渡区间内仍然存在一部分元音主体的共振峰和残留噪声影响,所以要将功率谱密度估计值在相邻两帧之间进行平滑处理,然后平均得到减噪后的语音信号。

在相邻帧之间对多窗谱功率谱密度估计值进行平滑处理后求得的平滑功率谱密度函数Py(k,i)为

(8)

式中:i、j为帧数;k为谱线数;M为第i帧前后各取M帧。

噪声的平均功率谱密度值Pn(k)为

(9)

式中:S为噪声占有的帧数。

由式(8)、(9)可知,利用谱减关系可以计算增益因子:

(10)

式中:λ为过减因子;η为增益补偿因子。过减因子λ和增益补偿因子η只是一个参考数值,具体取多大值是和噪声情况有关。若信噪比较大,λ可取小一点,η可取稍大一点;若信噪比较小,λ就得取大一点,η取小一点。消噪后的语音有少量的音乐噪声,适当选择过减因子λ的数值可以有效去除音乐噪声,但过大的λ值会引起语音信号失真。

1.4 基音周期检测

主体-延伸法是基于音节的组成原理[26],先对元音主体的基音进行检测,再延伸到前后过渡区间检测基音。以元音主体基音周期值为基准,向两端过渡区间搜寻最接近于元音主体基音的周期值,这样就能减少发生野点的现象。

元音主体的基音检测是从用滤波后的每一帧分帧数据的自相关函数范围内寻找最大值对应基音周期,但元音主体不完全是稳态信号且会有野点发生,所以需要选用能熵比相对大的部分。

一般情况下,对过渡区间的基音检测时,此方法会将少部分辅音和尾音划分到有话音段内,而声带对这部分辅音和尾音并没有振动,同时其中也不存在相应的基音。所以针对这个问题,设置c1和c22个阈值参数,采样周期取值范围为10~15,以这个为约束要求,在相邻两帧或多帧之间的基音周期差值不大于c1和c2,即基因周期p在i与(i±1)两帧之间要满足

|P(i)-P(i+1|≤c

(11)

由于在过渡区间进行基音检测时,在(i+1)点时有可能寻找不到满足式(11)的数值,此时只能相隔一帧,甚至相隔多帧去寻找,在多帧之间要满足

|P(i)-P(i+j)|≤c2,j≥2且j∈N

(12)

设置一个阈值参数T1,比例系数r2,用来判断语音信号在延伸区间内的端点,可表示为

T1=Emax×r2

(13)

式中:Emax为过渡区间内计算求得的能熵比的最大值。分析可知,在延伸区间的头部、中部和尾部的有话音段中引入了新的阈值参数T1后,解决了多帧信号以元音主体基音周期为基准,向前后延伸区域判断端点,检测其基音周期长短。

1.5 平滑滤波处理野点

在基音周期的检测中,也会产生检测错误,使求得的基音周期轨迹中存在野点。为了去除基音周期检测后的野点,可以采用中值滤波[27]和线性平滑算法[28-29]相结合的方法来解决问题。

首先设置一个滑动窗,将滑动窗的中心移动到输入信号处,得到中值滤波器的输出值,此值是滑动窗内输入信号样点的中值。然后结合线性平滑算法,用滑动窗进行线性滤波处理。

分析可知,中值平滑既可以有效地去除少量的野点,又不会破坏数据在2个平滑段之间的阶跃性变化。线性平滑在纠正输入信号中不平滑处样点值的同时,也使附近各样点的值得到了修改。

2 实验仿真

本次采样的语音数据是在无噪声环境下进行录制和完成的,录入的内容为“您好,西安,工程,大学”,设置的采样频率为8 kHz。先把信号截取、划分成若干帧,每帧的长度设置为25 ms,位移为10 ms,然后使用汉明窗处理。

2.1 基音周期检测仿真

将信噪比为5 dB的高斯白噪声加在一段纯净语音信号中,然后采用Matlab进行对比仿真实验。基音周期检测采用的方法分别是ACF法、主体-延伸法、小波-自相关法、谱减-自相关法以及本文提出的改进方法。传统基音周期检测的实验结果如图2所示。

(a) ACF法的基音周期检测

从图2(a)可以看出,ACF基音周期检测时出现倍频和半值现象比较明显,在无话音段提取的基音频率存在误差,识别出现错误;图2(c)、(d)通过ACF和其他基音周期检测算法结合,结果显示非有话音段几乎不产生干扰基音频率,基音周期提取的准确性大幅提高,但是依然可以清楚地看到出现野点的数目。图2(b)通过主体-延伸法检测后使得一部分峰值曲线变得平滑,野点出现的情况减少,但它本身还是有局限性,比如有些语音信号还是不能正确地检出其基音频率。

图3为本文改进算法的基音周期和基音频率波形图。从图3可以看出,估算出的基音频率和实际基音频率能很好地重合叠加在一起,并且周期曲线更平滑,出现野点的情况更少。所以改进的主体-延伸法进行基音周期提取后可以对有话音段进行准确提取。

图 3 改进算法的基音周期检测结果Fig.3 Pitch period detection result of improved algorithm

2.1.1 性能指标

改进后的基音周期检测算法性能的好坏由样点率和野点数目共同决定。样点率越大,野点数目越少,表明该方法的性能越好;样点率越小,野点数目越多,表明该方法的性能越差。样点率为有话段样点数目与样点总数目的比值。由于不同信号帧之间具有非稳定性,使得基音能量传递过程中受到少部分噪声干扰,非有话段中产生的样点数也会影响基音周期样点率水平的高低。

2.1.2 实验结果分析

本文提出的改进算法通过实验仿真后,将以上各种基音周期检测算法出现的有话段样点数目及野点数目进行对比分析。当信噪比为5 dB时,对比结果如表1所示。

表 1 对比结果

从表1可以看出,本文改进的方法有较好的表现,在有噪声的环境下,提取到的有话段的样点数目高于其他检测方法,并且产生的野点数目最少,再分别计算各个检测方法的样点率:ACF法为49%,主体-延伸法为82%,小波-ACF法为76%,谱减-ACF法为79%,本文改进的方法为87%。通过对主体-延伸法的改进及野点的平滑滤波处理,获得了较高的有话段样点率,进一步提高了基音检测的准确率。

2.2 2次加窗分帧消融仿真

加窗分帧操作是语音信号提取特征的预处理阶段,为了验证2次加窗分帧对基音周期检测的影响,取小波-谱减法消噪后的语音进行消融实验,对ACF法、主体-延伸法、WT-ACF法、谱减-ACF法以及本文改进方法的有话段样点数目、野点数目、样点率进行比较。缺少第1次、第2次加窗分帧的实验结果如表2、3所示。

表 2 缺少第1次加窗分帧

表 3 缺少第2次加窗分帧

从表2和表3可以看出,缺少了第1次加窗分帧处理后,有话段样点数目、样点率都呈下降的趋势,野点数目无明显变化;缺少了第2次加窗分帧处理后,有话段样点数目、样点率无明显变化,野点数目呈上升的趋势。

分析可知,第1次加窗分帧的目的是进行端点检测和元音主体的检测;而第2次加窗分帧的目的是进行基音检测,减少共振峰的影响。

2.3 鲁棒性效果仿真

为了进一步检验鲁棒性和抗噪能力,分别加入信噪比为0dB、5dB、10dB、15dB的高斯白噪声,对ACF法、主体-延伸法、WT-ACF法、谱减-ACF法以及本文改进方法的基音周期检测样点率进行比较,如表4所示。

表 4 不同信噪比下样点率对比

从表4可以看出,在5种不同的信噪比环境下,WT-ACF法和谱减-ACF法在高信噪比下较ACF法有较大地提高,在低信噪比下这3种算法检测的样点率较低,效果不理想。在相同信噪比的情况下,本文改进方法与其他4种算法相比较,其基音周期检测样点率有明显地提高,信噪比为15 dB时,样点率达到92.0%,信噪比为0 dB时,基音周期检测样点率也在90%以上。

从表4分析可知,当信噪比大于0 dB时,本文提出的改进方法进行基音周期检测都能得到很好的效果,说明本文建议的基音检测算法具有较强的抗噪性、更高的准确性,并且鲁棒性很好。

由上述实验仿真结果对比可知,本文提出的改进方法对带噪语音信号提取基音周期的效果更显著,有效抑制了加性噪声产生的残留噪声、共振峰以及野点等问题。同时,改进的方法进行基音周期检测完成后通过平滑滤波处理,对语音信号波形的破坏程度较小,稳定性较高,提高了语音信号可懂度和有用话段基音提取的清晰度。

3 结 语

本文结合小波变换和谱减法对带噪语音信号进行消噪,再利用改进的主体-延伸法进行基音周期和基音频率估计。仿真结果表明:本文改进的方法效果更明显,对抑制共振峰的产生和消除音乐噪声效果较好,提高了基音周期检测的精确度,同时使得检测过程中产生的野点数目大幅减少,得到的频率曲线平滑程度较高,鲁棒性较好。但是在算法时间复杂度方面还需要进一步优化。

猜你喜欢
噪声语音信号
“白噪声”助眠,是科学还是忽悠?
微信语音恐惧症
基于声类比的仿生圆柱壳流噪声特性研究
完形填空二则
魔力语音
Magic Phonetics魔力语音
对方正在输入……
要减少暴露在噪声中吗?
信号
高处信号强