一种啸叫检测和抑制方法与流程

文档序号:12379540阅读:835来源:国知局
一种啸叫检测和抑制方法与流程

本申请涉及通信技术,特别涉及一种啸叫检测和抑制方法。



背景技术:

行业终端的语音业务形式主要为集群、DMO等业务,并且该类业务主要使用外放模式。由于行业终端大部分工作在背景噪声较大的户外或厂房,要求音量大,因此终端的上下行音量增益通常调得较大,声音通过环路增益放大后,能量不断累积形成啸叫,而啸叫严重影响语音业务的正常使用,对客户感知引起极大的不适,因此对啸叫场景进行准确识别具有很大的意义

目前行业终端对于啸叫场景识别解决方案不成熟,大量识别方案效率低并且识别不准确,特别是误检问题,该问题主要是指不存在啸叫现象但啸叫算法判断为啸叫场景并进行啸叫抑制,而啸叫抑制会对语音造成损伤,从而影响非啸叫场景的语音质量,影响客户感知。



技术实现要素:

本申请提供一种啸叫检测和抑制方法,能够降低啸叫的误检率。

为实现上述目的,本申请采用如下的技术方案:

一种啸叫检测和抑制方法,包括:

将接收的当前帧的语音信号转换为频域,对在啸叫频域范围内的信号幅度不为0的语音信号进行啸叫检测;

对所述频域语音信号进行能量检测识别有效语音信号;

按照啸叫算法对所述有效语音信号进行啸叫检测,确定疑似啸叫帧;

计算所述疑似啸叫帧中低频能量和高频能量的比值,将所述比值高于设定第一误检比值的疑似啸叫帧作为误检帧;

将不属于误检帧的疑似啸叫帧作为实际啸叫帧,进行啸叫抑制。

较佳地,在确定所述疑似啸叫帧后、进行啸叫抑制前,该方法进一步包括:统计所述疑似啸叫帧的平均谐波数,将平均谐波数高于设定第二误检阈值的疑似啸叫帧作 为误检帧。

一种啸叫检测和抑制方法,包括:

将接收的当前帧的语音信号转换为频域,对在啸叫频域范围内的信号幅度不为0的语音信号进行啸叫检测;

对所述频域语音信号进行能量检测识别有效语音信号;

按照啸叫算法对所述有效语音信号进行啸叫检测,确定疑似啸叫帧;

统计所述疑似啸叫帧的平均谐波数,将平均谐波数高于设定第二误检阈值的疑似啸叫帧作为误检帧;

将不属于误检帧的疑似啸叫帧作为实际啸叫帧,进行啸叫抑制。

较佳地,在确定所述疑似啸叫帧后、进行啸叫抑制前,该方法进一步包括:计算所述疑似啸叫帧中低频能量和高频能量的比值,将所述比值高于设定第一误检比值的疑似啸叫帧作为误检帧。

由上述技术方案可见,本申请中,将接收的语音信号转换为频域,对位于啸叫频域范围内的频域语音信号进行啸叫检测;对位于啸叫范围内的频域语音信号进行能量检测识别有效语音信号;按照啸叫算法对有效语音信号进行啸叫检测,确定疑似啸叫帧;计算疑似啸叫帧中低频能量和高频能量的比值,将比值高于设定第一误检比值的疑似啸叫帧作为误检帧,和/或,统计疑似啸叫帧的平均谐波数,将平均谐波数高于设定第二误检阈值的疑似啸叫帧作为误检帧;将不属于误检帧的疑似啸叫帧作为实际啸叫帧,进行啸叫抑制。通过上述方式,一方面通过信号的频率范围和能量检测确定进行啸叫检测的信号,排除不会产生啸叫的语音信号;另一方面通过低频与高频能量的比值特性和/或谐波特性,从疑似啸叫帧中识别出误检帧。通过以上两方面的处理,大大降低啸叫的误检率。

附图说明

图1为本申请中啸叫检测和抑制方法的流程示意图;

图2为现有通过峰均比进行啸叫识别的示意图;

图3为啸叫集中在高频区域的示意图;

图4为正常语音在低频区域的示意图;

图5为啸叫时的频谱示例图;

图6为正常语音时的频谱示例图。

具体实施方式

为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。

本申请中,在频域上分析啸叫与非啸叫信号的区别。如果属于非啸叫场景下特有的现象,可以对特征进行提取,对啸叫判断条件进行约束,防止误检问题。具体地,本申请主要通过啸叫检测频域门限、能量检测、高低频能量比例判断以及谐波识别等方式来降低误判概率。下面通过实施例说明本申请的具体实现。

图1为本申请中啸叫检测和抑制方法的流程示意图。如图1所示,该方法包括:

步骤101,将接收的当前帧的语音信号转换为频域,对在啸叫频域范围内的信号幅度不为0的语音信号进行啸叫检测,执行后续步骤。

通过分析多组啸叫声音文件,发现啸叫频率一般都发生在一定的频域范围内,例如1KHz以上,1KHz以下比较少。而1KHz以下的语音能量比较集中,比较容易发生误检,因此在啸叫检测时可以对于设定的啸叫频域范围(例如1KHz以下)内信号幅度为0的语音信号不进行啸叫点检测,这样可以降低啸叫误检概率,同时对啸叫抑制性能的影响较小。这里,啸叫频域范围可以是大于设定的啸叫检测频域门限。

步骤102,对啸叫频域范围内的频域语音信号进行能量判断,识别有效语音信号。

在现有技术中通过峰均比进行啸叫识别。但是,如果完全根据频谱的峰均比来判断啸叫峰值点,则可能会将某些无语音时的底噪音误判成啸叫点,从而对啸叫帧的判断产生影响,如图2所示。基于此,本申请中计算当前语音信号的平均能量功率,若低于某一门限,则认为该部分信号属于非有效语音信号,不进行啸叫检测和抑制;若高于或等于相应门限,认为该部分信号属于有效语音信号,对这部分信号执行步骤103及其后续步骤。

步骤103,按照啸叫算法对有效语音信号进行啸叫检测,确定疑似啸叫帧。

本步骤中可以采用现有的啸叫算法进行啸叫检测,并将检测出的啸叫帧作为疑似啸叫帧。

步骤104,计算疑似啸叫帧中低频能量和高频能量的比值,将比值高于设定第一误检比值的疑似啸叫帧作为误检帧。

一般来说,啸叫集中在高频的区域(如图3所示),而语音主要存在低频区域(如 图4所示),。啸叫帧高频能量比较强,低频能量比较低,而正常语音包低频能量比较强,高频能量比较低,本申请中根据高低频能量差异这一特征判断是否属于误检。

若当前疑似啸叫帧满足下列条件,则判断当前疑似啸叫帧为误检,不进行啸叫抑制:

<mrow> <mfrac> <msub> <mi>P</mi> <mrow> <mi>low</mi> <mo>_</mo> <mi>freq</mi> </mrow> </msub> <msub> <mi>P</mi> <mrow> <mi>high</mi> <mo>_</mo> <mi>freq</mi> </mrow> </msub> </mfrac> <mo>></mo> <mi>high</mi> <mo>_</mo> <mi>low</mi> <mo>_</mo> <mi>ratio</mi> <mo>_</mo> <mi>thd</mi> </mrow>

其中Phigh_freq表示高频区域的平均能量,Plow_freq表示低频区域的平均能量,高频和低频区域划分根据不同平台具体设置进行,一般设置为1KHZ左右(语音主要集中在1KHZ以下),high_low_ratio_thd为高低频比值门限,取值根据不同平台特点具体设置。

步骤105,统计疑似啸叫帧的平均谐波数,将平均谐波数高于设定的第二误检阈值的疑似啸叫帧作为误检帧。

分析啸叫与正常语音时的频谱特征,从频谱对比可以看出正常语音相比啸叫具有较明显的谐波特征,如图5所示为啸叫时的频谱示例图,如图6所示为正常语音时的频谱示例图。基于此,为识别出误检帧,可以统计每一个疑似啸叫帧的平均谐波个数,统计方式可以根据需要设置。例如取高频峰值点左右各15个子带,每次从最低点到最高点、或最高点到最低点超过10dB记为一次谐波。若当前疑似啸叫帧的平均谐波数超过一定门限Average_Harmony_Num_Thd,则判断当前疑似啸叫帧属于误检,不进行啸叫抑制。

通过上述步骤104和105都可以识别出误检为啸叫帧的语音帧。在实际应用中,上述步骤104和105可以都采用,或者选择其中一种方式采用。当两个步骤都采用时,执行的先后顺序可以根据需要设置,也可以同时进行。当通过上述方式确定出误检帧后,继续执行步骤106。

步骤106,将不属于误检帧的疑似啸叫帧作为实际啸叫帧,进行啸叫抑制。

至此,本申请中的啸叫检测和抑制方法流程结束。通过上述本申请的处理,能够有效降低啸叫算法误检概率,提高啸叫检测准确率,适配啸叫抑制处理,提高语音质量和用户体验。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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