数字语音信号的去噪声方法

文档序号:2820760阅读:439来源:国知局
专利名称:数字语音信号的去噪声方法
技术领域
本发明涉及的是语音信号的去噪声的数字技术,特别涉及的是用消除非线谱来去噪声。
由于新的通信方式,特别是移动电话通信,的普遍化,各种通信越来越在强噪声环境中进行。附加在语音上的噪声防碍语音信号的优化压缩,产生非本征的背景噪声,就会干扰通信。另一方面噪声还使语音信息难以理解。
为了试图减小噪声在通信中的作用,已经研究了多种算法。S.F.Boll(在文章“Suppression of acoustic noise in speech using spectralsustraction”IEEE Trans.on Acoustics,speech and Signal Processing,Vol.ASSP-27,n°2 arril(四月)1999)曾推荐以减谱为基础的一种算法。这种技术在于在无声阶段(phase de silence)估计噪声谱,并将之从接收到的信号中减去。这可降低接收到的噪声电平,但其主要缺陷是要建立一个特别令人讨厌的音乐噪声,因为它是非自然的。
D.B.Paul(“The Spectral enveloppe estimation Vocoder”,IEEE Trans.on Acoustics,Speech and Signal Processing,Vol.ASSP-29,n°4 aot(八月)1981)和P.Lockwood et J.Boudy(“Experiment with a nonlinear spectral subtraetor(NSS),HiddenMarkov Model and the projection,for robust speech recognition incars”,Speech communication,Vol.11 juin(六月)1992,215-228页和EP-A-0534837)又进行这项工作,并做了改善,使得噪声电平得到明显的降低而仍保持信号的本身特性。另外,其贡献在于第一次在去噪声滤波器的计算中使用掩蔽原理(principe de masquage)。从这个思想出发,S.Nandkaumar和J.H.L.Hansen(“Speechenhancement on a new set of auditory constrained parameters”Proc。ICASSP 94,I.1-I.4页)尝试在频谱消除中利用计算的掩蔽曲线。尽管从这种技术得到了令人不满意的结果,但值得强调指出的是其重要贡献是在去噪声中不使语音信号变质。
另一些方法是建立在将语音信号分解成多个单个的数值的基础上,因而是将语音信号在一个较小的空间中投影,Bart De Moore(“The singular value de composition and long and short spaces ofnoisy matrices”IEEE Trans.on Signal Processing,Vol.41,n°9September(九月)1993,2826-2838页)和S.H.Jensen等(“Reduction of broad-band noise in speech by truncated QSVD”,IEEE Trans.on speech and Audio Processing Vol.3,n°6 novermber(十一月)1995)对此都做过研究,这种技术的原理是将语音信号和噪声信号看成是完全不相关的,并将语音信号看成是根据一组有限的参量就能预测它有足够多的预测性。这种技术对于噪声深埋的信号能得到可以接受的去噪声,然而使语音信号完全变质。对于一个相对相干的噪声,如汽车轮胎接触或马达撞击产生的噪声,其噪声比未被噪声掩蔽的语音信号还易于预测。于是就企图将语音信号在噪声矢量空间部分中投影。这个方法并没有考虑语音信号,特别是没有噪声的语音区,此处的预测性很低。还有,从一小组参量来预测语音信号,这不能考虑到语音的全部本质的财富。显然单纯建立在数学考察而忽略语音特性的基础上技术的局限性。
最后,别的一些技术都是建立在相关原理上面。J.A.Cadzow和O.M.Solomon(“Linear modeling and the coberence fonction”,IEEE Trans.on Acoustics,Speech and Signal Processing,Vol。ASSP-35,n°1 janvier(一月)1987,19-28页)特别好地发展了相干函数,而R.Le Bouguin(“Enhancement of noisy speech signalsapplication to mobile radio communications”,Speech Communication,Vol.18,3-19页)对将相干函数应用到去噪声中去进行了研究。这种方法是建立在下面的事实上在使用多个相互独立的信道条件下,语音信号的相干性肯定比噪声的相干性为大。其得到的结果相当令人鼓舞,然而相当不幸,这种技术意味着要取多个声音提取源,这一点并不是总能实现的。
美国的第5 228 088号专利描述了一个去噪声系统,并结合一个音调检测器,工作在频域。这个检测的结果一方面用来调节噪声的抑制系数(cocficients de suppression),另一方面用来定位一个“声带”。频谱和除模块用这些噪声抑制系数来在从信号中减去噪声之前来对噪声估计进行加权。校准抑制系数模块仅使用这样的信息,即根据这个信息确定是否对音调进行检测。而音调所取的数值对所用的抑制系数没有影响。借助于检测到的基波频率确定的“声带”构成了信号的总的加强目标。作为变种,这可以相反地用来确定一个“噪声带’即用于总衰减的带。这样对频谱和信号的一部分进行加强或衰减是与扣除频谱非常不相同的去噪声方法。
本发明的一个主要目的是推荐一种新的去噪声技术,这种技术考虑到语音生成的特点,因此能够有效地去掉噪声,而没有语音变质的感觉。
于是,本发明推荐由相继帧来处理的数字语音信号的去噪声方法。在这种方法中有-对于每一帧计算语音信号频谱的分量;-对于每一帧,计算包含在语音信号中的噪声谱分量的最大估计(estimations majorées);-进行减谱,其中至少有一步是分别从一帧的每个语音信号频谱分量中减去一个量,这个量决定于包含有对于述及的帧的相应的噪声频谱分量的最大估计在内的一些参量;并-将向时域的变换应用于减谱的结果,以构成去噪声语音信号。
为了在具有声音活动性的每一帧上进行信号的基波频率估计,就要对语音信号进行谐波分析,决定减去量的参量因而包含有估计得的基波频率。
一般总希望进行噪声频谱包络的过高估计(surestimation),以使这样得到的最大估计对于噪声的突然变化依然是稳固的。然而,这样的过高估计通常具有缺陷,当其太大时便使语音信号失真。这方面的作用是影响有噪声的语音信号的特征,消减其部分可预测性。这个缺陷对于电话是非常有碍的,因为电话的语音信号所处的噪声区域是最强的。在去噪声中考虑语音信号的基波频率这个事实,使得在这些噪声区域中能够保护这信号的谐波。
一般说来,为了从语音信号中减去给定的频谱分量,如果述及的频谱分量对应于一个受保护的频率,就是说最接近于被估计的基波频频率的整数倍,则所取的量就小于述及的频谱分量不对应于这样的一个受保护的频率。这个较小的量甚至可以是零。在后一种情况下,减谱并不影响被估计的基波频率处的信号和/或其谐波信号。于是就去掉了由对噪声的过高估计所带来的非线性部分,这对于噪声掩蔽的区域特别敏感。对于未被噪声掩蔽的区域,由于其激励信号有更为随机的特性,所以敏感性较差。
在一个有利的实施方式中,在对一个帧中的语音信号的基波频率的进行估计之后,就确定这帧的语音信号,即将附加取样(surechantionnage)的附加取样频率取在估计的基波频率的整数倍,并在确定的信号基础上计算这帧的语音信号的频谱分量,用来从这个信号中减去述及的量。这样安排使得对接近被估计的基波频率的那些频率比其它频率有优先权,这就避免了保护离这个基波频率相对较远的谐波。于是就保持了较好的语音信号的谐波特性。为了计算语音信号频谱分量,将用N个采样的采样组所确定的信号经过变换分布在频率域上,并将附加取样频率和估计的基波频率的比选作因数N。
对前述的技术还可以精练,用下面的方式对一帧的语音信号的基波频率进行估计-估计由于说话的人在一帧的持续时间内声门闭合产生的信号的两次相继的中断间的时间间隔。估计的基波频率和述及的时间间隔成反比;-在述及的时间间隔内插入语音信号,使得由这个插入得到的给定的信号在相继的两次中断之间的时间间隔为常数。
用这种方法人为地构成一个信号帧,在这个帧上的语音信号用不变的时间间隔中断,这就要考虑在一帧的时间内基波频率的可能变化。
一个附加的改善是在每帧的处理以后,从这个处理所提供的去噪声语音信号的所有取样中,只保留一定数量的等于采样频率与估计的基波频率的比的整数倍的那些采样。这就避免了由与各帧间相位的不连续性所产生的失真的问题。这是在传统的重复相加(Somme àreconverment)(overlap-add)技术中一般不能完全修正的。
由于使用附加取样技术来确定信号,这就能从在确定信号的基础上,计算频谱分量的自相关的熵,很好地测量在一帧内的基波信号的噪声电平。频谱干扰越大,亦即噪声越大,则熵的值越小。语音信号的确定加重了频谱的不规则面貌,因此也加重了熵的变化,这就构成了好的测量灵敏度。通常都是在去噪声信号的基础上面计算自相关,以能得到最好的性能。然而可以考虑在去噪声之前在确定信号的基础上计算自相关。
用从语音信号中减去述及的频谱分量的量值来得到去噪声信号的频谱分量,这便能用来应用一个听觉模型计算一条掩蔽曲线。最好,决定在一帧中从语音信号中减去频谱分量的量值的各个参量包含有噪声的对应的频谱分量的最大估计和计算得到的掩蔽曲线间的偏差。这个减去的量可以限制在对应于噪声的频谱分量的最大估计超过掩蔽曲线的部分。这种方法是建立在仅去掉听觉噪声就足够了的基础上。与此相反,对由语音听掩蔽的噪声则没有任何限制。
在一个有利的实施方式中,对在语音信号中的噪声的每个最大估计都是用对述及的噪声频谱分量的一个长期估计和述及的噪声频谱分量在其长期估计附近的变化的测量相结合而得到的。这样就得到了有关噪声变化的特别稳固的一个噪声估计量,因为这是两个不同的估计量的结合,一个是考虑到噪声的长期起伏,另一个是考虑到噪声的短期变化。
本发明的其它特性和好处将在后面描述的实施例中看到,这些实施例并非是限制性的,描述所参考的附图是

图1是实施本发明的去噪声系统的简要示意图。
图2和图3示出图1所示系统的声音活动性探测器所使用的方法的流程图。
图4表示声音活动性探测自动装置的各种状态。
图5为一个图象,示出声音活动性级的变化。
图6是图1所示系统的噪声的过高估计模块的简化示意图。
图7为一图象,示出掩蔽曲线的计算。
图8为一图象,示出在图1所示系统中的掩蔽曲线的使用。
图9是实施本发明的另一个去噪声系统的简要示意图。
图10是一图象,示出可应用在根据本发明的方法的一种谐波分析方法。
图11部分地示出图9的简要示意图的一个变种。
在图1中所示的去噪声系统处理一个语音数字信号S,一个窗口模块将这个信号S格式成相继的窗口形式或帧的形式,每一个窗口或每一个帧都是由N个数字信号的采样构成的。按照传统的方法,这些帧都有相互重叠。在后面的描述中,对此不做限制,且将所有的帧都看成是由取样频率Fe为8kHz的N=256个采样所构成,而且在每个窗口中都使用Hamming加权,相继窗口间的重叠为50%。
模块11应用传统的快速付立叶变换的算(TFR)来计算信号谱的模数,将信号帧变换到频率域。于是,模块11就释出语音信号的N=256个频率分量的集合,用Sn,f来表示,其中n表示当前的帧的参数,f表示离散频谱的频率。由于数字信号在频率域中的特性,只使用前N/2=128个采样。
为了计算在信号S中所包含的噪声的估计,并不使用在快速付立叶变换输出的可能的频率分解(resolutions),而是使用一个较小的分辨能力,是用覆盖信号带
的频率带的个数I来确定的。每个频率带i(1≤i≤I)处在一个低频f(i-1)和一个高频f(i)之间,此处f(0)=0,f(I)=Fe/2。这种频率带的分割可以是单一的(f(i)-f(i-1)=Fe/2I),也可以不是单一的(例如按照(barks)标度)。模块12计算每一频率带各自的语音信号的频谱分量的平均值Sn,f,例如对于单一加权为Sn,i=1f(i)-f(i-1)Σfe[f(i-1),f(i)[Sn,f--------(1)]]>这种平均压缩了各频带间的起伏,同时也平均了这些频带中的噪声分布,这样就降低了噪声估计值的均方差。另外,这种平均可以极大地降低系统的复杂性。
平均频谱分量Sn,i被发送到声音活动性检测模块15和噪声估计模块16。这两个模块15和16的运行是相互衔接的,意义在于由模块15对各个频带的声音活动电平γn,i的测量被模块16用来估计各频带的长期噪声能量,同时这些长期估计
又被模块15用来对每个频带中的语音信号进行初步去噪声用来确定声音活动的音级γn,i。
模块15和16的运行可以和图2和图3中示出的流程图相对应。
在步骤17至20中,模块15在各个频带i中对于第n个信号帧对语音信号进行初步去噪声。这个初步去噪声是从在前面的一帧或多帧中所得到的噪声估计出发根据传统的非线性减谱过程进行的。在步骤17中,模块15用频带i的分辨率,按照下式计算初步去噪声滤波器的频率响应Hpn,i,Hpn,i=Sn,i-αn-τ1,i′·B^n-τ1,iSn-τ2,i-----(2)]]>此处,τ1和τ2是用帧数表示的延时(τ1≥1,τ2≥0),而α′n,i则是噪声的过高估计系数,其确定方法将在后面说明。延时τ1可以是固定的(例如τ1=1),亦可是变化的,声音活动性检测的置信度也越小,τ1值就越小。
在步骤18到20中,根据式Ep^n,i=max{Hpn,i·Sn,i,βpi·B^n-τ1,i}----(3)]]>计算各频谱分量
其中βpi是一个接近于零的下界系数(cofficientde plancher),传统上用它来避免去噪声的信号频谱取负值,或者取太小的值,以致产生一种音乐噪声(bruit musical)。
步骤17到20主要是从信号频谱中减去由系数α′n-τ,i加大的先前估计的噪声频谱的估计。
在步骤21中,模块15对于每一帧n在所有频带i计算初步去噪声信号的能量
还用每个频带的宽度去加权这个频带中的能量En,i之和,计算初步去噪声信号的能量的总平均值En,0。在后面的记号中,用脚标i=0表示信号的总频带。
在步骤22和23中,模块15计算每个频带i(0≤i≤I)的一个量值ΔEn,i,ΔEn,i表示在频带i中的去噪声信号的能量的短期增量,还计算频带i中的去噪声信号的能量的长期值En,i。可以用一个简化了的公式ΔEn,i=|En-4,i+En-3,i-En-1,i-En,i10|.]]>来计算ΔEn,i。至于长期能量En,i,则可借助于一个忽略因子(facteru d′oubli)B1来计算,例如0<B1<1,有En,i=B1·En-1,i+(1-B1)·En,i。
在计算了去噪声信号的能量En,i之后,其短期增量ΔEn,i和其长期值En,i的形式都在图2中标出,模块15就对每一个频带i(0≤i≤I)计算一个值ρi,ρi表示去噪声信号的能量演化。这个计算是在图3的从25步到36步之间进行的,对于从i=0到i=I之间的每个i都进行这样的计算。这个计算借助于一个噪声包络的长期估计值bai、噪声的一个内部估计值bii以及噪声帧的计数值bi。
在步骤25中,将量值ΔEn,i和一个阈值ε1进行比较,如果没有达到阈值ε1,则在步骤26中将计数bi增加一个单位。在步骤27中,将长期估计量bai和平滑了的能量值En,i进行比较。如果bai≥En,i,则在步骤28中取估计值bai等于平滑值En,i,并将计数bi置0。取量值ρi等于比bai/En,i(步骤36),于是为1。
如果在步骤27中得到bai<En,i,则在步骤29中将计数值bi和一个极限值bmax比较,如bi>bmax,则将信号看成是对于声音活动性来说太为固定了,就执行前述的步骤28,又回到仅包含有噪声的帧。如果在步骤29中有bi≤bmax,则在步骤33中用下式计算内部估计值biibii=(1-Bm)·En,i+Bm·bai(4)在这个式中,Bm为更新系数取值在从0.90到1之间,其值根据检测声音活动性的自动装置的状态而不同(步骤30到32)。状态δn-1是在处理前一帧时确定的状态。如果自动装置是处在语音检测状态(在步骤30中δn-1=2),系数Bm的取值Bmp非常接近于1,以使噪声的估计值在有语音时更新很小;在相反的情况下,即系数Bm取较小的值Bms,使噪声的估计值在无声阶段有较大的更新。在步骤34中,将噪声长期估计值和噪声内部估计值间的偏差bai-bii和一个阈值ε2进行比较。如果没有达到ε2,则在步骤35用内部估计值bii更新长期估计值bai;否则,则长期估计值bai保持不变。这样,就避免了将由语音信号的突然变化而导致噪声估计值的更新性。
在得到各个量值ρi之后,模块15就在步骤37中确定声音活动性,模块15首先根据计算得到的量值ρ0为信号频带的集合更新检测自动装置的状态。自动装置的新的状态δn决定于前一个状态δn-1和ρ0,如图4所示。
有四种可能的状态δ=0检测的是无声,或无语音;δ=2检测的是有声音活动性;而状态δ=1和状态δ=3分别1是上升和下降的中间状态。当自动装置处在无声状态(δn-1=0)时,如果ρ0不超过第一阈值SE1,则它保持不变,而在相反的情况下,它将过渡到上升状态。在上升状态(δn-1=1),如ρ0较阈值SE1为小,它就回到无声状态;如ρ0大于第二阈值SE2,SE2大于阈值SE1,它则过渡到语音状态;且如SE1≤ρ0≤SE2,它则保持在上升状态。当自动装置处在语音状态(δn-1=2)时,如果ρ0大于第三阈值SE3小于阈值SE2,它保持不变,如果处在相反的情况下,它则过渡到下降状态。当自动装置处在下降状态(δn-1=3),如ρ0大于阈值SE2,则它又回到语音状态,如果ρ0在第四个阈值SE4之外,SE4小于SE2,则它又回到无声状态,如SE4≤ρ0≤SE2,它仍保持在下降状态。
在步骤37中,模块15还在每个频带i≥1中计算声音活动性的音级(degré)γn,i。这个音级γn,i最好是一个非二进制参量,就是说函数γn,i=g(ρi)是一个根据量ρi的取值在0到1之间连续变化的函数。图5作为例子示出这个函数的形态。
模块16计算每个频带的噪声估计,这中要使用分量Sn,i和声音活动性音级γn,i的相继的各个值,述及的噪声估计将在去噪声中使用。这对应于图3中的40至42的各个步骤,在步骤40确定声音活动性检测的自动装置是否刚刚从上升状态过渡到语音状态。在肯定的情况下,对于每个频带i≥1前面计算的最后两个估计

i都按照前一个估计值Bn-3,i来修正的。进行这个修正是为了考虑下面的事实在上升阶段(δ=1),在声音活动性的检测过程中的噪声能量的长期估计(步骤30至33)可以当成是信号中只包含噪声来计算(Bm=Bms),这会使有误差。
在步骤42中,模块16按照下式更新每个频带的噪声估计B~n,i=λB·B^n-1,i+(1-λB)·Sn,i----(5)]]>B^n,i=γn,i·B^n-1,i+(1-γn,i)·B~n,i-----(6)]]>此处λB表示忽略因子,有0<λB<1。从(6)式明显地看出考虑到非二进制声音活动性的音级γn,i。
正如前面已经指出,噪声的长期估计 构成了一个过高估计(suréstimation)的目标,述及的过高估计是由模块45(见图1)在进行非线性减谱去噪声之前进行的。模块45计算前面述及的过高估计系数α′n,i,以及一个过高估计 这主要对应于 过高估计模块45的机构在图6中表示出来的。最大估计 是用在频带i中的长期估计 和噪声分量在其长期估计周围的变化的测量值ΔBmaxn,i相结合得到的。在所考察的例子中,这种结合基本上是由一个加法器46进行简单的求和来实现的,这同样可以是一个加权后的求和。
过高估计系数α′n,i等于加法器46释出的和 与延时的长期估计 之比(除法器47),其上限为一极限值αmax,例如αmax=4(方框48)。延时τ3用于修正突发的情况,在各个上升阶段中(δ=1),是在长期估计在图3中的40和41步骤中予以修正之前(例如τ3=3)修正过高估计系数α′n,i的值。
最大估计 的最终取值为 (乘法器49)。
噪声变化量的测量值ΔBmaxn,i反映了噪声估计值的方差。述及的方差是对于前面的一定数量的帧计算的根据Sn,i和 得到的。在述及的一定数量的帧上,语音信号在频带i中没有声音活动性。这是对于k个无声帧(n-k≤n)计算的偏差 的函数。在所述的这个例子中,这个函数简单地取最大值(方框50)。对于每一帧n,将声音活动性的音级γn,i和一个阈值进行比较(方框51),以便决定在52-53中计算的偏差 是否应该加载到k个先进先出(FIFO)位置的一个等待文件54中。如果γn,i没有超过述及的阈值(如函数g()为图5所示的形式,则这个阈值等于0),则FIFO54并没有得到加载,若在相反情况下,它便得到加载。FIFO54中所容纳的最大值就作为测量的变化量ΔBmaxn,i。
作为变种,变化量ΔBmaxn,i的测量值可以根据值Sn,f(不是Sn,i)和值 来得到。于是就有同样的方法,除非对于每个频带i,FIFO54中不包含有 而是有
由于述及的估计和噪声的长期涨落
无关,与噪声的短期变化量ΔBmaxn,i无关,过高噪声估计
使得本去噪声方法对于音乐噪声是强稳固的(robustesse)。
减谱的第一阶段是由在图1中示出的模块55来实现的。在这个阶段中,使用频带i的分辨能力(1≤i≤I),根据分量Sn,i和
以及过高估计系数α′n,i,提供第一去噪声滤波器的频率的响应H1n,i。对于每个频带i可用下式计算Hn,i1=max{Sn,i-αn,i′·B^n,i,βi1·B^n,i}Sn-τ4,i]]>此处τ4为一整数延时,如用τ4≥0确定(例如τ4=0)。在式(7)中,系数β1i和式(3)中的系数βpi一样,也是表示一个下限,传统上用来避免去噪声后的信号为负或太小。
根据已经知道的方法(EP-A-0534837),在式(7)中的过高估计系数α′n,i可以用另一个系数来代替,这个系数等于α′n,i和信噪比估计(例如
)的一个函数,这个函数随信噪比的估计值的增大而下降。于是对于最小的信噪比的值,这个函数等于α′n,i。事实上,当信号的噪声太强时,显然并不利于缩小过高估计因子。有利的是对于信噪比的那些最大的值,这个函数下降至零,这就能保护频谱最强的那些区域,频谱最强也正是语音最有意义,在这里从信号中减去的量就趋于零。
当将这种方略有选择地应用于声音活动性的语言信号的音调频率(pitch frequency)的谐波时可得到了精炼。
这样,在图1所示的实施方式中,去噪声的第二阶段则是由保护谐波模块56实现的。这模块使用傅立叶变换的分辨能力(résolution),根据参量H1n,i、α′n,i、
δn、Sn,i以及用谐波分析模块57在无声阶段之外计算得到的音调频率fp=Fe/Tp来计算第二去噪声滤波器的频率响应H2n,f。在无声阶段(δn=0),模块56并未使用,就是说对于频带i的每种频率f,都有H2n,f=H1n,i。模块57可以应用各种已知的帧的语音信号的分析方法,例如线性预测的方法,来确定周期Tp′。周期Tp′是用采样的一个整数或分数来表示的。
由模块56带来的保护可以用下面的方法实现,对于属于频带i的每个频率有
Δf=Fe/N是傅立叶变换的频谱分辨能力,当H2n,f=1时,分量的减去量Sn,f便等于0。在这个计算中,下界系数β2i(例如β2i=β1i)表示基波fp的某些谐波可能是被噪声掩蔽,以致对它们的保护是无用的。
最好是将这种保护方略应用到最接近fp的每个谐波频率,就是说用于任一个整数η。
如果用δfp表示频谱分辨能力,则分析模块57用这个分辨能力生成估计的基波fp,就是说,实际的基波是在fp-δfp/2到fp+δfp/2之间,以致实际基频的第η阶谐波频率和它的估计η×fp(条件9)的间隔可达到±η×δfp/2。对于那些最大的η值,这个间隔可以大于傅立叶变换的半个频谱分辨能力Δf/2。为了考虑这个不确定度,以及为很好地保护实际基波的各个谐波,可以保护频率范围[η×fp-η×δfp/2,η×fp+η×δfp/2]中的每个频率,就是说将上面的条件(9)更换作∃ηinteger/|f-η.fp|≤(η.δfp+Δf)/2------(9′)]]>这种处理方法(条件(9′))在η值大时具有特别的好处,特别是在将这个方法应用到一个宽频带系统中的情况下。
对于每个保护的频率,正如前面已经指出,修正了的频率响应H2n,f可以等于1,这对应于在减谱的范围内减去的量为零,就是说,有关的频率都得到完全的保护。普遍的情况是这个修正了的频率响应H2n,f可以根据希望的保护等级取1到H1n,f间的任何一个值。这对应于减去的一个量小于在有关频率不被保护时所要减去的量。
去噪声信号的频谱分量S2n,f是用乘法器58计算的Sn,f2=Hn,f2·Sn,f------(10)]]>这个信号S2n,f提供给模块60。模块60应用人耳的听觉生理声学模型,对于每一帧n计算一个掩蔽曲线。
掩蔽现象是一个熟知的人耳工作原理。当同时听到两个频率时,这两频率中的一个就可能不被听到,就说这个频率被掩蔽。
有不同的方法计算掩蔽曲线,例如可以使用J.D.Johnston(“Transform Coding of Audio Signal Using Perceptual NoiseCriteria”,IEEE Journal on Selected Area in Communication,Vol.6,No.2 Février(二月)1988)所发展的方法。在这种方法中,以barks频率标度,将掩蔽曲线看成是耳底膜(membrane basilaire)频谱在bark域上的扩展函数与激励信号的卷积,在本应用中用信号S2n,f构成激励信号。可以用图7所示的方法建立频谱的扩展函数的模型。对于每个bark带,计算耳底膜的扩展函数与低带和高带的分布的卷积Cn,q=Σq′=0q-1Sn,q′2(1010/10)(q-q′)+Σq′=q+1QSn,q′2(1025/10)(q′-q)----(11)]]>这里,标注q和q′表明bark频带(0≤q,q′≤Q),而S2n,f表示属于bark频带q′的各离散频率f的去噪声激励信号的分量S2n,f的平均值。
每个bark频带q的掩蔽阈值Mn,q是由模块60根据下式得到的Mn,q=Cn,q/Rq(12)此处,Rq取决于信号的噪声特征的强弱。按照已知的方法,Rq的可能形式为10·log10(Rq)=(A+q)·χ+B·(1-χ)(13)的定义。(在本发明的其他实施方案中通过改变一个小寄存器的内容,使许多属性可由少至1、2个标志信号访问)。
寄存器60可以是一个64位的读/写可寻址的模专用寄存器(MSR),或者是彼此有不同地址的独立的线性属性寄存器R0、R1、...R7。数据可通过总线62从寄存器64写入寄存器60。如图2所示,寄存器64可以是一个微处理器的内部寄存器,例如ECX寄存器。或者,寄存器64作为存储器中的一个存储单元,例属于某微处理器的内部或外部部件。寄存器64可表示一组有不同存储单元的寄存器。其属性数据可通过存储器的指针访问,并可由寄存器64描述。寄存器64和寄存器60之间可能有外加的电路(这里未图示)。属性数据可通过导线66、68...80从寄存器60那里读出。在优选实施方案中,导线66、68...80和82是N位宽的。N可以是3、8或一些其他的数字。总线62和导线66、68...80也表示合适的读和或写电路。寄存器60可称作调配寄存器因为选择器52已准备好访问它。寄存器64可叫作一个外部寄存器(不管它是不是在处理器14的外部)因为它在MAP50的外部。
下面是寄存器60的一个例子31 27 26 24 23 19 18 1615 1110 8 7 3 2 0
63 59 58 56 55 51 50 48 47 4342 403935 3432
在寄存器60的上述举例中,位0-7构成寄存器R0,位8-15构成寄存器R1,...,位56-63构成寄存器R7。(在这个意义上,可把寄存器60想象为多个寄存器。再者,如解释的那样,这些寄存器可以处在不同的地址上。)存储属性0(MA0)在寄存器0的位0-2中。MA0、MA1、...MA7指明包含在寄存器60中的8个存储属性可通过MAP50得到。这样MAP50是一个8入口、8位宽的可程控表。在本举例中,Rsvd是每个页属性的最高有效位并留作将来扩充用。当然,存储属性MA0、MA1、...MA7可用多于或少于3位来表示。在有些实现图2结构的方案中可能少于8个存储属性。在这些情况下,有些属性可包含在一个以上的寄存器60项<p>这个减谱是将语音信号的频谱分量Sn,f乘以去噪声滤波器的频率响应H3n,f(乘法器64)进行的。模块65对由乘法器64所释放的频率采样S3n,f进行快速逆傅立叶变换(TFRI),便在时域上重新构建去噪声的信号。对于每一帧,由模块65所产生的信号采样中只有前N/2=128个采样释放出来,在用前面一帧的后N/2=128个采样去相加-覆盖重新构建以后成为最终的去噪声信号S3。
图9示出一个实施本发明的去噪声系统的一种理想的实施方式。这个系统中的有些部分和图1中所示系统的一些相应的部分类似,就使用相同的数字标出。这样,模块10、11、12、15、16、45和55就特别提供量Sn,i、
α′n,i、
和H1n,f,以便实现有选择的去噪声。
频率快速傅立叶变换的频率分辨能力11是图1所示系统的一个限制。事实上,作为模块56要保护的频率不必准确的是基频频率fp,可以是离散频谱中最接近于基波频率的频率。在某些情况下,要保护离这个基波频率相对远的谐波,图9所示的系统借助于语音信号的一个适当的条件克服了这种缺陷。
在这种条件下,改变信号的取样频率,使得取样周期1/fp严格覆盖给定信号的采样时间的整数倍。
模块57可以实施多种方法进行谐波分析,能够提供一个延迟时间的分数值Tp,用初始取样频率Fe的多个采样数表示。于是就选择一个新的取样频率fe,使之等于估计的基波频率的整数值,即fe=p·fp=p·Fe/Tp=K·Fe,此处p为整数。为了不损失信号的采样,应使fe大于Fe,可以特别指明fe在Fe到2Fe之间(1≤K≤2)以使这种条件实施简单。
当然,如果在当前帧中没有测到一点声音活动性(δn≠0),或者若模块57估计的延时Tp为整数,就没有必要限定信号。
为了基波频率的每个谐波也都是给定的信号采样的整数倍,整数p应是模块10生成的信号窗口大小N的一个因数N=αp,此处α为整数。N通常是实施TFR的平方,在所考察的例子中为256。
给定信号的离散傅立叶变换的频谱分辨能力Δf是由Δf=p·fp/N=fp/α给出的。其意义在于选用小的p以使α最大,但是足够大以附加抽样。在所考察的例子中,Fe=8kHz,N=256,则对参量p和α的选取值在表I中列出。
表I
这个选取是由模块70根据谐波分析模块57所提供的延时Tp的值进行的。模块70提供在三个频率改变模块71、72、73中的采样频率的比K。
模块71中来将相关于由模块12所确定的频带i的各个值Sn,i,
α′n,i,
和H1n,f变换成修正的频率标度(取样频率fe)。这种变换仅是将频带i扩展K倍。将这样变换得到的值提供给谐波保护模块56。
模块56用和前面一样的方式进行操作,提供去噪声滤波器的频率响应H2n,f。这个频率响应H2n,f是和图1所示情况下用相同的方法(条件(8)和(9))得到的,其小小的差别在于在条件(9)中基波频率fp=fe/p是由模块70所提供的延时的整数值p确定的,而频率分辨能力Δf也是由模块70提供的。
模块72对窗口模块10所提供的N个采样帧进行附加采样。以一个合理因数k(k=k1/k2)的附加取样的进行首先是在以整数因子k1附加取样,然后以整数因子k2较少取样。以这些整数因子中的附加采样和较少取样,在传统上都是用多相位滤波器组进行的。
由模块72提供的给定的信号的帧s′中有KN个频率为fe的采样。这些采样提供给模块75,模块75计算了这些采样的傅立叶变换。述及的变换可以是根据两个N=256的采样组进行一个采样组是长度为KN的给定的信号帧s′的前N个采样构成的,而另一个采样组则是这个帧的后N个采样构成。这两个采样组就有(2-K)×100%的重复。对于这两个组中的每一个,得到一个傅立叶分量组Sn,f,这些分量组Sn,f都提供到乘法器58,乘法器58用频谱响应H2n,f去乘各个傅立叶分量,以便得出第一去噪声信号的各个频谱分量S2n,f。
这些分量S2n,f都提供给模块60,模块60用前面指出的方法计算掩蔽曲线。
最好,在这个掩蔽曲线的计算中,表示语音信号的噪声音级(式(13))的量χ所取的形式为χ=1-H,此处H是去了噪声的给定信号的频谱分量S2n,f的自相关的熵。所有的自相关A(k)都是用例如下面的式子由模块76计算的A(k)=&Sigma;f=0N/2-1Sn,f2&CenterDot;Sn,f+k2&Sigma;f=0N/2-1&Sigma;f&prime;=0N/2-1Sn,f2&CenterDot;Sn,f+f&prime;2------(15)]]>而后,模块77计算归一化的熵H,并将之提供给模块60,用来计算掩蔽曲线(见S.A.McClellan等“Spectral EntropyanAlternative Indicator for Rate Allocation?”,Proc.ICASSP′94,201-204页)H=&Sigma;k=0N/2-1A(k).log[A(k)]log(N/2)---------(16)]]>借助于对信号的限定,也借助于用滤波器对信号去噪声H2n,f,归一化熵H构成对噪声和基波频率的变化很稳固的测量值。
修正模块62用和图1所示的系统相同的方法进行操作,考虑到用频率变化模块71重新进行标度的过高估计噪声B′n,i。给出最后的去噪声滤波器的频率响应H3n,f,由乘法器64用给定信号的频谱分量Sn,f去乘述及的频率响应H3n,f。由此得出的各个分量S2n,f都由TFRI模块65在时域上重建。在这个TFRI模块65的输出处,模块80对于每一帧将两个方框的信号混合。所述的这两组信号是由TRR75释出的两组复盖着的信号经处理得到的。这个混和可以是各个采样的汉明加权的和,以构成KN个采样的给定信号的去噪声的一个帧。
模块73改变由模块80所提供的去噪声的给定信号的采样频率。通过对模块75所进行的操作的逆操作,将这个取样频率重新引导到Fe=fe/k。模块73对于每一帧释出N=256采样。在用前一帧的后N/2=128个采样经附加-重复重新构造之后,当前帧中只有前N/2=128个采样最终得到保存,用来构成最终的去噪声信号S3(模块66)。
在一个理想的实施方式中,模块82管理着由模块10形成、由模块66保存的各个窗口,以使采样数M等于Tp=Fe/fp的整数倍,这样就避免了帧之间的相位的不连续性的问题。用相应的方式,管理模块82控制窗口模块10,以使当前帧和邻近帧的覆盖对应于N-M。在对相邻帧的处理时,这N-M个覆盖采样应考虑在由模块66实现的附加-重复操作的中。模块82根据谐波分析模块57所提供的值Tp计算保留的采样数M=Tp×E[N/(2Tp)],并相应的控制模块10和66,E[]表示取整数部分。
在刚刚描述的实施方式中,基波频率是用每帧平均的方法来进行估计的。或者基波频率可以在这帧的持续时间内有小的变化。可以通过限定信号将考虑这种变化看作是在本发明的范围内,以使人为地在这帧内得到一个不变的基波频率。
为此,就需要谐波分析模块57提供在这个帧的持续时间内由于出现的声门关闭引起的语音信号相继中断间的时间间隔。可用来检测这样的微小中断的方法在对语音信号的谐波分析领域中是熟知的。对此,可以参阅下列文章M.BASSEVILLE等人,“Sequentialdetection of abrupt changes in spectral characteristics of digitalsignals”,IEEE Trans.on Information Theory,1983,Vol.IT-29,n°5,第708-723页;R.ANDER-OBRECHT,“A new statistical approachfor the automatic segmentation of continuous speech signals”,IEEETrans.on Acous.,Speech and Sig.Proc.,Vol.36,N°1,janvier(一月)1988;和C.MURGIA等人,“An algorithm for the estimation ofglottal closure instants using the sequential detection of abruptchanges in speech signals”,Signal Processing VII,1994,第1685-1688页。
这些方法的原理是在下面两个模型间进行一个统计测试一个是短期的,而另一个是长期的,这两种模型都是自适应的线性预测模型。这个统计测试的值wm是两个分布的经验可靠性的比的累积和,用Kullback发散来修正,对于具有高斯统计的残差分布,值wm由下式给出wm=12[2.em0.em1&sigma;12-(1+&sigma;02&sigma;12)&CenterDot;(em0)2&sigma;02+(1-&sigma;02&sigma;12)]---(17)]]>此处e0m和σ20分别表示长期模型的帧的第m个采样时刻计算得到的残差和方差,而e1m和σ21分别表示短期模型的相同的残差和方差。这两个模型越接近,则统计测试的值wm就接近于0。相反,这两个模型中的一个距另一个远,则值wm为负,这表明信号的一个中断R。
图10示出wm值演化的一个可能的示例,示出了语音信号的中断R,两个相继中断R间的时间间隔tr(r=1、2、…)是用语音信号的多个采样来计算和表示的。每个时间间隔tr和基波频率fp成反比,而基波频率是在第r个间隔内进行的局域估计fp=Fe/tr。
于是,就可以对基波频率的时间变化进行修正(就是说,因为在给定的一个帧内所有的时间间隔tr不都是相等的。),以使在每个分析帧内的基波频率都为常数。通过对每个时间间隔tr的取样频率的修改来进行这种修正,以使得附加取样以后的两个声门中断间的时间间隔为常数。这就用在一个变化的比中进行取样,修改了两个中断间的持续时间,使之稳定在一个较大的时间间隔上。另外,这样就遵循了给定的限制,这个限制是取样频率为估计的基波频率的整数倍。
图11示出用来在这最后一种情况下计算信号条件的装置。谐波分析模块57实施上述的分析方法,并提供相对于用模块10产生的信号帧的时间间隔tr。模块70(在图11中的方框90)对于这时间间隔中的每一个计算附加取样比Kr=pr/tr,此处pr是在表I中的tr取第二列所列出的值时第三列所给出的值。将这些附加取样比Kr提供给频率变化模块72和73,以便使用这个取样比Kr在相应的时间间隔tr内进行插值。
模块57为一帧所提供时间间隔tr中的最大时间间隔Tp是由模块70(在图11中为方框91)选择的,用来得到表I所示的一对数α和p。于是修改了的取样频率为fe=p·Fe/Tp,和前面一样;而给定信号的离散付立叶变换的频谱分辨能力Δf总是由Δf=Fe/(α·Tp)给出。对于频率变化模块71,附加取样比K是由K=p/Tp(方框92)给出的。基波频率的谐波保护模块56用和前面相同的方法进行操作,同时,在条件(9)中使用方框91所提供的频谱分辨能力Δf和根据方框91所提供的整数延时p的值来确定基波频率fp=fe/p。
本发明的这个实施方式还要求采用窗口管理模块82。在这里,在当前帧中保留的去噪声信号的采样数M对应于两个声门关闭间的连续的时间间隔tr的一个整数(见图10)。这样的布局完全考虑到一帧中的时间间隔的可能变化,避免了帧间的相位不连续的问题。
权利要求
1.一种采用相继帧处理的数字语音信号(s)的去噪声方法,其中-对语音信号进行谐波分析,以对具有声音活动性的每一帧估计出语音信号的基波频率(fp);-对于每一帧,计算语音信号的频谱分量(Sn,f,Sn,i);-对于每一帧,计算含杂在语音信号中的噪声的频谱分量的估计;-进行减谱,其中至少有一步是对于一帧从所述帧的语音信号的每个频谱分量(Sn,f)中减去由一些参量所决定的一个量值,在述及的参量中,至少有述及的帧的噪声所对应的频率分量的估计和估计得到的基波频率的值;以及-对减谱得到的结果应用于时间域的一个变换,以构建去了噪声的语音信号(s3)。
2.根据权利要求1的方法,其中,将一个估计得到的基波频率的值(fp)用来在要计算语音信号的频谱分量选择受保护的频率,且在这个方法中对于从语音信号中的给定的频谱分量(Sn,f)减去的量值,如果述及的频谱分量对应于要保护的频率,则所采用的量值就小于述及的频谱分量不对应于要保护的频率时所采用的量值。
3.根据权利要求2的方法,其中,选择要保护的频率,使得对应于受保护的频率的语音信号的频谱分量超过根据对应的噪声的频率分量的估计所确定的噪声音级。
4.根据权利要求2或3的方法,其中,每个受保护的频率是在计算语音信号的频谱分量的频率集合中最接近估计得到的基波频率(fp)的一个整倍数的频率。
5.根据权利要求2或3的方法,其中,每个受保护的频率是在计算语音信号的频谱分量的那些频率的集合中最接近于形式为[η×fp-η×δfp/2,η×fp+η×δfp/2]的间隔的一个频率,其中fp表示估计得到的基波频率,δfp为基波频率的估计的频率分辨能力,而η表示一个整数,且在这个方法中,
6.根据权利要求2至5中任意一项的方法,其中,从语音信号频谱分量(Sn,f)中减去的量值在受保护频率处基本上为零。
7.根据权利要求1至6中任意一项的方法,其中,在对一帧中的语音信号的基波频率(fp)估计之后,通过对估计的基波频率的整倍数的附加取样频率(fe)进行附加取样,来限定这帧的语音信号,并对于这帧,在给定的信号(s′)的基础上计算语音信号的频谱分量(Sn,f),用来从中减去述及的量值。
8.根据权利要求7的方法,其中,将由N个样本的组所给出的信号(s′)变换到频域上,计算语音信号的频谱分量(Sn,f),而且,在这个方法中,附加取样频率(fe)和估计得到的基波频率的比(p)是整数N。
9.根据权利要求7或8的方法,其中,根据在给定的信号的基础上计算的频谱分量的自相关的熵(H),由这个计算估计这一帧的语音信号的噪声音级(χ)。
10.根据权利要求9的方法,其中,述及的计算自相关(H)的频谱分量(S2n,f)都是在减去述及的量值之后,在给定的信号(s′)基础上计算的那些频谱分量。
11.根据权利要求9或10的方法,其中,述及的噪声音级(χ)的测量是根据下面形式的归一化的熵(H)进行的H=&Sigma;k=0N/2-1A(k).log[A(k)]log(N/2)]]>此处,N是用于在给定的信号(s′)的基础上计算各频谱分量(Sn,f)的样本数,而A(k)是归一化的自相关,由下式定义A(k)=&Sigma;f=0N/2-1Sn,f2&CenterDot;Sn,f+k2&Sigma;f=0N/2-1&Sigma;f&prime;=0N/2-1Sn,f2&CenterDot;Sn,f+f&prime;2]]>S2n,f表示在给定的信号基础上计算的顺序(rang)为f的频谱分量。
12.根据前面各权利要求中的任意一项的方法,其中,在每一帧的处理之后,在由这个处理所提供的去噪声的语音信号的所有样本中,保留的样本的数目(M)等于取样频率(Fe)和估计得到的基波频率(fp)的比(Tp)的整数倍。
13. 根据权利要求1至11中任意一项的方法,其中对于每一帧中的语音信号的基波频率的估计中有如下的步骤-估计在该帧的持续的时间内可由于发声者的声门关闭产生的信号的两个相继中断(R)间的时间间隔(tr),估计的基波频率和述及的时间间隔成反比;-在述及的时间间隔内内插语音信号,以使由这种内插导致给定的信号(s′)在相继的两次中断之间的时间间隔不变。
14.根据权利要求13的方法,其中,在对每一帧的处理之后,在由这个处理所提供的去噪声的语音信号的全部样本中保留的样本数(M)对应于估计的时间间隔(tr)的一个整数个数。
15.根据前面的各权利要求中任意一项的方法,在频域中估计每一帧的语音信号所具有的信噪比的值,且在这方法中,决定减去的量值的各个参量包含有这个信噪比的估计值,从这一帧的语音信号的每个频谱分量中减去的量值是对应的信噪比的估计值的降函数。
16.根据权利要求15的方法,其中,对于信噪比最大的那些值,述及的函数下降至零。
17.根据前面的各权利要求中任意一项的方法,其中,用从语音信号的频谱分量(Sn,f)中减去述及的量值而得到的去噪声信号的频谱分量(S2n,f)都是通过应用一个听觉模型去计算一条掩蔽曲线(Mn,q)的。
18.根据权利要求11和17的方法,其中,掩蔽曲线(Mn,q)的计算对通过归一化的熵(H)测量的噪声音级(χ)起作用。
19.根据权利要求17或18的方法,其中,决定从一个帧中的语音信号的一个频谱分量(Sn,f)中减去的量值的所有参量中包含有噪声的相应的频谱分量的最大估计
和计算得到的掩蔽曲线(Mn,q)之间的偏差。
20.根据权利要求19的方法,其中,将一帧的噪声的频谱分量的最大估计
和计算得到的掩蔽曲线(Mn,q)相比较,且在这种方法中,为得到向时域变换的频谱分量(S3n,f),从语音信号的频谱分量(Sn,f)中减去的量值是限制在对应的噪声的频谱分量的最大估计超出掩蔽曲线的那一部分。
21.根据前面的各条权利要求中的任意一项的方法,其中,减谱包括-第一步减谱在这一步中,分别从所述的帧的语音信号的每个频谱分量(Sn,f)中减去由一些参量所决定的第一个量值,此述的一些参量中有述及的帧的对应的噪声的频谱分量的最大估计
以及估计得到的基波频率(fp),这是为了得到第一去噪声信号的频谱分量(S2n,f)。-应用听觉模型,根据第一去噪声信号的各频谱分量(S2n,f)计算掩蔽曲线(Mn,q)。-将对于述及的帧的噪声的频谱分量的最大值计
和计算得到的掩蔽曲线(Mn,q)相比较;以及-第二步减谱,在这一步中,分别从这一帧的语音信号的每个频谱分量(Sn,f)中减去第二个量值,这第二个量值等于下述两个量值中的最小者述及的对应的第一个量值和对应的噪声的频谱分量的最大估计超出掩蔽曲线的那一部分,目的是要得到向时域变换的第二去噪声的信号的频谱分量(S3n,f)。
22.根据前面的各权利要求中任意一项的方法,其中,用在减谱中的噪声的各个频谱分量中的每一个估计都是最大估计,包含在语音信号中的噪声的一个频谱分量的每个最大估计
都是将述及的噪声的频谱分量的一个长期估计
和一个噪声的频谱分量在其长期估计周围的变化的测量值(ΔBmaxn,i)相结合得到的。
23.根据权利要求22的方法,其中,一个帧n的对应于包含在
建议给予做无产出工作的线程以低优先级以避免损失性能,即使在闲循环中的每条指令引起线程切换也如此。然而,仍然重要的是,如果一个设在低先级的线程请求一外部中断,则应允许硬件改变线程优先级。在这种情况下,该线程被提高到中等优先级以允许更快地响应中断。这允许一个等待外部事件的线程把它本身设为低优先级,它将停留在那里直至该事件被通知出去。</p><p>尽管已联系当前认为最实际的和最佳的实施例描述了本发明,但应该理解,本发明不限于所说明的实施例,而是相反,本发明要复盖在所附各权利要求的实质和范围内包括的各种修改和等价安排。</p>的频谱分量。
全文摘要
为了用相继帧处理去掉数字语音信号的噪声:计算每一帧的信号的频谱分量(S
文档编号G10L21/0232GK1276896SQ98810358
公开日2000年12月13日 申请日期1998年9月16日 优先权日1997年9月18日
发明者菲利普·洛克伍德, 斯特凡·鲁比阿兹 申请人:马特拉诺泰尔通讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1