CN109119096B - 一种vad判决中当前激活音保持帧数的修正方法及装置 - Google Patents
一种vad判决中当前激活音保持帧数的修正方法及装置 Download PDFInfo
- Publication number
- CN109119096B CN109119096B CN201810622976.0A CN201810622976A CN109119096B CN 109119096 B CN109119096 B CN 109119096B CN 201810622976 A CN201810622976 A CN 201810622976A CN 109119096 B CN109119096 B CN 109119096B
- Authority
- CN
- China
- Prior art keywords
- frame
- signal
- value
- snr
- noise ratio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Noise Elimination (AREA)
- Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
Abstract
本发明实施例提供了一种激活音检测VAD判决中当前激活音保持帧数的修正方法及装置、信噪比门限的调整方法及装置,其中,所述修正方法包括:获得当前帧的子带信号及频谱幅值;根据子带信号计算得到长时信噪比lt_snr和平均全带信噪比SNR2_lt_ave;根据前面多个帧的VAD判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave以及当前帧的VAD判决结果,对当前激活音保持帧数进行修正。本发明技术方案可以提高不稳定噪声和音乐检测的准确率。
Description
本申请是申请日为2012年12月25日、申请号为201210570563.5且发明名称为“激活音检测及用于激活音检测的方法及装置”的发明专利申请的分案申请。
技术领域
本发明涉及激活音检测VAD技术,更具体的涉及一种激活音检测VAD判决中当前激活音保持帧数的修正方法及装置、信噪比门限的调整方法及装置。
背景技术
正常的语音通话中,用户有时在说话,有时在听,这个时候就会在通话过程出现非激活音阶段,正常情况下通话双方总的非语音激活阶段要超过通话双方总的语音编码时长的50%。在非激活音阶段,只有背景噪声,背景噪声通常没有任何有用信息。利用这一事实,在语音频信号处理过程中,通过激活音检测(VAD)算法检测出于激活音和非激活音,并采用不同的方法分别进行处理。现代的很多语音编码标准,如AMR,AMR-WB,都支持VAD功能。在效率方面,这些编码器的VAD并不能在所有的典型背景噪声下都达到很好的性能。特别是在非稳定噪声下,这些编码器的VAD效率都较低。而对于音乐信号,这些VAD有时候会出现错误检测,导致相应的处理算法出现明显的质量下降。
发明内容
有鉴于此,本发明实施例提供了一种激活音检测VAD判决中当前激活音保持帧数的修正方法,包括:
获得当前帧的子带信号及频谱幅值;
根据子带信号计算得到长时信噪比lt_snr和平均全带信噪比SNR2_lt_ave;
根据前面多个帧的VAD判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave以及当前帧的VAD判决结果,对当前激活音保持帧数进行修正
本发明实施例还提供了一种激活音检测VAD判决中当前激活音保持帧数的修正装置,包括:
长时信噪比计算单元,用于计算长时信噪比lt_snr;
平均全带信噪比计算单元,用于计算平均全带信噪比SNR2_lt_ave;
激活音保持帧数修正单元,用于根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave以及当前帧的VAD判决结果,对当前激活音保持帧数进行修正。
本发明实施例还提供了一种激活音检测VAD判决中信噪比门限的调整方法,包括:
获得当前帧的子带信号及频谱幅值;
根据子带信号计算得到当前帧的谱重心特征参数;
通过前一帧的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
根据所述谱重心特征参数、所述长时信噪比lt_snr、前面连续激活音帧的个数continuous_speech_num和前面连续噪声帧的个数continuous_noise_num来调整VAD判决的信噪比门限。
本发明实施例还提供了一种激活音检测VAD判决中信噪比门限的调整装置,包括:
特征参数获取单元,用于根据子带信号计算得到当前帧的谱重心特征参数;
长时信噪比计算单元,用于通过前一帧的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
信噪比门限调整单元,用于根据所述谱重心特征参数、所述长时信噪比lt_snr、前面连续激活音帧个数continuous_speech_num和前面连续噪声帧个数continuous_noise_num调整VAD判决的信噪比门限。
本发明实施例提供的技术方案,克服了既有VAD算法的缺点,在提高VAD对不稳定噪声检测效率的同时也提高音乐检测的准确率。使得采用本VAD的语音频信号处理算法可以得到更好的性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,和/或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明激活音检测方法实施例1的示意图;
图2为本发明激活音检测方法实施例2的示意图;
图3为本发明实施例1、2中得到VAD判决结果的过程示意图;
图4为本发明激活音检测(VAD)装置实施例1的模块结构示意图;
图5为本发明激活音检测(VAD)装置实施例2的模块结构示意图;
图6为本发明VAD装置中的VAD判决单元的模块结构示意图;
图7为本发明背景噪声检测方法实施例的示意图;
图8为本发明背景噪声检测装置的模块结构示意图;
图9为本发明调性信号检测方法实施例的示意图;
图10为本发明调性信号检测装置的模块结构示意图;
图11为本发明调性信号检测装置的调性信号判断单元的模块结构示意图;
图12为本发明VAD判决中当前激活音保持帧数的修正方法实施例的示意图;
图13为本发明VAD判决中当前激活音保持帧数的修正装置的模块结构示意图;
图14为本发明VAD判决中信噪比门限的调整方法实施例的示意图;
图15为本发明调整信噪比门限的具体流程示意图;
图16为本发明VAD判决中信噪比门限的调整装置的模块结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明激活音检测(VAD,Voice Activity Detection)方法实施例1,如图1所示,该方法包括:
步骤101:获得当前帧的子带信号及频谱幅值;
本实施例中以帧长为20ms,采样率为32kHz的音频流为例具体说明。在其它帧长和采样率条件下,本发明的方法同样适用。
将当前帧时域信号输入滤波器组,进行子带滤波计算,得到滤波器组子带信号;
本实施例中采用一个40通道的滤波器组,本发明对于采用其他通道数的滤波器组同样适用。
将当前帧时域信号输入40通道的滤波器组,进行子带滤波计算,得到16个时间样点上40个子带的滤波器组子带信号X[k,l],0≤k<40,0≤l<16,其中k为滤波器组子带的索引,其值表示系数对应的子带,l为各个子带的时间样点索引,其实现步骤如下:
101a:将最近的640个音频信号样值存储在数据缓存中。
101b:将数据缓存中的数据移40个位置,把最早的40个采样值移出数据缓存,并把40个新的样点存入到0到39的位置上。
将缓存中的数据x乘上窗系数,得到数组z,计算方程式如下:
z[n]=x[n]·Wqmf[n];0≤n<640;
其中Wqmf为滤波器组窗系数。
采用以下的伪代码计算得到一个80点的数据u,
for(n=0;n<80;n++)
{u[n]=0;
for(j=0;j<8;j++)
{
u[n]+=z[n+j·80];
}
}
采用下面的方程计算得到数组r和i:
采用下面的方程计算得到第一个时间样点上40个复数子带样值,X[k,l]=R(k)+iI(k),0≤k<40,其中R(k)和I(k)分别为滤波器组子带信号X第l个时间样点上系数的实部和虚部,其计算方程式如下:
101c:重复101b的计算过程,直到将本帧的所有数据都经过滤波器组滤波,最后的输出结果即为滤波器组子带信号X[k,l]。
101d:完成上面计算过程后,得到40个子带的16个时间样点的滤波器组子带信号X[k,l],0≤k<40,0≤l<16。
对滤波器组子带信号进行时频变换,并计算得到频谱幅值。
其中对全部滤波器组子带或部分滤波器组子带进行时频变换,计算频谱幅值,都可以实现本发明实施例。本发明的所述时频变换方法可以是DFT、FFT、DCT或DST。本实施例采用DFT为例,说明其具体实现方法。计算过程如下:
对索引为0到9的每个滤波器组子带上的16个时间样点数据进行16点的DFT变换,进一步提高频谱分辨率,并计算各个频点的幅值,得到频谱幅值XDFT_AMP。
时频变换计算方程式如下:
计算各个频点的幅值过程如下:
首先,计算数组XDFT[k][j]在各个点上的能量,计算方程式如下:
XDFT_POW[k,j]=(real(XDFT[k,j])2+(image(XDFT[k,j])2;0≤k<10;0≤j<16;其中real(XDFT_POW[k,j]),image(XDFT_POW[k,j])分别表示频谱系数XDFT_POW[k,j]的实部和虚部。
如果k为偶数,则采用以下方程计算各个频点上的频谱幅值:
如果k为奇数,则采用以下方程计算各个频点上的频谱幅值:
XDFT_AMP即为时频变换后的频谱幅值。
步骤102:根据子带信号计算得到当前帧的帧能量参数和谱重心特征参数的值;
帧能量参数、谱重心特征参数和调性特征参数的值,可采用现有技术方法获得,优选地,各参数采用如下方法获得:
所述帧能量参数是各个子带信号能量的加权叠加值或直接叠加值;具体地:
a)根据滤波器组子带信号X[k,l]计算各滤波器组子带的能量,计算方程式如下:
b)将部分听觉比较敏感的滤波器组子带或所有的滤波器组子带的能量累加,得到帧能量参数。
其中根据心理听觉模型,人耳对极低频(如100Hz以下)和高频(如20kHz以上)声音会比较不敏感,本发明认为按照频率从低到高排列的滤波器组子带,从第二个子带到倒数第二个子带为听觉比较敏感的主要滤波器组子带,将部分或全部听觉比较敏感的滤波器组子带能量累加得到帧能量参数1,计算方程式如下:
其中,e_sb_start为起始子带索引,其取值范围为[0,6]。e_sb_end为结束子带索引,其取值大于6,小于子带总数。
帧能量参数1的值加上部分或全部在计算帧能量参数1时未使用的滤波器组子带的能量的加权值,得到帧能量参数2,其计算方程式如下:
其中e_scale1,e_scale2为加权比例因子,其取值范围分别为[0,1]。num_band为子带总个数。
谱重心特征参数是通过求滤波器组子带能量加权相加的和与子带能量的直接相加的和的比值或通过对其他谱重心特征参数值进行平滑滤波得到的。
谱重心特征参数可以采用如下子步骤实现:
a:将用于谱重心特征参数计算的子带区间划分如下:
b:采用a的谱重心特征参数计算区间划分方式和以下公式,计算得到两个谱重心特征参数值,分别为第一区间谱重心特征参数和第二区间谱重心特征参数。
Delta1,Delta2分别为一个小的偏置值,取值范围为(0,1)。其中k为谱重心编号索引。
c:对第一区间谱重心特征参数sp_center[0]进行平滑滤波运算,得到平滑谱重心特征参数值,即第一区间谱重心特征参数值的平滑滤波值,计算过程如下:
sp_center[2]=sp_center-1[2]·spc_sm_scale+sp_center[0]·(1-spc_sm_scale)
其中,spc_sm_scale为谱重心参数平滑滤波比例因子,sp_center-1[2]表示上一帧的平滑谱重心特征参数值,其初始值为1.6。
步骤103:根据前一帧估计得到的背景噪声能量、当前帧的帧能量参数及信噪比子带能量计算得到当前帧的信噪比参数;
前一帧的背景噪声能量可通过现有方法获得。
如果当前帧是起始帧,信噪比子带背景噪声能量的值采用默认的初值。前一帧信噪比子带背景噪声能量估计与当前帧的信噪比子带背景能量估计的原理相同,当前帧的信噪比子带背景能量估计参见下文实施例2中的步骤207。具体地,当前帧的信噪比参数可采用现有信噪比计算方法实现。优选地,采用以下方法:
首先,将滤波器组子带重新划分为若干信噪比子带,划分索引如下表,
其次,根据信噪比子带的划分方式,计算当前帧各个信噪比子带能量。计算方程如下:
再次、根据当前帧各个信噪比子带的能量和上一帧各个信噪比子带的背景噪声能量计算子带平均信噪比SNR1。计算方程如下:
其中Esb2_bg为估计得到的上一帧各个信噪比子带的背景噪声能量,num_band信噪比子带个数。得到上一帧信噪比子带的背景噪声能量的原理与得到当前帧的信噪比子带背景能量的原理相同,得到当前帧的信噪比子带背景能量的过程参见下文实施例2的步骤207;
最后,根据估计得到的上一帧全带背景噪声能量和当前帧的帧能量参数,计算全带信噪比SNR2:
其中Et_bg为估计得到的上一帧全带背景噪声能量,得到上一帧全带背景噪声能量原理与得到当前帧的全带背景噪声能量的原理相同,得到当前帧的全带背景噪声能量的过程参见下文实施例2的步骤207;
本实施例中信噪比参数包括子带平均信噪比SNR1和全带信噪比SNR2。全带背景噪声能量和各个子带的背景噪声能量统称为背景噪声能量。
步骤104:根据调性标志、信噪比参数、谱重心特征参数、帧能量参数计算得到VAD判决结果。
实施例2
本发明激活音检测(VAD)方法实施例2,对输入的音频信号分帧进行多相滤波,得到滤波器组子带信号,并对滤波器组子带信号进一步进行时频变换,并计算得到频谱幅值,分别在各个滤波器组子带信号和频谱幅值上进行信号特征提取,得到各个特征参数值。根据特征参数值计算得到当前帧的背景噪声标识和调性标志。根据当前帧能量参数值和背景噪声能量计算得到当前帧的信噪比参数,根据计算得到的当前帧的信噪比参数、前面帧的VAD(语音激活检测,Voice Activity Detection)判决结果和各个特征参数,判断当前帧是否是激活音帧。根据激活音帧判决结果对背景噪声标识进行修正,得到新的背景噪声标识。根据新的背景噪声标识判断是否对背景噪声进行更新。VAD检测的具体过程如下:
如图2所示,该方法实施例2包括:
步骤201:获得当前帧的子带信号及频谱幅值;
步骤202:根据子带信号计算得到当前的帧能量参数、谱重心特征参数、时域稳定度特征参数的值;根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;
所述帧能量参数是各个子带信号能量的加权叠加值或直接叠加值;
所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值;
具体地,
根据各个滤波器组子带的能量计算得到谱重心特征参数,谱重心特征参数是通过求滤波器组子带能量加权相加的和与子带能量的直接相加的和的比值或通过对其他谱重心特征参数值进行平滑滤波得到的。
谱重心特征参数可以采用如下子步骤实现:
a:将用于谱重心特征参数计算的子带区间划分如下:
b:采用a的谱重心特征参数计算区间划分方式和以下公式,计算得到两个谱重心特征参数值,分别为第一区间谱重心特征参数和第二区间谱重心特征参数。
Delta1,Delta2分别为一个小的偏置值,取值范围为(0,1)。其中k为谱重心编号索引。
c:对第一区间谱重心特征参数sp_center[0]进行平滑滤波运算,得到平滑谱重心特征参数值,即第一区间谱重心特征参数值的平滑滤波值,计算过程如下:
sp_center[2]=sp_center-1[2]·spc_sm_scale+sp_center[0]·(1-spc_sm_scale)
其中,spc_sm_scale为谱重心参数平滑滤波比例因子,sp_center-1[2]表示上一帧的平滑谱重心特征参数值,其初始值为1.6。
所述时域稳定度特征参数是幅值叠加值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数;
具体地,
由最新的若干帧信号的帧能量参数计算得到时域稳定度特征参数。在本实施例中采用最新的40帧信号的帧能量参数计算得到时域稳定度特征参数。具体计算步骤为:
首先,计算得到最近40帧信号的能量幅值,计算方程如下:
其中,e_offset为一个偏置值,其取值范围为[0,0.1]
其次,依次将当前帧到前面第40帧的相邻两帧的能量幅值相加,得到20个幅值叠加值。具体计算方程如下:
Ampt2(n)=Ampt1(-2n)+Ampt1(-2n-1);0≤n<20;
其中,n=0时,Ampt1表示当前帧的能量幅值,n<0时,Ampt1表示当前帧往前的n帧的能量幅值。
最后,通过计算最近的20个幅值叠加值的方差和平均能量的比值,得到时域稳定度特征参数ltd_stable_rate0。计算方程式如下:
所述谱平坦度特征参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数;
具体地,将频谱幅值XDFT_AMP划分成若干个频带,并计算当前帧各个频带的谱平坦度,得到当前帧的谱平坦度特征参数。
本实施例将频谱幅值划分成3个频带,并计算这3个频带的谱平坦度特征,其具体实现步骤如下:
首先、将XDFT_AMP按照下表的索引划分为3个频带。
其次、分别计算各个子带的谱平坦度,得到当前帧的谱平坦度特征参数。当前帧的各个谱平坦度特征参数值的计算方程如下:
最后,对当前帧的谱平坦度特征参数进行平滑滤波,得到当前帧最终的谱平坦度特征参数。
sSMR(k)=smr_scale·sSMR-1(k)+(1-smr_scale)·SMR(k);0≤k<3
其中smr_scale为平滑因子,其取值范围为[0.6,1],sSMR-1(k)为上一帧的第k个谱平坦度特征参数的值。。
调性特征参数是通过计算前后两帧信号的帧内频谱差分系数的相关值得到的,或继续对该相关值进行平滑滤波得到的。
具体地,前后两帧信号的帧内频谱差分系数的相关值的计算方法如下:
根据频谱幅值计算得到调性特征参数,其中调性特征参数可以根据所有频谱幅值或部分频谱幅值计算得到。
其计算步骤如下:
a,将部分(不小于8个频谱系数)或全部频谱幅值跟相邻的频谱幅值做差分运算,并将差分结果小于0的值置0,得到一组非负的频谱差分系数。
本实施例选择位置索引为3到61的频点系数为例,计算调性特征参数。具体过程如下:
将频点3到频点61的相邻频谱幅值做差分运算,方程式如下:
spec_dif[n-3]=XDFT_AMP(n+1)-XDFT_AMP(n);3≤n<62;
将spec_dif中小于0的变量置零。
b,求取步骤a计算得到的当前帧非负的频谱差分系数和前一帧非负的频谱差分系数的相关系数,得到第一调性特征参数值。计算方程式如下:
其中,pre_spec_dif为前一帧的非负的频谱差分系数。
c,对第一调性特征参数值进行平滑运算,得到第二调性特征参数值。计算方程如下:
tonality_rate2=tonal_scale·tonality_rate2-1+(1-tonal_scale)·tonality_rate1
tonal_scale为调性特征参数平滑因子,其取值范围为[0.1,1],tonality_rate2-1为前一帧的第二调性特征参数值,其初始值取值范围为[0,1]。
步骤203:根据前一帧估计得到的背景噪声能量、当前帧的帧能量参数及信噪比子带能量计算得到当前帧的信噪比参数;
步骤204:根据当前帧帧能量参数、谱重心特征参数、时域稳定度特征参数、谱平坦度特征参数、调性特征参数计算得到当前帧的初始背景噪声标识和调性标志;
步骤205:根据调性标志、信噪比参数、谱重心特征参数、帧能量参数计算得到VAD判决结果;
具体地,该步骤205的具体实现方法参见下文结合图3的描述。
可理解地,步骤205VAD判决之前的步骤,只要其中的参数没有前后因果关系,则前后顺序可调,比如得到初始背景噪声标识和调性标志的步骤204可以在信噪比计算步骤203之前。
当前帧的初始背景噪声标识需要修正后用于下一帧信噪比参数的计算,因此得到当前帧的初始背景噪声标识的操作也可以在VAD判决之后。
步骤206:根据当前帧VAD的判决结果、调性特征参数、信噪比参数、调性标志、时域稳定度特征参数对初始背景噪声标识进行修正;
如果信噪比参数SNR2小于一个设定的门限值SNR2_redec_thr1,SNR1小于SNR1_redec_thr1、VAD标志vad_flag等于0、调性特征参数tonality_rate2小于tonality_rate2_thr1、调性标志tonality_flag等于0并且时域稳定度特征参数lt_stable_rate0小于lt_stable_rate0_redec_thr1(设置为0.1),则背景噪声标识赋值为1。
步骤207:根据背景噪声标识的修正值和当前帧的帧能量参数、前一帧的全带背景噪声能量,得到当前帧的背景噪声能量;所述当前帧的背景噪声能量用于下一帧信噪比参数计算。
根据背景噪声标识判断是否进行背景噪声更新,如果背景噪声标识为1,则根据估计得到全带背景噪声能量与当前帧信号的能量的比值进行背景噪声更新。背景噪声能量估计包括子带背景噪声能量估计和全带背景噪声能量估计。
a,子带背景噪声能量估计方程式如下:
Esb2_bg(k)=Esb2_bg_pre(k)·αbg_e+Esb2_bg(k)·(1-αbg_e);0≤k<num_sb
其中,num_sb是频域子带的个数,Esb2_bg_pre(k)表示前一帧第k个信噪比子带的子带背景噪声能量。
αbg_e是背景噪声更新因子,其值由前一帧的全带背景噪声能量和当前帧能量参数决定。计算过程如下:
如果上一帧全带背景背景噪声能量Et_bg小于当前帧的帧能量参数Et1,则取值0.96,否则取值0.95。
b,全带背景噪声能量估计:
如果当前帧的背景噪声标识为1,则更新背景噪声能量累加值Et_sum和背景噪声能量累计帧数NEt_counter,计算方程如下:
Et_sum=Et_sum_-1+Et1;
NEt_counter=NEt_counter_-1+1;
其中Et_sum_-1为前一帧的背景噪声能量累加值,NEt_counter_-1为前一帧计算得到的背景噪声能量累计帧数。
c,全带背景噪声能量由背景噪声能量累加值Et_sum和累计帧数NEt_counter的比值得到:
判断NEt_counter是否等于64,如果NEt_counter等于64则分别将背景噪声能量累加值Et_sum和累计帧数NEt_counter乘0.75。
d,根据调性标志、帧能量参数、全带背景噪声能量的值对子带背景噪声能量和背景噪声能量累加值进行调整。计算过程如下:
如果调性标志tonality_flag等于1并且帧能量参数Et1的值小于背景噪声能量特征参数Et_bg的值乘以一个增益系数gain,
则,Et_sum=Et_sum·gain+delta;Esb2_bg(k)=Esb2_bg(k)·gain+delta;
其中,gain的取值范围为[0.3,1]。
实施例1和实施例2中,根据调性标志、信噪比参数、谱重心特征参数、帧能量参数计算得到VAD判决结果的流程,如图3所示包括如下步骤:
步骤301:通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
平均长时激活音信号能量Efg和平均长时背景噪声能量Ebg的计算和定义见步骤307。长时信噪比lt_snr计算方程如下:
步骤302:计算最近若干个帧的全带信噪比SNR2的平均值,得到平均全带信噪比SNR2_lt_ave;
计算方程如下:
SNR2(n)表示当前帧往前第n帧的全带信噪比SNR2的值,F_num为计算平均值的总帧数,其取值范围为[8,64]。
步骤303:根据谱重心特征参数、长时信噪比lt_snr、前面连续激活音帧个数continuous_speech_num和前面连续噪声帧个数continuous_noise_num得到VAD判决的信噪比门限snr_thr;
具体实现步骤如下:
首先,设置信噪比门限snr_thr的初始值,范围为[0.1,2],优选地为1.06。
其次,根据谱重心特征参数首次调整信噪比门限snr_thr的值。其步骤如下:如果谱重心特征参数sp_center[2]的值大于一个设定的门限值spc_vad_dec_thr1,则snr_thr加上一个偏置值,优先的改偏置值取0.05;否则,如果sp_center[1]大于spc_vad_dec_thr2,则snr_thr加上一个偏置值,优先的改偏置值取0.10;否则,snr_thr加上一个偏置值,优先的改偏置值取0.40;其中,门限值spc_vad_dec_thr1和spc_vad_dec_thr2取值范围为[1.2,2.5]
再次,根据前面连续激活音帧个数continuous_speech_num、前面连续噪声帧个数continuous_noise_num、平均全带信噪比SNR2_lt_ave和长时信噪比lt_snr二次调整snr_thr的值。如果前面连续语音个数continuous_speech_num大于一个设定的门限值cpn_vad_dec_thr1,则snr_thr减去0.2;否则,如果前面连续噪声个数continuous_noise_num大于一个设定的门限值cpn_vad_dec_thr2,并且SNR2_lt_ave大于一个偏置值加上长时信噪比lt_snr乘以系数lt_tsnr_scale,则snr_thr加上一个偏置值,优先的改偏置值取0.1;否则,如果continuous_noise_num大于一个设定的门限值cpn_vad_dec_thr3,则snr_thr加上一个偏置值,优先的改偏置值取0.2;否则,如果continuous_noise_num大于一个设定的门限值cpn_vad_dec_thr4,则snr_thr加上一个偏置值,优先的改偏置值取0.1。其中,门限值cpn_vad_dec_thr1,cpn_vad_dec_thr2,cpn_vad_dec_thr3,cpn_vad_dec_thr4取值范围为[2,500],系数lt_tsnr_scale取值范围为[0,2]。跳过本步骤,直接进入最后一步,也可实现本发明。
最后,根据长时信噪比lt_snr的值再对信噪比门限snr_thr进行最终调整,得到当前帧的信噪比门限snr_thr。
修正方程如下:
snr_thr=snr_thr+(lt_tsnr-thr_offset)·thr_scale;
其中,thr_offset为一个偏置值,其取值范围为[0.5,3];thr_scale为一个增益系数,其取值范围为[0.1,1]。
步骤304:根据VAD的判决门限snr_thr和当前帧计算得到的信噪比参数SNR1、SNR2计算得到初始的VAD判决;
计算过程如下:
如果SNR1大于判决门限snr_thr,则判断当前帧为激活音帧,用VAD标志vad_flag的值来指示当前帧是否为激活音帧,本实施例中用值1表示当前帧为激活音帧,0表示当前帧为非激活音帧。否则,判断当前帧为非激活音帧,VAD标志vad_flag的值置0。
如果SNR2大于一个设定的门限值snr2_thr,则判断当前帧为激活音帧,VAD标志vad_flag的值置1。其中,snr2_thr的取值范围为[1.2,5.0]
步骤305:根据调性标志、平均全带信噪比SNR2_lt_ave、谱重心和长时信噪比lt_snr对VAD的判决结果进行修正;
具体步骤如下:
如果调性标志指示当前帧为调性信号,即tonality_flag为1,则判断当前帧是激活音信号,vad_flag标志置1。
如果平均全带信噪比SNR2_lt_ave大于一个设定的门限SNR2_lt_ave_t_thr1加上长时信噪比lt_snr乘于系数lt_tsnr_tscale,则判断当前帧为激活音帧,vad_flag标志置1。
其中,本实施例SNR2_lt_ave_thr1的取值范围为[1,4],lt_tsnr_tscale的取值范围为[0.1,0.6]。
如果平均全带信噪比SNR2_lt_ave大于一个设定的门限SNR2_lt_ave_t_thr2,并且谱重心特征参数sp_center[2]大于一个设定的门限sp_center_t_thr1和长时信噪比lt_snr小于一个设定的门限lt_tsnr_t_thr1,则判断当前帧为激活音帧,vad_flag标志置1。其中,SNR2_lt_ave_t_thr2的取值范围为[1.0,2.5],sp_center_t_thr1的取值范围为[2.0,4.0],lt_tsnr_t_thr1的取值范围为[2.5,5.0]。
如果SNR2_lt_ave大于一个设定的门限SNR2_lt_ave_t_thr3,并且谱重心特征参数sp_center[2]大于一个设定的门限sp_center_t_thr2和长时信噪比lt_snr小于一个设定的门限lt_tsnr_t_thr2,则判断当前帧为激活音帧,vad_flag标志置1。其中,SNR2_lt_ave_t_thr3的取值范围为[0.8,2.0],sp_center_t_thr2的取值范围为[2.0,4.0],lt_tsnr_t_thr2的取值范围为[2.5,5.0]。
如果SNR2_lt_ave大于一个设定的门限SNR2_lt_ave_t_thr4,并且谱重心特征参数sp_center[2]大于一个设定的门限sp_center_t_thr3和长时信噪比lt_snr小于一个设定的门限lt_tsnr_t_thr3,则判断当前帧为激活音帧,vad_flag标志置1。其中,SNR2_lt_ave_t_thr4的取值范围为[0.6,2.0],sp_center_t_thr3的取值范围为[3.0,6.0],lt_tsnr_t_thr3的取值范围为[2.5,5.0]。
步骤306:根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave和当前帧的VAD判决结果,修正激活音保持帧数;
具体计算步骤如下:
当前激活音保持帧数修正的前提条件是激活音标志指示当前帧为激活音帧,若不符合该条件,不修正当前激活音保持帧数num_speech_hangover的值,直接进入步骤307。
激活音保持帧数修正步骤如下:
如果前面连续语音帧数continuous_speech_num小于一个设定的门限值continuous_speech_num_thr1,并且lt_tsnr小于一个设定的门限值lt_tsnr_h_thr1,则当前激活音保持帧数num_speech_hangover等于最小连续激活音帧数减去前面连续语音帧数continuous_speech_num。否则,如果SNR2_lt_ave大于一个设定的门限值SNR2_lt_ave_thr1,并且前面连续语音帧个数continuous_speech_num大于一个设定的门限值continuous_speech_num_thr2,则根据长时信噪比lt_tsnr的大小设置激活音保持帧数num_speech_hangover的值。否则,不修正当前激活音保持帧数num_speech_hangover的值。其中本实施例中最小连续激活音帧数取值为8,其可以在[6,20]之间取值。
具体步骤如下:
如果长时信噪比lt_snr大于2.6,则num_speech_hangover的值为3;否则,如果长时信噪比lt_snr大于1.6,则num_speech_hangover的值为4;否则,num_speech_hangover的值为5。
步骤307:根据当前帧的判决结果和激活音保持帧数num_speech_hangover添加激活音保持,得到当前帧的VAD判决结果。
其方法为:
如果当前帧被判断为非激活音,即激活音标志为0,并且激活音保持帧数num_speech_hangover大于0,添加激活音保持,即设置激活音标志为1,,并且将num_speech_hangover的值减1。
得到当前帧的最终的VAD判决结果。
优选地,步骤304之后,还包括根据VAD初始判决结果,计算平均长时激活音信号能量Efg;步骤307之后,还包括,根据VAD判决结果计算平均长时背景噪声能量Ebg,计算值用于下一帧VAD判决。
平均长时激活音信号能量Efg具体计算过程如下:
a),如果VAD初始判决结果指示当前帧为激活音帧,即VAD标志的值为1,并且Et1大于Ebg的若干倍,本实施例取6倍,则更新平均长时激活音能量累加值fg_energy和平均长时激活音能量累加帧数fg_energy_count。更新方法为fg_energy加上Et1得到新的fg_energy。fg_energy_count加1得到新的fg_energy_count。
b),为了保证平均长时激活音信号能量能反映最新的激活音信号能量,如果平均长时激活音能量累加帧数值等于某一个设定值fg_max_frame_num,则累加帧数和累加值同时乘上一个衰减系数attenu_coef1。本实施例中fg_max_frame_num取值512,attenu_coef1取值为0.75。
c),由平均长时激活音能量累加值fg_energy除以平均长时激活音能量累加帧数得到平均长时激活音信号能量,计算方程式如下:
平均长时背景噪声能量Ebg的计算方法为:
假设bg_energy_count为背景噪声能量累加帧数,用于记录最近背景噪声能量的累加值包含了多少帧的能量。bg_energy为最近背景噪声能量的累加值。
a),如果当前帧判断为非激活音帧,则VAD标志的值为0,并且SNR2小于1.0,则更新背景噪声能量累加值bg_energy和背景噪声能量累加帧数bg_energy_count。更新方法为背景噪声能量累加值bg_energy加上Et1得到新的背景噪声能量累加值bg_energy。背景噪声能量累加帧数bg_energy_count加1得到新的背景噪声能量累加帧数bg_energy_count。
b),如果背景噪声能量累加帧数bg_energy_count为等于平均长时背景噪声能量计算的最大计数帧数,则累加帧数和累加值同时乘上衰减系数attenu_coef2。其中,本实施例平均长时背景噪声能量计算的最大计数帧数为512,衰减系数attenu_coef2等于0.75。
c),由背景噪声能量累加值bg_energy除于背景噪声能量累加帧数得到平均长时背景噪声能量计算方程式如下:
为了实现上述激活音检测方法实施例1和2,本发明还提供了一种激活音检测(VAD)装置实施例1,如图4所示,该装置包括:
滤波器组,用于获得当前帧的子带信号;
频谱幅值计算单元,用于获得当前帧的频谱幅值;
特征参数获取单元,用于根据子带信号计算得到当前帧的帧能量参数和谱重心特征参数的值;
信噪比计算单元,用于根据前一帧估计得到的背景噪声能量、当前帧的帧能量参数及信噪比子带能量计算得到当前帧的信噪比参数;
VAD判决单元,用于根据调性标志、信噪比参数、谱重心特征参数、帧能量参数计算得到VAD判决结果。
对应于方法实施例2,所述特征参数获取单元,还用于根据子带信号计算得到时域稳定度特征参数的值,用于根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;;
各特征参数可采用现有方法获得,也可采用以下方法获得:
所述帧能量参数是各个子带信号能量的加权叠加值或直接叠加值;
所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值;
所述时域稳定度特征参数是幅值叠加值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数;
所述谱平坦度特征参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数;
调性特征参数是通过计算前后两帧信号的帧内频谱差分系数的相关值得到,或继续对该相关值进行平滑滤波得到。
如图5所示,本发明激活音检测(VAD)装置实施例2,与实施例1不同的是,所述装置还包括标志计算单元和背景噪声能量处理单元,其中:
标志计算单元,用于根据当前帧帧能量参数、谱重心特征参数、时域稳定度特征参数、谱平坦度特征参数、调性特征参数计算得到当前帧的调性标志;
背景噪声能量处理单元,其包括:
标识计算模块,用于根据当前帧帧能量参数、谱重心特征参数、时域稳定度特征参数、谱平坦度特征参数、调性特征参数计算得到当前帧的初始背景噪声标识;
标识修正模块,用于根据当前帧VAD的判决结果、调性特征参数、信噪比参数、调性标志、时域稳定度特征参数对初始背景噪声标识进行修正;
背景噪声能量获取模块,用于根据背景噪声标识的修正值和当前帧的帧能量参数、前一帧的全带背景噪声能量,得到当前帧的背景噪声能量,所述当前帧的背景噪声能量用于下一帧信噪比参数计算。
对应于方法实施例1和2,如图6所示,所述VAD判决单元包括:
长时信噪比计算模块,用于通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
平均全带信噪比计算模块,用于计算最近若干个帧的全带信噪比SNR2的平均值,得到平均全带信噪比SNR2_lt_ave;
信噪比门限计算模块,用于根据谱重心特征参数、长时信噪比lt_snr、前面连续激活音帧个数continuous_speech_num和前面连续噪声帧个数continuous_noise_num得到VAD判决的信噪比门限snr_thr;
初始VAD判决模块,用于根据VAD的判决门限snr_thr和当前帧计算得到的信噪比参数SNR1、SNR2计算得到初始的VAD判决;
VAD结果修正模块,根据调性标志、平均全带信噪比SNR2_lt_ave、谱重心和长时信噪比lt_snr对VAD的判决结果进行修正;
激活音保持帧修正模块,用于根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave、当前帧的信噪比和当前帧的VAD判决结果,修正得到激活音保持帧数;
VAD判决模块,用于根据当前帧的判决结果和激活音保持帧数num_speech_hangover添加激活音保持,得到当前帧的VAD判决结果。
更优选地,所述VAD判决单元还包括:能量计算模块,用于根据VAD初始判决结果,计算平均长时激活音信号能量Efg;以及根据VAD判决结果进行平均长时背景噪声能量Ebg更新,更新后的值用于下一帧VAD判决。
本发明还提供了一种背景噪声检测方法实施例,如图7所示,该方法包括:
步骤701:获得当前帧的子带信号及频谱幅值;
步骤702:根据子带信号计算得到的帧能量参数、谱重心特征参数、时域稳定度特征参数的值,根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;
优选地,所述帧能量参数是各个子带信号能量的加权叠加值或直接叠加值。
所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值。
所述时域稳定度参数是帧能量幅值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数。
所述谱平坦度参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数。
具体地,步骤701和步骤702可采用与上文相同的方法,在此不再赘述。
步骤703:根据谱重心特征参数、时域稳定度特征参数、谱平坦度特征参数、调性特征参数、当前帧能量参数进行背景噪声检测,判断当前帧是否为背景噪声。
优选地,判断以下任一条件成立,则判断当前帧不是噪声信号:
所述时域稳定度参数lt_stable_rate0大于一个设定的门限值;
第一区间谱重心特征参数值的平滑滤波值大于一个设定的门限值,且时域稳定度特征参数值也大于某一个设定的门限值;
调性特征参数或其平滑滤波后的值大于一个设定的门限值,且时域稳定度特征参数lt_stable_rate0值大于其设定的门限值;
各子带的谱平坦度特征参数或各自平滑滤波后的值均小于各自对应的设定的门限值;
或,判断帧能量参数Et1的的值大于设定的门限值E_thr1。
具体地,假设当前帧为背景噪声。
本实施例通过一个背景噪声标识background_flag来指示当前帧是否是背景噪声,并约定如果判断当前帧为背景噪声,则设置背景噪声标识background_flag为1,否则设置背景噪声标识background_flag为0。
根据时域稳定度特征参数、谱重心特征参数、谱平坦度特征参数、调性特征参数、当前帧能量参数检测当前帧是否为噪声信号。如果不是噪声信号,则将背景噪声标识background_flag置0。
具体过程如下:
判断时域稳定度参数lt_stable_rate0是否大于一个设定的门限值lt_stable_rate_thr1。如果是,则判断当前帧不是噪声信号,并将background_flag置0。本实施例门限值lt_stable_rate_thr1取值范围为[0.8,1.6];
判断平滑谱重心特征参数值是否大于一个设定的门限值sp_center_thr1,并且时域稳定度特征参数值也大于某一个设定的门限值lt_stable_rate_thr2。如果是,则判断当前帧不是噪声信号,并将background_flag置0。sp_center_thr1的取值范围为[1.6,4];lt_stable_rate_thr2的取值范围为(0,0.1]。
判断调性特征参数tonality_rate2的值是否大于一个设定的门限值tonality_rate_thr1,时域稳定度特征参数lt_stable_rate0值是否大于设定的门限值lt_stable_rate_thr3,如果上述条件同时成立,则判断当前帧不是背景噪声,background_flag赋值为0。门限值tonality_rate_thr1取值范围在[0.4,0.66]。门限值lt_stable_rate_thr3的取值范围为[0.06,0.3]。
判断谱平坦度特征参数sSMR[0]的值是否小于设定的门限值sSMR_thr1,判断谱平坦度特征参数sSMR[1]的值是否小于设定的门限值sSMR_thr2,判断谱平坦度特征参数sSMR[2]的值是否小于设定的sSMR_thr3。如果上述条件同时成立,则判断当前帧不是背景噪声。background_flag赋值为0。门限值sSMR_thr1、sSMR_thr2、sSMR_thr3的取值范围为[0.88,0.98]。判断平坦度特征参数sSMR[0]的值是否小于设定的门限值sSMR_thr4,判断谱平坦度特征参数sSMR[1]的值是否小于设定的门限值sSMR_thr5,判断谱平坦度特征参数sSMR[1]的值是否小于设定的门限值sSMR_thr6。如果上述任一条件成立,则判断当前帧不是背景噪声。background_flag赋值为0。sSMR_thr4、sSMR_thr5、sSMR_thr6的取值范围为[0.80,0.92]
判断帧能量参数Et1的值是否大于设定的门限值E_thr1,如果上述条件成立,则判断当前帧不是背景噪声。background_flag赋值为0。E_thr1根据帧能量参数的动态范围进行取值。
如果当前帧未被检测不是背景噪声,则表示当前帧为背景噪声。
对应于上述方法,本发明还提供了一种背景噪声检测装置,如图8所示,该装置包括:
滤波器组,用于获得当前帧的子带信号;
频谱幅值计算单元,用于获得当前帧的频谱幅值;
特征参数计算单元,用于根据子带信号计算得到的帧能量参数、谱重心特征参数、时域稳定度特征参数的值,根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;
优选地,所述帧能量参数是各个子带信号能量的加权叠加值或直接叠加值。
所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值。
所述时域稳定度参数是帧能量幅值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数。
所述谱平坦度参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数。
背景噪声判断单元,用于根据谱重心特征参数、时域稳定度特征参数、谱平坦度特征参数、调性特征参数、当前帧能量参数进行背景噪声检测,判断当前帧是否为背景噪声。
优选地,所述背景噪声判断单元判断以下任一条件成立,则判断当前帧不是噪声信号:
所述时域稳定度参数lt_stable_rate0大于一个设定的门限值;
第一区间谱重心特征参数值的平滑滤波值大于一个设定的门限值,且时域稳定度特征参数值也大于某一个设定的门限值;
调性特征参数或其平滑滤波后的值大于一个设定的门限值,且时域稳定度特征参数lt_stable_rate0值大于其设定的门限值;
各子带的谱平坦度特征参数或各自平滑滤波后的值均小于各自对应的设定的门限值;
或,判断帧能量参数Et1的的值大于设定的门限值E_thr1。
本发明还提供了一种调性信号检测方法,如图9所示,方法包括:
步骤901:获得当前帧的子带信号及频谱幅值;
步骤902:根据子带信号计算得到当前帧的谱重心特征参数、时域稳定度特征参数的值,根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;
优选地,所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值;所述时域稳定度特征参数是幅值叠加值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数;
所述谱平坦度特征参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数;
调性特征参数是通过计算前后两帧信号的帧内频谱差分系数的相关值得到,或继续对该相关值进行平滑滤波得到。
步骤903:根据调性特征参数、时域稳定度特征参数、谱平坦度特征参数、谱重心特征参数判断当前帧是否为调性信号。
步骤903判断是否为调性信号时,执行以下操作:
A)假设当前帧信号为非调性信号,并用一个调性帧标志tonality_frame来指示当前帧是否为调性帧。
本实施例中tonality_frame的值为1表示当前帧为调性帧,0表示当前帧为非调性帧;
B)判断调性特征参数tonality_rate1或其平滑滤波后tonality_rate2的值是否大于对应的设定的门限值tonality_decision_thr1或tonality_decision_thr2,如果上述条件有一个成立则执行步骤C),否则执行步骤D);
其中,tonality_decision_thr1的取值范围为[0.5,0.7],tonality_rate1的取值范围为[0.7,0.99]。
C如果时域稳定度特征参数值lt_stable_rate0小于一个设定的门限值lt_stable_decision_thr1;谱重心特征参数值sp_center[1]大于一个设定的门限值spc_decision_thr1,且各子带的谱平坦度特征参数均小于各自对应的预设的门限值,具体地,谱平坦度特征参数sSMR[0]小于一个设定的门限值sSMF_decision_thr1或sSMR[1]小于一个设定的门限值sSMF_decision_thr2或sSMR[2]小于一个设定的门限值sSMF_decision_thr3;则判断当前帧为调性帧,设置调性帧标志tonality_frame的值为1,否则判断为非调性帧,设置调性帧标志tonality_frame的值为0。并继续执行步骤D。
其中,门限值lt_stable_decision_thr1的取值范围为[0.01,0.25],spc_decision_thr1为[1.0,1.8],sSMF_decision_thr1为[0.6,0.9],sSMF_decision_thr2[0.6,0.9],sSMF_decision_thr3[0.7,0.98]。
D)根据调性帧标志tonality_frame对调性程度特征参数tonality_degree进行更新,其中调性程度参数tonality_degree初始值在激活音检测装置开始工作时进行设置,取值范围为[0,1]。不同的情况下,调性程度特征参数tonality_degree计算方法不同:
如果当前的调性帧标志指示当前帧为调性帧,则采用以下方程式对调性程度特征参数tonality_degree进行更新:
tonality_degree=tonality_degree-1·td_scale_A+td_scale_B;
其中,tonality_degree-1为前一帧的调性程度特征参数。其初始值取值范围为[0,1]。td_scale_A为衰减系数,其取值范围为[0,1];td_scale_B为累加系数,其取值范围为[0,1]。
E)根据更新后的调性程度特征参数tonality_degree判断当前帧是否为调性信号,并设置调性标志tonality_flag的值。
具体地,若调性程度特征参数tonality_degree大于某个设定的门限值,则判断当前帧为调性信号,否则,判断当前帧为非调性信号。
对应于前述调性信号检测方法,本发明还提供了一种调性信号检测装置,如图10所示,该检测装置包括:
滤波器组,用于获得当前帧的子带信号;
频谱幅值计算单元,用于获得当前帧的频谱幅值;
特征参数计算单元,用于根据子带信号计算得到当前的谱重心特征参数、时域稳定度特征参数的值,根据频谱幅值计算得到谱平坦度特征参数和调性特征参数的值;
如前所述,所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值;
所述时域稳定度特征参数是幅值叠加值的方差和幅值叠加值平方的期望的比值,或该比值乘上一个系数;
所述谱平坦度特征参数是某些频谱幅值的几何平均数和算术平均数的比值,或该比值乘上一个系数;
调性特征参数是通过计算前后两帧信号的帧内频谱差分系数的相关值得到,或继续对该相关值进行平滑滤波得到。
调性信号判断单元,用于根据调性特征参数、时域稳定度特征参数、谱平坦度特征参数、谱重心特征参数判断当前帧是否为调性信号。
如图11所示,所述调性信号判断单元包括:
调性信号初始化模块,用于设定当前帧信号为非调性信号,并用一个调性帧标志tonality_frame来指示当前帧是否为调性帧;
调性特征参数判断模块,用于判断调性特征参数tonality_rate1或其平滑滤波后tonality_rate2的值是否大于对应的设定的门限值;
调性信号判断模块,用于在所述调性特征参数判断模块判断为是时,如果时域稳定度特征参数值小于一个设定的门限值;谱重心特征参数值大于一个设定的门限值,且各子带的谱平坦度特征参数均小于各自对应的预设的门限值;判断当前帧为调性帧;在根据计算得到的调性程度特征参数tonality_degree判断当前帧是否为调性信号,并在所述调性特征参数判断模块判断为否时,用于根据更新后的调性程度特征参数tonality_degree判断当前帧是否为调性信号,并设置调性标志tonality_flag的值;
调性程度参数更新模块,用于在调性特征参数tonality_rate1或其平滑滤波后tonality_rate2的值均小于对应的设定的门限值时,根据调性帧标志对调性程度特征参数tonality_degree进行更新,其中调性程度参数tonality_degree初始值在激活音检测装置开始工作时进行设置。
具体地,如果当前的调性帧标志指示当前帧为调性帧,则调性程度参数更新模块采用以下方程式对调性程度特征参数tonality_degree进行更新:
tonality_degree=tonality_degree-1·td_scale_A+td_scale_B;
其中,tonality_degree-1为前一帧的调性程度特征参数。其初始值取值范围为[0,1]。td_scale_A为衰减系数,其取值范围为[0,1];td_scale_B为累加系数,其取值范围为[0,1]。
若调性程度特征参数tonality_degree大于某个设定的门限值,则所述调性信号判断模块判断当前帧为调性信号,否则,判断当前帧为非调性信号。
具体地,如果调性程度特征参数tonality_degree大于该门限值0.5,则判断当前帧为调性信号,设置调性标志tonality_flag的值为1;否则,判断当前帧为非调性信号,设置该值为0。调性信号判决的门限值取值区间为[0.3,0.7]。
本发明还提供了一种VAD判决中激活音保持帧数的修正方法,如图12所示,该方法包括:
步骤1201:根据子带信号计算得到长时信噪比lt_snr;
具体地,通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;长时信噪比lt_snr可采用对数表示。
步骤1202:计算平均全带信噪比SNR2_lt_ave;
计算最近若干个帧的全带信噪比SNR2的平均值,得到平均全带信噪比SNR2_lt_ave;
步骤1203:根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave和当前帧的VAD判决结果,对当前激活音保持帧数进行修正。
可理解地,当前激活音保持帧数修正的前提条件是激活音标志指示当前帧为激活音帧。
优选地,对当前激活音保持帧数进行修正时,如果前面连续语音帧数小于一个设定的门限值1,并且长时信噪比lt_snr小于一个设定的门限值2,则当前激活音保持帧数等于最小连续激活音帧数减去前面连续语音帧数;否则,如果平均全带信噪比SNR2_lt_ave大于一个设定的门限值3,并且前面连续语音帧个数大于一个设定的门限值4,则根据长时信噪比的大小设置激活音保持帧数的值,否则不修正当前激活音保持帧数num_speech_hangover的值。
对应于前述激活音保持帧数的修正方法,本发明还提供了一种VAD判决中激活音保持帧数的修正装置,如图13所示,该修正装置包括:
长时信噪比计算单元,用于计算长时信噪比lt_snr;
具体地,长时信噪比计算单元通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
平均全带信噪比计算单元,用于计算平均全带信噪比SNR2_lt_ave;
具体地,所述平均全带信噪比计算单元计算最近若干个帧的全带信噪比SNR2的平均值,得到平均全带信噪比SNR2_lt_ave。
激活音保持帧数修正单元,用于根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave和当前帧的VAD判决结果,对当前激活音保持帧数进行修正。
如上文所述,当前激活音保持帧数修正的前提条件是激活音标志指示当前帧为激活音帧。
优选地,激活音保持帧数修正单元,对当前激活音保持帧数进行修正时,如果前面连续语音帧数小于一个设定的门限值1,并且长时信噪比lt_snr小于一个设定的门限值2,则当前激活音保持帧数等于最小连续激活音帧数减去前面连续语音帧数,否则,如果平均全带信噪比SNR2_lt_ave大于一个设定的门限值3,并且前面连续语音帧个数大于一个设定的门限值4,则根据长时信噪比的大小设置激活音保持帧数的值,否则不修正当前激活音保持帧数num_speech_hangover的值。
本发明还提供了一种VAD判决中信噪比门限的调整方法,如图14所示,该调整方法包括:
步骤1401:根据子带信号计算得到当前帧的谱重心特征参数;
具体地,所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值。
步骤1402:通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
步骤1403:根据谱重心特征参数、长时信噪比、前面连续激活音帧个数和前面连续噪声帧个数continuous_noise_num调整VAD判决的信噪比门限。
具体地,如图15所示,调整信噪比门限的步骤包括:
步骤1501:设置信噪比门限snr_thr的初始值;
步骤1502:根据谱重心参数首次调整信噪比门限snr_thr的值;
步骤1503:根据前面连续激活音帧个数continuous_speech_num、前面连续噪声帧个数continuous_noise_num、平均全带信噪比SNR2_lt_ave和长时信噪比lt_snr二次调整信噪比门限snr_thr的值;
步骤1504:根据长时信噪比lt_snr的值再对信噪比门限snr_thr进行最终修正,得到当前帧的信噪比门限snr_thr。
对应于前述信噪比门限的调整方法,本发明还提供了一种VAD判决中信噪比门限的调整装置,如图16所示,该调整装置包括:
特征参数获取单元,用于根据子带信号计算得到当前帧的谱重心特征参数;
优选地,所述谱重心特征参数是所有或部分子带信号能量的加权累加值和未加权累加值的比值,或该比值进行平滑滤波得到的值。
长时信噪比计算单元,用于通过前一帧计算得到的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到长时信噪比lt_snr;
信噪比门限调整单元,用于根据谱重心特征参数、长时信噪比、前面连续激活音帧个数和前面连续噪声帧个数continuous_noise_num调整VAD判决的信噪比门限。
具体地,所述信噪比门限调整单元调整信噪比门限时,设置信噪比门限snr_thr的初始值;根据谱重心参数首次调整信噪比门限snr_thr的值;根据前面连续激活音帧个数continuous_speech_num、前面连续噪声帧个数continuous_noise_num、平均全带信噪比SNR2_lt_ave和长时信噪比lt_snr二次调整snr_thr的值;最后,根据长时信噪比lt_snr的值再对信噪比门限snr_thr进行最终调整,得到当前帧的信噪比门限snr_thr。
现代的很多语音编码标准,如AMR,AMR-WB,都支持VAD功能。在效率方面,这些编码器的VAD并不能在所有的典型背景噪声下都达到很好的性能。特别是在非稳定噪声下,如office噪声,这些编码器的VAD效率都较低。而对于音乐信号,这些VAD有时候会出现错误检测,导致相应的处理算法出现明显的质量下降。
本发明的方法克服了既有VAD算法的缺点,在提高VAD对不稳定噪声检测效率的同时也提高音乐检测的准确率。使得采用本VAD的语音频信号处理算法可以得到更好的性能。
本发明提供的背景噪声检测方法,可使得背景噪声的估计更加准确和稳定,有利于提高VAD检测的准确率。本发明同时提供的调性信号检测方法,提高了调性音乐检测的准确率。本发明同时提供的激活音保持帧数的修正方法,可使得在不同的噪声和信噪比下,VAD算法可以在性能和效率得到更好的平衡。本发明同时提供的VAD判决中信噪比门限的调整方法,可使得VAD判决算法在不同的信噪比下都可以达到较好的准确率,在保证质量的情况下,进一步的提升效率。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
Claims (6)
1.一种激活音检测VAD判决中当前激活音保持帧数的修正方法,包括:
获得当前帧的子带信号及频谱幅值;
根据子带信号计算得到长时信噪比lt_snr和平均全带信噪比SNR2_lt_ave;
根据前面多个帧的VAD判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave以及当前帧的VAD判决结果,对当前激活音保持帧数进行修正;
对所述当前激活音保持帧数进行修正时,
如果前面连续语音帧数小于一个设定的门限值1,并且所述长时信噪比lt_snr小于一个设定的门限值2,则所述当前激活音保持帧数等于最小连续激活音帧数减去所述前面连续语音帧数,
否则如果所述平均全带信噪比SNR2_lt_ave大于一个设定的门限值3,并且所述前面连续语音帧数大于一个设定的门限值4,则根据所述长时信噪比lt_snr的值设置激活音保持帧数的值,
否则不修正当前激活音保持帧数的值。
2.如权利要求1所述的方法,其特征在于,通过由前一帧的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到所述长时信噪比lt_snr;计算最近多个帧的全带信噪比SNR2的平均值,得到所述平均全带信噪比SNR2_lt_ave。
3.如权利要求1所述的方法,其特征在于,当前激活音保持帧数修正的前提条件是激活音标志指示当前帧为激活音帧。
4.一种激活音检测VAD判决中当前激活音保持帧数的修正装置,其特征在于,包括:
长时信噪比计算单元,用于计算长时信噪比lt_snr;
平均全带信噪比计算单元,用于计算平均全带信噪比SNR2_lt_ave;
激活音保持帧数修正单元,用于根据前面若干帧的判决结果、长时信噪比lt_snr、平均全带信噪比SNR2_lt_ave以及当前帧的VAD判决结果,对当前激活音保持帧数进行修正;
所述激活音保持帧数修正单元对当前激活音保持帧数进行修正时,如果前面连续语音帧数小于一个设定的门限值1,并且长时信噪比lt_snr小于一个设定的门限值2,则所述当前激活音保持帧数等于最小连续激活音帧数减去前面连续语音帧数,否则如果平均全带信噪比SNR2_lt_ave大于一个设定的门限值3,并且所述前面连续语音帧数大于一个设定的门限值4,则根据所述长时信噪比lt_snr的值设置激活音保持帧数的值,否则不修正当前激活音保持帧数的值。
5.如权利要求4所述的修正装置,其特征在于,长时信噪比计算单元通过前一帧的平均长时激活音信号能量和平均长时背景噪声能量的比值,计算得到所述长时信噪比lt_snr;所述平均全带信噪比计算单元计算最近多个帧的全带信噪比SNR2的平均值,得到所述平均全带信噪比SNR2_lt_ave。
6.如权利要求4所述的修正装置,其特征在于,所述激活音保持帧数修正单元对当前激活音保持帧数修正的前提条件是激活音标志指示当前帧为激活音帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810622976.0A CN109119096B (zh) | 2012-12-25 | 2012-12-25 | 一种vad判决中当前激活音保持帧数的修正方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210570563.5A CN103903634B (zh) | 2012-12-25 | 2012-12-25 | 激活音检测及用于激活音检测的方法和装置 |
CN201810622976.0A CN109119096B (zh) | 2012-12-25 | 2012-12-25 | 一种vad判决中当前激活音保持帧数的修正方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210570563.5A Division CN103903634B (zh) | 2012-12-25 | 2012-12-25 | 激活音检测及用于激活音检测的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109119096A CN109119096A (zh) | 2019-01-01 |
CN109119096B true CN109119096B (zh) | 2021-01-22 |
Family
ID=50994913
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810622976.0A Active CN109119096B (zh) | 2012-12-25 | 2012-12-25 | 一种vad判决中当前激活音保持帧数的修正方法及装置 |
CN202110060370.4A Active CN112992188B (zh) | 2012-12-25 | 2012-12-25 | 一种激活音检测vad判决中信噪比门限的调整方法及装置 |
CN201210570563.5A Active CN103903634B (zh) | 2012-12-25 | 2012-12-25 | 激活音检测及用于激活音检测的方法和装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110060370.4A Active CN112992188B (zh) | 2012-12-25 | 2012-12-25 | 一种激活音检测vad判决中信噪比门限的调整方法及装置 |
CN201210570563.5A Active CN103903634B (zh) | 2012-12-25 | 2012-12-25 | 激活音检测及用于激活音检测的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN109119096B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109119096B (zh) * | 2012-12-25 | 2021-01-22 | 中兴通讯股份有限公司 | 一种vad判决中当前激活音保持帧数的修正方法及装置 |
CN105810201B (zh) * | 2014-12-31 | 2019-07-02 | 展讯通信(上海)有限公司 | 语音活动检测方法及其系统 |
CN106328169B (zh) | 2015-06-26 | 2018-12-11 | 中兴通讯股份有限公司 | 一种激活音修正帧数的获取方法、激活音检测方法和装置 |
CN107393558B (zh) * | 2017-07-14 | 2020-09-11 | 深圳永顺智信息科技有限公司 | 语音活动检测方法及装置 |
CN111724808A (zh) * | 2019-03-18 | 2020-09-29 | Oppo广东移动通信有限公司 | 音频信号处理方法、装置、终端及存储介质 |
CN110431625B (zh) * | 2019-06-21 | 2023-06-23 | 深圳市汇顶科技股份有限公司 | 语音检测方法、语音检测装置、语音处理芯片以及电子设备 |
CN112634921B (zh) * | 2019-10-09 | 2024-02-13 | 北京中关村科金技术有限公司 | 一种语音处理方法、装置和存储介质 |
CN112669877B (zh) * | 2020-09-09 | 2023-09-29 | 珠海市杰理科技股份有限公司 | 噪声检测及压制方法、装置、终端设备和系统、芯片 |
CN113192531B (zh) * | 2021-05-28 | 2024-04-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 检测音频是否是纯音乐音频方法、终端及存储介质 |
CN114297580A (zh) * | 2021-12-23 | 2022-04-08 | 贵州航天电子科技有限公司 | 一种基于fpga的低延时信噪比计算方法 |
CN115273913B (zh) * | 2022-07-27 | 2024-07-30 | 歌尔科技有限公司 | 语音端点检测方法、装置、设备及计算机可读存储介质 |
CN115862685B (zh) * | 2023-02-27 | 2023-09-15 | 全时云商务服务股份有限公司 | 一种实时语音活动的检测方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136056A1 (en) * | 2005-12-09 | 2007-06-14 | Pratibha Moogi | Noise Pre-Processor for Enhanced Variable Rate Speech Codec |
CN101236742A (zh) * | 2008-03-03 | 2008-08-06 | 中兴通讯股份有限公司 | 音乐/非音乐的实时检测方法和装置 |
CN101320559A (zh) * | 2007-06-07 | 2008-12-10 | 华为技术有限公司 | 一种声音激活检测装置及方法 |
CN102097095A (zh) * | 2010-12-28 | 2011-06-15 | 天津市亚安科技电子有限公司 | 一种语音端点检测方法及装置 |
CN102804261A (zh) * | 2009-10-19 | 2012-11-28 | 瑞典爱立信有限公司 | 用于语音编码器的方法和语音活动检测器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0681730A4 (en) * | 1993-11-30 | 1997-12-17 | At & T Corp | REDUCTION OF TRANSMISSION NOISE IN COMMUNICATION SYSTEMS. |
FI100840B (fi) * | 1995-12-12 | 1998-02-27 | Nokia Mobile Phones Ltd | Kohinanvaimennin ja menetelmä taustakohinan vaimentamiseksi kohinaises ta puheesta sekä matkaviestin |
US6453291B1 (en) * | 1999-02-04 | 2002-09-17 | Motorola, Inc. | Apparatus and method for voice activity detection in a communication system |
JP3789246B2 (ja) * | 1999-02-25 | 2006-06-21 | 株式会社リコー | 音声区間検出装置、音声区間検出方法、音声認識装置、音声認識方法および記録媒体 |
CA2420129A1 (en) * | 2003-02-17 | 2004-08-17 | Catena Networks, Canada, Inc. | A method for robustly detecting voice activity |
KR101151746B1 (ko) * | 2006-01-02 | 2012-06-15 | 삼성전자주식회사 | 오디오 신호용 잡음제거 방법 및 장치 |
EP1982324B1 (en) * | 2006-02-10 | 2014-09-24 | Telefonaktiebolaget LM Ericsson (publ) | A voice detector and a method for suppressing sub-bands in a voice detector |
CN101197130B (zh) * | 2006-12-07 | 2011-05-18 | 华为技术有限公司 | 声音活动检测方法和声音活动检测器 |
ES2371619B1 (es) * | 2009-10-08 | 2012-08-08 | Telefónica, S.A. | Procedimiento de detección de segmentos de voz. |
CN102044242B (zh) * | 2009-10-15 | 2012-01-25 | 华为技术有限公司 | 语音激活检测方法、装置和电子设备 |
CN102044243B (zh) * | 2009-10-15 | 2012-08-29 | 华为技术有限公司 | 语音激活检测方法与装置、编码器 |
CN102194457B (zh) * | 2010-03-02 | 2013-02-27 | 中兴通讯股份有限公司 | 音频编解码方法、系统及噪声水平估计方法 |
EP2494545A4 (en) * | 2010-12-24 | 2012-11-21 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR DETECTING LANGUAGE ACTIVITIES |
CN102971789B (zh) * | 2010-12-24 | 2015-04-15 | 华为技术有限公司 | 用于执行话音活动检测的方法和设备 |
CN102074246B (zh) * | 2011-01-05 | 2012-12-19 | 瑞声声学科技(深圳)有限公司 | 基于双麦克风语音增强装置及方法 |
CN109119096B (zh) * | 2012-12-25 | 2021-01-22 | 中兴通讯股份有限公司 | 一种vad判决中当前激活音保持帧数的修正方法及装置 |
-
2012
- 2012-12-25 CN CN201810622976.0A patent/CN109119096B/zh active Active
- 2012-12-25 CN CN202110060370.4A patent/CN112992188B/zh active Active
- 2012-12-25 CN CN201210570563.5A patent/CN103903634B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136056A1 (en) * | 2005-12-09 | 2007-06-14 | Pratibha Moogi | Noise Pre-Processor for Enhanced Variable Rate Speech Codec |
CN101320559A (zh) * | 2007-06-07 | 2008-12-10 | 华为技术有限公司 | 一种声音激活检测装置及方法 |
CN101236742A (zh) * | 2008-03-03 | 2008-08-06 | 中兴通讯股份有限公司 | 音乐/非音乐的实时检测方法和装置 |
CN102804261A (zh) * | 2009-10-19 | 2012-11-28 | 瑞典爱立信有限公司 | 用于语音编码器的方法和语音活动检测器 |
CN102097095A (zh) * | 2010-12-28 | 2011-06-15 | 天津市亚安科技电子有限公司 | 一种语音端点检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112992188B (zh) | 2024-06-18 |
CN103903634A (zh) | 2014-07-02 |
CN103903634B (zh) | 2018-09-04 |
CN112992188A (zh) | 2021-06-18 |
CN109119096A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109119096B (zh) | 一种vad判决中当前激活音保持帧数的修正方法及装置 | |
CN106328169B (zh) | 一种激活音修正帧数的获取方法、激活音检测方法和装置 | |
CN104424956B9 (zh) | 激活音检测方法和装置 | |
US9672841B2 (en) | Voice activity detection method and method used for voice activity detection and apparatus thereof | |
JP6606167B2 (ja) | 音声区間検出方法及び装置 | |
US6122610A (en) | Noise suppression for low bitrate speech coder | |
EP2151822B1 (en) | Apparatus and method for processing and audio signal for speech enhancement using a feature extraction | |
JP4279357B2 (ja) | 特に補聴器における雑音を低減する装置および方法 | |
US20190206420A1 (en) | Dynamic noise suppression and operations for noisy speech signals | |
US20050240401A1 (en) | Noise suppression based on Bark band weiner filtering and modified doblinger noise estimate | |
KR101737824B1 (ko) | 잡음 환경의 입력신호로부터 잡음을 제거하는 방법 및 그 장치 | |
WO2020024787A1 (zh) | 音乐噪声抑制方法及装置 | |
EP2760022B1 (en) | Audio bandwidth dependent noise suppression | |
Jung et al. | Speech enhancement by overweighting gain with nonlinear structure in wavelet packet transform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |