一种基于长时信号功率谱变化的语音端点检测方法与流程

文档序号:15450870发布日期:2018-09-14 23:59阅读:1005来源:国知局

本发明涉及一种语音端点检测方法。特别是涉及一种基于长时信号功率谱变化的语音端点检测方法。



背景技术:

语音端点检测是指在噪声环境中区分语音段和非语音段,是语音编码、语音增强和语音识别等语音信号处理领域的关键技术。

目前,语音端点检测方法主要可以分为两大类:基于特征的方法[1]和基于机器学习与模式识别的方法。其中基于特征的方法因其简单、快速等优点而得到广泛地研究和应用。

1、基于语音短时特性的语音端点检测

早期用于语音端点检测的特征主要有:短时能量和平均过零率、谱熵和倒谱距离等。这类方法在信噪比较高的环境中的检测效果较为理想,但在信噪较低时的检测性能会急剧下降。为了提高算法的抗噪声性及鲁棒性,相关学者提出了一系列新的方法。如基于噪声抑制的语音端点检测方法;融合fisher线性判别和mel频率倒谱系数的语音端点检测方法等。

2、基于语音长时特性的语音端点检测

上述方法多是基于语音的短时特征,并未充分考虑语音的长时变化信息。为了更好地利用语音的长时特性,ghosh等提出了一种基于长时段信号变化率(long-termsignalvariability,ltsv)特征的检测方法,该方法具有较强的噪声适应性,并且在极低信噪比(-10db)下仍可以有效地区分语音段和非语音段;may等人提出基于长时段信号谱平坦度(long-termspectralflatnessmeasure,lsfm)特征的语音端点检测,通过测度长时段语音在不同频带的谱平坦度来区分语音和噪声,提升了在嘈杂人声(babble)与机枪(machinegun)等非平稳噪声下的准确率及在不同噪声环境下的鲁棒性。虽然上述两种方法对不同噪声下均有较好的鲁棒性,但低信噪比下的检测性能仍有提升的空间,尤其对于babble和machinegun这两种检测性能稍差的非平稳噪声。



技术实现要素:

本发明所要解决的技术问题是,提供一种能够提升基于长时语音特征的语音端点检测算法在不同噪声环境下的鲁棒性,提高在babble和machinegun等噪声环境下检测性能的基于长时信号功率谱变化的语音端点检测方法。

本发明所采用的技术方案是:一种基于长时信号功率谱变化的语音端点检测方法,包括如下步骤:

1)对输入信号进行分帧加窗;

2)对分帧加窗后的信号计算功率谱;

3)计算长时信号功率谱变化值;

4)利用长时信号功率谱变化值进行阈值判决;

5)进行阈值更新,是利用过去80帧信号的阈值判决结果对阈值进行自适应更新;

6)投票判决,当前目标帧为第m帧,此时的长时信号功率谱变化值lx(m)由当前帧及当前帧之前全部r-1帧信号共同决定,则对于当前目标帧共参与了r次阈值判决,每次的结果分别标记为dm,dm+1,…,dm+r-1,若这r次阈值判决中超过80%的结果为包含语音帧,则判决当前目标帧为语音帧,否则为噪声帧;

7)重复步骤1)~步骤6)直至输入信号结束。

步骤2)是分别对每一帧输入信号x(n)采用经典的周期图法通过计算该信号的短时离散傅里叶变换求得该帧信号在频率wk的功率谱,第i帧信号在频率wk的功率谱表示如下:

式中,nw表示每帧数据长度,nsh表示每帧数据移动长度,h(l)表示长度为nw的窗函数。

步骤3)具体计算过程如下:

其中,lx(m)表示第m帧信号的长时信号功率谱变化值,nfft代表傅里叶变换点数,表示过去全部r帧信号在第k个频点处的功率谱变化程度,是通过对过去全部r帧信号的任意两帧之间在第k个频点处的功率谱变化量求平均得到,相应计算公式如下:

其中sx(j,wk)和sx(i,wk)分别表示第j帧和第i帧信号在第k个频点处的功率谱。

步骤4)是利用长时信号功率谱变化值lx(m),判决当前全部r帧信号中是否含有语音帧,若lx(m)大于设定的阈值,表示含有语音帧,此时标记dm记为1,否则表示不含语音帧,标记dm记为0。

步骤5)具体是设计两个缓冲器bn(m)和bs+n(m),分别存储过去80帧中判决为噪声帧和语音帧的长时信号功率谱变化值,阈值自适应更新公式如下:

t(m)=αmin(bs+n(m))+(1-α)max(bn(m))

α为权重参数。

以开始50帧作为初始背景噪声,根据初始背景噪声初始化阈值:

tinit=μn+pσn

其中μn和σn分别表示50帧背景噪声长时信号功率谱变化值的平均值和标准差,p为加权系数。

本发明的一种基于长时信号功率谱变化的语音端点检测方法,可明显提升babble与machinegun噪声环境下的检测准确率。通过采用自适应更新阈值的方法,克服了传统固定阈值环境适应性较差的缺点。经试验测试,本发明的准确率整体优于ltsv,lsfm的语音端点检测方法。在machinegun噪声环境下,本发明的的语音端点检测准确率明显优于ltsv,lsfm的语音端点检测方法,平均检测准确率提高超过10%。

附图说明

图1是本发明一种基于长时信号功率谱变化的语音端点检测方法的流程图;

图2是本发明中投票判决的示意图;

图3是不同噪声环境下的vad结果。

具体实施方式

下面结合实施例和附图对本发明的一种基于长时信号功率谱变化的语音端点检测方法做出详细说明。

本发明的一种基于长时信号功率谱变化的语音端点检测方法,包括如下步骤:

1)对输入信号进行分帧加窗,由于语音信号是一种典型的非平稳信号,但是与声波振动的速度相比,发声器官的运动非常缓慢,通常认为在10ms~30ms时间段中,语音信号是平稳信号,因此对待测信号作截断分帧处理;

2)对分帧加窗后的信号计算功率谱;具体是分别对每一帧输入信号x(n)采用经典的周期图法通过计算该信号的短时离散傅里叶变换求得该帧信号在频率wk的功率谱,第i帧信号在频率wk的功率谱表示如下:

式中,nw表示每帧数据长度,nsh表示每帧数据移动长度,h(l)表示长度为nw的窗函数。

3)计算长时信号功率谱变化值;长时信号功率谱变化参数由输入信号x(n)的当前帧及当前帧之前全部r-1帧信号的功率谱共同决定,反映了信号的功率谱在过去r帧的非平稳度。长时信号功率谱变化值具体计算过程如下:

其中,lx(m)表示第m帧信号的长时信号功率谱变化值,nfft代表傅里叶变换点数,表示过去全部r帧信号在第k个频点处的功率谱变化程度,是通过对过去全部r帧信号的任意两帧之间在第k个频点处的功率谱变化量求平均得到,相应计算公式如下:

其中sx(j,wk)和sx(i,wk)分别表示第j帧和第i帧信号在第k个频点处的功率谱。

4)利用长时信号功率谱变化值进行阈值判决;是利用长时信号功率谱变化值lx(m),判决当前全部r帧信号中是否含有语音帧,若lx(m)大于设定的阈值,表示含有语音帧,此时标记dm记为1,否则表示不含语音帧,标记dm记为0。

5)进行阈值更新,是利用过去80帧信号的阈值判决结果对阈值进行自适应更新;具体是设计两个缓冲器bn(m)和bs+n(m),分别存储过去80帧中判决为噪声帧和语音帧的长时信号功率谱变化值,阈值自适应更新公式如下:

t(m)=αmin(bs+n(m))+(1-α)max(bn(m))

α为权重参数仿真实验中α=0.3时效果最佳。

以开始50帧作为初始背景噪声,根据初始背景噪声初始化阈值:

tinit=μn+pσn

其中μn和σn分别表示50帧背景噪声长时信号功率谱变化值的平均值和标准差,p为加权系数,仿真实验中p=3时效果最佳。

6)投票判决,由于统计了信号的长时段特征,所以进行端点检测判决时需要考虑前后帧的信息。投票判决示意图如图2所示,当前目标帧为第m帧,此时的长时信号功率谱变化值lx(m)由当前帧及当前帧之前全部r-1帧信号共同决定,则对于当前目标帧共参与了r次阈值判决,每次的结果分别标记为dm,dm+1,…,dm+r-1,若这r次阈值判决中超过80%的结果为包含语音帧,则判决当前目标帧为语音帧,否则为噪声帧;

7)重复步骤1)~步骤6)直至输入信号结束。

下面给出具体实例:

依据图1所示的流程图,对本发明的一种基于长时信号功率谱变化的语音端点检测方法进行实例分析,语音信号选自timit语音库中20个说话人,10男、10女,每个说话人对应10个句子,并对每个句子人工标注端点(0代表噪声段,1代表语音段)。由于timit中句子较短(约3.5秒),且大部分为语音,因此实验中在每个句子前添加1秒的静音段,以便于统计噪声的特征参数并初始化判决阈值。噪声选自noisex-92噪声库,这里选用white、pink、babble和machinegun四种噪声。并分别在-5、0、5和10db的噪声环境下的测试算法性能,这里将检测准确率作为性能指标,检测准确率定义为:

其中,错误帧数包括语音帧误判为噪声帧数和噪声帧误判为语音帧数。

实例具体如下:

1、读取语音信号,并进行分帧加窗处理,每帧512个采样点,加512点的汉明窗,帧移为256个采样点。

2、对加窗后的每帧数据进行512点傅里叶变换,计算出每帧数据功率谱参数sx(i,ωk)。

3、根据信号功率谱sx(i,ωk)统计每帧信号的长时信号功率谱变化值lx(m),并利用开始阶段的背景噪声信息初始化阈值tinit。

4、利用lx(m)进行阈值判决,判决当前r帧信号中是否含有语音帧,若lx(m)大于设定阈值,表示含有语音帧,此时dm记为1,否则表示不含语音帧,dm记为0。

5、利用过去80帧信号的阈值判决结果对判决阈值进行自适应更新。

6、利用dm参数为当前目标帧进行投票判决。如图2所示,对于包含目标帧信息的r帧阈值判决,若超过80%的结果为包含语音帧,则判决目标帧为语音帧,否则为噪声帧。

从timit语音库中随机挑选两段语音,在0bb噪声环境下的vad结果如图3所示。其中a1、b1、c1和d1分别表示添加0db的white、pink、babble和machinegun噪声后的语音波形图,a2、b2、c2和d2表示对应的vad结果。

在不同信噪比的噪声环境下,分别统计了基于ltsv、lsfm和基于长时信号功率谱变化值的语音端点检测准确率,如表1所示。从表中可以看出,在white、pink和babble噪声环境下,三种方法检测性能比较接近,基于长时信号功率谱变化值的语音端点检测准确率略优于另两种方法。但在machinegun噪声环境下,基于lsvm的语音端点检测准确率明显优于另两种方法。

表1结果统计表

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1