陈莹莹 简 磊
(四川大学锦江学院电气与电子信息工程学院 四川 彭山 620860)
基于最大熵谱估计和时频特性的语音端点检测
陈莹莹 简 磊
(四川大学锦江学院电气与电子信息工程学院 四川 彭山 620860)
语音端点检测对于构建实际语音识别系统具有重要的意义。为了提升在低信噪比条件下语音端点检测算法的性能,提出一种基于最大熵谱和时频特性的端点检测算法。对分帧后的语音信号通过最大熵估算出功率谱,并根据带噪语音信号时频域上的特性进行特征捕捉,从而进行端点检测。实验结果表明,此方法在较低的信噪比下(-9~0 dB)能够比较准确地捕捉语音信号的特征,明显地提高了端点检测的准确性。
端点检测 最大熵谱估计 时频特性 信噪比
语音信号端点检测技术是语音处理中一个重要的前端处理环节。相对有效的端点检测技术不仅能减少语音识别系统中的数据采集量,大大降低处理时间,还能去除静音段或噪声段的干扰,使语音识别系统的性能得以提升。
实际的端点检测的目的是从带噪语音中对语音信号进行检测,因此大大提高了检测的难度,目前的端点检测最常用的方法比如[1]:短时过零率、短时能量、双门限法、基于自相关函数的检测,此类方法原理简单、运算量小,当信噪较高的时候性能良好,但是信噪比较低时检测性能大大降低。随着技术发展,近年来又出现了频带方差[2]、倒谱系数[3]、小波[4]等方法,这些方法性能上有了很大改善,但是容易受到噪声的影响,强噪声环境下检测效果仍然不理想。
熵代表一种不确定的信息。不确定的信息越多,熵值就越大,而且语音的熵和噪声的熵存在很大区别。Shen[5]等将谱熵引入到语音信号端点检测中,由于语音信号存在共振峰结构的特点,且归一化谱概率密度函数分布不均匀,所以语音信号的谱熵值与噪声的谱熵相比一般较低,与噪音信号相比在统计学概率上有区别。由于谱熵值与能量大小无关,所以谱熵法在带噪环境下检测效果优于其他算法。目前出现了许多基于谱熵的端点检测算法[6-7],信噪比在0 dB以上检测效果良好,为了进一步提高在信噪比较低(0 dB以下)的检测准确性,提出了一种改进的基于最大熵谱估计的端点检测算法。通过最大熵法求出每帧信号的功率谱分布,并结合改进的语谱图分析得到基于短时功率谱的新特征参数。最大熵谱估计是一种以数据模型为基础的现代谱估计技术。该算法具有短时性,对采样点数要求较低,可以用来分析语音的短时特性,与短时FFT谱相比,短时最大熵谱的谱线明显平滑,分辨率也大大提高了,可以从低信噪比下提取出有用信号。
1.1 谱熵法的介绍
基于谱熵的语音端点检测方法的思路是利用检测谱的分布程度来实现语音端点检测的目的。为了提高检测效果,语音信息谱熵采用短时功率谱来计算,实现了对语音段和噪声段的区分。下面是对谱熵的定义的介绍。
设语音信号时域波形为x(i),加窗分帧后的第i帧语音信号为xn(m),FFT变换为Xn(k),k表示为第k条谱线。该语音帧的短时能量为:
(1)
某一谱线k的能量谱为:
(2)
则每个频率分量的归一化谱概率密度函数为:
(3)
该语音帧的短时谱熵为:
(4)
检测方法为:
(1) 对语音信号进行分帧加窗处理,进行FFT变换。
(2) 得到每帧的谱能量值。
(3) 计算得到每帧语音信号的概率密度函数的大小。
(4) 经过计算得到每帧语音信号的谱熵值。
(5) 通过设置判决门限,利用各帧的谱熵值最终实现语音端点的检测。
从谱熵法的算法推导过程和检测思路可以看出,谱熵法检测算法重点在于对语音信号的功率谱估计。功率谱估计的传统方法是通过对信号进行傅里叶变换的方法来实现的,傅里叶变换有比较成熟物理基础,实现起来较容易,所以在功率谱估计方面有很大的用途。但是由于传统方法只有当要研究的数据较长也就是采样点多的时候,功率谱估计精度才比较高。但是这样处理数据的工作量增加了,而且在研究短信号或者瞬时信号时性能降低。传统的功率谱估计方法进行运算时还必须要引入窗函数,假设将数据窗以外的数据全部设为零,就降低了功率谱分辨率,强信号的主瓣部分淹没了弱信号的主瓣部分等现象,当处理的数据很短的时候这种影响就变得更加严重[6]。
正是在这一背景下Burg于1967年提出了以数据模型为基础的最大熵谱估计方法,该算法根据少量的采样数据便可获得高频谱分辨率的功率谱估计。所以比较适合分析短时信号,比如包含128个采样点的一帧语音信号。最大熵方法,把关于过程的自相关函数无限外推,大大提高了估计得到的功率谱分辨率,所以与经典的方法相比,最大熵方法在对功率谱的质量要求较高时,弥补了传统方法的不足。
1.2 最大熵谱估计算法描述
通过最大熵谱方法进行功率谱估计的基本思路[8]:对于已知有限延迟点上的自相关函数值保持不变;对于未知延迟点自相关函数,不进行其他任何假设,基于最大熵准则,利用已知的有限数据用无限外推法的方法求得,从而估计出被测信号的功率谱密度。
首先熵的定义为[9]:
(5)
可见熵是消息源发出每个消息的平均信息量,当随机变量为对于高斯分布的时候,布卡乔夫证明了在信息熵和自协方差矩阵间存在着以下关系:
(6)
当时间序列为零均值时(当均值不为零,可以用时间序列减去均值的方法进行处理),熵和自相关函数之间存在关系:
(7)
当过程为无限长时,用熵率作为信息的度量如下所示:
(8)
时间序列功率谱密度和熵率存在着如下关系:
(9)
其中:离散的时间序列频率为[-fc,fc]。
离散的时间序列的相关函数为:
(10)
离散的时间序列的功率谱可表示为:
(11)
(12)
对于Burg递推算法,它的主要思想是只从研究的离散时间序列本身出发,与最大熵保持一致的是对延拓的数据部分不进行任何先验假设,所以得到了广泛应用。Burg算法首先利用前向预测误差功率和后向预测误差功率两者总均方差之和为最小的方法来求解得到反射系数,从而计算出预测误差滤波器系数。
通过Burg法计算最大熵功率谱主要包括以下几个步骤[10]:
(1) 对离散时间序列进行中心化处理,保证离散时间序列x(n)的均值不为零,如为零,则先将x(n)去均值。
(3) 通过相关计算得到反射系数km。
(6) 计算滤波器输出:
fm(n)=fm-1(n)+kmgm-1(n-1)
gm(n)=gm-1(n-1)+kmfm-1(n)
(7) 令M=M+1,并重复步骤(3)至步骤(6),直到预测误差功率不再明显减小。
1.3 最大熵谱估计阶数的选择
预测误差滤波器阶数的选择在最大熵谱估计过程中很重要,所以必须要正确选择模型的阶数。假设模型阶数为M,采样序列长度为N,如果选择的M值太小,通过最大熵方法估计得到的离散时间序列的功率谱会过度的平滑,分辨率较低,从而出现被研究信号中最容易预测,变化最缓慢的频点的峰值。反之,如果M太大,会使拟合产生急剧的变化,得到的谱估计中包含虚假的细节部分,降低谱估计的准确性。
语音的发音过程中经过的器官之一声道通常都是处不稳定状态的,所以得到了时变的共振峰特性。但是与振动过程相比,这个时变过程比较缓慢,在研究过程中可以假设它具有短时平稳性,每一时刻的频谱可以用这时刻附近的一段短时语音信号得到,比如12 ms的时间段。连续地对语音信号进行频谱分析可以得到关于语音的一种二维图谱,在图中时间为横坐标,频率为纵坐标,对应时刻和对应频率的信号能量密度用每像素的灰度值大小表示,能量越大颜色越深,能量越小颜色越浅。通过这种方法得到时频图为语谱图(Spectrogam)[11]。很多与语音特性有关的信息包含在语谱图中,并且这种时频图结合了频谱图和时域图的特点,明显地显示出语音动态的频谱,即随时间变化的频谱特性,被视为可视语言的时频图在语音分析中有重要实用价值。对于发音器官,任一时刻共振峰特征、基音频率、是否清音和爆破音等参数都可以从语谱图上得到。总之,在语音识别、合成及编码中语谱分析具有很重要的意义。
图1为语音信号“我到黑龙江”的语谱图,通过图中可以看到花纹有横条纹和竖条纹。其中横条纹反映的是共振峰特性,参数值为与时间轴平行的几条深黑色带纹,所以共振峰频率和带宽可以从对应横杠的频率和宽度确定。同时横杠是也判断浊音的重要标志。其中一个个的竖直条相当于一个个的基音,声门脉冲的起点用条纹的起点表示,基音周期通过条纹之间的距离表示。基音频率越高的语音信号得到的条纹越密。在得到的语谱图里,根据横轴可以判断每个字的开始和结束,因此可以将语谱图作为端点检测的依据。
图1 “我到黑龙江”语谱图灰度显示
3.1 算法原理
当在整个频带上语音信号的能量都有分布时,全频带上能量分布的变化会受到语音信号的变化;通过分析可知,在频域范围内语音信号能量最大点在谐波附近[11]。当背景噪声很大的时候,虽然语音信号时域特性已被噪声完全淹没,但是语谱图上的能量分布仍然比较明显。图2所示的是语音“我在黑龙江”在高斯白噪声污染下的频谱图,其中信噪比为2 dB,图中显示语音信号大部分区域被噪声所掩盖,但是在语音存在的地方颜色较其他区域较突出,图中白亮、有黑白条纹的地方为语音信号存在的范围。这个特点可以作为语音信号和非语音信号部分的依据,而且在复杂的恶劣的噪声背景下也具有很强的鲁棒性,所以语谱图可以用于低信噪比环境中的端点检测[12]。
图2 带噪声的“我到黑龙江”语谱图灰度显示
3.2 算法实现
(1) 将语音信号进行预处理:首先对语音信号进行采样,采样频率为8 kHz,然后分帧加窗,帧长取16 ms(128个采样点),帧移为8 ms,对每帧信号加128点的汉明窗得到的信号为sw(n),n为帧数,w代表加窗。
(2) 求出每帧的功率谱参数:利用最大熵法求出每帧信号sw(n)的功率谱pxx(n),其中预测滤波器阶数采用14阶,最后求出所有帧的功率谱对数值p(n,k),其中n为帧数,用横坐标表示,k为每帧的采样点数,用纵坐标表示,通过将p(n,k)的值表示为灰度级得到的二维图像就是语谱图[13]。经过以下变换:10log10(p(n,k))能得到语谱图的分贝表示。
(3) 提取时频特性参数[13]:对10log10(p(n,k))进行归一化,选取基准值Base取经验值,得到了矩阵L(n,k),把小于Base的值设为0,大于Base的值线性映射为0~1内的归一化值。
(4) 计算每帧的功率谱均值矩阵l(1:n)。
(5) 利用移动平均法对l(1:n)进行平滑处理。
通过实验,对算法进行了评价。选取其中一组语音“我到黑龙江”来说明检测情况,其中语音的采样频率为8 kHz,帧长为16 ms,帧移位8 ms。加入的噪声为高斯白噪声,实验分别在不同信噪比下对基于短时能量、基于频谱方差、本论文改进的方法进行了比较和分析。
图3-图8为不同信噪比下的检测分析图,其中SNR为信噪比,可以得出以下结论:
(1) 当信噪比大于0 dB时三种检测方法都可以很容易检测出这段语音包含的五个字的端点,提取出来的特征参数和原始语音信号的时域图匹配。
(2) 当信噪比在-2.7 dB本论文方法检测结果与原始语音信号时域图基本匹配,而基于短时能量和基于频谱方差的检测方法检测误差比较大,尤其是频谱方差的检测方法误差最大。
(3) 当信噪比在-5 dB、-7.5 dB和-9 dB时,基于短时能量和基于频谱方差的检测方法检测识别不出语音信号的特征。本文改进方法仍然能够准确地提取到纯净语音信号的特征参数,当信噪比在-9 dB检测匹配度仍在80%左右。
(4) 总之,从图3-图8可见,随信噪比的减小,频谱方差和短时能量的检测效果变差,最大熵谱和时频特性方法在几种情况下均可以提取出被测语音的特征,通过观察改进的功率谱特性图(每图的第四个波形),从中可以明显地看到语音信号的起止点,从而进行准确的语音端点检测。当信噪比为-9 dB以上时,通过改进的检测方法,噪声部分相当于被削弱,而语音特征变得明显,在低信噪比情况下提高了语音端点检测的效果。
图3 SNR=8 dB时的检测分析图
图4 SNR=0 dB时的检测分析图
图5 SNR=-2.7 dB的检测分析图
图6 SNR=-5 dB的检测分析图
图7 SNR=-7.5 dB的检测分析图
图8 SNR=-9 dB的检测分析图
表1是语音“我到黑龙江”在基于最大熵谱估计和时频特性得到的测试统计情况,数字范围是单个汉字对应的范围,表中列出了不同信噪比情况下的检测结果。可以看出整体检测效果较好,在信噪比大于-5 dB的情况下,每个字的起止检测都较准确。信噪比降到-9 dB的时候每个字的起止点都会出现了部分错误,不过检测率仍然大体保持在80%左右。在这段语音中由于“黑龙”两字之间出现连音情况,端点检测结果出现了一定的偏差。
表1 测试统计情况
提出一种基于最大熵谱和时频特性的语音端点检测方法,最大优点是提高了在低信噪比(-9~0 dB)情况下可以有效地提取出语音信号的特征参数,从而大大提高了端点检测的准确率。通过利用语音信号和噪声在最大熵谱估计及语谱图上特性的区别,首先利用最大熵方法计算带噪语音的短时功率谱,然后利用时频特性提取特征参数从而进行端点检测。实验证明这种不同于以往的短点检测算法效果比较理想,该检测算法尤其适合于在白噪声环境下。但是实验中出现连字情况时检测效果受到了影响,对于爆破音、除白噪声以外的噪声情况没有考虑,在这些方面可以对算法进行进一步的改进。
[1] 宋知用.MATLAB在语音信号分析与合成中的应用[M].北京:北京航空航天大学出版社,2013:16-27.
[2] Zhao H,Zhao L X,Zhao K,et al.Voice activity detetion based on distance entropy in noisy environment[C]//5th International Joint Conference on INC,IMS and IDC Seoul.Korea:IEEE Computer Society,2009:1364-1367.
[3] 沈红丽,曾毓敏,王鹏.一种改进的基于倒谱特征的带噪语音端点检测方法[J].通信技术,2009,42(2):156-158.
[4] 鲁远耀,周妮,肖珂,等.强噪声环境下改进的语音端点检测算法[J].计算机应用,2014,34(5):1386-1390.
[5] Shen J L,Hung J W,Lee L S.Robust entropy-based endpoint detection for speech recognition in noisy environments[EB/OL].[2014-08-12].http://wenku.baidu.com/view/e676ac0979563clec5da71d5.html.
[6] 刘艳,倪万顺.基于子带谱熵的仿生小波语音增强[J].计算机应用,2015,35(3):868-871.
[7] 张婷,何凌,黄华,等.基于临界频带及能量熵的语音端点检测[J].计算机应用,2013,33(1):175-178.
[8] 任月清,张泽.基于最大熵谱估计的超声检测回波频谱分析[J].内蒙古大学学报,2007,38(4):454-457.
[9] 曹建农.图像分割的熵方法综述[J].模式识别与人工智能,2012,25(6):958-970.
[10] 赵成林,王桂军,孙学斌.基于最大熵谱估计的频谱感知方法的研究[J].计算机仿真,2010(5):508-512.
[11] 刘红星,戴蓓蒨,陆伟.非平稳噪声环境下基于谐波能量的语音检测[J].计算机仿真,2008(11):305-308.
[12] 吴迪,赵河明,黄呈伟,等.低信噪比下采用感知频谱结构边界参数的语音端点检测[J].声学学报,2014,39(3):392-399.
[13] 李富强,万红,黄俊杰.基于MATLAB的语谱图显示于分析[J].微计算机信息,2005,10(3):172-174.
SPEECHSIGNALENDPOINTDETECTIONBASEDONMAXIMUMENTROPYSPECTRUMESTIMATIONANDTIME-FREQUENCYSIGNATURE
Chen Yingying Jian Lei
(SchoolofElectricalandElectronicInformationEngineering,JinjiangCollege,SichuanUniversity,Pengshan620860,Sichuan,China)
Speech endpoint detection is crucial to the construction of a practical automatic speech recognition system. A new algorithm based on the maximum entropy spectrum estimation and time-frequency signature is proposed to improve the performance of speech endpoint detection in low SNR (Signal Noise Ratio) environment. The framed speech signal power spectrum was estimated through the maximum entropy, and then the characteristics of noisy speech were extracted in time-frequency field in order to detect the endpoint. Experimental results show that, this method can accurately capture the characteristics of speech signals under lower SNR (-9~0 dB), and significantly improves the accuracy of endpoint detection.
Endpoint detection Maximum entropy spectrum estimation Time-frequency characteristics SNR
2016-12-22。陈莹莹,讲师,主研领域:信号检测与识别。简磊,讲师。
TP391.42
A
10.3969/j.issn.1000-386x.2017.11.017