专利名称:在存在背景噪声时用于语音增强的方法和设备的制作方法
技术领域:
本发明涉及一种用于在存在背景噪声时增强语音信号以改进通信的技术。本发明特别地但不排他地涉及对于降低语音信号中背景噪声水平的降噪系统的设计。
背景技术:
降低背景噪声水平在许多通信系统中至关重要。例如,移动电话在存在高水平背景噪声的许多环境中使用。这样的环境是在汽车中(这越来越多地变成免提)或者在街道中的使用,由此通信系统需要在存在高水平汽车噪声或街道噪声时工作。在比如视频会议和免提因特网应用的办公应用中,该系统需要高效地应对办公噪声。其它类型的周围环境噪声也能够在实际中有所体验。也称为噪声抑制或语音增强的降噪对于常常需要用来在低信噪比(SNR)工作的这些应用就变得重要。降噪在越来越多地运用于各类真实环境中的自动语音识别系统中也是重要的。降噪改进了通常在上述应用中使用的语音编码算法或语音识别算法的性能。
频谱减法是使用最多的用于降噪的技术之一(见S.F.Boll,“Suppression of acoustic noise in speech using spectral subtraction”,IEEE Trans.Acoust.,Speech,Signal Processing,vol.ASSP-27,pp.113-120,Apr.1979)。频谱减法试图通过从有噪声的语音中减去噪声估计来估计语音的短时间频谱幅度。基于人耳感受不到相位失真的假设,对于有噪声的语音的相位不进行处理。在实践中,通过根据对噪声频谱和有噪声的语音频谱的估计而形成基于SNR的增益函数来实施频谱减法。此增益函数与输入频谱相乘以抑制具有低SNR的频率成分。使用常规频谱减法算法的主要缺点在于由干扰收听者的“乐音音调”组成的结果性乐音残留噪声以及后续信号处理算法(比如语音编码)。乐音音调主要归因于频谱估计中的方差。为了解决此问题,已经建议了频谱平滑,结果是降低的方差和分辨度。用以降低乐音音调的另一已知方法是使用与频谱基底(floor)相组合的过度减法因子(见M.Berouti,R.Schwartz和J.Makhoul,“Enhancement of speechcorrupted by acoustic noise”,in Proc.IEEE ICASSP,Washington,DC,Apr.1979,pp.208-211)。此方法具有当充分地降低乐音音调时却使语音降级的缺点。其它方式是软检测噪声抑制滤波(见R.J.McAulay和M.L.Malpass,“Speech enhancement using a soft decision noise suppressionfilter”,IEEE Trans.Acoust.,Speech,Signal Processing,vol.ASSP-28,pp.137-145,Apr.1980)和非线性频谱减法器(NSS)(见P.Lockwood和J.Boudy,“Experiments with a nonlinear spectral subtractor(NSS),hidden Markov models and projection,for robust recognition in cars”,Speech Commun.,vol.11,pp.215-228,June 1992)。
发明内容
根据本发明的一个方面,本发明提供了一种用于语音信号噪声抑制的方法,包括对于具有可分到多个频率仓中的频域表示的语音信号,为所述频率仓中的至少一些频率仓确定缩放增益值以及计算平滑缩放增益值。计算平滑缩放增益值包括对于频率仓中的至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑缩放增益值。
在本发明的另一方面中,本发明提供了一种用于语音信号噪声抑制的方法,包括对于具有可分到多个频率仓中的频域表示的语音信号,将多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中,其中边界频率在噪声抑制技术之间进行区分;以及根据语音信号的频谱内容来改变边界频率的值。
在本发明的又一方面中,本发明提供了一种语音编码器,包括噪声抑制器,该噪声抑制器用于具有可分到多个频率仓中的频域表示的语音信号。噪声抑制器可操作用以为频率仓中的至少一些频率仓确定缩放增益值;以及通过组合当前确定的缩放增益值和先前确定的平滑缩放增益值来为频率仓中的至少一些频率仓计算平滑缩放增益值。
在本发明的再一方面中,本发明提供了一种语音编码器,包括噪声抑制器,噪声抑制器用于具有可分到多个频率仓中的频域表示的语音信号。噪声抑制器可操作用以将多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中。边界频率在噪声抑制技术之间进行区分。噪声抑制器还可进一步操作用以根据语音信号的频谱内容来改变边界频率的值。
在本发明的另一方面中,本发明提供了一种在计算机可读介质上实施的计算机程序,包括用于执行语音信号噪声抑制的程序指令,该语音信号噪声抑制包括如下操作对于具有可分到多个频率仓中的频域表示的语音信号,为所述频率仓中的至少一些频率仓确定缩放增益值;以及计算平滑缩放增益值,包括对于所述频率仓中的所述至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑缩放增益值。
在本发明的另一方面中,本发明提供了一种在计算机可读介质上实施的计算机程序,包括用于执行语音信号噪声抑制的程序指令,包括如下操作对于具有可分到多个频率仓中的频域表示的语音信号,将多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中;以及根据语音信号的频谱内容来改变边界频率的值。
在本发明的再一个而且当然是非限制性的方面中,本发明提供了一种语音编码器,包括用于抑制语音信号中的噪声的装置,该语音信号具有可分到多个频率仓中的频域表示。噪声抑制装置包括如下装置,该装置用于将多个频率仓分开到其间具有边界的第一组邻接频率仓和第二组邻接频率仓,以及用于根据语音信号的频谱内容来改变该边界。噪声抑制装置还包括如下装置,该装置用于为频率仓中的至少一些频率仓确定缩放增益值,以及用于通过组合当前确定的缩放增益值和先前确定的平滑缩放增益值来为频率仓中的至少一些频率仓计算平滑缩放增益值。计算平滑缩放增益值优选地使用具有如下值的平滑因子,该值确定为使得对于越小的缩放增益值则平滑越强。噪声抑制装置还包括如下装置,该装置用于为至少一些频带确定缩放增益值,其中频带包括至少两个频率仓,以及用于计算平滑频带缩放增益值。噪声抑制装置还包括如下装置,该装置用于使用平滑缩放增益来缩放语音信号的频谱,其中对于小于该边界的频率,在每个频率仓的基础上执行缩放,而对于在该边界以上的频率,在每个频带的基础上执行缩放。
本发明的前述和其它目的、优点及特征将在阅读以下对其说明性实施例的非限制性描述时变得更为明显,这些描述是参照附图仅借助例子来给出。在附图中图1是包括降噪的语音通信系统的示意性框图;图2示出了频谱分析中加窗的图示;图3给出了降噪算法的说明性实施例的概略图;以及图4是具体类别的降噪的说明性实施例的示意性框图,其中降噪算法依赖于正在处理的语音帧的性质。
具体实施例方式
在本说明书中公开了用于降噪的高效技术。这些技术至少部分地基于在关键频带中划分幅度频谱,而且与在EVRC语音编码解码器中使用的方式相似(见3GPP2 C.S0014-0“Enhanced Variable Rate Codec(EVRC)Service Option for Wideband Spread Spectrum CommunicationSystems”,3GPP2 Technical Specification,December 1999),基于每个关键频带的SNR来计算增益函数。例如,公开了如下特征,这些特征基于正在处理的语音帧的性质来使用不同的处理技术。在无声位(unvoiced)的帧中,在整个频谱中使用每个频带的处理。在其中检测到了上至某一频率的声位(voicing)的帧中,在其中检测到了声位的该频谱的下部分中使用每个仓(bin)的处理,而在剩余的频带中使用每个频带的处理。在背景噪声帧的情况下,通过在整个频谱中使用相同的缩放增益来去除恒定的噪声基底。另外,公开了一种技术,其中使用与实际的缩放增益逆相关的平滑因子(对于越小的增益而平滑越强)来执行缩放增益在每一频带或频率仓中的平滑。此方式防止了前面有低SNR帧的高SNR语音段中的失真,这例如就像对于声位的起始(onset)的情况那样。
本发明的一个非限制性方面是提供基于频谱减法技术的用于降噪的新颖方法,由此该减噪方法依赖于正在处理的语音帧的性质。例如,在有声位的帧中,可以在某一频率之下在每个仓的基础上执行处理。
在说明性实施例中,在语音编码系统之内执行降噪以在编码之前降低语音信号中的背景噪声水平。能够针对以8000个采样/秒进行采样的窄带语音信号或者以16000个采样/秒进行采样的宽带语音信号(或者以任何其它采样频率)来运用所公开的技术。此说明性实施例中使用的编码器是基于AMR-WB编码解码器(见S.F.Boll,“Suppression of acoustic noise in speech using spectral subtraction”,IEEE Trans.Acoust.,Speech,Signal Processing,vol.ASSP-27,pp.113-120,Apr.1979),该编码解码器使用内部采样转换将信号采样频率转换到12800个采样/秒(在6.4kHz带宽上工作)。
因而此说明性实施例中公开的降噪技术对于在采样被转换到12.8kHz之后的窄带或宽带信号进行工作。
在宽带输入的情况下,输入信号须从16kHz抽取(decimate)到12.8kHz。抽取是先通过4倍上采样,然后经过具有截止频率为6.4kHz的低通FIR滤波器对输出进行滤波来执行的。然后,该信号通过5倍下采样。滤波延迟在16kHz采样频率时是15个采样。
在窄带输入的情况下,该信号须从8kHz上采样到12.8kHz。这是先通过8倍上采样,然后经过具有截止频率为6.4kHz的低通FIR滤波器对输出进行滤波来执行的。然后,该信号进行5倍下采样。滤波延迟在8kHz采样频率时是8个采样。
在采样转换之后,在编码过程之前对信号应用两个预处理函数高通滤波和预加重。
高通滤波器用作为对于不希望的低通成分的预防。在该说明性实施例中,使用了具有截止频率为50kHz的滤波器,该滤波器给定如下Hh1(z)=0.982910156-1.965820313z-1+0.982910156z-21-1.965820313z-1+0.966308593z-2]]>在预加重中,第一阶高通滤波器用来加重更高的频率,而且给定如下Hpre-emph(z)=1-0.68z-1在AMR-WB中使用预加重以改进高频处的编码解码器性能而且在编码器中所使用的错误最小化过程中改进感知加权。
在该说明性实施例的其余部分中,降噪算法输入处的信号如上所述转换到12.8kHz采样频率而且加以预处理。然而,公开的技术能够同等地应用到有预处理和没有预处理的使用比如8kHz或16kHz的其它采样频率的信号。
在下文中,将具体地描述降噪算法。在其中使用了降噪算法的语音编码器对包含了256个采样的20毫秒帧进行工作,其中256个采样是以12.8kHz为采样频率。另外,编码解码器在它的分析中使用了来自将来帧的13毫秒超前(lookahead)。该降噪遵循相同的成帧结构。然而,能够在编码器成帧与降噪成帧之间引入一些偏移以最小化该超前的使用。在本描述中,采样的索引将反映降噪成帧。
图1示出了包括降噪的语音通信系统的概略图。在块101中,如上面描述的说明性例子那样执行预处理。
在块102中,执行频谱分析和声位活动检测(VAD)。使用50%交叠的20毫秒窗在每个帧中执行两个频谱分析。在块103中,将降噪应用到频谱参数,然后使用逆DFT用来将增强的信号转换回到时域。交叠-相加运算然后用来重建信号。
在块104中,执行线性预测(LP)分析和开环基音(pitch)分析(通常作为语音编码算法的一部分)。在该说明性实施例中,从块104获得的参数在判决中用来更新关键频带中的噪声估计(块105)。VAD判决也能够用作噪声更新判决。块105中更新的噪声能量估计在下一帧中在降噪块103中用来计算缩放增益。块106对增强的语音信号执行语音编码。在其它应用中,块106能够是语音识别系统。请注意块104中的功能能够是语音编码算法的一体化部分。
频谱分析离散傅立叶变换用来执行频谱分析和频谱能量估计。在具有50%交叠的情况下使用256点的快速傅立叶变换(FFT)对每个帧进行两次频率分析(如图2中所示)。分析窗设置为使得所有超前得以利用。第一窗的起始置于语音编码器当前帧的起始之后的24个采样。第二窗置于又128个采样。汉宁窗(等效于正弦窗)的平方根已经用来为频率分析对输入信号进行加权。此窗特别地适合于交叠-相加方法(因此在基于频谱减法和交叠-相加分析/合成的噪声抑制算法中使用此特定的频谱分析)。汉宁窗的平方根给定如下wFFT(n)=0.5-0.5cos(2πnLFFT)=sin(πnLFFT),n=0,...,LFFT-1---(1)]]>其中LFFT=256是FFT分析的尺寸。请注意由于窗是对称的,所以仅计算和存储窗的一半(从0到LFFT/2)。
令s’(n)表示其索引0对应于降噪帧中的第一采样(在该说明性实施例中它比语音编码器帧的起始要多24个采样)的信号。用于频谱分析的加窗信号获得如下xw(1)(n)=wFFT(n)s′(n),n=0,...,LFFT-1]]>xw(2)(n)=wFFT(n)s′(n+LFFT/2),n=0,...,LFFT-1]]>其中s’(0)是当前降噪帧中的第一采样。
对两个加窗信号执行FFT以获得每帧的两个频谱参数集X(1)(k)=Σn=0N-1xw(1)(n)e-j2πknN,k=0,...,LFFT-1]]>X(2)(k)=Σn=0N-1xw(2)(n)e-j2πknN,k=0,...,LFFT-1]]>FFT的输出给出了频谱的实部和虚部,表示为XR(k)(k=0至128)和XI(k)(k=0至127)。请注意XR(0)对应于在0Hz(DC)的频谱,而XR(128)对应于在6400Hz的频谱。这些点处的频谱只是实值化的而且通常在后续分析中忽略掉。
在FFT分析之后,使用具有以下上限的区间将结果性的频谱分到关键频带中(频率范围0-6400Hz中的20个频带)关键频带={100.0,200.0,300.0,400.0,510.0,630.0,770.0,920.0,1080.0,1270.0,1480.0,1720.0,2000.0,2320.0,2700.0,3150.0,3700.0,4400.0,5300.0,6350.0}Hz.
见D.Johnston,“Transform coding of audio signal using perceptualnoise criteria”,IEEE.J.Select.Areas Commun.,vol.6,pp.314-323,Feb.1988。
256点的FFT导致了50Hz的频率分辨度(6400/128)。因此在忽略频谱的DC成分之后,每个关键频带的频率仓数目分别是MCB={2,2,2,2,2,2,3,3,3,4,4,5,6,6,8,9,11,14,18,21}关键频带中的平均能量计算如下ECB(i)=1(LFFT/2)2MCB(i)Σk=0MCB(i)-1(XR2(k+ji)+XI2(k+ji)),i=0,...,19,---(2)]]>其中XR(k)和XI(k)分别是第k频率仓的实部和虚部,而ji是由ji={1,3,5,7,9,11,13,16,19,22,26,30,35,41,47,55,64,75,89,107}给定的第i关键频带中第一仓的索引。
频谱分析模块也为最先的17个关键频带(不包括DC分量的74个仓)计算每个频率仓的能量EBIN(k)EBIN(k)=XR2(k)+XI2(k),k=0,...,73---(3)]]>最后,频谱分析模块通过将平均的关键频带能量ECB相加来为20毫秒帧中的两个FFT分析计算平均总能量。也就是,对于某一频谱分析的频谱能量计算如下Eframe=Σi=019ECB(i)---(4)]]>而且总帧能量计算为帧中两个频谱分析的频谱能量之平均。也就是Ei=10log(0.5(Eframe(0)+Eframe(1)),dB(5)在VAD、降噪和速率选择模块中使用频谱分析模块的输出参数,也就是每个关键频带的平均能量、每个频率仓的能量和总能量。
请注意对于以8000个采样/秒进行采样的窄带输入,在采样转换到12800个采样/秒之后,在频谱的两端没有内容,因此在输出参数的计算中不考虑第一低频关键频带以及最后三个高频频带(仅考虑从i=1至16的频带)。
声位活动检测上面描述的频谱分析对于每个帧执行两次。令ECB(1)(i)和ECB(2)(i)分别表示对于第一和第二频谱分析的每个关键频带信息的能量(如等式(2)中计算的)。对于整个帧和部分前一帧的每个关键频带的平均能量计算如下Eav(i)=0.2ECB(0)(i)+0.4ECB(1)(i)+0.4ECB(2)(i)---(6)]]>其中ECB(0)(i)表示来自前一帧第二分析的每个关键频带信息的能量。每个关键频带的信噪比然后计算如下SNRCB(i)=Eav(i)/NCB(i),界定于SNRCB≥1. (7)其中NCB(i)是下一部分中将说明的每个关键频带的估计噪声能量。每帧的平均SNR然后计算如下SNRav=10log(Σi=bminbmaxSNRCB(i)),---(8)]]>其中在宽带信号的情况下是bmin=0和bmax=19,而在窄带信号的情况下是bmin=1和bmax=16。
通过将每帧的平均SNR与作为长期SNR函数的某一阈值进行比较来检测声位活动。长期SNR给定如下SNRLT=Ef-Nf(9)其中分别使用等式(12)和(13)来计算Ef和Nf,下面将描述这一点。Ef的初始值是45dB。
该阈值是长期SNR的分段(piece-wise)线性函数。使用两个函数,一个用于清晰的语音而一个用于有噪声的语音。
对于宽带信号,如果SNRLT<35(有噪声的语音),则thVAD=0.4346SNRLT+13.9575否则(清晰的语音)thYAD=1.0333SNRLT-7对于窄带信号,如果SNRLT<29.6(有噪声的语音),则thVAD=0.313SNRLT+14.6否则(清晰的语音)
thVAD=1.0333SNRLT-7另外,添加了VAD判决中的滞后以防止在活动语音时段结束时的频繁切换。这是在帧处于软拖尾(hangover)时段中的情况下或者如果末帧是活动语音帧时应用的。该软拖尾时段由在长于2个连续帧的每个活动语音突发之后的最先的10个帧组成。在有噪声的语音情况下(SNRLT<35),该滞后减少了VAD判决阈值如下thVAD=0.95thVAD在清晰的语音情况下,该滞后减少了VAD判决阈值如下thVAD=thVAD-11如果每帧的平均SNR大于VAD判决阈值,也就是如果SNRav>thVAD,则将该帧断定为活动语音帧,而且VAD标志和局部VAD标志设置为1。否则将VAD标志和局部VAD标志设置为0。然而在有噪声的语音情况下,VAD标志在硬拖尾帧中强制为1,即一个或两个非活动帧跟随在长于2个连续帧的语音时段之后(局部VAD标志然后设置为0而VAD标志强制为1)。
第一级噪声估计和更新在这部分中,计算总噪声能量、相对帧能量、长期平均噪声能量和长期平均帧能量的更新、每个关键频带的平均能量和噪声校正因子。另外,给出了噪声能量初始化和向下更新。
每帧的总噪声能量给定如下Ntot=10log(Σt=019NCB(i))---(10)]]>其中NCB(i)是每个关键频带的估计噪声能量。
帧的相对能量通过以dB为单位的帧能量与长期平均能量之间的差来给定。相对帧能量给定如下Eref=Et-Ef(11)其中Et在等式(5)中给定。
在每一帧中更新长期平均噪声能量或长期平均帧能量。在活动语音帧(VAD标志=1)的情况下,长期平均帧能量使用如下关系来更新Ef=0.99Ef+0.01Et(12)
其中初始值Ef=45dB。
在非活动语音帧(VAD标志=0)的情况下,长期平均噪声能量更新如下Nf=0.99Nf+0.01Ntot(13)对于最先的4帧,Nf的初始值设置为等于Ntot。另外,在最先的4帧中,Ef的值界定于Ef≥Ntot+10。
每个关键频带的帧能量、噪声初始化和噪声向下更新通过将来自帧中两次频谱分析的能量进行平均,计算对于整帧的每个关键频带的帧能量。也就是E‾CB(i)=0.5ECD(1)(i)+0.5ECB(2)(i)---(14)]]>每个关键频带的噪声能量NCB(i)初始地初始化为0.03。然而在最先的5个子帧中,如果信号能量不是太高或者如果信号不具有强的高频成分,则使用每个关键频带的能量来初始化噪声能量,使得降噪算法从处理的一开始就能够有效。计算两个高频比r15,16是关键频带15和16的平均能量与最先的10个频带中的平均能量之比(两次频谱分析的平均值),而r18,19是对于频带18和19而言的相同平均能量之比。
在最先的5帧中,如果Et<49以及r15,16<2以及r18,19<1.5,则对于最先的3帧NCB(i)=ECB(i),i=0,...,19(15)而且对于随后两帧NCB(i)则更新如下NCB(i)=0.33NCB(i)+0.66ECB(i),i=0,...,19(16)对于随后的帧,在这一阶段,对于关键频带仅执行噪声能量向下更新,由此能量少于背景噪声能量。首先,暂时更新的噪声能量计算如下Ntmp(i)=0.9NCB(i)+0.1(0.25ECB(0)(i)+0.75E‾CB(i))---(17)]]>其中ECB(0)(i)对应于来自前一帧的第二频谱分析。
然后对i=0至19,如果Ntmp(i)<NCB(i),则NCB(i)=Ntmp(i)。
如果断定帧为非活动帧,则通过设置NCB(i)=Ntmp(i)来执行第二级噪声更新。将噪声能量更新分段到两部分中的理由在于,能够仅在非活动语音帧期间执行噪声更新,并且因此需要对于语音获得判决而必需的所有参数。然而这些参数依赖于对降噪的语音信号执行的LP预测分析和开环基音分析。为了降噪算法具有尽可能准确的噪声估计,因此如果帧不活动则在降噪执行之前向下更新噪声估计更新而且稍后向上更新噪声估计更新。噪声向下更新是安全的而且能够独立于语音活动来完成。
降噪对信号域应用降噪,而且然后使用交叠和相加来重建经降噪的信号。该降噪是通过用缩放增益对每个关键频带中的频谱进行缩放来执行的,该缩放增益限制在gmin与1之间并且是从该关键频带中的信噪比(SNR)中导出的。噪声抑制中的新特征在于对于比与信号声位有关的某一频率更低的频率,在频率仓基础上而不在关键频带基础上执行处理。因此,对每一频率仓应用从该仓中的SNR导出的缩放因子(SNR是用仓能量除以包括该仓的关键频带的噪声能量来计算的)。该新特征允许在接近谐波的频率处保留能量,这就在强烈地降低谐波之间的噪声的同时防止失真。该特征仅针对有声位的信号以及在给定所用频率分析的频率分辨度时仅针对具有相对短基音时段的信号才能够使用。然而,这些信号正好就是谐波之间的噪声在这里最易感知到的信号。
图3示出了所公开的过程的概略图。在块301中,执行频谱分析。块302检验有声位的关键频带的数目是否大于0。如果是这种情况,则在块304中执行降噪,其中在最先的K个有声位的频带中执行每个仓的处理,而在剩余的频带中执行每个频带的处理。如果K=0,则对所有关键频带应用每个频带的处理。在频谱上降噪之后,块305执行逆DFT分析,并且使用交叠-相加运算用来重建经增强的语音信号,这一点稍后将进行描述。
最小缩放增益gmin是从以dB为单位的最大允许降噪NRmax导出的。最大允许降噪具有14dB的缺省值。因此最小缩放增益给定如下
gmin=10-NRmax120---(18)]]>而对于14dB的缺省值,它等于0.19953。
在具有VAD=0的非活动帧情况下,相同的缩放应用于整个频谱上并且如果激活了噪声抑制(如果gmin小于1)则由gs=0.9gmin来给定。也就是,经缩放的频谱的实部和虚部给定如下X’R(k)=gsXR(k),k=1,...,128,and X’I(k)=gsXI(k),k=1,...,127. (19)请注意对于窄带输入,等式(19)中的上限设置为79(上至3590Hz)。
对于活动帧,为最先的有声位的频带根据每个关键频带或者仓的SNR,计算缩放增益。如果KVOIC>0,则对最先的KVOIC个频带执行每个仓的噪声抑制。对剩余的频带使用每个频带的噪声抑制。在KVOIC=0的情况下,对整个频谱使用每个频带的噪声抑制。如稍后将描述地对KVOIC的值进行更新。KVOIC的最大值是17,因此,仅对对应于最大频率为3700Hz的最先的17个关键频带能够应用每个仓的处理。能够对之使用每个仓的处理的最大仓数目是74(最先的17个频带中的仓数目)。对硬拖尾帧则有例外,这一点将在此部分中稍后进行描述。
在备选实施中,KVOIC的值可以固定。在该情况下,在所有类型的语音帧中,执行每个仓的处理上至某一频带,而对其它频带应用每个频带的处理。
某一关键频带中的或者对于某一频率仓的缩放增益根据SNR来计算而且给定如下(gs)2=ksSNR+cs,bounded by gmin≤gs≤1 (20)确定ks和cs的值,比如对于SNR=1是gs=gmin,而对于SNR=45是gs=1。也就是,对于1dB和更低的SNR,该缩放限制于gs,而对于45dB和更高的SNR,在给定的关键频带中不执行噪声抑制(gs=1)。因此,给定这两个端点,等式(20)中ks和cs的值给定如下ks=(1-gmin2)/44 and cs=(45gmin2-1)/44. (21)等式(20)中的变量SNR是每个关键频带中的SNR,SNRCB(i)或者是每个频率仓的SNR,SNRBIN(i),这依赖于处理类型。
每个关键频带的SNR在帧中的第一频谱分析情况下计算如下SNRCB(i)=0.2ECB(0)(i)+0.6ECB(1)(i)+0.2ECB(2)(i)NCB(i),i=0,...,19---(22)]]>而对于第二频谱分析,SNR计算如下SNRCB(i)=0.4ECB(1)(i)+0.6ECB(2)(i)NCB(i),i=0,...,19---(23)]]>其中ECB(1)(i)和ECB(2)(i)分别表示对于第一和第二频谱分析的每个关键频带信息的能量(如等式(2)中计算的),ECB(0)(i)表示来自前一帧第二分析的每个关键频带信息的能量,而NCB(i)表示每个关键频带的噪声能量估计。
某一关键频带i中的每个关键仓的SNR在帧中第一频谱分析的情况下计算如下SNRBIN(k)=0.2EBIN(0)(k)+0.6EBIN(1)(k)+0.2EBIN(2)(k)NCB(i),k=ji,...,ji+MCB(i)-1---(24)]]>而对于第二频谱分析,SNR计算如下SNRBIN(k)=0.4EBIN(1)(k)+0.6EBIN(2)(k)NCB(i),k=ji,...,ji+MCB(i)-1---(25)]]>其中EBIN(1)(k)和EBIN(2)(k)分别表示对于第一和第二频谱分析的每个频率仓的能量(如等式(3)中计算的),EBIN(0)(k)表示来自前一帧第二分析的每个频率仓的能量,NCB(i)表示每个关键频带的噪声能量估计,ji是第i关键频带中第一仓的索引,而MCB(i)是上面定义的关键频带i中的仓数目。
在对于具有索引i的频带进行每个关键频带处理的情况下,在如等式(22)中确定缩放增益并且使用如等式(24)或(25)中定义的SNR之后,使用在每一频率分析中更新的平滑缩放增益来执行实际缩放如下gCB,LP(i)=αgsgCB,LP(i)+(1-αgs)gs(26)在本发明中,公开了新颖特征,其中平滑因子是自适应的而且它变得与增益本身逆相关。在该说明性实施例中平滑因子通过αgs=1-gs来给定。也就是,对于越小的增益gs则平滑越强。该方式防止了前面有低SNR帧的高SNR语音段中的失真,就像声位的起始的情况那样。例如在无声位的语音帧中SNR较低,因此用强缩放增益来降低频谱中噪声。如果声位的起始跟随着无声位的帧,则SNR变高,并且如果增益平滑防止了缩放增益的迅速更新,则可能将对声位的起始使用强缩放,这将造成不良性能。在提出的方式中,平滑过程能快速地适应而且对该起始使用较低的缩放增益。
关键频带中的缩放执行如下X′R(k+ji)=gCB,LP(i)XR(k+ji),和X′I(k+ji)=gCB,LP(i)XI(k+ji),k=0,...,MCB(i)-1’ (27)其中ji是关键频带i中第一仓的索引,而MCB(i)是该关键频带中的仓数目。
在对于具有索引i的频带进行每个仓处理的情况下,在如等式(22)中确定缩放增益并且使用如等式(24)或(25)中定义的SNR之后,使用在每一频率分析中更新的平滑缩放增益来执行实际缩放如下gBIN,LP(k)=αgsgBIN,LP(k)+(1-αgs)gs(28)其中类似于等式(26),αgs=1-gs。
增益的时间平滑防止了可听见的能量振荡,同时使用αgs对平滑进行控制防止了前面有低SNR帧的高SNR语音段中的失真,例如就像对于声位的起始的情况那样。
关键频带i中的缩放执行如下X′R(k+ji)=gBIN,LP(k+ji)XR(k+ji),和X′I(k+ji)=gBIN,LP(k+ji)XI(k+ji),k=0,...,MCB(i)-1’ (29)其中ji是关键频带i中第一仓的索引,而MCB(i)是该关键频带中的仓数目。
平滑的缩放增益gBIN,LP(k)和gCB,LP(i)初始地设置为1。每当处理非活动的帧时(VAD=0),平滑的增益值重置为等式(18)中定义的gmin。
如上所述,如果KVOIC>0,则使用上面描述的过程对最先的KVOIC个频带执行每个仓的噪声抑制,而对于剩余的频带执行每个频带的噪声抑制。请注意在每次频谱分析中,为所有关键频带更新经平滑的缩放增益gCB,LP(i)(即使对于用每个仓的处理而处理过的声位的起始频带——在该情况下用属于频带i的gBIN,LP(k)的平均值来更新gCB,LP(i))。类似地,为最先的17个频带中的所有频率仓(上至74个仓)更新缩放增益gBIN,LP(k)。对于用每个频带的处理而处理过的频带,通过将它们设置为等于这17个具体频带中的gCB,LP(i)来更新它们。
请注意,在清晰的语音情况下,在活动的语音帧(VAD=1)中不执行噪声抑制。这是通过找出所有关键频带中的最大噪声能量max(NCB(i),i=0,...,19来检测的,并且如果此值小于或等于15,则不执行噪声抑制。
如上面提到的,对于非活动的帧(VAD=0),在整个频谱上应用0.9gmin的缩放,这等效于去除恒定的噪声基底。对于VAD短拖尾帧(VAD=1和局部VAD=0),如上所述对最先的10个频带应用每个频带的处理(对应于1700Hz),而对于其余的频谱,通过以恒定值gmin缩放其余的频谱来减去恒定的噪声基底。此措施显著地降低高频噪声能量振荡。对于第10频带以上的这些频带,并不重置经平滑的缩放增益gCB,LP(i)而是让gs=gmin使用等式(26)来更新它,而且每个仓的经平滑的缩放增益gBIN,LP(k)是通过将它们设置为等于对应关键频带中的gCB,LP(i)来更新的。
上面描述的过程能够看作具体类别的降噪,其中该降噪算法依赖于正在处理的语音帧的性质。这在图4中有所图示。块410检验VAD标志是否为0(非活动的帧)。如果是这种情况,则通过对整个频谱应用相同的缩放增益来从频谱中去除恒定的噪声基底(块402)。否则,块403检验帧是否为VAD拖尾帧。如果是这种情况,则在最先的10个频带中使用每个频带的处理,而在剩余的频带中使用相同的缩放增益(块406)。否则,块405检验是否在频谱的在最先频带中检测到声位的起始。如果是这种情况,则在最先的K个有声位的频带中执行每个仓的处理,而在剩余的频带中执行每个频带的处理(块406)。如果未检测到有声位的频带,则在所有关键频带中执行每个频带的处理(块407)。
在处理窄带信号(上采样到12800Hz)的情况下,对最先的17个频带(上至3700Hz)执行噪声抑制。对于在3700Hz与4000Hz之间剩余的5个频率仓,使用在位于3700Hz的仓处的最后缩放增益gs来缩放频谱。对于剩余的频谱(从4000Hz到6400Hz),将频谱清零。
降噪信号的重建在确定经缩放的频谱成分X′R(k)和X′I(k)之后,对缩放的频谱应用逆FFT以在时域中获得加窗的降噪信号。
xw,d(n)=1NΣk=0N-1X(k)ej2πknN,n=0,...,LFFT-1]]>为帧中的两次频谱分析重复这一点以获得降噪的加窗信号xw,d(1)(n)和xw,d(2)(n)。对于每个半帧,对于该分析的交叠部分使用交叠-相加运算来重建信号。由于在频谱分析之前对原始信号使用平方根汉宁窗,所以在交叠-相加运算之前在逆FFT的输出处应用相同的窗。因此,双加窗的降噪信号给定如下xww.d(1)(n)=wFFT(n)xw,d(1)(n),n=0,...,LFFT-1]]>xww.d(2)(n)=wFFT(n)xw,d(2)(n),n=0,...LFFT-1]]>(30)对于分析窗的前一半,用于重建降噪信号的交叠-相加运算执行如下s(n)=xww,d(0)(n+LFFT/2)+xww,d(1)(n),n=0,...,LFFT/2-1]]>而对于分析窗的后一半,用于重建降噪信号的交叠-相加运算执行如下s(n+LFFT/2)=xww,d(1)(n+LFFT/2)+xww,d(2)(n),n=0,...LFFT/2-1]]>其中xww,d(0)(n)是来自前一帧中第二分析的双加窗降噪信号。
请注意对于交叠-相加运算,由于在语音编码器帧与降噪帧之间的24个采样偏移,所以不仅重建到当前帧,降噪信号还能够重建到上至来自从超前起的24个采样。然而,仍需要另外128个采样以完成语音编码器为了线性预测(LP)分析和开环基音分析而需要的超前。此部分是通过对降噪加窗信号xw,d(2)(n)的后一半进行逆加窗而不执行交叠-相加运算来暂时获得的。也就是s(n+LFFT)=xww,d(2)(n+LFFT/2)/+wFFT2(n+LFFT/2),n=0,...LFFT/2-1]]>请注意这部分信号在下一帧中使用交叠-相加运算来正确地重新计算。
噪声能量估计更新该模块为了噪声抑制而更新每个关键频带的噪声能量估计。该更新是在非活动的语音时段期间执行的。然而,以每个关键频带的SNR为基础的在上面执行的VAD判决并不用于确定噪声能量估计是否更新了。另一判决是基于与每个关键频带的SNR无关的其它参数来执行的。用于噪声更新判决的参数是基音稳定性、信号非平稳性、声位以及第2阶与第16阶之间的LP残留错误能量之比,并且对于噪声水平变化通常具有低的灵敏度。
未将编码器VAD判决用于噪声更新的原因是为了使噪声估计鲁棒以快速地改变噪声水平。如果编码器VAD判决用于噪声更新,则噪声水平的突增即使对于非活动的语音帧仍会造成SNR的增加,防止噪声估计量进行更新,这又会在随后的帧中维持SNR为高等等。因而,将阻止噪声更新并且将需要一些其它逻辑来恢复噪声自适应。
在该说明性实施例中,在编码器处执行开环基音分析以针对每帧分别计算对应于前半帧、后半帧和超前的三个开环基音d0、d1和d2。基音稳定性计数器计算如下pc=|d0-d-1|+|d1-d0|+|d2-d1| (31)其中d-1是前一帧后半帧的迟延。在该说明性实施例中,对于大于122的基音迟延,开环基音搜索模块设置d2=d1。因此,对于这样的迟延,等式(31)中pc的值乘以3/2以补偿等式中遗漏的第三项。如果pc的值小于12则基音稳定性为真。另外,对于具有低声位的帧,pc设置为12以指示基音非稳定性。也就是If(Cmarm(d0)+Cmarm(d1)+Cmarm(d2))/3+rg<0.7 then pc=12,(32)其中Cmarm(d)是归一化的原相关性,而rg是可选校正,该可选校正相加到归一化的相关性以便补偿在存在背景噪声时归一化相关性的减少。在该说明性实施例中,归一化的相关性是基于抽取的加权语音信号swd(n)来计算的并且给定如下 其中该求和限制依赖于延迟本身。在该说明性实施例中,开环基音分析中使用的加权信号通过2倍下采样来抽取,而且求和限制给定如下
Lscc=40 for d=10,...,16Lscc=40 for d=17,...,31Lsoc=62 for d=32,...,61Lsec=115 for d=62,...,115基于每个关键频带的能量与每个关键频带的平均长期能量之间的比例的乘积来执行信号非平稳性估计。
每个关键频带的平均长期能量更新如下ECB,LT(i)=αgECB,LT(i)+(1-αg)ECB(i),for i=bminto bmax,(33)其中在宽带信号的情况下bmin=0和bmaxn=19,而在窄带信号的情况下bmin=1和bmaxn=16,并且ECB(i)是在等式(14)中定义的每个关键频带的帧能量。更新因子αg是在等式(5)中定义的总帧能量的线性函数,而且给定如下对于宽带信号αg=0.0245Etot-0.235,界定于0.5≤αg≤0.99。
对于窄带信号αg=0.00091Etot+0.3185,界定于0.5≤αg≤0.999。
帧的非平稳性是通过每个关键频带的帧能量与每个平均长期能量之间的比例的乘积来给定的。也就是nonstat=Πi=bminbmaxmax(E‾CB(i),ECB,LT(i))min(E‾CB(i),ECB,LT(i))---(34)]]>用于噪声更新的声位因子给定如下voicing=(Cmarm(d0)+Cmarm(d1))/2+rg. (35)最后,在第2阶和第16阶分析之后LP残留能量之间的比例给定如下resid_ratio=E(2)/E(16) (36)其中E(2)和E(16)是在第2阶和第16阶分析之后的LP残留能量,而且是在本领域技术人员公知的Levinson-Durbin递归中计算的。该比例反映了如下事实为了代表信号频谱包络,与噪声相比,对于语音信号而言通常需要更高阶的LP。换句话说,与活动语音相比,对于噪声而言E(2)与E(16)之差推想为更低。
更新判决是基于初始设置为6的变量noise_update来确定的,并且如果检测到非活动的帧则减少1,如果检测到活动帧则递增2。另外,noise_update界定于0和6。噪声能量仅在noise_update=0时才更新。
变量noise_update的值在每帧中更新如下
如果(nonstat>thstat)OR(pc<12)OR(voicing>0.85)OR(resid_ratio>thresid)noise_update=noise_update+2否则noise_update=noise_update-1其中对于宽带信号,thstat=350000和thresid=1.9,而对于窄带信号,thstat=500000和thresid=11。
换句话说,当(nonstat≤thstat)AND(pc≥12)AND(voicing≤0.85)AND(resid_ratio≤thresid)时,帧对于噪声更新而言断定为非活动的,并且在噪声更新发生之前使用6帧的拖尾。
因此,如果noise_update=0,则for i=0 to 19 NCB(i)=Ntmp(i)其中Ntmp(i)是在等式(17)中已经计算的暂时更新的噪声能量。
声位截止频率的更新对截止频率进行更新,在该频率以下的信号认为是有声位的。此频率用来确定关键频带的数目,其中针对这些关键频带而使用每个仓的处理来执行噪声抑制。
首先,声位度量计算如下vg=0.4Cnorw(d1)+0.6Cnorw(d2)+rg(37)而声位截止频率给定如下fc=0.00017118e17.9772vg,bounded by325≤fc≤3700---(38)]]>然后,确定关键频带的数目Kvoic,这些频带具有不超过fc的上限频率。范围325≤fc≤3700设置为使得对最少3个频带和最多17个频带执行每个仓的处理(参见为上面定义的关键频带上限)。请注意在声位度量计算中,给超前的归一化相关性赋予更多加权,因为确定的有声位的频带数目将在下一帧中用到。
因此在随后的帧中,对于最先的Kvoic个关键频带,噪声抑制将使用如上文中描述的每个仓的处理。
请注意对于具有低声位的帧和对于大的基音延迟,仅使用每个关键频带的处理,因此Kvoic设置为0。使用以下条件
If(0.4Cnarm(d1)+0.6Cnarm(d2)≤0.72)OR(d1>116)OR(d2>116)then Kwic=0.
当然,许多其它修改和变形是可能的。根据上面对于本发明实施例的具体说明性描述以及附图,这样的其它修改和变形现在对于本领域普通技术人员将变得明显。同样应当明显的是,这样的其它变形可以在不脱离本发明的精神和范围时加以实现。
权利要求
1.一种用于语音信号噪声抑制的方法,包括对于具有可分到多个频率仓中的频域表示的语音信号,为所述频率仓中的至少一些频率仓确定缩放增益值;以及计算平滑缩放增益值,包括对于所述频率仓中的所述至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑缩放增益值。
2.如权利要求1中所述的方法,其中确定该缩放增益值包括使用信噪比(SNR)。
3.如权利要求1中所述的方法,其中计算平滑缩放增益值使用具有与该缩放增益逆相关的值的平滑因子。
4.如权利要求1中所述的方法,其中计算平滑缩放增益使用具有如下值的平滑因子,该值被确定为使得对于越小的缩放增益值则平滑性越强。
5.如权利要求1中所述的方法,还包括为至少一些频带确定缩放增益值,其中频带包括至少两个频率仓;以及计算平滑频带缩放增益值,包括对于所述频带中的所述至少一些频带,组合当前确定的缩放增益值和先前确定的平滑频带缩放增益值。
6.如权利要求1中所述的方法,其中确定该缩放增益值对于每个语音帧出现n次,其中n大于一。
7.如权利要求6中所述的方法,其中n=2。
8.如权利要求5中所述的方法,还包括使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于某一频率的频率,在每个频率仓的基础上执行该缩放,而对于在该某一频率以上的频率,在每个频带的基础上执行该缩放。
9.如权利要求8中所述的方法,其中该某一频率的值是可变的而且是该语音信号的函数。
10.如权利要求8中所述的方法,其中该某一频率在当前语音帧中的值是前一语音帧中该语音信号的函数。
11.如权利要求8中所述的方法,其中确定该缩放增益值对于每个语音帧出现n次,其中n大于一,以及其中该某一频率的值是可变的而且是该语音信号的函数。
12.如权利要求8中所述的方法,其中确定该缩放增益值对于每个语音帧出现n次,其中n大于一,以及其中该某一频率的值是可变的而且至少部分地是前一语音帧中该语音信号的函数。
13.如权利要求1中所述的方法,其中在每个频率仓的基础上使用平滑缩放增益来缩放该语音信号的频谱是对与17个频带相对应的最多74个仓执行的。
14.如权利要求1中所述的方法,其中在每个频率仓的基础上使用平滑缩放增益来缩放该语音信号的频谱是对与3700Hz的频率相对应的最大数目的频率仓执行的。
15.如权利要求2中所述的方法,其中对于第一SNR值,将该缩放增益值设置为最小值,而对于大于该第一SNR值的第二SNR值,将该缩放增益值设置为单位一。
16.如权利要求15中所述的方法,其中该第一SNR值约等于1dB,以及其中该第二SNR值约为45dB。
17.如权利要求1中所述的方法,还包括响应于非活动语音帧的出现,将多个平滑缩放增益值重置为最小值。
18.如权利要求1中所述的方法,其中在如下活动语音帧中不执行噪声抑制,在该活动语音帧中在多个频带中的最大噪声能量是在阈值以下,其中每个频带包括至少两个频率仓。
19.如权利要求1中所述的方法,还包括响应于短拖尾语音帧的出现,对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中每个频带包括至少两个频率仓;以及使用对于每个语音帧更新n次的缩放增益的单个值来缩放该语音信号的频谱的剩余频带,其中n大于一。
20.如权利要求19中所述的方法,其中所述最先的x个频带对应于上至1700Hz的频率。
21.如权利要求1中所述的方法,其中对于窄带语音信号,该方法还包括对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中每个频带包括至少两个频率仓,并且该最先的x个频带对应于上至3700Hz的频率;使用对应于3700Hz的频率仓处的缩放增益值来缩放在3700Hz与4000Hz之间的频率仓的频谱;以及将该语音信号的频谱的剩余频带清零。
22.如权利要求21中所述的方法,其中该窄带语音信号是上采样到12800Hz的语音信号。
23.如权利要求1中所述的方法,包括对该语音信号进行预处理。
24.如权利要求23中所述的方法,其中预处理包括高通滤波和预加重。
25.如权利要求8中所述的方法,其中该某一频率与声位截止频率有关,还包括使用计算出的声位度量来确定该声位截止频率。
26.如权利要求25中所述的方法,还包括确定多个关键频带,所述关键频带具有不超过该声位截止频率的上限频率,其中将边界设置为使得对最少x个频带和最多y个频带执行每个频率仓的处理,其中每个频带包括至少两个频率仓。
27.如权利要求26中所述的方法,其中x=3且其中y=17。
28.如权利要求25中所述的方法,其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
29.如权利要求26中所述的方法,其中是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决是基于与每个关键频带的信噪比(SNR)基本上相独立的参数的。
30.一种用于语音信号噪声抑制的方法,包括对于具有可分到多个频率仓中的频域表示的语音信号,将所述多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中,所述边界频率在噪声抑制技术之间进行区分;以及根据该语音信号的频谱内容来改变该边界频率的值。
31.如权利要求30中所述的方法,还包括使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于该边界频率的频率,在每个频率仓的基础上执行该缩放,而对于该边界频率以上的频率,在每个频带的基础上执行该缩放,其中频带包括至少两个频率仓。
32.如权利要求30中所述的方法,其中所述噪声抑制技术包括每个频率仓的技术和每个频带的技术,其中频带包括至少两个频率仓。
33.如权利要求30中所述的方法,其中该边界频率在当前语音帧中的值至少部分地是前一语音帧中该语音信号的函数。
34.如权利要求31中的方法,还包括为所述频率仓中的至少一些频率仓确定缩放增益值;以及计算平滑缩放增益值,包括对于所述频率仓中的所述至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑缩放增益值。
35.如权利要求31中所述的方法,其中在每个频率仓的基础上缩放该语音信号的频谱是对与17个频带相对应的最多74个仓执行的。
36.如权利要求31中所述的方法,其中在每个频率仓的基础上缩放该语音信号的频谱是对与3700Hz的边界频率相对应的最大数目的频率仓执行的。
37.如权利要求34中所述的方法,其中确定缩放增益值包括使用信噪比(SNR)。
38.如权利要求37中所述的方法,其中对于第一SNR值,将该缩放增益值设置为最小值,而对于大于该第一SNR值的第二SNR值,将该缩放增益值设置为单位一。
39.如权利要求38中所述的方法,其中该第一SNR值约等于1dB,以及其中该第二SNR值约为45dB。
40.如权利要求34中所述的方法,其中计算平滑缩放增益值使用具有与该缩放增益逆相关的值的平滑因子。
41.如权利要求34中所述的方法,还包括响应于非活动语音帧的出现,将平滑缩放增益值重置为最小值。
42.如权利要求30中所述的方法,其中在如下活动语音帧中不执行噪声抑制,在该活动语音帧中在多个频带中的最大噪声能量是在阈值以下,其中频带包括至少两个频率仓。
43.如权利要求31中所述的方法,还包括响应于短拖尾语音帧的出现,对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱;以及使用对于每个语音帧更新n次的缩放增益的单个值来缩放该语音信号的频谱的剩余频带,其中n大于一。
44.如权利要求43中所述的方法,其中所述最先的x个频带对应于上至1700Hz的频率。
45.如权利要求30中所述的方法,其中对于窄带语音信号,该方法还包括对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中每个频带包括至少两个频率仓,并且所述最先的x个频带对应于上至3700Hz的频率;使用对应于3700Hz的频率仓处的该缩放增益值来缩放在3700Hz与4000Hz之间的频率仓的频谱;以及将该语音信号的频谱的剩余频带清零。
46.如权利要求45中所述的方法,其中该窄带语音信号是上采样到12800Hz的语音信号。
47.如权利要求30中所述的方法,包括对该语音信号进行预处理。
48.如权利要求47中所述的方法,其中预处理包括高通滤波和预加重。
49.如权利要求34中所述的方法,其中确定该缩放增益值对于每个语音帧出现n次,其中n大于一。
50.如权利要求49中所述的方法,其中n=2。
51.如权利要求30中所述的方法,其中该边界频率的值是声位截止频率的函数,还包括使用计算出的声位度量来确定该声位截止频率。
52.如权利要求51中所述的方法,还包括确定多个关键频带,所述关键频带具有不超过该声位截止频率的上限频率,其中将边界设置为使得对最少x个频带和最多y个频带执行每个频率仓的处理。
53.如权利要求52中所述的方法,其中x=3且其中y=17。
54.如权利要求51中所述的方法,其中该声位截止频率被界定为等于或大于325Hz并且等于或小于3700Hz。
55.如权利要求52中所述的方法,其中是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决是基于与每个关键频带的信噪比(SNR)基本上相独立的参数的。
56.一种语音编码器,包括噪声抑制器,其用于具有可分到多个频率仓中的频域表示的语音信号,所述噪声抑制器可操作用以为所述频率仓中的至少一些频率仓确定缩放增益值;以及通过组合当前确定的缩放增益值和先前确定的平滑缩放增益值来为所述频率仓中的所述至少一些频率仓计算平滑缩放增益值。
57.如权利要求56中所述的语音编码器,其中所述噪声抑制器在确定缩放增益值时使用信噪比(SNR)。
58.如权利要求56中所述的语音编码器,其中计算平滑缩放增益值使用具有与该缩放增益逆相关的值的平滑因子。
59.如权利要求56中所述的语音编码器,其中计算平滑缩放增益使用具有如下值的平滑因子,该值被确定为使得对于越小的缩放增益值则平滑性越强。
60.如权利要求56中所述的语音编码器,所述噪声抑制器还可操作用以为至少一些频带确定缩放增益值,其中频带包括至少两个频率仓;以及通过组合当前确定的缩放增益值和先前确定的平滑频带缩放增益值来为所述频带中的所述至少一些频带计算平滑频带缩放增益值。
61.如权利要求56中所述的语音编码器,其中确定缩放增益值对于每个语音帧出现n次,其中n大于一。
62.如权利要求61中所述的语音编码器,其中n=2。
63.如权利要求60中所述的语音编码器,所述噪声抑制器还包括缩放单元,该缩放单元用以在每个频率仓的基础上或者在每个频带的基础上使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于某一频率的频率,在每个频率仓的基础上执行该缩放,而对于在该某一频率以上的频率,在每个频带的基础上执行该缩放。
64.如权利要求63中所述的语音编码器,其中该某一频率的值是可变的而且是该语音信号的函数。
65.如权利要求63中所述的语音编码器,其中该某一频率在当前语音帧中的值至少部分地是前一语音帧中该语音信号的函数。
66.如权利要求63中所述的语音编码器,其中所述噪声抑制器对于每个语音帧确定n次缩放增益值,其中n大于一,以及其中该某一频率的值是可变的而且至少部分地是前一语音帧中该语音信号的函数。
67.如权利要求56中所述的语音编码器,其中所述噪声抑制器对与17个频带相对应的最多74个仓在每个频率仓的基础上使用平滑缩放增益来缩放该语音信号的频谱。
68.如权利要求56中所述的语音编码器,其中所述噪声抑制器对与3700Hz的频率对应的最大数目的频率仓在每个频率仓的基础上使用平滑缩放增益来缩放该语音信号的频谱。
69.如权利要求57中所述的语音编码器,其中对于第一SNR值,将该缩放增益值设置为最小值,而对于大于该第一SNR值的第二SNR值,将该缩放增益值设置为单位一。
70.如权利要求69中所述的语音编码器,其中该第一SNR值约等于1dB,以及其中该第二SNR值约为45dB。
71.如权利要求56中所述的语音编码器,其中所述噪声抑制器响应于非活动语音帧的出现,将多个平滑缩放增益值重置为最小值。
72.如权利要求56中所述的语音编码器,其中所述噪声抑制器在如下活动语音帧中不执行噪声抑制,在该活动语音帧中在多个频带中的最大噪声能量是在阈值以下。
73.如权利要求56中所述的语音编码器,所述噪声抑制器响应于短拖尾语音帧的出现对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中每个频带包括至少两个频率仓;以及使用对于每个语音帧更新n次的缩放增益的单个值来缩放该语音信号的频谱的剩余频带,其中n大于一。
74.如权利要求73中所述的语音编码器,其中所述最先的x个频带对应于上至1700Hz的频率。
75.如权利要求56中所述的语音编码器,其中所述噪声抑制器响应于窄带语音信号对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中每个频带包括至少两个频率仓,而且所述最先的x个频带对应于上至3700Hz的频率;使用对应于3700Hz的频率仓处的缩放增益值来缩放在3700Hz与4000Hz之间的频率仓的频谱;以及将该语音信号的频谱的剩余频带清零。
76.如权利要求75中所述的语音编码器,其中该窄带语音信号是上采样到12800Hz的语音信号。
77.如权利要求56中所述的语音编码器,还包括至少一个预处理器,用于在将输入的语音信号应用到所述噪声抑制器之前对该语音信号进行预处理。
78.如权利要求77中所述的语音编码器,其中所述至少一个预处理器包括高通滤波器和预加重器。
79.如权利要求63中所述的语音编码器,其中该某一频率与使用计算出的声位度量来确定的声位截止频率有关。
80.如权利要求79中所述的语音编码器,所述噪声抑制器确定多个关键频带,所述关键频带具有不超过该声位截止频率的上限频率,其中边界被设置为使得对最少x个频带和最多y个频带执行每个频率仓的处理。
81.如权利要求80中所述的语音编码器,其中x=3且其中y=17。
82.如权利要求80中所述的语音编码器,其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
83.如权利要求80中所述的语音编码器,其中所述噪声抑制器基于与每个关键频带的信噪比(SNR)基本上相独立的参数来做出是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决。
84.一种语音编码器,包括噪声抑制器,其用于具有可分到多个频率仓中的频域表示的语音信号,所述噪声抑制器可操作用以将所述多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中,所述边界频率在噪声抑制技术之间进行区分,所述噪声抑制器还可操作用以根据该语音信号的频谱内容来改变该边界频率的值。
85.如权利要求84中所述的语音编码器,其中所述噪声抑制器还包括缩放器,该缩放器用以使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于该边界频率的频率,在每个频率仓的基础上执行该缩放,而对于该边界频率以上的频率,在每个频带的基础上执行该缩放,其中频带包括至少两个频率仓。
86.如权利要求84中所述的语音编码器,其中所述噪声抑制技术包括每个频率仓的技术和每个频带的技术,其中频带包括至少两个频率仓。
87.如权利要求84中所述的语音编码器,其中该边界频率在当前语音帧中的值至少部分地是前一语音帧中该语音信号的函数。
88.如权利要求85中的语音编码器,所示噪声抑制器还包括如下单元,该单元用以为所述频带中的单个频带确定缩放增益值;以及计算平滑缩放增益值;以及对于所述频带中的至少一些频带,组合当前确定的缩放增益值和先前确定的平滑缩放增益值;其中确定缩放增益值对于每个语音帧出现n次,其中n大于一,以及其中该边界频率的值至少部分地是前一语音帧中该语音信号的函数。
89.如权利要求85中所述的语音编码器,其中所述缩放器对与17个频带相对应的最多74个仓在每个频率仓的基础上使用平滑缩放增益。
90.如权利要求85中所述的语音编码器,其中所述缩放器对与3700Hz的边界频率相对应的最大数目的频率仓在每个频率仓的基础上使用平滑缩放增益。
91.如权利要求85中所述的语音编码器,其中该缩放增益值是使用信噪比(SNR)来确定的。
92.如权利要求86中所述的语音编码器,其中该平滑因子的值与缩放增益逆相关。
93.如权利要求92中所述的语音编码器,其中对于第一SNR值,将该缩放增益值设置为最小值,而对于大于该第一SNR值的第二SNR值,将该缩放增益值设置为单位一。
94.如权利要求93中所述的语音编码器,其中该第一SNR值约等于1dB,以及其中该第二SNR值约为45dB。
95.如权利要求85中所述的语音编码器,其中所述噪声抑制器响应于非活动语音帧的出现,将平滑缩放增益值重置为最小值。
96.如权利要求84中所述的语音编码器,其中在如下活动语音帧中不执行噪声抑制,在该活动语音帧中在多个频带中的最大噪声能量是在阈值以下,其中频带包括至少两个频率仓。
97.如权利要求85中所述的语音编码器,所述噪声抑制器响应于短拖尾语音帧的出现对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱;以及使用对于每个语音帧更新n次的缩放增益的单个值来缩放该语音信号的频谱的剩余频带,其中n大于一。
98.如权利要求97中所述的语音编码器,其中所述最先的x个频带对应于上至1700Hz的频率。
99.如权利要求85中所述的语音编码器,其中所述噪声抑制器响应于窄带语音信号的存在对于最先的x个频带,使用在每个频带的基础上确定的平滑缩放增益来缩放该语音信号的频谱,其中所述最先的x个频带对应于上至3700Hz的频率;使用对应于3700Hz的频率仓处的缩放增益值来缩放在3700Hz与4000Hz之间的频率仓的频谱;以及将该语音信号的频谱的剩余频带清零。
100.如权利要求99中所述的语音编码器,其中该窄带语音信号是上采样到12800Hz的语音信号。
101.如权利要求84中所述的语音编码器,还包括至少一个预处理器,用于在将输入的语音信号应用到所述噪声抑制器之前对该语音信号进行预处理。
102.如权利要求101中所述的语音编码器,其中所述至少一个预处理器包括高通滤波器和预加重器。
103.如权利要求84中所述的语音编码器,其中该边界频率的值是使用计算出的声位度量来确定的声位截止频率的函数。
104.如权利要求103中所述的语音编码器,其中所述噪声抑制器确定多个关键频带,所述关键频带具有不超过该声位截止频率的上限频率,其中边界被设置为使得对最少x个频带和最多y个频带执行每个频率仓的处理。
105.如权利要求104中所述的语音编码器,其中x=3且其中y=17。
106.如权利要求104中所述的语音编码器,其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
107.如权利要求104中所述的语音编码器,其中所述噪声抑制器基于与每个关键频带的信噪比(SNR)基本上相独立的参数来做出是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决。
108.一种语音编码器,包括用于抑制语音信号中的噪声的装置,该语音信号具有可分到多个频率仓中的频域表示,所述噪声抑制装置包括如下装置,该装置用于将所述多个频率仓分开到其间具有边界的第一组邻接频率仓和第二组邻接频率仓中,以及用于根据该语音信号的频谱内容来改变该边界,所述噪声抑制装置还包括如下装置,该装置用于为所述频率仓中的至少一些频率仓确定缩放增益值,以及用于通过组合当前确定的缩放增益值和先前确定的平滑缩放增益值来为所述频率仓中的所述至少一些频率仓计算平滑缩放增益值,其中计算平滑缩放增益值使用具有如下值的平滑因子,该值被确定为使得对于越小的缩放增益值则平滑性越强,所述噪声抑制装置还包括如下装置,该装置用于为至少一些频带确定缩放增益值,其中频带包括至少两个频率仓,以及用于计算平滑频带缩放增益值,所述噪声抑制装置还包括如下装置,该装置用于使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于该边界的频率,在每个频率仓的基础上执行该缩放,而对于在该边界以上的频率,在每个频带的基础上执行该缩放。
109.如权利要求108中所述的语音编码器,其中该边界包括如下频率,该频率是使用计算出的声位度量来确定的声位截止频率的函数,其中所述噪声抑制装置确定多个关键频带,所述关键频带具有不超过该声位截止频率的上限频率,其中边界被设置为使得对最少x个频带和最多y个频带执行每个频率仓的处理,其中x=3且其中y=17,以及其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
110.一种在计算机可读介质上实施的计算机程序,包括用于执行语音信号噪声抑制的程序指令,包括如下操作对于具有可分到多个频率仓中的频域表示的语音信号,为所述频率仓中的至少一些频率仓确定缩放增益值以及计算平滑缩放增益值;包括对于所述频率仓中的所述至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑频带缩放增益值。
111.如权利要求110中所述的计算机程序,所述操作还包括为至少一些频带确定缩放增益值,其中频带包括至少两个频率仓,以及计算平滑频带缩放增益值;包括对于所述频带中的所述至少一些频带,组合当前确定的缩放增益值和先前确定的平滑频带缩放增益值。
112.如权利要求111中所述的计算机程序,所述操作还包括使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于某一频率的频率,在每个频率仓的基础上执行该缩放,而对于在该某一频率以上的频率,在每个频带的基础上执行该缩放。
113.如权利要求112中所述的计算机程序,其中该某一频率的值是可变的而且是该语音信号的函数。
114.如权利要求112中所述的计算机程序,其中该某一频率与声位截止频率有关,还包括使用计算的声位度量来确定该声位截止频率的操作。
115.如权利要求114中所述的计算机程序,还包括确定多个关键频带的操作,所述关键频带具有不超过该声位截止频率的上限频率,其中边界被设置为使得对最少三个频带和最多十七个频带执行每个频率仓的处理。
116.如权利要求114中所述的计算机程序,其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
117.如权利要求114中所述的计算机程序,其中是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决是基于与每个关键频带的信噪比(SNR)基本上相独立的参数的。
118.一种在计算机可读介质上实施的计算机程序,包括用于执行语音信号噪声抑制的程序指令,包括如下操作对于具有可分到多个频率仓中的频域表示的语音信号,将所述多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中;以及根据该语音信号的频谱内容来改变该边界频率的值。
119.如权利要求118中所述的计算机程序,所述操作还包括使用平滑缩放增益来缩放该语音信号的频谱,其中对于小于该边界频率的频率,在每个频率仓的基础上执行该缩放,而对于该边界频率以上的频率,在每个频带的基础上执行该缩放,其中频带包括至少两个频率仓。
120.如权利要求118中所述的计算机程序,其中该边界频率在当前语音帧中的值至少部分地是前一语音帧中该语音信号的函数。
121.如权利要求119中的计算机程序,所述操作还包括为所述频带中的单个频带确定缩放增益值;以及计算平滑缩放增益值,包括如下操作对于所述频带中的至少一些频带,组合当前确定的缩放增益值和先前确定的平滑缩放增益值,其中确定缩放增益值对于每个语音帧出现n次,其中n大于一,以及其中该边界频率的值是前一语音帧中该语音信号的函数。
122.如权利要求118中所述的计算机程序,该边界频率与声位截止频率有关,还包括使用计算出的声位度量来确定该声位截止频率的操作。
123.如权利要求122中所述的计算机程序,还包括确定多个关键频带的操作,所述关键频带具有不超过该声位截止频率的上限频率,其中边界被设置为使得对最少三个频带和最多十七个频带执行每个频率仓的处理。
124.如权利要求122中所述的计算机程序,其中该声位截止频率被界定为等于或大于325Hz而且等于或小于3700Hz。
125.如权利要求122中所述的方法,其中是否在非活动语音时段期间对每个关键频带的噪声能量估计进行更新的判决是基于与每个关键频带的信噪比(SNR)基本上相独立的参数的。
全文摘要
在本发明的一个方面中,本发明提供一种用于语音信号噪声抑制的方法,包括对于具有可分到多个频率仓中的频域表示的语音信号,为所述频率仓中的至少一些频率仓确定缩放增益值,并且计算平滑缩放增益值。计算平滑缩放增益值包括对于频率仓中的至少一些频率仓,组合当前确定的缩放增益值和先前确定的平滑缩放增益值。在另一方面中,一种方法将多个频率仓分开到其间具有边界频率的第一组邻接频率仓和第二组邻接频率仓中,其中该边界频率在噪声抑制技术之间进行区分,而且根据语音信号的频谱内容来改变边界频率的值。
文档编号G01L21/00GK1918461SQ200480041701
公开日2007年2月21日 申请日期2004年12月29日 优先权日2003年12月29日
发明者米兰·杰利内克 申请人:诺基亚公司