语音信号噪声频谱估计方法、装置及降噪处理方法
技术领域
本发明涉及噪声处理技术领域,尤其涉及一种语音信号噪声频谱估计方法、装置及降噪处理方法。
背景技术
在语音降噪算法中,噪声频谱的估计是一个关键的环节,其影响到语音降噪的最终效果。一般的噪声估计算法中,均以输入信号的频谱中某一频段上的时长最小值作为噪声频谱此频段上的估计值。这种做法是基于下面的假设进行的:噪声在各频段上的值都要比语音信号在对应频段的值小。
但是实际应用环境中,会出现某一频段的信噪比小于1的情况,在这种情况下应用前述的噪声估计算法会导致语音信号的频谱中某一频段的值被误估计为噪声,从而不能准确计算出噪声的频谱,最终影响到了语音降噪的效果。
发明内容
基于此,有必要针对传统技术中,噪声估计不准确,影响语音降噪处理的问题,提供一种能够准确估计语音信号中噪声的语音信号噪声频谱估计方法,应用该方法的语音信号降噪处理方法,及相应的语音噪声频谱估计装置。
为实现本发明目的提供的一种语音信号噪声频谱估计方法,包括以下步骤:
计算预设长度的语音信号的频谱;
根据所述频谱计算所述预设长度的语音信号的功率谱;
对所述功率谱进行对数变换,得到所述预设长度的语音信号对应功率谱的对数序列;其中,所述对数序列中的每个对数值对应所述功率谱的一个频线的数值的对数变换;
根据每个频线对应的对数值和噪声对数估计值的大小关系,对所述噪声对数估计值进行调整,当所述对数值大于所述噪声对数估计值时,对所述噪声对数估计值进行增大处理;当所述对数值小于等于所述噪声对数估计值时,对所述噪声对数估计值进行减小处理;
执行对所述噪声对数估计值进行增大或者减小处理的步骤预设次数,得到所述噪声对数估计值的最终噪声对数估计值;
根据所述最终噪声对数估计值和所述功率谱对数变换的底数计算所述预设长度的语音信号的噪声功率谱;且
对所述噪声对数估计值进行增大处理或者减小处理时,根据每个频线对应的概率密度计算增大的量或者减小的量;所述概率密度是根据每个频线对应的对数值和噪声对数估计值之间的偏差计算得到的。
作为一种语音信号噪声频谱估计方法的可实施方式,所述计算预设长度的语音信号的频谱,包括以下步骤:
从待处理的语音信号中截取所述预设长度的语音信号;
对所述预设长度的语音信号进行加窗处理,得到离散语音信号,其中,所加的窗是长度与所述预设长度相等的序列;
对所述离散语音信号进行快速傅里叶变换,得到所述预设长度的语音信号的频谱。
作为一种语音信号噪声频谱估计方法的可实施方式,按照下面的步骤计算所述概率密度:
当|LP(i)-LEst(i)|<EST_DELTA时,否则,Density(i)保持不变;其中,Density(i)为频线i对应的概率密度,LP(i)为频线i对应的对数值,LEst(i)为频线i对应的噪声对数估计值,counter为当前执行对所述噪声对数估计值进行增大或者减小处理的步骤的次数,EST_DELTA为预设比较值;且
所述counter、所述LEst(i)及所述Density(i)的初始值均为0。
作为一种语音信号噪声频谱估计方法的可实施方式,按照如下公式对所述噪声对数估计值进行增大处理或者减小处理:
其中,LEst(i)为频线i对应的噪声对数估计值,counter为当前执行对所述噪声对数估计值进行增大或者减小处理的步骤的次数,α为取值范围在0-1之间的常数,LDelta(i)为所述噪声对数估计值的变化值;
所述LDelta(i)按如下公式计算:
其中,Density(i)为频线i对应的概率密度,L为大于零的常数。
作为一种语音信号噪声频谱估计方法的可实施方式,所述α的值为0.25,L的值为35。
作为一种语音信号噪声频谱估计方法的可实施方式,所述预设长度的语音信号包括当前输入的所述预设长度一半的当前待处理语音信号,及前一时刻输入的所述预设长度一半的前一待处理语音信号,且所述当前待处理语音信号和所述前一待处理语音信号均由块形式输入,所述预设长度的语音信号中信号按时间前后排列。
作为一种语音信号噪声频谱估计方法的可实施方式,所述对所述功率谱进行对数变换时,采用自然对数变换。
基于同一发明构思的一种语音信号降噪处理方法,该方法中使用前述的语音信号噪声频谱估计方法进行噪声功率谱计算,并根据计算出的所述噪声功率谱对待处理的语音信号进行降噪处理。
基于同一发明构思的一种语音信号噪声频谱估计装置,包括频谱计算模块、功率谱计算模块、对数变换模块、噪声对数估计值调整模块、执行次数控制模块以及噪声功率谱计算模块;
所述频谱计算模块,用于计算预设长度的语音信号的频谱;
所述功率谱计算模块,用于根据所述频谱计算所述预设长度的语音信号的功率谱;
所述对数变换模块,用于对所述功率谱进行对数变换,得到所述预设长度的语音信号对应功率谱的对数序列;其中,所述对数序列中的每个对数值对应所述功率谱的一个频线的数值的对数变换;
噪声对数估计值调整模块,用于根据每个频线对应的对数值和噪声对数估计值的大小关系,对所述噪声对数估计值进行调整,当所述对数值大于所述噪声对数估计值时,对所述噪声对数估计值进行增大处理;当所述对数值小于等于所述噪声对数估计值时,对所述噪声对数估计值进行减小处理;
所述执行次数控制模块,用于控制所述噪声对数估计值调整模块运行预设次数,得到所述噪声对数估计值的最终噪声对数估计值;
所述噪声功率谱计算模块,用于根据所述最终噪声对数估计值和所述功率谱对数变换的底数计算所述预设长度的语音信号的噪声功率谱;且
所述噪声对数估计值调整模块对所述噪声对数估计值进行增大处理或者减小处理时,根据每个频线对应的概率密度计算增大的量或者减小的量;所述概率密度是根据所述噪声对数估计值调整模块执行的次数进行计算得到的。
作为一种语音信号噪声频谱估计装置的可实施方式,所述频谱计算模块包括信号获取单元、窗处理单元和频谱变换单元;
所述信号获取单元,用于将当前输入的所述预设长度一半的当前待处理语音信号,及前一时刻输入的所述预设长度一半的前一待处理语音信号组合成预设长度的语音信号,且所述当前待处理语音信号和所述前一待处理语音信号均由块形式输入,所述预设长度的语音信号中信号按时间前后排列;
所述窗处理单元,用于对所述预设长度的语音信号进行加窗处理,得到离散语音信号,其中,所加的窗是长度与所述预设长度相等的序列;
所述频谱变换单元,用于对所述离散语音信号进行快速傅里叶变换,得到所述预设长度的语音信号的频谱。
作为一种语音信号噪声频谱估计装置的可实施方式,按照下面的步骤计算所述概率密度:
当|LP(i)-LEst(i)|<EST_DELTA时,否则,Density(i)保持不变;
按照如下公式对所述噪声对数估计值进行增大处理或者减小处理:
所述LDelta(i)按如下公式计算:
其中,Density(i)为频线i对应的概率密度,LP(i)为频线i对应的对数值,LEst(i)为频线i对应的噪声对数估计值,EST_DELTA为预设比较值;counter为当前执行对所述噪声对数估计值进行增大或者减小处理的步骤的次数,LDelta(i)为所述噪声对数估计值的变化值;α为取值范围在0-1之间的常数,L为大于零的常数;且
所述counter、所述LEst(i)及所述Density(i)的初始值均为0。
本发明的有益效果包括:本发明提供的一种语音信号噪声频谱估计方法,引入概率密度对噪声对数估计值进行调整计算。而且根据每个频线对应的对数值和噪声对数估计值之间的偏差计算概率密度。因为噪声对数估计值在执行过程中是逐步变化的,因此,所述概率密度的数值在每次噪声对数调整过程中也可能是不同的。从而能够利用概率密度逐步调整噪声对数估计值。且利用噪声对数估计值和对数值之间的偏差更新概率密度,能够达到对噪声对数估计值更加精细调整的目的,能够使最终噪声对数估计值更加贴合实际噪声的噪声对数。因此根据底数进行对数反变换(对数计算)后,则能够得到准确估计的语音信号中的噪声信号。能够为语音信号降噪处理提供更为准确的噪声参考。本发明同时提供的语音信号降噪处理方法及语音信号噪声频谱估计装置同样能够达到逐步准确估计噪声功率对数及噪声功率的效果。
附图说明
图1为本发明一种语音信号噪声频谱估计方法的一具体实施例的流程图;
图2为本发明一种语音信号噪声频谱估计方法的另一具体实施例的流程图;
图3为本发明一种语音信号噪声频谱估计装置的一具体实施例的结构图;
图4为本发明一种语音信号噪声频谱估计装置一具体实施例的的频谱计算模块的构成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的语音信号噪声频谱估计方法、装置及降噪处理方法的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明一实施例的语音信号噪声频谱估计方法,如图1所示,包括以下步骤:
S100,计算预设长度的语音信号XIN的频谱F。
其中,每次处理的语音信号XIN的长度,也即所述的预设长度可根据执行该噪声频谱估计方法的计算机的处理能力、计算速度确定。如果一次选择的语音信号长度较长则后续数据处理量会比较大,处理所用时间也会较长。对计算机的处理能力要求会较高。可以理解,如果计算处理能力较差时,可设置预设长度较短,即,每次对较短的语音信号进行处理。
且对语音信号的降噪处理一般是一个实时处理的过程,因此,本步骤频谱的计算一般也是对当前输入的预设长度的语音信号进行的频谱计算。
S200,根据所述频谱F计算所述预设长度的语音信号的功率谱P。
计算得到待处理的语音信号的频谱F后,进一步计算所述频谱F对应的功率谱P。可按公式(1)进行计算:
其中,计算得到频谱后,会得到语音信号中包含的多个频率信号对应的频线。再对每条频线求取语音信号在该频率下的功率。其中,公式(1)中Re(F(i))为频谱中频线i对应的实部部分,Im(F(i))为频谱中频线i对应的虚部部分,公式(1)为信号处理领域常用的功率求取方法,此处不再多作解释。
求得每条频线对应的功率后,则得到了所处理的语音信号的功率谱,所述功率谱中包含多个频率对应的离散点。
S300,对所述功率谱P进行对数变换,得到所述预设长度的语音信号对应功率谱的对数序列LP。
具体的,可按照公式(2)对功率谱P进行对数变换:
LP(i)=loga(P(i)) (2)
其中,i为序列中的位置,i为正整数,若对数序列LP中包含N个数,则i的取值可以为0,1,2,……,N-1。
需要说明的是,步骤S200中已经求出频谱中每条频线对应的功率,得到的功率谱就是由一系列离散的功率点组成的序列。因此,本步骤中在对功率谱进行对数变换时,是对功率谱中每个离散的功率点进行对数变换,所以对数变换后,也会得到一个对数序列。且对数序列中的每个对数值对应所述功率谱的一个频线的数值的对数变换,也即语音信号中所包含的所有频率的信号,最后每个频率都对应得到功率对数值。
另外,本步骤中对功率进行对数变换时,可根据数据计算的简便性选择合适的底数a进行对数变换。如a可选择10、5或者3等底数对功率谱中每条频线对应的功率进行对数变换。更佳的,作为一种可实施方式,可对功率谱进行自然对数变换,以e为底数对功率进行变换,则此时,LP(i)=ln(P(i))。
S400,根据每个频线对应的对数值LP(i)和噪声对数估计值LEst(i)的大小关系,对所述噪声对数估计值进行调整。
具体的,在对所述噪声对数估计值进行调整时,当所述对数值大于所述噪声对数估计值时,对所述噪声对数估计值进行增大处理;当所述对数值小于等于所述噪声对数估计值时,对所述噪声对数估计值进行减小处理。
本发明的方法目的就是对语音信号中的噪声信号进行估计,以便后续进一步对语音信号进行处理,去除或者降低噪声的干扰。本步骤中噪声对数估计值事实上就是对噪声的估计。因为步骤S300中对语音信号整体进行了对数变换,因此,该步骤中对噪声进行估计时,首先要对噪声信号的对数进行估计。得到噪声的对数估计值后,则可使用步骤S300中对数变换相同的底数对语音信号中的噪声进行准确的估计。
且,所述噪声对数估计值的初始值可预设为0也可选择其他数量作为初始值。
更重要的是,本方法的语音信号噪声频谱估计方法中,引入概率密度对噪声对数估计值进行调整计算。具体的,对所述噪声对数估计值进行增大处理或者减小处理时,根据每个频线对应的概率密度计算增大的量或者减小的量。概率密度较大时,则增大或者减少的量会小一些,而概率密度较小时,则噪声对数估计值增大或者减少的量会大一些。具体增大或者减小的数值可通过设置相应的调整函数进行。而概率密度是根据每个频线对应的对数值和噪声对数估计值之间的偏差计算得到的,其也可通过设置将对数值和对数估计值作为变量的函数实现。
该方法中,因为噪声对数估计值在执行过程中是逐步变化的,因此,所述概率密度的数值在每次噪声对数调整过程中也可能是不同的。从而能够利用概率密度逐步调整噪声对数估计值。且利用噪声对数估计值和对数值之间的偏差更新概率密度,能够达到对噪声对数估计值更加精细调整的目的,能够使最终噪声对数估计值更加贴合实际噪声的噪声对数。
S500,执行步骤S400预设次数WIN_SIZE,得到所述噪声对数估计值的最终噪声对数估计值。
具体的,在方法执行过程中,每次对噪声对数估计值进行估计后,都判断已执行的噪声对数估计值调整的次数,并在调整的次数达到预设值次数后,停止噪声对数估计值调整,得到所述最终噪声对数估计值。
此处需要说明的,步骤S400中对噪声对数估计值进行调整时,是对每条频线对应频率下的信号均做噪声对数估计。而本步骤中,执行预设次数是指对相应频线对应的噪声对数进行了预设次数的估计。当然,再具体执行过程中,可针对每条频线直接进行预设次数的调整,也可以每次都对所有频线对应频率下的语音信号进行噪声估计值计算,并循环进行,直至对所有频线功率均进行了预设次数的噪声对数估计值调整后结束,此时也得到了每条频线对应的最终噪声对数估计值。
而具体的,预设次数WIN_SIZE的取值和待处理语音信号的采样频率等有关系。作为一种可实施方式,WIN_SIZE所选取的数值对应的采样后的离散语音信号的点数在时间上对应12毫秒的语音信号。
S600,根据所述最终噪声对数估计值和所述功率谱对数变换的底数计算所述预设长度的语音信号的噪声功率谱NP(i)。
具体的,NP(i)=eLEst(i)。
本发明实施例的语音信号噪声频谱估计方法,引入概率密度对噪声对数估计值进行调整计算。而且根据每个频线对应的对数值和噪声对数估计值之间的偏差计算概率密度。因为噪声对数估计值在执行过程中是逐步变化的,因此,所述概率密度的数值在每次噪声对数调整过程中也可能是不同的。从而能够利用概率密度逐步调整噪声对数估计值。且利用噪声对数估计值和对数值之间的偏差更新概率密度,能够达到对噪声对数估计值更加精细调整的目的,能够使最终噪声对数估计值更加贴合实际噪声的噪声对数。那么根据底数进行对数反变换(对数计算)后,则能够得到准确估计的语音信号中的噪声信号。能够为语音信号降噪处理提供更为准确的噪声参考。
具体的,步骤S100,计算预设长度的语音信号的频谱,包括以下步骤:
S110,从待处理的语音信号中截取预设长度的语音信号。
本发明方法中每次对所有待处理的语音信号中的预设长度的语音信号进行处理。较佳地,作为一种可实施方式,如果将待处理语音信号作为该方法的输入信号的话,则可设定每次输入预设长度的语音信号到该方法中进行处理。作为一种可实施方式,输入信号可以以恒定大小为L的块形式输入,并按照[Xn-1Xn]的形式组成新的要处理的语音信号XINn,其中Xn-1表示n-1时刻输入的长度为L的待处理语音信号,Xn表示n时刻输入的长度为L的待处理语音信号。且更佳的,Xn可以认为是当前输入的最新的待处理语音信号。
由上面的描述可看出,本步骤中采用输入信号块50%重叠的方式对待处理语音信号进行处理,这也符合一般语音信号降噪处理的数据处理习惯。便于后续对已经估计出噪声功率谱的语音信号进行降噪处理。
S120,对所述预设长度的语音信号XINn进行加窗处理,得到离散语音信号。
具体的,按公式(3)对语音信号XINn进行加窗处理:
XINn(i)=Win(i)×XINn(i) (3)
其中,所加的窗Win是长度与所述预设长度相等的序列,即,窗Win的长度与信号XINn的长度相同。
S130,对步骤S120得到的离散语音信号进行快速傅里叶变换(FFT),得到所述预设长度的语音信号的频谱F。
另外,根据每个频线对应的对数值和噪声对数估计值之间的偏差计算进行概率密度计算时,首先判断对数值与噪声对数估计值之间的偏差大小,偏差比较大时则不用修改概率密度值,而当偏差过小(估计的噪声过大,与语音信号整体功率较为接近)时,则调整概率密度的值。
具体的,使用公式(4)判断某一频线对应的功率的对数值与噪声对数估计值之间的偏差:
|LP(i)-LEst(i)|<EST_DELTA (4)
公式(4)成立则对相应频线对应的概率密度进行修改,根据公式(5)对概率密度进行修改:
其中,Density(i)为频线i对应的概率密度,LP(i)为频线i对应的对数值,LEst(i)为频线i对应的噪声对数估计值,counter为当前执行对所述噪声对数估计值进行增大或者减小处理的步骤的次数,EST_DELTA为预设比较值;且所述counter、所述LEst(i)及所述Density(i)的初始值均为0。
而对所述噪声对数估计值进行增大处理或者减小处理时,可按照公式(6)进行:
其中,α为取值范围在0-1之间的常数,LDelta(i)为所述噪声对数估计值的变化值。
α为噪声对数估计值计算的参考系数,这一系数的大小关系到噪声对数估计值调整的精细程度,α取值越小,则估计值越精确,当然相应的计算量也越大。而α取值越大,则噪声对数估计值会越加不精确,但是,相应的噪声对数估计计算的复杂程度及计算量会相对更小些,计算速度会更快。
较佳地,在其中一个实施例中,α取值为0.25,这一数值在保证了噪声对数估计值调整精细程度的情况下,能满足大多数语音信号降噪处理的计算速度要求。
噪声对数估计值每次调整的变化值LDelta(i)按公式(7)计算:
其中,L为大于零的常数,其取值大小由输入的待处理语音信号的采样率及噪声信号的平稳程度等应用情况决定。如根据不同的采样率可确定不同的系数L,且一般采样率越高,系数L的取值会越小。较佳的,作为一种可实施方式,L可取为35。
下面结合图2,具体说明其中一个实施例中,α取0.25,L取35时噪声功率估计的计算过程。
待处理语音信号输入前,首先进行初始化步骤,S101,进行参数初始化。初始化执行噪声对数估计调整的次数为0,噪声对数估计值的初始值也为0。
S102,计算输入的预设长度的语音信号的功率谱LP。
S103,初始序列计算参数i。令i=0,则从功率谱序列中的第0个频线对应数值开始进行计算。
S104,判断当前频线的概率密度Density(i)是否大于等于1,若大于等于1,则执行步骤S105,否则执行步骤S105’。
S105,令噪声对数估计值的变化值LDelta(i)=35。
S105’,令噪声对数估计值的变化值
S106,判断噪声对数估计值LEst(i)是否大于等于对应频线的功率谱对数值LP(i),若是,则执行步骤S107,若否,则执行步骤S107’。
S107,按照公式对噪声对数估计值进行调整。
S107’,按照公式对噪声对数估计值进行调整。
S108,将噪声对数估计值与功率对数值之差的绝对值与预设比较值进行比较,若两数值之差在所述预设比较值之间,则执行步骤S109对当前频线对应的概率密度进行调整;若否,则保持当前概率密度不变,直接执行步骤S1010。
S109,使用公式进行概率密度调整。
S1010,判断是否对数序列中的所有点都进行了相应的噪声对数估计值调整。本步骤中使用公式i+1<N进行判断。与前面的描述相同,此处N对数序列中点的个数,而i是从0开始,对每个对数点进行相应处理的。因此,当i+1=N时,则可以判定已经对对数序列中的所有点进行了一次相应的噪声对数估计值调整。所以i+1<N时,则执行步骤S1011进入下循环的噪声对数估计值调整;而i+1≥N时,则完成了全部调整,需要进行下一步的操作,因此进入步骤S1012。
S1011,将参数i增大1,并返回步骤S104,继续对下一对数点进行相应的噪声对数估计值进行调整。
S1012,判断对所有频线对应的噪声对数估计值的调整是否均达到了预设次数WIN_SIZE。此处采用公式counter<WIN_SIZE进行。若达到了预设次数,则counter会等于WIN_SIZE,此时,则得到了最终的噪声对数估计值,且是每个频线对应的噪声对数估计值的最终值均计算完毕。则进入步骤S1014。如果对噪声对数调整的次数没有达到预设值,则执行步骤S1013。
S1013,将已执行的噪声对数调整次数counter增大1后,返回执行步骤S103,记性下一次噪声对数估计值调整。
S1014,计算噪声功率谱NP。NP(k)=eLEst(k),k=0,…,N-1。此处,k的取值与参数i的取值范围时完全相同的。且LEst(k)与LEst(i)在k和i取值相同时,两者为同一数值。且本步骤中还包括将执行次数counter重新设置为0的操作,以便准备好对下一输入的待处理语音信号进行噪声功率的估计和计算。
基于同一发明构思,本发明还提供一种语音信号降噪处理方法,该方法中使用前述任一实施例的语音信号噪声频谱估计方法进行噪声功率谱计算,并根据计算出的所述噪声功率谱对待处理的语音信号进行降噪处理。
具体的,在进行语音信号降噪处理时,可采用基于维纳滤波器的降噪算法、基于MMSE(最小均方差估计)的降噪算法,以及基于Log-MMSE(对数谱最小均方差估计)的降噪算法等方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
且上述的语音信号降噪处理方法可编程在单片机中,并内置到具有语音功能的设备中,对设备接收或者输出的语音信号进行降噪处理。
基于同一发明构思,本发明还提供一种语音信号噪声频谱估计装置,由于此装置解决问题的原理与前述一种语音信号噪声频谱估计方法相似,因此,该装置的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
其中一实施例的语音信号噪声频谱估计装置,如图3所示,包括频谱计算模块100、功率谱计算模块200、对数变换模块300,噪声对数估计值调整模块400、执行次数控制模块500以及噪声功率谱计算模块600。
其中,频谱计算模块100,用于计算预设长度的语音信号的频谱;功率谱计算模块200,用于根据频谱计算预设长度的语音信号的功率谱;对数变换模块300,用于对功率谱进行对数变换,得到预设长度的语音信号对应功率谱的对数序列;其中,对数序列中的每个对数值对应频谱的一个频线;噪声对数估计值调整模块400,用于根据每个频线对应的对数值和噪声对数估计值的大小关系,对噪声对数估计值进行调整,当对数值大于噪声对数估计值时,对噪声对数估计值进行增大处理;当对数值小于等于噪声对数估计值时,对噪声对数估计值进行减小处理;执行次数控制模块500,用于控制噪声对数估计值调整模块400运行预设次数,得到噪声对数估计值的最终噪声对数估计值;噪声功率谱计算模块600,用于根据最终噪声对数估计值和功率谱对数变换的底数计算所述预设长度的语音信号的噪声功率谱。而且该装置中,噪声对数估计值调整模块400对噪声对数估计值进行增大处理或者减小处理时,根据每个频线对应的概率密度计算增大的量或者减小的量;概率密度根据噪声对数估计值调整模块400执行的次数进行计算。
本发明实施例的语音信号噪声频谱估计装置,引入概率密度对噪声对数估计值进行调整计算。而且根据每个频线对应的对数值和噪声对数估计值之间的偏差计算概率密度。因为噪声对数估计值在执行过程中是逐步变化的,因此,所述概率密度的数值在每次噪声对数调整过程中也可能是不同的。从而能够利用概率密度逐步调整噪声对数估计值。且利用噪声对数估计值和对数值之间的偏差更新概率密度,能够达到对噪声对数估计值更加精细调整的目的,能够使最终噪声对数估计值更加贴合实际噪声的噪声对数。因此根据底数进行对数反变换(对数计算)后,则能够得到准确估计的语音信号中的噪声信号。能够为语音信号降噪处理提供更为准确的噪声参考。
具体的,在其中一个实施例中,如图4所示,频谱计算模块100包括信号获取单元101、窗处理单元103和频谱变换单元103。
信号获取单元101,用于将当前输入的预设长度一半的当前待处理语音信号,及前一时刻输入的预设长度一半的前一待处理语音信号组合成预设长度的语音信号,且所述当前待处理语音信号和所述前一待处理语音信号均由块形式输入,预设长度的语音信号中信号按时间前后排列;窗处理单元102,用于对预设长度的语音信号进行加窗处理,得到离散语音信号,且所加的窗是长度与预设长度相等的序列。而频谱变换单元103,用于对离散语音信号进行快速傅里叶变换,得到预设长度的语音信号的频谱。
作为一种可实施方式,可按照下面的步骤计算概率密度:
当|LP(i)-LEst(i)|<EST_DELTA时,否则,Density(i)保持不变。
而对噪声对数估计值进行增大或者减小处理时,可按照如下公式进行:
LDelta(i)按如下公式计算:
其中,上述各公式中,Density(i)为频线i对应的概率密度,LP(i)为频线i对应的对数值,LEst(i)为频线i对应的噪声对数估计值,EST_DELTA为预设比较值;counter为当前执行对噪声对数估计值进行增大或者减小处理的步骤的次数,LDelta(i)为噪声对数估计值的变化值;α为取值范围在0-1之间的常数,较佳的,可取0.25;L为大于零的常数,较佳的,可取35。且counter、LEst(i)及Density(i)的初始值均为0。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。