基于改进C0复杂度和MFCC相似度的端点检测
   来源:现代电子技术     2021年01月20日 20:14

基于改进c0复杂度和mfcc相似度的端点检测-...处理器性能得到改善.-处理器基准性能测试 映泰主板评测

许昊 张二华

摘 要: 为了提高语音端点检测的准确率,提出一种基于改进C0复杂度和MFCC相似度相结合的端点检测算法。首先,计算每一帧语音信号的C0复杂度以及MFCC相似度。然后,结合C0复杂度与MFCC相似度作为新的特征参数,设置阈值进行端点检测。对信噪比在-15~15 dB范围内的含噪语音进行端点检测,使用Matlab软件进行仿真实验。实验结果表明,该方法相对于单独的两种方法提高了检测率,且稳定性更强。

关键词: 音信号处理; C0复杂度; MFCC相似度; 端点检测

中图分类号: TN912?34 文献标识码: A 文章编号: 1004?373X(2015)10?0007?03

0 引 言

端点检测算法在语音信号处理领域有着十分重要的意义[1]。对语音信号进行准确的端点检测既是提高语音识别准确率的重要环节,也是提升语音编码效率的关键。传统的端点检测算法常采用短时能量、短时过零率和自相关最大值等方法,这些方法在低噪声环境下均能取得比较好的结果,但在高噪声环境下性能则下降明显。后来又出现了许多新的方法,如基于谱熵的端点检测[2]、基于LPCC(线性预测倒谱系数)的端点检测[3]、基于时频方差的端点检测[4]等方法。这些方法确实提高了在低信噪比环境下的语音检测率,然而它们仍有不小的改进空间。由于MFCC(Mel频率倒谱系数)较好地反映了人耳的听觉特性,而C0复杂度[5]较好地体现了语音信号的非线性特性,且基于二者的端点检测方法均被证明具有良好的检测效果。本文提出一种新的特征MFCC_C0,并将两种特征进行综合,该方法在不同信噪比环境下均取得良好的效果,较单独使用其中一种特征更具优势。

1 算法描述

1.1 改进的C0复杂度

复杂度是作用于时间序列的一种指标,主要是将信号分解成规则成分和不规则成分两部分,通过计算其不规则部分所占的相对比例来反应信号的复杂度特性,就是C0复杂度描述的基础[6]。改进的C0复杂度,引入了参数r,表征超过频谱均方值r倍,它更好地反应了时间序列的随机性。语音信号的C0复杂度计算步骤如下:

(1) 对语音信号进行预加重、分帧、加窗处理,得到[fx]。其中预加重系数α=0.937 5,帧移为帧长的一半,使用Hamming窗。

(2) 计算语音信号的频谱:

[Fk=x=0N-1fxexp-j2πkxN, x=0,1,2,…,N-1] (1)

式中:[Fk]是[fx]的离散傅里叶变换;[x]是时域变量;[k]是频域变量;[j=-1]。

(3) 计算语音信号频谱均方值:

[Fk=1Nk=0N-1Fk2] (2)

(4) 引入参数r(r为大于等于1的常数),保留大于频谱均方值r倍的频谱,将其余部分置零,大于阈值的部分认为是语音信号中的规则成分,小于阈值的部分认为是语音信号中的随机成分,即:

[Fk=Fk,Fk2≥rFk0,Fk2

(5) 对[Fk]做傅里叶逆变换:

[fx=1Nk=0N-1Fkexpj2πkxN, x=0,1,2,…,N-1] (4)

(6) 语音信号的改进C0复杂度定义如下:

[C0r=x=0N-1fx-fx2x=0N-1fx2] (5)

当r=1时,[C0r]就是原C0复杂度的定义。本文中取r=8。改进后的C0复杂度比原来C0复杂度更可靠[7]。

1.2 MFCC相似度

MFCC(Mel频率倒谱系数)从人耳的听觉出发,与基于实际频率倒谱的分析不同。人耳感受到的声音频率与声音的实际频率成非线性关系,而Mel频率尺度[8]则是根据人耳的听觉特性设计的。临界频率带宽随着频率的变化而变化[9],并与Mel频率的增长相一致。当频率低于1 000 Hz时,临界频率带宽大约为100 Hz;当中心频率高于1 000 Hz时,临界频率带宽呈对数增长。类似于临界频带的划分,可以使用带通滤波器组来模拟人耳对不同频率语音信号的处理。MFCC相似度[2]的计算步骤如下:

(1) 计算语音信号的频谱[Fk],由式(1)可得。

(2) 根据式(6)将实际频率映射到Mel频率上:

[Melf=2595lg1+f700] (6)

式中参数[f]表示实际频率,单位为Hz。

(3) 设置L个三角滤波器,滤波器的个数由信号的截止频率决定(本文取L=24)。在Mel频率尺度上,每个滤波器的中心频率间隔相等。设[ol]、[cl]、[hl]分别是第[l]个三角滤波器的下限、中心和上限频率,由于相邻滤波器组有重叠,它们的关系如下[9]:

[cl=hl-1=ol+1] (7)

(4) 计算每个滤波器的输出:

[ml=k=olhlWlkFk, l=1,2,…,L] (8)

式中三角滤波器[Wlk]可表示为:

[Wlk=k-olcl-ol ,ol≤k≤clhl-khl-cl ,cl≤k≤hl] (9)

(5) 对滤波器输出取对数,并做离散余弦变换可得MFCC参数:

[cMFCCi=2Nl=1Llgmlcosl-12iπL] (10)

(6) 假设当前语音信号的前10帧为背景噪声,取这几帧信号的MFCC 参数均值作为背景噪声MFCC参数的估计值。同时为了使背景噪声估计值实时反映语音信号的实际背景噪声情况,提出背景噪声的MFCC参数更新公式[8]:

[Cnoise=pC+1-pCi] (11)

式中:[C]为语音信号前10帧MFCC参数的均值;p为加权因子;[Ci]表示当前帧的MFCC参数。若当前帧被判断为噪声帧,则使用当前帧的MFCC参数[Ci]来更新背景噪声参数[Cnoise。]

(7) 相似度是用来衡量两个对象之间相似程度的,求取相似度的方法有很多,如明氏距离、夹角余弦距离、相似性函数法等。本文选用相关系数距离法,来衡量两个特征向量(当前语音帧的MFCC参数[Ci]与噪声帧的MFCC参数[Cnoise])之间的相似度。[di=1-x-xy-yx-xx-x′12y-yy-y′12] (12)

式中:[x=j=1nxj];[y=j=1nyj]。

1.3 两种特征联合检测

C0复杂度表示信号中随机运动所占的份额,而噪声的随机运动程度远高于语音的随机运动程度。MFCC特征参数模拟了人耳的听觉机制,具有较强的抗噪能力。这两种特征相关性较低,本文通过对两种特征分别归一化后进行综合加权构建一个新特征MFCC_C0,在此基础上设置阈值进行端点检测。当信噪比高于5 dB时,C0复杂度检测率高于MFCC 相似度算法,此时给予C0复杂度特征更高的权重,反之,则给予MFCC 相似度特征更高的权重。

新特征MFCC_C0定义如下[10]:

[MFCC_C0i=C0_normi+9d_normi,SNR<5 dB9+SNR-55C0_normi+d_normi,SNR≥5 dB] (13)

式中:SNR为信噪比;[C0_normi]为C0的归一化表示,[d_normi]为[di]的归一化表示。

2 实验结果与分析

实验采用一段新闻联播的语音信号作为纯净语音。并使用Cool Edit Pro软件对其重新编辑,只保存单声道,16 kHz采样率和16 b量化处理。选用NOISEX?92噪声库中的白噪声,合成不同信噪比的带噪语音。为了验证本文提出方法较先前两种方法有所改进,将三种端点检测方法的检测效果显示在同一幅图中,进行直观的比较。本文使用Matlab软件进行实验,结果见图1,图2。

图1 信噪比为-10 dB时的三种方法的检测结果

图2 信噪比为10 dB时的三种方法的检测结果

图1、图2中,每张图均由(a)~(e)五个子图构成[10],其中:(a)为纯净语音;(b)为带噪语音;(c)为MFCC相似度的检测结果;(d)为C0复杂度算法的检测结果;(e)为C0复杂度与MFCC相似度相结合算法的检测结果。每个子图中的红色线条表示一段语音的开始和结束。其中,图(a)、(b)是由人耳辨别,并在曲线上标示出语音段的起始位置。图(a)被划分为10小段语音。图(c)~图(e)是由三种端点检测算法自动检测出的结果。

图1给出在信噪比-10 dB下,三种算法的检测效果。从图(c)可以看出,MFCC相似度算法检测出大部分语音段,但未检测出第6段语音,且未能将第7,8段语音分开,及未能检测出第9段语音;而从图(d)可以看出,C0复杂度仅检测出4段语音,存在大量误判,且语音段与非语音段区分度很低;从图(e)可以看出,本文提出的方法检测效果接近MFCC相似度,好于C0复杂度的检测结果。

图2给出了在信噪比为10 dB下,三种算法的检测效果。从图(c)可以看出,MFCC相似度检测出了绝大多数的语音段,包括第6段语音,然而第7,8段语音仍然未能被很好地分离,且未能区分第9,10段语音;而从图(d)可以看出,C0复杂度检测出了所有的语音,且区分性非常明显;从图(e)可以看出,本文提出的方法检测效果接近C0复杂度,好于MFCC相似度。

为进一步检验本文所提的算法的正确率,对三种端点检测算法的正确率进行计算并统计。表1是信噪比范围在-15~15 dB下,三种端点的检测效果。端点检测的正确率可由式(14)得出:

[正确率=判断正确的帧数语音的总帧数×100%] (14)

表1 MFCC相似度、C0复杂度及本文算法端点检测正确率比照表

由表1可以看出,在-15~15 dB之间,与C0复杂度及MFCC相似度算法相比,改进算法综合了两者的优点,取两者的较高值,且表现稳定。当信噪比低于0 dB时,C0复杂度的误判逐渐增多,MFCC 相似度检测的正确率较高,此时改进算法更接近MFCC相似度的检测效果。当信噪比高于5 dB时,改进算法与C0复杂度算法性能接近,端点检测的正确度要高于MFCC相似度算法。

3 结 语

本文提出了一种基于C0复杂度与MFCC 相似度的端点检测算法。 MFCC参数很好地描述了人耳的听觉机制,能够很好地区分语音和噪声,其具有较强的稳定性以及抗噪性。然而基于MFCC相似度的端点检测算法准确率并不高,特别是当信噪比提高后未有显著提升。而基于C0复杂度的端点检测算法在高信噪比的情况下具有较高的检验率。MFCC相似度与C0复杂度两种特征的结合,弥补了它们单一使用时的不足,提高了语音的检测率及算法的稳定性。实验结果表明,该算法性能良好,在多种信噪比下均有良好的表现。

参考文献

[1] 朱晓晶,侯旭初,崔慧娟,等.基于LPCC和能量熵的端点检测[J].电讯技术,2010,50(6):41?45.

[2] 刘荣,刘珩.低信噪比下基于功率谱上的语音端点检测算法[J].计算机工程与应用,2009,45(33):122?124.

[3] 李玉萍,朴春俊,韩永成.一种带噪语音信号端点检测方法研究[J].电子测试,2008(2):14?17.

[4] 马静霞.带噪语音端点检测方法的研究[D].秦皇岛:燕山大学,2007.

[5] 范影乐,武传燕,李轶,等.基于C0复杂度的语音端点检测技术研究[J].传感技术学报,2006,19(3):750?753.

[6] 王纲金,赵欢,胡炼.基于小波变换C0复杂度的语音端点检测方法[J].计算机工程与应用,2010,46(29):134?136.

[7] 蔡志杰,孙洁.改进的C0复杂度及其应用[J].复旦学报:自然科学版,2008,47(6):791?796.

[8] 王宏志,徐玉超,李美静.基于Mel频率倒谱参数相似度的语音端点检测算法[J].吉林大学学报:工学版,2012,42(5):1331?1335.

[9] 赵力.语音信号处理[M].北京:机械工业出版社,2009.

[10] 邓瑞,肖纯智,高勇.基于MFCC相似度和谱熵的端点检测算法[J].现代电子技术,2013,36(21):67?69.

运动 复杂度 语音