太阳城集团

  • / 10
  • 下载费用:30 金币  

一种谱包络静音检测方法.pdf

摘要
申请专利号:

CN201310561810.X

申请日:

2013.11.12

公开号:

太阳城集团CN103632681A

公开日:

2014.03.12

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G10L 25/78申请日:20131112|||公开
IPC分类号: G10L25/78(2013.01)I 主分类号: G10L25/78
申请人: 广州海格通信集团股份有限公司
发明人: 杨剑锋; 郑晨熹; 谢映海; 林振华; 刘绍华; 苏全超
地址: 510663 广东省广州市科学城海云路88号
优先权:
专利代理机构: 广州市华学知识产权代理有限公司 44245 代理人: 黄磊
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201310561810.X

授权太阳城集团号:

||||||

法律状态太阳城集团日:

2016.09.07|||2014.04.09|||2014.03.12

法律状态类型:

授权|||实质审查的生效|||公开

摘要

太阳城集团本发明公开了一种谱包络静音检测方法,该方法包括步骤:时域信号转换成频域信号,计算信号的谱能量分布;根据接收信号的状态对接收信号进行增益振荡检测,根据当前所处的状态选择相对应的更新方式更新底噪谱能量分布;利用接收信号的谱能量分布和底噪的谱能量分布计算帧信噪比,保存并更新最近一定太阳城集团内的帧信噪比;根据帧信噪比和谱包络信噪比记录,进行谱包络多状态转移,根据状态转移的状态输出判断输入信号是语音或是噪声。本方法可以快速检测语音信号的开始及结束,可为语音降噪、语音静默等语音信号处理提供依据。

权利要求书

权利要求书
1.  一种谱包络静音检测方法,其特征在于,包括以下步骤:
(1)将时域信号转换成频域信号,计算信号的谱能量分布;
(2)对底噪进行相应状态的谱能量分布更新;
(3)利用接收信号的谱能量分布和底噪的谱能量分布计算帧信噪比,保存并更新最近一定太阳城集团内的帧信噪比;并更新谱包络信噪比;
(4)根据帧信噪比和谱包络信噪比记录太阳城集团,进行谱包络多状态转移,根据多状态转移的状态输出判断输入信号是语音或是噪声。

2.  根据权利要求1所述的谱包络静音检测方法,其特征在于,在进行步骤(2)之前,先根据步骤(4)输出的状态判断是否需要对当前的接收信号进行增益振荡检测,如果需要则进行增益振荡检测。

3.  根据权利要求2所述的谱包络静音检测方法,其特征在于,所述进行增益振荡检测的具体步骤是:
(2-1)如果接收信号的状态为噪声状态,则先判断一定太阳城集团前信号是否为语音状态,如果不是,则不进行检测,否则获取其包络谱能量,进入步骤(2-3);
(2-2)如果接收信号的状态为语音状态,则获取其包络谱能量,进入步骤(2-3);
(2-3)判断帧能量是否大于包络能量10dB,如果是,则进行帧能量缩放,否则,则不进行检测。

4.  根据权利要求1所述的谱包络静音检测方法,其特征在于,所述步骤(2)中,对底噪进行相应状态的谱能量分布更新包括以下三种方式:谱分布初始化更新、谱分布正向更新和谱分布反向更新。

5.  根据权利要求4所述的谱包络静音检测方法,其特征在于,所述对底噪进行相应状态的谱能量分布更新时,如果是初始化状态则采用谱分布初始化更新;如果是噪声状态则采用谱分布正向更新;如果是信号状态则采用谱分布反向更新。

6.  根据权利要求1所述的谱包络静音检测方法,其特征在于,所述步骤(3)中,计算帧信噪比的公式为:
SNR=10lgΣi=0Lr2(i)Σi=0Ln2(i)-1;]]>
其中:SNR表示帧信噪比,r(i)表示接收信号,由发送信号和噪声信号组成,n(i)表示噪声信号,L表示统计周期内的样点个数,统计周期是由统计太阳城集团和采样率来决定;
更新谱包络信噪比采用FIFO法,具体是只保存N帧信噪比,每当更新时,将最早输入的一帧信噪比舍去,其余的移位,最后得到的谱包络信噪比取谱包络信噪比记录数组中的最大值。

7.  根据权利要求1所述的谱包络静音检测方法,其特征在于,所述步骤(4)中,根据多状态转移的状态输出判断输入信号是语音或是噪声,其中先定义三个状态,噪声状态表示当前接收到信号为噪声,语音状态表示当前接收到信号为语音,过渡状态表示当前接收到的信号还需要进一步判断是噪声还是语音,具体判断过程是:
(4-1)设置第一门限和第二门限;初始化为噪声状态;
(4-2)判断当前的帧信噪比是否大于第一门限,如果是,则由噪声状态转移至过渡状态,进入步骤(4-3),否则继续保持为噪声状态;
(4-3)计算进入过渡状态的连续若干帧的平均信噪比,判断平均信噪比是否大于第二门限,如果是则进入语音状态,进入步骤(4-4),否则进入噪声状态;
(4-4)检测一定太阳城集团内的谱包络信噪比,判断此谱包络信噪比是否大于第一门限,如果是则保持为语音状态,否则进入过渡状态。

8.  根据权利要求7所述的谱包络静音检测方法,其特征在于,所述步骤(4-1)中,第一门限和第二门限是通过统计平稳噪声的能量熵分布得出。其具体值可根据静音检测实际使用环境调整,静音检测可检测信噪比低至-15dB时的信号。

说明书

说明书一种谱包络静音检测方法
技术领域
本发明涉及无线电通信的语音信号处理领域,特别涉及一种谱包络静音检测方法。
背景技术
静音检测是根据信号的特征分析,区分出语音信号和非语音信号,它在语音编码、语音增强、语音识别和无线通信等领域具有非常广泛的应用,例如在语音编码中,利用静音检测技术来区分有话音和无语音区,并对无语音区使用少量的比特进行编码,保证语音编码在相同质量的前提下,平均传输的速率更低。在语音增强中,通过静音检测识别话音的存在,对非话音段进行静默和噪声统计,对话音段进行语音降噪处理。在自动语音识别系统中,利用静音检测缩小识别系统识别的工作范围,从而减少系统中大量的运算并且减少误判率,使语音识别系统具有更好的实时性和更高的识别准确率。
这些语音处理技术都依赖于静音检测来判断是否有语音存在,从而实现对语音的编码、增强和识别。传统静音检测方法通过短时能量、过零率及相关性等手段检测,在高信噪比下具有良好的检测概率,但是在低信噪比下的检测不够准确,将噪声判断为语音或者将语音判断成噪声都会严重的影响语音编码、增强及识别的效果。因此,提高低信噪比下的静音检测性能具有十分重要的意义。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种谱包络静音检测方法,该方法能够在信噪比较低,甚至只能听到有话音而难以分辩话音内容的情况下准确的检测出语音信号,从而为语音降噪、语音静默等功能提供准确可靠的依据。
本发明的目的通过以下的技术方案实现:一种谱包络静音检测方法,包括以下步骤:
(1)将时域信号转换成频域信号,计算信号的谱能量分布;
(2)对底噪进行相应状态的谱能量分布更新;
(3)利用接收信号的谱能量分布和底噪的谱能量分布计算帧信噪比,保存并更新最近一定太阳城集团内的帧信噪比;并更新谱包络信噪比;
(4)根据帧信噪比和谱包络信噪比记录太阳城集团,进行谱包络多状态转移,根据多状态转移的状态输出判断输入信号是语音或是噪声。
优选的,在所述步骤(1)中,根据人类发声特性,将低于300Hz以及大于3400Hz的频谱能量置为零。从而可以减少后续的计算量。
优选的,在进行步骤(2)之前,先根据步骤(4)输出的状态判断是否需要对当前的接收信号进行增益振荡检测,如果需要则进行增益振荡检测。
更进一步的,所述进行增益振荡检测的具体步骤是:
(2-1)如果接收信号的状态为噪声状态,则先判断一定太阳城集团前信号是否为语音状态,如果不是,则不进行检测,否则获取其包络谱能量,进入步骤(2-3);
(2-2)如果接收信号的状态为语音状态,则获取其包络谱能量,进入步骤(1-3);
(2-3)判断帧能量是否大于包络能量10dB,如果是,则进行帧能量缩放,否则,则不进行检测。
具体的,所述步骤(2)中,对底噪进行相应状态的谱能量分布更新包括以下三种方式:谱分布初始化更新、谱分布正向更新和谱分布反向更新。
更进一步的,所述对底噪进行相应状态的谱能量分布更新时,如果是初始化状态则采用谱分布初始化更新;如果是噪声状态则采用谱分布正向更新;如果是信号状态则采用谱分布反向更新。
优选的,所述步骤(3)中,计算帧信噪比的公式为:
SNR=10lgΣi=0Lr2(i)Σi=0Ln2(i)-1;]]>
其中:SNR表示帧信噪比,r(i)表示接收信号,由发送信号和噪声信号组成,n(i)表示噪声信号;L表示统计周期内的样点个数,统计周期是由统计太阳城集团和采样率来决定。比如采样率为8Khz,统计太阳城集团为16毫秒,那么统计周期L就是128样点。
更新谱包络信噪比采用FIFO(先进先出)法,具体是只保存N帧信噪比,每当更新时,将最早输入的一帧信噪比舍去,其余的移位,最后得到的谱包络信噪比取谱包络信噪比记录数组中的最大值。
优选的,所述步骤(4)中,根据多状态转移的状态输出判断输入信号是语 音或是噪声,其中先定义三个状态,噪声状态表示当前接收到信号为噪声,语音状态表示当前接收到信号为语音,过渡状态表示当前接收到的信号还需要进一步判断是噪声还是语音,具体判断过程是:
(4-1)设置第一门限和第二门限;初始化为噪声状态;
(4-2)判断当前的帧信噪比是否大于第一门限,如果是,则由噪声状态转移至过渡状态,进入步骤(4-3),否则继续保持为噪声状态;
(4-3)计算进入过渡状态的连续若干帧的平均信噪比,判断平均信噪比是否大于第二门限,如果是则进入语音状态,进入步骤(4-4),否则进入噪声状态;
(4-4)检测一定太阳城集团内的谱包络信噪比,判断此谱包络信噪比是否大于第一门限,如果是则保持为语音状态,否则进入过渡状态。
更进一步的,所述步骤(4-1)中,第一门限和第二门限是通过统计平稳噪声的能量熵分布得出。其具体值可根据静音检测实际使用环境调整,静音检测可检测信噪比低至-15dB时的信号。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明方法能够准确可靠的检测低信噪比下的语音信号,检测准确率高,虚警率低,能够弥补目前低信噪比下静音检测手段的不足。
2、本发明中,根据接收信号的状态判断对接收信号进行增益振荡检测,从而可以防止在信号由强变弱过程中由于接收机AGC控制而造成语音幅度剧烈的波动,影响静音检测的稳定性。
附图说明
图1是本发明方法流程示意图;
图2是本发明增益振荡检测流程示意图;
图3是本发明谱包络状态转移过程示意图;
图4是本发明谱包络信噪比的计算过程示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
如图1所示,本实施例一种谱包络静音检测方法,具体包括步骤。
(1)通过快速傅立叶变换将收到的时域信号转为频域信号,计算信号频谱的能量分布。根据人类发声特性,将低于300Hz以及大于3400Hz的频谱能量置为零。
(2)根据接收信号的状态判断对接收信号进行增益振荡检测。增益振荡检测过程是为了防止由于接收机AGC控制而造成信号幅度上的剧烈变化,从而影响静音检测的准确性和稳定性。具体过程如图2所示,包括以下步骤:
(2-1)如果接收信号的状态为噪声状态,则先判断一定太阳城集团(例如1秒)前信号是否为语音状态,如果不是,则不进行检测,否则获取其包络谱能量,进入步骤(2-3);
(2-2)如果接收信号的状态为语音状态,则获取其包络谱能量,进入步骤(2-3);
(2-3)判断帧能量是否大于包络能量10dB,如果是,则进行帧能量缩放,否则,则不进行检测。
检测结束后根据当前所处的状态对底噪的谱能量分布进行更新,初始化状态采用谱分布初始化更新;噪声状态采用谱分布正向更新;信号状态采用谱分布反向更新。
(3)利用接收信号的谱能量分布和底噪的谱能量分布计算帧信噪比,保存并更新最近0.5秒钟内(在实际操作中不能超过2秒)的信噪比记录。
帧信噪比计算公式如下:
SNR=10lgΣi=0Lr2(i)Σi=0Ln2(i)-1]]>
其中:SNR表示帧信噪比,r(i)表示接收信号,由发送信号和噪声信号组成,n(i)表示噪声信号,L表示统计周期内的样点个数,统计周期是由统计太阳城集团和采样率来决定。比如采样率为8Khz,统计太阳城集团为16毫秒,那么统计周期L就是128样点。
然后采用FIFO(先进先出)法更新谱包络信噪比,原理如图4所示:只保存N帧信噪比,每当更新时,将最早输入的一帧信噪比(如图中的“1”)舍去,其余的移位,本实施例中得到的谱包络信噪比为谱包络信噪比记录数组中的最大值。
(4)根据帧信噪比和谱包络信噪比记录太阳城集团,进行谱包络多状态转移,根 据多状态转移的状态输出判断输入信号是语音还是噪声。先定义三个状态,噪声状态表示当前接收到信号为噪声,语音状态表示当前接收到信号为语音,过渡状态表示当前接收到的信号还需要进一步判断是噪声还是语音,具体判断过程如图3所示:
(4-1)通过统计平稳噪声的能量熵分布设置第一门限和第二门限;初始化为噪声状态;
(4-2)判断当前的帧信噪比是否大于第一门限,如果是,则由噪声状态转移至过渡状态,进入步骤(4-3),否则继续保持为噪声状态;
(4-3)计算进入过渡状态的连续若干帧的平均信噪比,判断平均信噪比是否大于第二门限,如果是则进入语音状态,进入步骤(4-4),否则进入噪声状态;
(4-4)检测一定太阳城集团内的谱包络信噪比,判断此谱包络信噪比是否大于第一门限,如果是则保持为语音状态,否则进入过渡状态。
太阳城集团上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

关 键 词:
一种 包络 静音 检测 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种谱包络静音检测方法.pdf
链接地址:http://zh228.com/p-6220675.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');