用自适应判决门限来完成通话重叠检测的方法和装置的制作方法

文档序号:7638245阅读:361来源:国知局
专利名称:用自适应判决门限来完成通话重叠检测的方法和装置的制作方法
技术领域
本发明涉及用于完成通话重叠检测的方法和装置,特别涉及用自适应判决门限来完成通话重叠检测的方法和装置。
通信过程通常包括至少二个用户方和相关的硬件。就一组硬件而言,来自与硬件共地点的用户的语音被称为近端语音,而来自另一用户的语音称为远端语音。常规的回波消除器(其可以供两组硬件使用)使用自适应滤波器,以估计回波路径和合成估计的回波信号,该估计回波信号是从信号Sin减得的信号,目的是降低近端回波。

图1表示传统的回波消除器10,其包括完成规格化最小均方(NLMS)算法的自适应FIR滤波器12,完成经过语音检测和比较的通话重叠检测器14,以及混合器16。为了从输入(回波消除器10的Rout通常与回波消除器10Rin信号相同)和输出(回波消除器10的Sin)信号中正确地估计出实际回波路径,该回波路径的输出一定要完全从输入信号中产生。如果近端和远端用户在同一时间只有一个说话,则自适应FIR滤波器12很容易改进为估计出回波路径。当两用户同时说话时,该种情况称为“通话重叠”。在通话重叠期间,输出信号不仅包含输入信号的回波,而且还包含近端语音信号。
当出现近端语音时,应当禁止滤波器12的适配性,否则将获得回波路径的错误估计,其导致弱回波消除。通话重叠检测器14的作用是当回波被近端语音讹误时进行检测,然后禁止滤波器12的适配性。由于在通话重叠情况时的发散问题,通话重叠检测器104对回波消除器10的总体性能有大的影响。
已经做了许多努力以完成通话重叠检测,它们利用来源于近端和远端信号的谱特征或功率电平信息。例如,在D.L.Duttweiler的“A Twelve-ChannelDigital Echo Canceller”(IEEE Trans.Commun.,Vol.COM-26,PP.647-635,1978)中说明的Geigel算法(其遵循功率比较概念)做了一个基本假设,即回波具有比远端语音信号更低的功率电平。因此,如果近端信号功率比远端语音低一个确定的门限(通常为6dB),则将近端信号考虑为回波,回波消除器设法消除它。否则,说明通话重叠并且禁止适配。Geigel算法是非常有效的(计算简单且成本低)和非常有用的(适用于很多应用)。
但是,在下列情况下,Geigel算法的基本假设是不正确的(1)近端说话者以较低音量说话或者过度损耗被引入近端模拟电路;和(2)大音量回波可发生在移动或免提电话或者在一些具有严重泄漏的混合器中。
在这些情况下,回波消除器可以将较低的近端语音弄错为回波并设法消除它,或者将强的回波弄错为近端语音并设法保持它。
另一类通话重叠算法是交互相关或者基于相干的算法(这里表示为“CORR算法”),正如在例如J.Benesty等人的“A New Class of Double-TalkDetectors Based on Cross-Correlation”(IEEE Trans.SignalProcessing,Vol.46,No.6,June 1998)和T.Gansler等人的“A Double-Talk Detector Based on Goherence”(IEEETrans.Commun.,Vol.44,pp.1421-1427,November1996)中所说明的,其基于假设来自不同用户的语音信号在呼叫中是独立的,然后使用在Rout和Sin信号之间的互相关系数向量用于通话重叠检测。由于回波通常能够近似为它们原始信号的衰减和延迟版本,因此在回波和它的原始信号之间的强相关应当存在。这使互相关系数向量成为通话重叠检测的有效测量。与Geigel算法比较,为了可靠估计互相关函数,CORR算法引入了至少一个语音帧的额外判决延迟(通常为几百个样值)。作为滞后判决的结果,为了避免严重地消除插入近端语音的原始部分,适配性也一定要延迟。CORR算法还是更为复杂的计算,尤其是当估计谱域中的相关函数时更是如此。
在K.Ochiai等人的“Echo Canceller with Two Echo Path Models,”(IEEE Trans.Commun.,Vol.COM-25,pp.589-595,June 1977)(其使用了具有二个回波路径模型的回波消除器)中或者在C.Carlemalm等人的“OnDetection of Double-Tald and Change in the Echo Path Using a MarkovModulated Channel Model,”(Proc.Intl.Conf.ASSP,Munich,Germany,April20-24,1997,Vol.V,pp.3869-3872)(其使用Markov调制信道模型)中能够发现解决通话重叠问题的其它努力。
上述检测技术的任何一个具有至少一个共同特征;即由于语音电平,背景噪声和回波路径衰减的时间变化特性,适当精度的门限是临界的值这就提出固定判决门限不是合适的,而应当由自适应判决门限来替换,其能够在通话期间连续地跟踪变化。而且,为了防止回波消除器中合成滤波器的发散,参数估计和通话重叠检测算法一定要快。
本发明解决了利用传统通话重叠检测器和回波消除器所引起的问题,提供有通话重叠检测器和实现通话重叠检测的方法,以及回波消除器和实现回波消除的方法,其利用了自适应门限。自适应门限能够连续地在电话通话期间跟踪变化,并且允许通话重叠检测器、回波消除器、及本申请方法调节到语音电平、背景噪声和/或回波路径衰减的时间变化特性。
在另一优选实例中,本发明允许使用二个或多个互补通话重叠检测算法。例如,一个通话重叠检测算法可以是检测算法,例如是简单低计算成本和非常有效的Geigel算法,而另一个算法可以是互相关或基于相干算法,其可为更精确但却有更多计算上的复杂性。
在本发明的另一实例中,通话重叠、回波消除器及本申请的方法包括了基于帧的、基于样值、或两者组合的处理元件。
图1表示传统的回波消除器;图2表示在本发明一个示例性实例中的回波消除器;图3(a)和3(b)表示在本发明一个实例中示例性混合器的幅值响应和相位响应;图4表示在本发明另一示例性实例中的回波消除器;图5(a)-5(f)和6(a)-6(f)表示图1和2示例性回波消除器实例的仿真结果;图7是概述由本发明回波消除器和通话重叠检测器完成之处理的框图。
图2表示在本发明一个实例中包括通话重叠检测器的回波消除器100的框图。回波消除器100包括用于实现NLMS算法的元件120,通话重叠检测器140,混合器160,加和器170和延迟180。通话重叠检测器140还包括二个取样计数器R计数102和S计数104,帧计数器F计数106,二个数据输入缓存器Rout-in缓存器108和Sin缓存器110(这二个都是先进先出),以及二个通话重叠计算缓存器Xn-缓存器112和Yn-缓存器114,其用于存储和分段输入数据流为重叠帧。R计数102和S计数104分别用于计数Rout和Sin数据取样。当接收了S样值时,R计数102(或者S计数104)发出使能信号X使能116(或者Y使能118),X使能116(或Y使能)允许通话重叠检测器完成修改使能,即使能Xn缓存器112(或Yn缓存器114),用存储在Rout缓存器108(或者Sin缓存器110)中S最新到来的样值左移和右填充;清零取样计数器,即清零取样计数器R计数102(S计数104)并且在接收S样植之后重新启动。X使能116(或者Y使能108)还用作时钟信号,用于增加帧计数器。
以逐帧为基础,在Xn缓存器112或Yn缓存器114中的数据修改程序可表达为下述步骤Xn-r=Xn-r+1,…,Xn-2=Xn-1,Xn-1=Xn,Xn=Xn+1;Yn-r=Yn-r+1,…,Yn-2=Yn-1,Yn-1=Yn,Yn=Yn+1;这里n=n+1,(在数据修改完成之后帧计数器指向下一帧)。
在修改程序成之后,语音活动检测器122,124和通话重叠检测器算法由DT使能信号120初始化,并且通话重叠检测器140的结果对于相同帧中最新S样值用于控制(如果通话重叠则禁止)元件120中的NLMS适配。由于重叠在相邻帧中,对于每一帧,只有最后的S样值用于NLMS适配和错误信号计算。
一旦接收了每个S样值,就修改Xn缓存器112和Yn缓存器114,并且如果Xn(i)=Rout(n.S+i-M)是接收-输出信号的第n帧和Yn(i)=Sin(n.S+i-M)是从近端(回波路径侧)返回的发送-输入信号序列,这里S是连续帧之间的移动步长,M是帧长度且通常是S的倍数,i=1,2,…,M,则在基于逐帧的每个S样值就初始化通话重叠检测计算。互相关向量Rxy(n,k),k=0,1,2,…M-1,信号能量Ex(n),Ey(n),以及第n帧φxy(n)的最大值|Rxy(k)|可用下式计算(为了简单)省略了Rxy中的帧指数n)。注意Xn(i-S)=Xn-1(i),Yn(i-S)=Yn-1(i),Rxy(k)=Σi=1M-kxn(i)·yn(i+k)---(1)]]>Ex(n)=Rx(0)=Σi=1Mxn2(i)---(2)]]>Ey(n)=Ry(0)=Σi=1Myn2(i)---(3)]]>Φxy(n)=0≤k≤M-1max|Rxy(k)|---(4)]]>第n帧归一化互相关系数Cxy(n)的平方还可定义和计算为Cxy(n)=0≤k≤M-1Rxy2(k)Ex(n)·Ey(n)max=Φxy2(n)Ex(n)·Ey(n)≤1---(5)]]>由于Σi=1M-kxn2(i)≤Σi=1Mxn2(i)=Ex(n),Σi=1M-kyn2(i+k)=Σi=k+1Myn2(i)≤Σi=1Myn2(i)=Ex(n),]]>Rxy2(k)=[Σi=1M-kxn(i)·yn(i+k)]2≤[Σi=1M-kxn2(i)][Σi=1M-kyn2(i+k)]≤Ex(n)·Ey(n);]]>因此Cxy(n)≤1,其是方程(5)的右边。
本发明是基于下述实际测量(1)来自二个用户的信号在整个通话中是相互独立的,并且与背景噪声无关;(2)回波路径或混合器106的传递函数H(w)在语音音带(大约300Hz~3400Hz)中通常具有接近平坦的振幅响应和线性相位响应,如图3(a)和(b)中所示,对于所有语音音带信号H(W)≈h0·ejwn0---(6)]]>在这些条件下,回波能够由其原始信号的衰减和延迟版本近似表示。这也意味着,回波与原始信号具有强相关并且它们的互相关函数将得到在n0时间延迟时的峰值。
(3)传递函数H(w)是时间变化的,其中衰减h0和延迟n0可以随时间变化,这是因为回波消除是用在各种情况下。例如,回波路径可以(ⅰ)从通话到通话;(ⅱ)在多扩充环境下;(ⅲ)通话期间的桥接中发生变化。但是,情况(ⅱ)和(ⅲ)要比情况(ⅰ)更少发生。因此在大多数情况下假设h0和n0在整个通话期间更缓慢变化是合理的。因此,从其输入和输出信号中,在假设时间不变期间的短时间间隔(一般为20~60ms)上能够确定一组可靠的H(w)的参数。
(4)由于弱信号更有可能被环境噪声破坏,为了更加可靠的测量,在静止时间或者在通话重叠时间间隔时不应当估计传递函数H(w)。
从上述假设中,在基于逐帧其帧长为M(一般为256~512)和移位步长S(一般为M/3,由M-S=2M/3样值重叠的相邻帧)时,对应的通话重叠算法能够用下述步骤表述Ⅰ.对于第n帧,首先从对应的Xn(ⅰ)和yn(i)信号中计算互相关向量Rxy(k),峰互相关值φxy(n),信号能量Ex(n),Ey(n)和归一化互相关系数Cxy(n)。
然后,Cxy(n)可进一步用先前值平滑化,利用(近似为平方斜坡加权方案)Cxy(n)=[Σr=13r2*Cxy(n-3+r)]/Σr=13r2---(7)]]>=114[Cxy(n-2)+4*Cxy(n-1)+9*Cxy(n)]]]>≈0.10*Cxy(n-2)+0.30*Cxy(n-1)+0.60*Cxy(n)Ⅱ.基于帧能量序列Ex(n),Ey(n),用于把xn和yn信号从环境噪声中区分开的语音活动检测器(VAD)122,124: Ⅲ.使用自适应回波路径跟踪算法(下面将详细说明)从Ex(n),Ey(n),φxy(n)和Cxy(n)估计Geigel门限Th0(n)。在回波路径跟踪期间,如果Geigel算法完成了,则组MarkGeigel=1,否则MarkGeigel=0。Ⅳ.如果MarkGeigel=1或者VAD(xn)+VAD(yn)=0,则让g=0并到达步骤(Ⅴ)。否则,基于上述Th0(n),VAD(xn)和VAD(yn)按照下述用Geigel算法(基于帧的Geigel算法)检测通话重叠如果在当前帧yn中至少P个(3≤P≤M/16,一般P=M/32)样值满足下述条件之一(注意它们相互不相容),(i)VAD(yn)=1,and|yn(k)|≥Th0(n)*k-M≤i≤kmax|xn(i)|,K=1,2,...M.---(9a)]]>(ii)VAD(yn)=0,butVAD(xn)=1and|yn(k)|≥2*Th0(n)*k-M≤i≤kmax|xn(i)|.---(9b)]]>则申明通话重叠和设置g=1。否则申明无通话重叠且让g=0。Ⅴ.使当前通话重叠结果DTD(yn)=g。Ⅵ.修改基于VAD(yn)的通话重叠检测结果,平滑的Cxy(n)和当前门限Co(n): Ⅶ.修改判决门限Co(n)为下述如果Cxy(n)≥max[Cmid,C0(n)-ε0]则C0(n+1)=min[Cmax,0.25*C0(n)+0.75*Cxy(n)],(快进)(11)否则C0(n+1)=max[Cmid,(1-1/32)*C0(n),(慢释放)](12)这里0<Cmin≤Cmid≤Cmax<1,0<ε0<1≤ε1和Cmid~Cmax是适配范围。典型地,Cmin=0.10,Cmid=0.40,Cmax=0.90,ε0=0.10,ε1=0.35,C0(1)=Cmid。
注意,公知为CORR算法之“灰色区”的下述情况将保持不变的Geigel算法的结果DTD(yn)=g,max[Cmin,C0(n)-ε1]<Cxy(n)<max[Cmid,C0(n)-ε0] (13)Ⅷ.释放延迟(handover)附加利用Nd(初始Nd=0,Nhang是附加释放延迟帧,Nhang=1~2)修改通话重叠计数器, 如果DTD(yn)=0和Nd>0,则复位DTD(yn)=1。Ⅸ.上述基于帧的通话重叠算法具有算法延迟Ta,其与S样值的间隔相等(见图2)。如果延迟是允许的(例如基于帧的语音编解码器),则将Sin路径中的总延迟设置到(Ta+Tp),并且返回DTD(yn)作为yn的最后S样值的最终通话重叠结果。
否则,设置Tp作为Sin路径中的总延迟,一旦接收了新样值yn+1就进行到步骤(X),并且为了算法延迟补偿进一步运行基于样值的Geigel算法。Tp是通话重叠检测器140的处理延迟。Ⅹ.如果接收了yn+1的新样值就启动下列基于样值的Geigel算法假设第n+1帧的第t个样值St=yn+1(M-S+t)=yn(M+t)是当前最新的Sin数据,其已经存储在Sin缓存器中。
St的Geigel门限用当前可获得的基于帧的结果计算为 如果|st|≥Tht(r)*t-M≤i≤tmax|xn+1(M-S+t)|]]>并且|St|≥2.50*σy(n),则GeigclCount=min(GeigelCount+Ps;S*Nhang+.1); (16)否则,GeigelCount=max(GeigelCount-1,0)。这里,2.50*σy(n)是由语音活动检测器122,124估计的噪声电平,Nhang是附加释放延迟帧,以及Ps=M/32是释放延迟增加步骤。
如果GeigelCount>0,或者在前基于帧的通话重叠结果DTD(yn)>0,则设置DTD(St)=1,通告当前输入样值St的通话重叠(在没有任何算法延迟的情况下还应当禁止自适应滤波器)并且然后返回。
否则,设置DTD(St)=0和返回(等待下一个输入样值St+1。)注意,DTD(yn)用于表示第n帧的通话重叠结果,而DTD(St)用于表示第(n+1)帧中只是第t个样值的通话重叠结果。为了简单和避免混淆,基于帧的结果DTD(yn)也表示成DTD(n),基于样值的结果DTD(St)表示成DTD(t)。
由于在静止或者有较大噪声的时间内,通话重叠检测和回波路径估计是不可靠的,下面的简化语音活动检测算法由语音活动检测器122,124采用,用以将信号从噪声中分开。除了最终判决是根据样值幅值而不是帧能量之外,VAD算法类似于那些在标准化编码器中使用的(见ITU-T,G.723.1附录A,或者ITU-TG.729附录B)。
对于第n帧xn,噪声电平Ax(n)首先是基于其先前Ax(n-1)和当前帧能量Ex(n)估计的。然后,计算自适应门限Thx用于VAD判决。即,如果Ex(n)≥Ax(n)-1,则Ax(n)随一些漏泄和一些上界Amax增加,即Ax(n)=min[(1+132)*Ax(n-1),Axmax],---(17)]]>而如果Ex(n)≤Ax(n-1)则Ax(n)由下界Axmin修改,即Ax(n)=max
(18)如果当前帧xn(k)中至少P个(3≤P≤M/16,一般P=M/32)样值满足|xn(k)|>Thx,k=1,2,…,M,则通知语音和设置CADxn=1。这里Thx由下式计算Thx=2.50*σx(n),σx(n)=Ax(n)M.---(19)]]>否则,VAD(xn)=0,并且将当前帧xn分类为背景噪声。类似地,VAD算法也可以用作于yn(i)序列,即◆如果Ey(n)≥Ay(n-1),则Ay(n)=min[(1+132)*Ay(n-1),Aymax],---(20)]]>◆如果Ey(n)<Ay(n-1),则Ay(n)=max
. (21)◆使Thy=2.50*σy(n),σ(n)y=Ay(n)M.---(22)]]>如果在当前帧yn(k)中至少P个样值满足|yn(k)|>Thy,k=1,2,…,M,则通告语音并且设置VAD(yn)=1,否则。VAD(yn)=0。
这里,非常类似于方程(14),VAD(xn)和VAD(yn)两者释放延迟1~2个附加帧。对于范围-1.0~+1.0内标准μ定律解码信号,VAD122,124的初始值能被设置成Xmin=Aymin=M*10-5,Axmax=Aymax=M*10- 2,Ax(1)=0.10,Ay(1)=0.10,P=M/32,这里Ex(n)和Ey(n)是由方程(2)和(3)计算的。边界值能被设置成VAD122,124的合适范围,例如为背景噪声的最小和最大帧能量。
为了简单,上面都集中在如何跟踪类似于方程(6)之回波路径模型(EPM)的衰减(幅值响应|h0|)及如何考虑噪声效应用于更精确地估计Geigel算法的判决门限(称为Geigel门限)。
通过上述假设,如果不出现近端语音,则y(k)≈h0·*x(k-n0)+N(k), (23)这里N(k)是具有自相关函数RN(n)之送入信号中的背景噪声。通过假设RxN(k)=0,下面的互相关和自相关序列可计算为Rxy(k)≈h0·Rx(k-n0) (24)Ry(k)≈|h0|2·Rx(k)+RN(k),(25)最大化方程(24)的两边,并使方程(25)的k=0,则从方程(6)可得|H(w)|=|h0|≈|Rxy(k)|kmaxRx(0),---(26)]]>Ry(O)≈|h0|2·Rx(O)+RN(O)=Re(O)+RN(O) (27)用方程(26)代替方程(27)中的|h0|,得[max|Rxy(k)|k]2Ry(0)·Rx(0)=1-RN(0)Ry(0),---(28)]]>即Cxy(n)=maxkRxy2(k)Ry(0)Rx(0)=1-RN(0)Ry(0)=11+(1/ENT).---(29)]]>这里Re(O)=|h0|2·Rx(O)是回波能量,ENR=Re(0)RN(0)]]>是回波对噪声能量比,其是噪声能量之量的测量。
方程(29)的左边实际上是方程(5)中定义的平方归一化互相关系数Cxy(n)。从方程(27)中还可看出,即使|H(w)|=|h0|是常数,Cxy(n)是x(k)和N(k)两者的函数。通常,回波路径不是理想的常数但是(与信号相比)是缓慢的随时间的变量。
为了跟踪背景噪声量中的变化和信号电平及回波路径衰减中的变化,自适应判决门限应当用于在步骤Ⅳ和Ⅵ的上述通话重叠算法中。而且,Geigel算法是以x(k)和y(k)之间的相对功率电平为基础的,如果y(k)已经由背景噪声破坏,则仅基于衰减|h0|是不足以进行可靠判决的,噪声效应还应当反映在Geigel门限中。
考虑通话重叠算法上的噪声效应是很有用的。从方程(29)的右边可见,如果N(k)仅包含了非常小的背景噪声和没有通话重叠,则N(k)≈0,RN(O)≈0, (30)其导致Cxy(n)≈1, (31)和|Txy|=Ry(0)Rx(0)≈|h0|.---(32)]]>但是如果N(k)≠0和仅假设RxN(k)=0,则从上面定义可见|Txy|=Ry(0)Rx(0)=|h0|2+1ENR·|h0|2=(1+1ENR)·|h0|≥|h0|,---(33)]]>如果不得不考虑噪声效应,则方程(33)中的ENR能够看成用于补偿方程(26)或方程(32)中的|h0|的噪声补偿系数。正如方程(33)中所示,只有当ENR→∞时|Txy|=|h0|,其意味着噪声补偿是不必要的。这种情况示于方程(32)中。但是,这种条件是不大可能的,因为A-定律/μ-定律PCM压缩中的信噪比(SNR)是远低于35dB,其意味着来自6dB混合器的回波的ENR上边界应当是ENR≤29dB。实际ENR值通常要远小于这个理论极限值。从方程(27)可见,噪声能量已被包括在Ry(O)中,其用于|Txy|估计。为了更可靠的结果,应当用|Txy|而不是|h0|来估计Geigel门限,并且仅当Cxy(n)值是大时才应当进行计算,其表明清除没有通话重叠情况。为了灵敏性的缘故,仅当ENR值也为大时才计算Geigel门限,其表明N(k)仅包含适当量的噪声信号(通常限制ENR≥0.5~1.0)。
从上面可见,用下面的回波路径跟踪和噪声补偿算法能够估计Geigel门限1)使Φxy(n)=max0≤k≤M-1|Rxy(n,k)|]]>在第n帧中为最大值|Rxy(k)|,Cxy(nmax)=maxr-r+1≤k≤nCxy(k)andCxy(nmin)=minn-r+1≤k≤nCxy(k)]]>为在最近的r帧中的最大和最小Cxy值,这里nmax和nmin是对应的帧指标(注意n-r+1≤nmax≤n,n-r+1≤nmin≤n)。回波路径幅值响应的估计为Txy=Ey(nmax)Ex(nmax),---(34)]]>2)如果Cxy(nmin)≥max[β0,Cxy(nmax)=ε0]≥Cmid,hmid≤Txy≤hmax和VAD(xn)=1,则具有所计算Txy之回波路径的跟踪衰减h0如下h0(n)=(1-μ0)·h0(n-1)+μ0·Txy, (35)并且设置MarkGeigel=1,其意味着如果β0≥Cmid和Cxy(nmax)非常接近于C0(n),则具有基于帧的Geigel算法的通话重叠将是不必要的,换句话说已经完成了基于帧的Geigel算法。条件Hmin≤Txy≤hmax用于去掉h0(n)中的外形或不规则的修改。否则,h0保持不变,即h0(n)=h0(n-1),(36)并且MarkGeigel=0,其意味着在当前帧中Geigel算法没有结束。3)由于回波路径跟踪结果h0(n)仅在平均上反映了x(k)和y(k)之间的相对功率电平,因此为了更可靠的结果,能够使用下述修改的Th0(n)作为最终Geigel门限Th0(n)=min[hmax,max(hmin,(1+y)*h0(n))](37)为了去掉不规则噪声峰,这里0≤y≤0.25是小的正数,进一步用于噪声补偿。0≤hmin≤hmax≤1是下/上边界值,Cmid≤β0≤1.0,0≤μ0≤1.0一般地说,hmin=0.15,hmax=0.90,β0=Cmid,ε0=0.10,μ0=0.75。初始值可以是h0(O)=0.50。(A)Geigel算法的快速实现Geigel算法用于基于帧的和基于取样的通话重叠检测。由于该算法搜索Xn(i)的滑动窗中的峰值(见方程9a和9b),最好在Xn(i)的递减顺序中运行分类过程并且在每个取样迭代中保持更新。在I.Pitas的“Fast algorithmsfor runniry ordering and max/min calculation,”IFEE Trans.CircuitsSyst.Vol.36,pp.795~804,June 1989)中提出了一种快速算法,用于在任意M个元素(M通常是2的幂)的滑动窗中分类和最大化/最小化计算,其在每次取样时间最多要求2log2(2M)个比较操作。这也是基于取样Geigel算法的复杂性。但是,所需要的全部中间存储器大约为(M+log2M)个单元。结果,对于yn(i)的M次取样,基于帧的Geigel算法的复杂性最多在O(2Mlog22M)操作和O(M)存储器量级。
对于任意M个元素的快速最大化/最小化计算的另一种方法是I.Pitas的“Fast algorithms for running ordering and max/min calculation,”IEEE Trans.Circuits Syst.Vol.36,pp.795~804,June 1989)中的MAXLINE算法,其对于均匀分布输入平均上要求每次取样时间仅有3个比较。这也是基于取样的Geigel算法的复杂性。由于在该算法中不需要中间存储器,并且在每次取样时间都要求(M+1)个比较的最坏情况对于足够大窗长度M来说是极少的。因此,MAXLINE是在速度和成本之间非常好的折衷。以MAXLINE为基础的基于帧的Geigel算法的复杂性在平均上为O(3M)和在最坏(但极少)情况下为O(M2)。(B)基于帧算法中延迟和复杂度考虑由于本发明所提出的通话重叠算法可以是以帧移位步长为S的基于逐帧的,所以至少S个样值的算法延迟Ta要求用于初始化通话重叠计算(假设所有接收的数据在开始时为0)。为更可靠的结果,最终判决通常是以几帧的结果为基础的。如果测试最近的r帧,由总延迟应该是Ta=r*S样值(或者为r步),这里r通常为1-3。应当注意,计算/处理延迟Tp通常小于S个样值,因为在当前帧上的处理是在接收下一帧输入的同时并行完成的。算法延迟能够以较小的S或r来减小,但是在降低步长S时可以增加计算负载,因此,如果降低r则也可以破坏可靠性。
除了算法延迟,还一定要考虑回波路径的平面延迟(或者纯延迟Tr)。也就是说。为了更可靠的参数估计,帧长度M应当能够覆盖需要被调节的最长回波路径延迟。但是,如果M太大,则其将不会适当地反映回波路径或语音信号的变化特性。如果M增加,计算负载和存储成本也增加。对于8kHz取样速率系统,M一般为256~512,其对应于32~64mS的延迟,S通常选择为M/3(大约为20ms的算法延迟)。
基于帧算法的复杂度也一定要考虑。对于S取样的每一步骤,一定要计算互相关函数Rxy(n,k),其要求经过具有FFT之快速相关的O(2Mlog22M)次操作,以及要求用于缓存I/O数据的大约4M存储单元。Cxy(n)的计算一定要搜索Rxy(n,k)的峰值并计算两能量Ex(n)和Ey(n),其将要求大约O(3M)次操作及要求用于记录在最近r帧中这些结果的4*r存储单元。图2中,在输入数据被送到自适应滤波器NLMS120之前,引入延迟180以补偿算法和处理延迟。延迟180实际上是由将数据缓存在Rout-缓存器108和Sin-缓存器110中完成的(见图2中对NLMS120的虚线124,126),其可以与Xn缓存器112和Yn缓存器114享有相同的存储空间。因此,只要求2*S额外的单元来缓存下一次帧的输入。
除入基于帧的Geigel算法之外,该算法最多要求O(2Mlog22M)次操作和用于分类或I/O缓存的(M+log2M+r)存储单元的量级,总计算和存储复杂度分别为每帧O(4Mlog22M+3M)≈0(4Mlog24M)次操作及O(5(M+r)+log2M+2S)≈0(7M)存储单元的量级。如果xn和yn是静止帧,则不需要进行大多数的这种计算。(C)用于实现基于取样的Geigel算法的辅助通话重叠检测图2中,在输入数据被送到自适应滤波器NLMS120之前,引入额外延迟(或缓存)180以补偿算法延迟Ta和DTD(n)处理延迟Tp。算法延迟Ta是由于基于帧之算法产生的,其通常大于Tp。为了去掉Sin路径中的Ta,对于yn+1中最近的S输入,可以使用基于取样Geigel算法用于通话重叠检测。如果Tp大于一个取样时间间隔(对8kHz取样速率为0.125ms),则基于取样算法能够按中断服务程序(ISP)实现,其是由yn+1中每个新输入数据触发的(见上述步骤(Ⅸ)~(Ⅹ)。
由于在DTD(n)处理时间间隔Tp期间基于帧和基于取样算法可以在相同时间上运行,另一个较快的方案是使用辅助通话重叠检测器140′实现并行的基于取样Geigel算法(如图4所示)。在这种情况下,基于帧通话重叠检测器140主要用作为Geigel门限估算器,其修改Th0(n),然后以逐帧为基础将它们传递到辅助通话重叠检测器140′,并且来自通话重叠检测器140的结果用于控制自适应滤波器120。来自通话重叠检测器140的结果还能够用作为最终判决的辅助参数,目的是改善可靠性(例如使用状态机)。尽管使用了第n帧Th0(n)的结果,但判决门限还能用于第(n+1)帧中的取样,这是因为在大多数情况下下述假设是合理的,即回波路径变化在这种短时间间隔内是不显著的以及Geigel门限在二个相邻帧中保持为近似相同。
图3所示的6dB混合器用作为用于下述性能仿真的仿真回波路径H(w)。音带中H(w)的峰和平均衰减值(f=300Hz~3400Hz或者W=2πf=600-6800π,这里W是弧度/秒为单位的角频率)是h0max=max600π≤w≤6800π|H(w)|=0.498,---(38a)]]>h0mean=mean600π≤w≤6800π|H(w)|=0.444,---(38b)]]>其表示了在音带上很平坦的幅值响应。结果,Hr=h0max≈0.50作为用于回波路径跟踪的参考基。回波路径变化由将H(w)与时间变化比例因子q(t)相乘来仿真,并且新参考基将还被变化到q(t)*H(w),即H(w,t)=q(t)*H(w), (39a)Hr(t)=q(t)*Hr (39b)为了仿真,所有参数被设置为建议的典型值,即帧长度M=512,移动步长S=M/3≈170,hmin=0.15,hmax=0.90,η=0.20,Cmin=0.10,Cmid=0.40,Cmax=0.90,ε0=0.10,ε1=0.35,β0=Cmid,μ0=0.75。VAD122,124和Geigel算法的取样计数器为P=Ps=M/32。通话重叠检测器140和VAD122,124释放延迟二个附加帧(Nhang=2),并且使用二帧溯回(r=3)。对于标准μ定律PCM解码信号x(t)和y(t),幅值总是小于1.0,因此VAD122,124的边界值选择为Axmin=Aymin=M*10-5,Amax=Aymax=M*10-2。
图5-6是当二用户在具有回波路径变化的环境中讲话时的仿真结果。图5是无通话重叠情况,而图6是通话重叠情况。Hr(t)是实际回波通路的基准,其在t1=0.40(q(t)从1.0变到1.60,或Hr(t)从0.50变到0.80,t2=-0.60(Hr(t)从0.80变到0.30)和t4=2.30(Hr(t)从0.30变到0.70)处突然变化。反映回波路径跟踪结果的自适应Geigel门限Th0(n)是与基准Hr(t)一起画出的。
如果x1(t)和x2(t)是从8位标准μ定律PCM解码来的二用户的原始语音,则N1(t)和N2(t)是对应的附加背景噪声,其由下式模拟N1(t)=NR1(t)*Randn(0,1),(40a)N2(t)=NR2(t)*Randn(0,1),(40b)Randn(0,1)是具有0平均值和单位偏差的Gaussian噪声。下面的NR1(t)和NR2(t)用于控制噪声电平NR1(t)=0.0012, (41a)NR2(t)=0.0015, (41b)近端x(t)和远端y(t)信号的模拟为(h(t)是H(w,t)的脉冲响应,a是卷积运算符,tfd=12mS是附加平面延迟),x(t)=x1(t)+N1(t)(42a)
ys(t)=h(t)x(t-tfd)+N2(t),(无通话重叠,见图5(c)) (42b)yd(t)=h(t)x(t-tfd)+N2(t)+x3(t).(有通话重叠,见图6(c)) (42c)注意,当没有通话重叠时,Ys(t)仅包含回波和噪声(见图5(c))。但是在图6(e)-(f)中,近端语音x2(t)出现在从t3=0.75到t5=3.25的时间间隔(秒),因此Yd(t)包含回波和噪声加上近端语音(见图6(c))。在回波/噪声和语音信号之间的相对电平能够从图中能够看出。
为比较目的,新的基于帧通话重叠检测算法的通话重叠检测结果(具有自适应门限)与具有为0.50固定门限的CORR算法在一起给出,同时新的基于取样Geigel算法的结果(也具有自适应门限)与传统Geigel算法(具有固定门限0.50)的在一起画出,并且初始NES加上噪声x2(t)+N2(t)在图中作为基准画出。见二图中的(e)-(f),在这里通话重叠检测>0意味着通话重叠被检测出,通话重叠检测=0意味着没有通话重叠被检测出。
VAD结果,Cxy(n)和其门限值CO(n)也画在图中。
从图5(a)-5(f)和6(a)-6(f)中能够看出◆从图5(a)和6(a)中看出,在仅出现远端语音的时间间隔期间,Geigel门限Th0(n)能够在回波路径和噪声电平上可连续地跟踪变化。
◆回波路径的跟踪变化是非常快速的和非干扰的。如果回波路径变化仅在远端语音出现时发生,则当r=1~3时跟踪延迟通常小于3~4步,其当M=512和S=M/3时大约为60~80mS。实际上,在大多数性能仿真中跟踪延迟仅为1~2步或者40mS。静止或者通话重叠时间间隔通常引起很长的跟踪延迟,这是因为仅当发生良好情况即无通话重叠,无静止,和当Cxy(n)为高时才修改估计。结果,回波路径变化发生在静止或通话重叠时间间隔未被检测期间(见图6(a))。这时静止周期是没有问题的。这对于通话重叠情况也是没有问题的,这是因为通话重叠具有较高的优先权并且应当禁止自适应。
◆简化的VAD算法对于通话重叠的目的是很有效和足够的(正如图5(b)-5(c)和6(b)-6(c)中所示)。
◆除了语音段的某些端点之外,Cxy(n)的峰值能够被门限CO(n)连续地和平滑地跟踪。注意,门限CO(n)是可变的并且可以是从Cmid=0.40到Cmax=0.90的范围,其说明自适应门限比固定门限更为有利。这能够从图5(e)和6(e)所示的基于帧通话重叠检测结果看出。实际上,在保持失误的相同n率(频率)的同时,即没有检测通话重叠时间间隔,出错警告的n率即错误判决通话重叠的n率在使用固定门限(CO(n)=0.50)时是很高的。显然,在这种情况下,较低的固定门限例如CO(n)=0.40)可能降低出错警告但也将增加失误n率。
◆除了回波路径跟踪瞬时状态(一般为3~4步)之外,所提出的基于取样的DTD(n)对在回波路径中的上述突然变化是非常稳固(robust)的。借助自适应门限,其对回波电平也是更为稳固的。因此,回波路径的衰减达到至少6dB是不需要的。实际上,正如图5-6的(f)中所示,当回波路径的衰减少于6dB时,具有为0.50的固定门限的传统Geigel算法在t1~t2和t5~t6的时间间隔将做多次的错误警告。当回波路径的衰减大于6dB时,这个传统的Geigel算法也在时间间隔t3~t4内有多次失误。这些检测错误能够用上述的新算法进行极大地减小。
图7表示本发明的主要部件和它们的相互关系。通话重叠检测器(DTD)200给自适应门限器202提供参数Rxy,Exy,和Ey,(DTD200也可提供参数Rxy,Exy,和Ey给固定门限器204,正如在传统的回波消除器中所做的)。门限器202确定噪声/静止条件,其被提供给语音活动检测器206。自适应门限器202还确定启动/桥接条件和/或回波路径变化,其每一个都提供给回波路径跟踪器208。VAD206和回波路径跟踪器208的输出输入到估计自适应门限值的门限器估计器210。单元202,206,208和210形成环路以修改门限参数Th0和/或C0。然后,修改的门限Th0和C0提供给通话重叠检测算法212,其可以是Geigel算法和/或相关算法。通话重叠检测器算法212的输出确定NLMS滤波器是否是被禁止的。由通话重叠检测算法212进行的近端语音的先前检测反馈回到门限估计器210和回波路径跟踪208作为反馈回路。
由于弱信号有可能被环境噪声所破坏,为了增加可靠性,在静止或者通话重叠时间间隔期间不应当估计回波路径。在启动或调用桥接期间回波路径通常突然变化。Geigel算法或相关算法所需要的是包括在可靠性和延迟(或复杂度)之间的折衰。一个有效的实现方式是将Geigel算法和相关算法结合。另外,在优选实现方式中,仅当发生恰当的条件时才进行自适应门限调节。例如,当没有通话重叠,没有静止和/或当互相关中的Cxy值大时。
还应注意,本发明回波消除器和本发明通话重叠检测器是用常驻功能进行说明的(详细见图2-6,一般见图7)。但是,有关图2-6详细说明和有关图7一般说明的功能经过制造商的文案或传播信号能够也称装载到传统的回波消除器或通话重叠检测器中。
总之,上面已经说明了具有自适应判决门限的新的回波消除器和通话重叠检测器。仿真结果显示出新通话重叠检测和相关回波路径跟踪算法的有效性。与现有非自适应方法相比,检测错误极大地减小了,尤其当发生回波路径变化时更是如此。当用逐个取样模式操作时,新通话重叠检测能够和网络回波消除器(EC)一起使用以在没有算法延迟的情况下快速地检测近端语音,或者它也能用作为用于回波路径变化检测的有效装置。由于通话重叠和回波路径变化将引起错误信号功率的突然增加,如果通话重叠能够被快速地和更精确地检测,则从该错误信号中,能够更精确地检测回波路径变化。新的通话重叠检测和其对应的回波消除器也能够被集成在基于帧的语音编解码器中并且以逐帧模式操作以给出更可靠的检测结果。
在此说明的本发明很显然可以用许多方法来变化而实现其相同的方案。一些变化并未看作为脱离了本发明精神和范围,对本领域技术人员那些显而易见的修改都应当包括在下述权利要求的范围内。
权利要求
1.一种通话重叠检测器,用于检测近端语音和当近端语音出现时禁止自适应滤波器,包括至少一个门限确定处理单元,用于确定至少一个自适应门限,和至少一个通话重叠检测处理单元,用于接收至少一个参数和至少一个自适应门限以及检测近端语音。
2.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元使用Geigel算法检测近端语音。
3.权利要求1的检测器,其中至少一个参数包括信号能量。
4.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元使用相关算法检测近端语音。
5.权利要求1的检测器,其中至少一个参数包括互相关。
6.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元使用Geigel算法和相关算法检测近端语音。
7.权利要求1的检测器,其中至少一个参数包括信号能量和互相关。
8.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元是基于帧的。
9.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元是基于取样的。
10.权利要求1的检测器,其中所述至少一个通话重叠检测处理单元是基于帧的和基于取样的。
11.权利要求1的检测器,其中所述至少一个门限确定处理单元包括语音活动检测器,用于检测语音活动,和门限估计器,用于接收语音活动和估计至少一个自适应门限。
12.权利要求1的检测器,所述至少一个门限确定处理单元包括回波路径跟踪器,用于跟踪回波路径,和门限估计器,用于接收回波路径和估计至少一个自适应门限。
13.权利要求1的检测器,所述至少一个门限确定处理单元包括语音活动检测器,用于检测话音活动,回波路径跟踪器,用于跟踪回波路径,和门限估计器,用于接收语音活动和回波路径以及估计至少一个处适门限。
14.权利要求12的检测器,其中通过所述通话重叠检测器在先前所进行的近端语音的检测作为输入反馈回到所述回波路径跟踪器和到所述门限估计器。
15.权利要求13的检测器,其中通过所述通话重叠检测器在先前所进行的近端语音的检测作为输入反馈回到所述回波路径跟踪器和到所述门限估计器。
16.一种回波消除器,其包括权利要求1的通话重叠检测器。
17.权利要求16的回波消除器,还包括自适应滤波器,用于估计回波路径和合成估计的回波信号。
18.权利要求16的回波消除器,其中自适应滤波器是自适应FIR滤波器。
19.一种方法,用于检测近端语音和当近端语音出现时禁止自适应滤波器,包括确定至少一个自适应门限,和接收至少一个参数和至少一个自适应门限以及检测近端语音。
20.权利要求19的方法,其中近端语音是使用Geigel算法检测的。
21.权利要求19的方法,其中至少一个参数包括信号能量。
22.权利要求19的方法,其中近端语音是使用相关算法检测的。
23.权利要求19的方法,其中至少一个参数包括互相关。
24.权利要求19的方法,其中近端语音是使用Geigel算法和相关算法检测的。
25.权利要求19的方法,其中至少一个参数包括信号能量和互相关。
26.权利要求19的方法,其中通话重叠检测是基于帧的。
27.权利要求19的方法,基中通话重叠检测是基于取样的。
28.权利要求19的方法,其中通话重叠检测是基于帧和基于取样的。
29.权利要求19的方法,所述检测步骤还包括检测语音活动,和接收语音活动和估计至少一个自适应门限。
30.权利要求19的方法,所述检测步骤还包括跟踪回波路径,和接收回波路径和估计至少一个自适应门限。
31.权利要求19的方法,所述检测步骤还包括检测语音活动,跟踪回波路径,和接收语音活动和回波路径以及估计至少一个自适应门限。
32.权利要求30的方法,其中有通过所述方法在先前进行的近端语音的检测作为输入反馈回到所述回波路径跟踪步骤和到所述门限估计步骤。
33.权利要求31的方法,其中有通过所述方法在先前进行的近端语音的检测作为输入反馈回到所述回波路径跟踪步骤和到所述门限估计步骤。
34.一种回波消除方法,包括权利要求19的方法。
35.权利要求34的方法,还包括估计回波路径和合成估计的回波信号。
36.一种计算机程序,体现在可读计算机媒体中,用于检测近端语音和当近端语音出现时禁止自适应滤波器,所述计算机程序包括至少一个门限确定处理段,用于确定至少一个自适应门限,和至少一个通话重叠检测处理段,用于接收至少一个参数和至少一个自适应门限以及检测近端语音。
37.一种计算机数据信号,包括至少一个门限确定处理段,用于确定至少一个自适应门限,和至少一个通话重叠检测处理段,用于接收至少一个参数和至少一个自适应门限以及检测近端语音。
38.权利要求37的计算机数据信号,其中所述计算机数据信号体现在载波中。
全文摘要
完成通话重叠检测的通话重量检测器(DTD)方法、回波消除器、以及与当回波被近端语音(NES)破坏时检测的回波消除器(EC)一起使用而完成回波消除的方法。通话重叠检测器在NES出现时禁止合成滤波器和自适应性,目的是避免自适应算法的发散。由于回波路径和信号电平的时间变化特性,适合的判决门限确保了DTD的精确性。通话重叠检测器利用了自适应判决门限,其能够在调用期间在回波路径和信号/噪声电平中跟踪变化。
文档编号H04B3/23GK1315801SQ0012002
公开日2001年10月3日 申请日期2000年3月27日 优先权日2000年3月27日
发明者韦雄观 申请人:朗迅科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1