带有无声段检测的回声消除器的制作方法

文档序号:7574018阅读:221来源:国知局
专利名称:带有无声段检测的回声消除器的制作方法
背景该申请涉及由Karim EL Malki同时提出的,这里参考引用的名为“回声路径延迟估计”的美国专利申请序列号(文档号1410-211)。
1、发明领域本发明涉及语音和声学信号处理,尤其涉及回声消除。
2、相关技术和其它见解回声消除器广泛用于地面和空中(即无线电,微波)通讯中来消除回声现象,该现象很大程度上影响到语音和音频服务的质量。回声消除器基本上使用流向听者的数据拷贝来数字化估计应该返回到流出线上的回声。计算完估计值后,回声消除器从流出信号中减去回声估计值使得回声被消除。
回声问题的一个例子发生于电话传输中。在大多数情况中,话音通过一对单向2线线路(即四线)在终端设备(TE)和混合转换电路之间传送,然后通过一个双向2线线路从混合电路传送出去。这样,两种类型线路之间的结合点由混合转换电路来实现。因为混合转换电路被平衡以达到平均线路阻抗,它们不能很好的区分2个单向路径,因此会产生回声信号。此外,如果在四线路径中引入了延迟,(如同在卫星传输或数字编码中会发生的),那麽回声必须被消除以保证较好的语音质量。
简单的说,回声消除器一般采用一个自适应有限脉冲响应(FIR)数字滤波器;用于控制该FIR的消除处理器;一个减法器;一个近端语音检测器以及一个非线形处理器。FIR接收复制的数据(当其被连续采样时),这些数据通过流入通讯路径从远端传送到近端。FIR产生一个回声的估计值,除非被消除掉,该回声将通过流出通讯路径从近端反射回远端。在适当的时间,回声的FIR估计被减法器从流出通讯路径上的信号中减去以试图消除回声。在产生回声估计值时,FIR由消除处理器控制。在控制FIR时,消除处理器不仅考虑减法器输出的信号而且还考虑了来自近端语音检测器的表示发生双重通话的任何标识(例如,远端和近端的组都在通话)。非线形处理器试图抑制任何FIR无法消除的残留噪声。
FIR滤波器是一种横向滤波器,该滤波器有一些抽头和相应数量的系数。抽头是一个延迟时间等于采样时间或采样率的单元。这些系数值(存储在寄存器中)被乘以输入信号以便获得回声估计值。消除处理器执行一种用来调整(即修正或更新)滤波器系数的算法,使得滤波器系数比回声响应特性变化更快地收敛到一个最佳值(或接近最佳值),并因而能够消除回声。
在大多数回声消除器中,在近端语音检测器检测到双重通话情况时,并不发生这种调整。FIR的长度(抽头数)和系数必须更新所采取的速率取决于服务类型,路径(例如线路)特性,以及回声源到回声消除器的距离。
许多传统的回声消除器采用传统的梯度自适应滤波器算法,例如最小均方算法(LMS)及其归一化方差。这些传统算法的问题是,尽管在计算复杂度上它们属于最简单的算法之一,但是它们仍然会给数字信号处理设备带来很大的负担。
这样,即使在合伙联营并进行渠道共享时也会不可避免地增加这种设备的成本。已经出现了某种计算复杂度很低的自适应滤波算法,例如算法符号族,但是它们的慢收敛和不稳定阻碍了它们在回声消除器领域的发展。另一种简化就是使用块算法,使得每n个样本才发生一次自适应。块算法降低了复杂度但是降低了回声消除器适应变化的能力。
已知的是利用流入通讯路径上的信号大小来影响回声消除器的操作。针对Jones的美国专利4,712,235利用接收到的信号来控制回声消除器的自适应滤波器的更新。针对Iizuka et al的美国专利5,315,585提到以前的技术,在这种技术中,在双重通话或当低值检测器检测到具有很低值的线形接收输入信号的过程中禁止滤波器系数的更新。在针对Miyamoto et al的美国专利4,894,820中,如果接收到的信号为空闲信号,自适应数字滤波器的估计功能被禁止。
所需要的是,有效地最小化流入无声段期间的FIR操作,并因此最小化回声消除操作计算复杂度的回声消除方法和装置。
概要一种确定流入通讯路径(30)上的样本窗W(m)中是否包括无声段的回声消除方法和装置,W(m)窗包括在时间t(m)上获得的样本和以前的样本。如果W(m)窗包括无声段,那麽在时间t(m+1)上接收样本之前,回声消除器的自适应滤波器的系数被设置为无声段检测值。如果W(m)窗不包括无声段,并且不存在双重通话情况,那麽在时间t(m)上获得的样本被用来更新自适应滤波器的系数,经修正的自适应滤波器在时间t(m+1)上获得样本之后产生一个回声估计值,并且该估计值被用来修正流出通讯路径上的信号。
如果接收到的W(m)窗包括无声段,那麽除了将自适应滤波器的系数设置为无声段检测值之外,回声消除器还执行下述操作中的一个(在时间t(m+1)上接收样本之前)(1)在无声作用段,在流出通讯路径上加入预定的噪声;(2)抑制流出通讯路径上没有被回声消除器的滤波器抑制的任何残留回声。基于检测到的无声段特性,自适应滤波器的系数被设置为0并保持在0或被冻结在无声段被检测到之前的系数值上。
如果W(m)窗包括无声段,回声消除器确定流出通讯路径上无声作用段的时间。无声作用段的确定涉及短回声路径延迟情况和长回声路径延迟情况。在短回声路径延迟情况下,无声作用段开始于W(s)窗的第一示例的末端,其中的W(s)包含一个无声段,该无声段在其整个持续期上被检测到,而且无声作用段终止于流入通讯路径上信号中的无声段停止处。在长回声路径延迟情况中,无声作用段开始于流出通讯路径上信号中的某一点,其中的流出通讯路径对应于在其整个持续期上检测到无声段的窗的第一示例的终点,并且无声作用段终止于一个预定预测时间间隔,位于流出通讯路径上信号中对应于流入通讯路径上信号中无声段的停止处的某一点之前。
短回声路径延迟情况和长回声路径延迟情况都有不重叠窗实现和重叠窗实现。
附图简要描述根据对附图中被说明的优选实施方案的更详细的描述,本发明的所有目标,特征和优点都会很明白。在附图中,全部视图中的相同部分有相同的参考标号。这些图是不必要成比例的,重点被放在说明发明原理上。


图1是根据本发明的实施方案的回声消除器的简图;图2是使用图1中回声消除器的示例通讯系统的简图;图3是图1中回声消除器的特殊硬件实现的简图。
图4是利用不重叠窗实现,当回声路径延迟短于判断窗时,基于窗的无声段检测方法的示例图。
图4A是利用重叠窗实现,当回声路径延迟短于判断窗时,基于窗的无声段检测方法的示例图。
图5是利用不重叠窗实现,当回声路径延迟长于判断窗时,基于窗的无声段检测方法的示例图。
图5A是利用重叠窗实现,当回声路径延迟长于判断窗时,基于窗的无声段检测方法的示例图。
图6是计算降低模式的第一实现中由本发明的回声消除器执行的步骤的流程图。
图6A是计算降低模式的另一可选实现中由本发明的回声消除器执行的步骤的流程图。
图7是干扰降低模式的第一实现中由本发明的回声消除器执行的步骤的流程图。
图7A是干扰降低模式的另一可选实现中由本发明的回声消除器执行的步骤的流程图。
图8是图1中用于基于包的语音的回声消除器的硬件实现的简图。
图9是利用总线或并口的图1中用于基于包的话音的回声消除器的硬件实现的简图。
图10是将样本组合进不重叠窗的示例图。
图11是将样本组合进重叠窗的示例图。
附图详细描述图1给出一个通讯系统18,该系统使用了根据本发明的实施方案回声消除器20。通讯系统18有一个远端26和一个近端28。流入通讯路径30将信号从远端26送到近端28;流出通讯路径32将信号从近端28送到远端26。路径30和32可以是地上线路(例如,电线)或微波信道或者可能涉及卫星连接。
图2给出了通讯系统18’的一个例子,该例子使用了回声消除器20。图2的例子是一个电话通讯系统18’,其中,通过一对单向2线线路42A和42B(即通过4线),话音在终端设备(TE)40和混合转换电路41之间传送。然后,通过双向2线线路43从混合电路41发送出去。应该理解的是,回声消除器20的使用并不局限于此例,回声消除器20也用于其它的应用中,包括数字、微波和卫星应用。
图1的回声消除器20包括一个无声检测器50;一个自适应FIR滤波器52;一个消除控制器54;一个近端语音检测器56;一个减法器58和一个无声处理器60。无声检测器50被连接来接收流入通讯路径30上的信号x(t)并产生“针对输入窗的无声段检测”信号以便加于线路61上的控制器54。FIR滤波器52被连接来处理从无声段检测器50前送的信号,并被连接来在控制器54的监控下工作。由FIR滤波器52产生的回声估计值被传送给减法器58,减法器58将回声估计值从路径32上的流出信号ya(t)中减去来产生信号e(t)。近端语音检测器56被连接到流出通讯路径32用来监视发生在近端28的语音,并产生一个近端语音检测信号,然后将之经路径32加到控制器54。信号e(t)被传送给控制器54和无声处理器60。控制器54被连接来监控无声处理器60的操作。
控制器54在线路66上输出一个关于流出信号的无声段检测信号用来充当流出通讯路径32上无声段的标识。控制器54使用来自近端语音检测器56的双重通话信号64来产生线路66上的信号,该信号不同于线路61上无声检测器50产生的“关于流入窗的无声段检测”信号。线路66上的信号对应于路径32上去往远端26的流出信号的无声段特性。
消除控制器54接收多个操作器输入,包括在线路68上的模式输入,和线路69上的抑制使能输入。线路68上的模式输入明确了是计算降低模式还是干扰降低模式将被实现。线路69上的抑制使能输入表明,在计算降低模式下,无声处理器60是否在尝试消除之后抑制任何残留回声,或者噪声是否要被插入到路径32的流出信号中。
无声段检测在操作中,无声检测器50和近端语音检测器56在信号x(t)的前N个样本中被禁止。前N个样本是自适应滤波器启动时的初始收敛所需的。本发明的初始收敛所需的前N个样本的范围为1000到5000样本之间。该领域的技术人员都会明白滤波器收敛的概念,因而这里就不解释了。
在收敛之后的任何给定时间,无声检测器50对于路径30上从远端26流入的语音做无声段检测。无声检测器50选取信号样本,然后参考预定数量的连续样本(即“判断窗)来做无声判断。例如,使用64K比特/秒的语音,每个样本持续125秒。涉及判断窗长度设定的因子在此后讨论。通过示例说明,在任何给定时间的10ms的判断窗包括接收到的最后80个样本。“无声段判断”是参考整个判断窗来作出的,而不是参考各个单独样本。即,判断窗中的所有样本不应该超过预定的浊音阈值。无声检测器50执行的无声段检测是基于路径30上流入信号x(t)的能量大小的。其中使用了无声段能量阈值,该阈值取决于期望的最大噪声值。
由无声检测器50执行的无声段检测被用来估计从回声源反射回来的语音的无声段特性(例如图2的双绞线通讯系统中的混合电路41)。无声检测器50对每个判断窗作无声段分析,并且得到当前窗无声段状态[″Silence(t)″]和过去窗无声段状态[″Silence(t-1)″],这些状态是控制器54可得的。这些状态值,连同线路64上的″近端″或″双重通话″检测信号一起,使得控制器54能够作出关于FIR滤波器52系数的判断。
在无声段检测的基础上(即,其中所有样本低于一个浊音阈值的判断窗),控制器54可以在下述2种模式中的任何一种下工作—计算降低模式或干扰降低模式。通过模式输入68,处理器确定要使用哪种模式。简单地说,在计算降低模式下,当不存在双重通话情况时,(1)FIR滤波器52的以前系数值被暂时存储起来;(2)FIR滤波器52的系数被设置为0使得FIR滤波器52无效(即e(t)=ya(t));(3)在与路径32上的流出数据相关的无声作用段内,无声处理器60将流出路径32上的信号替换成噪声样本;(4)在无声作用段之后,存储的系数值被恢复给FIR滤波器52。在干扰降低模式中,当不发生双重通话时,FIR滤波器52的系数被冻结,无声处理器60按非线性处理器的方式工作(比如,在路径32的无声作用段中抑制任何FIR滤波器52不能消除的残留噪声)。在两种模式中,不会对FIR滤波器的系数做任何调整。计算降低模式将结合图6详细讨论。(以及图6A的另一可选实现方式)。干扰降低模式将结合图7详细讨论。(以及图7A的另一可选实现)。
当在流入通讯路径30上看到没有无声段的窗时,消除器20更新FIR滤波器52的系数并将回声估计值从流出信号ya(t)中减去。然而,在非无声段窗之后对流入通讯路径30上无声段的检测使得回声消除器20进行无声段处理操作。在无声段处理操作中,滤波器52的前无声段系数值被存储起来。在无声段处理操作过程中,对于无声作用段,在路径32上流向远端26的通讯信号值是在不更新滤波器系数的情况下获得的(并且,在计算降低模式下,不使用这些滤波器系数)。当非无声端窗之后跟随一个非无声段窗时,滤波器的以前无声段系数被恢复起来。
无声作用段的确定流出通讯路径32上无声作用段的确定取决于与回声路径纯延迟长度相关的判断窗的长度。无声判断窗由操作者根据需要的无声段检测量来设置。回声路径纯延迟是信号反射回其源头所需时间的一个度量。在图2的例子中,例如,回声路径纯延迟是信号从其源头经线42A传送到混合电路41并在线42B上反射回其源头所需的时间。回声路径延迟可以是已知的或被自动设置。一种用来确定回声路径纯延迟的技术在美国专利4,736,414中被说明,其中的专利作为参考在这里引用。另一种用来确定回声路径纯延迟的技术在美国专利申请序列号(律师摘要1410-211)中被描述,该专利由Karim ELMalki同时提出,名为″回声路径延迟估计″,这里作为参考引用。
如这里详细解释的,存在两种用来确定无声作用段的情况-短回声延迟情况(在其上进行无声判断的判断窗长度大于到回声源的环路延迟)及长回声延迟情况(在其上进行无声判断的判断窗长度小于到回声源的环路延迟)。
此外,对于短回声延迟情况和长回声延迟情况存在两种实现方式—重叠窗判断和非重叠窗判断。如前面表示的,无声检测器50选用信号x(t)的样本,然后参考预定数量的连续样本(即,判断窗)来作出无声判断。图10说明了将样本集成到一个非重叠窗的情况。假定在图10中,在时间t0,样本x1到x5被包括在第一判断窗中(出于示例的目的,判断窗的长度为5个样本)。在非重叠窗实现中,无声判断是参考时刻t0的窗作出的,然后整个窗被设置为0。在时刻t0+1,第二判断窗开始添进样本x6。然后,在t0+1,第二判断窗接收样本x7。以同样的方式连续地填充第二个窗直到在时刻t0+5整个第二窗被填入样本(即样本x6到x10)。这样,在时刻t0+5填完第二窗后,会参考整个第二窗作出无声判断。
图10表示将样本集成到非重叠窗的情况,而图11表示将样本集成到重叠窗的情况。在图11的重叠窗实现中,假定在时刻t0,样本x1到x5都包括在第一判断窗中(为了说明,判断窗长度仍然为5个样本)。在时刻t0+1,新样本x6被接收到,而在时刻t0+1,由样本x2到x6组成的第二判断窗就形成了。于是,参考该第二判断窗,无声判断在时刻t0+1作出。同样的,在后续的时刻t0+2,t0+3等等,会进一步形成判断窗并对无声作出估计。
图4表示在非重叠窗实现中,为短回声延迟情况确定无声作用段。在这种情况下,在其上作出无声判断的判断窗长度大于到回声源的环路延迟。在图4中,x(t)表示路径30上的流入信号。在一系列的判断窗400(0),400(1),…400(4)中,信号x(t)针对无声情况进行估计。回声路径延迟401被表示为比标称判断窗短。判断窗400(0)开始于时刻t0,终止于时刻t3。路径32上信号x(t0)的反射开始于时刻t1。
图4表示开始于时刻t2并持续到时刻t5的实际无声段404。无声检测器50的一个准则是,实际无声段的开始可以仅在无声通过整个判断窗而被检测到之后才被宣布。因此,直到时刻t4,无声检测器50才会宣布路径30上无声段的存在。这种宣布开始(在时刻t4)了路径32上信号ya(t)中无声作用段406。图4还表示无声段在整个判断窗400(2)均可检测到,但在判断窗400(3)只有一部分才有。实际上,在时刻t5,无声检测器50检测到非无声段。如果实际的无声段终止于不对应于窗边界的时刻,那麽该窗马上会终止,并且一个新的窗(即图4中的窗400(4))开始于该点(例如,时刻t5)。
在短回声延迟情况中,“拖尾”段408被引入到实际无声段404的开始处,并且位于无声作用段406之前。“拖尾”段消除了在短停顿例如音节间停顿期间错误性无声段检测。因此,判断窗的尺寸将确定无声段检测的效率。
在上述说明中,音节间停顿的范围为100ms到200ms之间。如果选择了小于100ms的判断窗,那麽会检测到大多数的音节间停顿,使得算法更有效。在这种情况中,回声路径纯延迟应该小于为正确操作选择的判断窗长度。例如,选择一个10ms的判断窗将只会对回声路径延迟低于10ms的情况起作用。如果选择了100ms或100ms以上的判断窗,那麽算法对停顿的敏感度降低并降低效率。
在图4表示的情况中,无声作用段406比返回信号ya(t)的无声段特性进入的晚,终止的早。无声作用段406稍后在图4中表示的拖尾段408的时刻进入,并且以图4中表示的预期段410而结束。这给出了一种嵌入拖尾段和预测机制,该机制使得能够正确检测到无声段。因此,滤波器系数在实际无声段404的开始和终止处被调整来考虑可能的清音字母和音节间停顿,这些情况可能会误认为无声段。
图5表示在非重叠窗实现中,为长回声延迟情况确定无声作用段。在这种情况中,在其上作出无声判断的判断窗长度小于到回声源的环路延迟。在图5中,x(t)仍然表示路径30上的流入信号。图5还表示一系列的判断窗500(0),500(1)…500(7),其中,信号x(t)被作无声段估计。回声路径纯延迟501被表示为比标称判断窗长。判断窗500(0)开始于时刻t0,终止于时刻t2,信号x(t0)的反射在时刻t3开始于路径32上。
图5表示实际的无声段504,该段开始于时刻t1并持续到时刻t6。无声检测器50的又一个准则是,仅在无声段在整个判断窗上被检测到之后才宣布实际无声段的开始。因此,直到时刻t3,无声检测器50才会宣布路径30上无声段的存在。与上面描述的短回声路径延迟情况不同的是,路径30上无声段的存在并不会自动地开始路径32上的无声作用段506。而且,路径32上的无声作用段506直到信号x(t3)被反射作为路径32上的信号ya(t5)时才会开始。这样,无声作用段506开始于时刻t5,
图5还表示了无声段也可以在整个判断窗500(2)、500(3)上检测到和仅在判断窗500(4)的一部分上来检测到。实际上,在时刻t6,无声检测器50检测到非无声段。如同在短回声延迟情况一样,如果实际无声段的终止时刻并不对应于窗边界,那麽窗被立即终止,并且一个新的窗(如图5中的窗500(5))从该点开始。(例如,时刻t0)。
无声作用段506终止于一个预定的预期间隔510,该间隔位于流出通讯路径32上信号ya(t)一点之前,该点对应于流入通讯路径30上信号x(t)中实际无声段504的停止点。如在图5中表示的,无声作用段506结束于时刻t8。信号ya(t9)包括信号x(t6)的反射。然而,在确定信号x(t6)在时刻t9于路径32上有反射信号之后,控制器54将无声作用段506缩短预定的预期间隔510,因而使无声作用段506结束于时刻t8,如前面提到的,对于大的回声路径纯延迟来说,短回声延迟情况的技术会使得该算法对无声段不敏感,因此效率降低。比较来说,长回声延迟情况要求无声段检测要与往回反射之后返回到路径32上的语音同步。因此,在长回声延迟情况下,判断窗小于环路延迟,并且仅取决于无声段检测中所需的效率。为了得到高效率,窗应该远远小于回声路径纯延迟。在图5表示的情况中,判断窗被选择为回声路径纯延迟501的一半。回声路径纯延迟然后被用做同步延迟使得无声段检测结果与返回的语音相匹配。
在这种长回声延迟情况中,无声作用段506在第一完全无声窗(例如,窗500(1))的结束处开始,并且滤波器系数更新由于预测间隔510的原因会更早地开始。预测间隔510的长度等于(DWL/F),其中F为一个常数。ADWL@是判断窗长度,即判断窗500(0),500(1)等等的标称长度。常数F最好位于3到10之间。这些特性使得长回声延迟情况下的无声段检测结果类似与短回声延迟情况。
图4表示了非重叠窗实现中为短回声延迟情况确定无声作用段,而图5表示在非重叠窗实现中为长回声延迟情况确定无声作用段,图4A表示在重叠窗实现中为短回声延迟情况确定无声作用段,图5表示在重叠窗实现中为长回声延迟确定无声作用段。从这些图应该理解的是,从窗形成和估计频率提高的角度看,重叠窗实现对检测无声段状态更敏感。
标志短回声延迟情况(图4或图4A)和长回声延迟情况(图5或图5A)之间边界的值取决于判断窗的尺寸和回声路径纯延迟,并且应该根据所要求的效率设置。操作者应该为回声消除器20设置判断窗的尺寸。如前面提到的,小的窗在无声段检测中效率有所增加,并因此增加计算增益。而且,假定回声路径纯延迟可以被操作者设置或者可以自动确定。例如,假定判断窗的尺寸被设置为64ms,如果回声路径纯延迟大于64ms,那麽长回声延迟情况(图5或图5A)应该被选择。否则,就选择短回声延迟情况(图4或图4A)。
应该注意的是,在普通的地上通讯中,一般不会期望大于64ms的环路延迟。因此,通过设置判断窗为64ms,在这种通讯中,应该能实现图4中的短回声延迟情况。这是假设操作者能够接受64ms判断窗长度的效率。假定这样,如果处理器能确定该类型的通讯具有相对低的延迟(例如地上POTS到POTS),图4或图4A的短回声延迟情况可以被自动设置而不用执行回声路径延迟设置。然而,在编-译码情况下(例如在移动通讯的这种情况中),这种延迟将会被超过,将会要求图5中的长回声延迟情况和回声路径纯延迟设置。另一方面,如果要求最大效率,并且选择了一个小的判断窗(例如10ms),那麽为了确定哪种情况是可应用的,回声路径纯延迟必须被设置或自动确定。
回声消除既然已经描述了流出信号ya(t)上的无声作用段的时序和持续期使如何确定的,现在将讨论回声消除器20使如何影响路径32上的流出信号。如前面提到的,回声消除器20可以工作在两种模式下--计算量降低模式或干扰降低模式。
本发明的无声段得到改进的回声消除器20的实际操作由消除控制器54执行的指令控制。图6给出了涉及计算降低模式的执行步骤(以及图6A中的另一可选实现)。图7中给出了涉及干扰降低模式的执行步骤(以及图7A中的另一可选实现)。在这里说明的方法中,操作是参考线性编码输入信号x(t)和ya(t)进行的。例如,PCM64K比特/秒的语音用已知的m规则或A规则来压缩。对这种编码语音的恢复和压缩是一种简单操作并被假设在回声消除器20的输入和输出处执行。该领域的技术人员是明白恢复和压缩操作的。
结合图6和图7(以及各自可替换的图6A和图7A中的实现)来描述这些指令的实现,下述参数(例如,变量)被采用。
H(t)当前滤波器系数(在时刻t)H_last在无声段被检测到之前,存储的上次更新的滤波器系数。
K完成一次算法之后递增的环路计数器变量。
Silence(t)包括关于在当前窗时刻(时刻t)语音或无声段存在情况的无声段逻辑变量。
Silence(t-1)包括关于在以前窗时刻(时刻t-1)语音或无声段存在情况的无声段逻辑变量。
应该明白的是,无声段逻辑变量涉及上面描述的基于窗的无声段检测过程。在前N个样本期间,无声段逻辑变量被连续设置为0(即非无声段)以便达到初始收敛。
下面的定义也适用于图6和图7(以及图6A和图7A中另外可选的实现)中的步骤。
Past Silence=(Silence(t-1))&&(brance2==1)&&(brancel=1)ork==0在第一次迭代过程中,Past Silence(过去无声段)将为真,然后,只有在无声状态在以前时刻窗上被检测到并且流程图中两个“无声”分支已经被经历过至少一次时,该值才为真。
双重通话线路64上来自近端语音检测器56的信号的状态。
消除器活动因子消除器被激活时样本数的计数器。
这些值对于管理回声消除器20来说可能是必要的。
计算降低模式—延迟无声段实现在计算降低模式中,可以获得计算复杂度的最大降低。这时因为在基于窗的无声段检测机制检测到无声段的过程中,自适应FIR滤波器52并不工作(即不会执行任何滤波器系数和输入信号之间的乘法运算)。在计算降低模式中,无声处理器60用噪声样本来替代该无声段。而且,在计算降低模式中,无声段被检测到之前的系数值被存储起来,使得在无声段结束时它们可以被恢复使用。
图6中给出了在计算降低模式中的第一实现或延迟无声段实现中执行的步骤。图6的步骤600表示使用计算降低模式时,回声消除器20的开始操作。在步骤600会进行各种初始化,包括标志“分支1”和“分支2”的初始化(初始化为0)。
在启动之后(收敛之后),在步骤602,无声检测器50获得流入通讯路径30上信号x(t)的一个新样本。然后,在步骤604,无声检测器50将步骤602获得的样本移到判断窗w(t),该窗还包括预定数量的以前的连续样本。在步骤604,无声检测器50估计判断窗w(t)以确定其中包括的每个样本的能量值是否低于一个预定的浊音阈值。如果判断窗w(t)中的所有样本都低于该浊音阈值,判断窗w(t)被称为“无声”或具有“无声段”。如果判断窗w(t)检测到了“无声段”,逻辑参数Silence(t)被设置为A1。此外,在步骤602,判断窗w(t-1)的逻辑变量“Silence”值被存储在逻辑参数Silence(t-1)中。
尽管前文对步骤602所作的令人信服的描述涉及到重叠窗的实现(见图11),应该理解的是非重叠窗实现(见图10)可以很容易的成为替换实现方案(见图10)。在非重叠窗实现中,步骤602包括在执行步骤604的无声判断之前,要等待一些数量的等于判断窗长度的信号x(t)样本。在这种方式中,一个样本只能属于一个判断窗。当然,例如按照这里作为参考引用的,由Karim EL Malki同时提出的名为“回声路径延迟估计”的美国专利申请序列号(律师文档1410-211)中所解释的方式,样本通过FIR滤波器52的缓存器被串形移位。
在步骤606,执行了数字滤波处理,这种数字处理通常是针对窗w(t-1)执行的。数字滤波处理包括利用FIR滤波器52的系数的乘法(当需要时)来获得回声估计值,还包括由减法器58执行的从信号ya(t)中减去回声估计值的减法,其中的滤波器系数参考判断窗w(t-1)的接收而修正。然而,应该明白的是,如果FIR滤波器52的所有系数都被设置为0(如同下面描述的步骤626和662中发生的一样),步骤606将不执行任何的数字滤波处理。当所有FIR滤波器52的系数为0时,步骤606的操作仅包括将信号ya(t)作为信号e(t)传送到路径32。
这样,本发明的回声消除器20执行的自适应数字滤波基本上是一个延迟自适应滤波。即,在时刻t执行的数字处理将利用滤波器系数,该滤波器系数是基于判断窗w(t-1)的接收而被修正的。如在下面看到的,当接收到具有无声段的判断窗w(t),并且不存在双重通话时,回声消除器20并不等到时刻t+1以便影响通讯路径32上的流出信号ya(t),而是在时间t如下面描述的那样修正流出信号ya(t)。
在步骤610,回声消除器54检查线路64上来自近端语音检测器56的信号是否表示了“双重通话”。如果没有检测到双重通话(即,近端28的语音),则继续执行620。如果在步骤610检测到双重通话,则继续执行步骤660。
如果在步骤610没有检测到双重通话,在步骤620控制器54检查步骤604的结果以确定最近由接收在步骤602获得的样本而形成的窗是否是一个无声段窗(即,是否在整个检测窗上检测到了“无声段”)。如果在步骤620确定了无声段,控制器54执行包括偶数步骤622-632的第一操作分支。第一操作分支由标志位branch1表示。如果在步骤620没有确定无声段,那麽执行第二操作分支,它包括步骤640,偶数步骤中642-654中的某一个和可能的632。第二操作分支由标志brance2表示。在完成第一分支或第二分支之后,处理过程返回到步骤602用来获得另一个窗。
如果在步骤610检测到了双重通话,那麽将继续执行步骤660。在步骤660,将查询最近在步骤602获得的窗是否包括无声段(整个)。如果最近获得的窗确实包括无声段,那麽在执行步骤668和670之前,将执行包括步骤662的图6的第三分支。另一方面,如果最近获得的窗确实不包括无声段,那麽在执行步骤668和670之前,将执行包括步骤664和666的图6的第四分支。完成步骤670后,处理过程返回到步骤602来获得另一个窗。
假定在步骤602获得一个窗w(m),该窗为接收新样本的结果。另外还假定在步骤604确定了窗w(m)并不包括无声段(即,并非整个窗都是完全无声),以及在以前的步骤604中确定窗w(m-1)不是无声段,并且在步骤610没有检测到双重通话情况。在步骤606,进行数字滤波处理,FIR滤波器52的系数根据窗w(m-1)的接收而修正。
从窗w(m)不存在双重通话的角度看,步骤620被执行来检查是否窗w(m)被确定为无声。由于窗w(m)不为无声段,开始于图6的步骤640的分支2被执行。由于在以前的窗w(m-1)中不存在过去无声段,流程执行偶数步骤646-654。在步骤646,自适应FIR滤波器52的系数在消除控制器54的监控下被更新。那麽在步骤648,消除器活动因子增加(用来表明在其上回声消除器20被激活的样本数目,)。在步骤650,标志branch2被设置为“1”来表明第二分支被执行。这样,在步骤652,会检查标志“抑制使能”是否已被操作者在线路69上的输入而设置。如果输入“抑制使能”已经被设置,那麽在步骤654,无声处理器60尝试抑制任何路径32上的残留回声。如果输入”抑制使能”没有被设置,在步骤632,无声处理器60由控制器54控制来将通讯路径32上的流出信号e(t)替换成处理器60针对无声作用段产生的噪声。而且,在步骤632和654,控制器54将线路66上关于流出信号的无声段信号设置为A1。由于在校正回声消除中信号e(t)应该被降低到噪声大小,在步骤632发生噪声替代。
在步骤654或632执行之后,整个处理回到步骤602用来得到另一个样本使得窗w(m+1)可以在步骤604被构造和检查。那麽,在步骤606,会执行数字滤波处理。在该节点,在步骤606执行的处理中所牵涉的乘法使用了在上次执行步骤646中更新的滤波器系数。
假设在步骤602获得的窗w(m+1)的确包括全部的无声段,并且没有发生双重通话情况。就会在步骤622开始执行图6中的第一分支。因为在步骤622确定了窗w(m)不包括无声段,在执行步骤626之前会执行步骤624。在步骤624,自适应FIR滤波器52的当前系数被存储在位置H-last中。然后,在步骤626,自适应FIR滤波器52的系数都被设置为0。如步骤628表示的那样,不会对窗w(m+1)执行任何FIR滤波器52系数的更新或调整。相反,在步骤632,无声处理器60在适当的时间将噪声插入到路径32上的流出信号中。此外,在步骤632,控制器54设置线路66的状态来表明无声段在路径32上流出。在步骤630,标志branch1被设置为“1”来表明第一分支已经执行。在第一分支执行之后(发生于该示例的w(m+1)窗),过程返回到步骤602用来获得另一个样本并在步骤604获得窗w(m+2)的格式。在获得形成窗w(m+2)的格式的样本之后,步骤606中进行的数字滤波处理仅涉及减法而不涉及乘法,因为数字FIR滤波器52的系数会在步骤626被设置为0。
假设窗w(m+2)还包括整个的无声段,并且不发生双重通话情况。图6的第一分支又一次执行,其方式类似于窗w(m+1),只是步骤624不执行。从这点看,结合步骤622,会注意到的是,标志Past Silence被设置。即,在该节点,为窗w(m+1)检测到无声段(因此,逻辑变量“Silence(t-1)”为真)并且两个标志branch1和branch2被设置为“1”。这样,滤波器系数不会有任何变化(保持在0)并且仍然在流出路径32中插入噪声(步骤632)。
基于接收另一个样本,假设在步骤602获得的窗w(m+3)包括语音而且不存在双重通话。图6的第二分支将被执行。因为标志“Past Silence”仍然被置位,步骤642,644和645被执行。在步骤642,存储(在步骤624)在位置H-last中的值被得到,并被分配给数组H(t),该数组是自适应FIR滤波器52的当前系数组成的。在步骤644,标志branch2被设置为A1。步骤645表明FIR滤波器52的系数没有更新。那麽,在步骤632,无声处理器60由控制器54控制在路径32上将噪声插入到无声作用段,并且控制器54将其“流出信号中检测到无声段”信号(线路64上)设置为A1。然后流程返回到602来获得另一个样本。
接收到另一个样本时,假设w(m+4)窗并不包括整个无声段(即,为语音),并且不发生双重通话。在步骤606,根据恢复的系数(即在步骤642的上次执行中恢复的系数)进行数字滤波处理。图6中的第二分支又一次执行,但是这时候偶数步骤646到652以及步骤654或步骤632被执行。在步骤646,FIR滤波器52的系数在控制器54的监控下被更新。在步骤648,消除器活动因子被增加,标志branch2保持在“1”(步骤650)。在步骤654,无声处理器60尝试抑制任何路径32上的残留回声并将线路66上的流出无声信号设置为A1。
然后流程返回到步骤602以接收另一个样本。在步骤606的下一次执行中,执行数字滤波,FIR滤波器52的系数是在上次执行步骤646中更新的系数。
假设,作为以前假设的另一可选方案,窗w(m+3)包括无声段并且近端语音检测器56检测到的来自近端28的语音。在这种情况下,回声控制器54在线路64上接收双重通话信号,该信号促使执行图6中的分支3。在步骤662,自适应FIR滤波器52的系数被控制器54设置为0。如步骤668表示的,不会执行任何系数更新。在步骤670,线路66上“对流出信号的无声段检测”信号被设置为0。
进一步假设,如上面描述的那样对窗w(m+3)进行处理之后,在步骤602获得一个新样本,导致在步骤604中形成窗w(m+4)。进一步假设,窗w(m+4)被检测为不包含无声段。从在步骤662滤波器系数被设置为0的角度看,步骤606不进行任何数字滤波器乘法(只进行数字滤波器减法)。然后针对窗w(m+4)执行图6中的第四分支。在步骤664,确定以前的窗(上面描述的窗w(m+3))不包含全部无声段,使得步骤666被执行。在步骤666,存储在位置H-Last中的滤波器系数值被恢复成当前滤波器系数。这里不会根据流入信号对系数进行任何更新(步骤668)。并且线路66上的“关于流出信号的无声段检测”信号保持为0(步骤670)。这样,下一次在步骤606执行的数字滤波处理将涉及利用在步骤666存储的系数的乘法。
假设窗w(m+5)跟随在上面描述的w(m+4)之后,并且(象w(m+4)一样)没有检测到无声段并且不发生双重通话情况,由于标志“Past Silence”不为真(因为w(m+4)不是无声段),步骤668和670被执行。由于滤波器系数没有更新,(如步骤668反映的)。在步骤606的下一次数字滤波处理包括与步骤606的前一次执行中涉及的系数一样的滤波器系数(如在前一段描述的)。
在上面描述的情景中,直到近端语音检测器56再次检测到来自远端28的信号中不包含语音,并且既不存在当前无声段也不存在过去无声段时,由控制器54进行的滤波器系数调整才会发生。由无声段检测而引发的回声消除器20的抑制在第一分支执行过程中发生,这要求在最近获得的窗中检测到全部无声段。
结合图6中的步骤632,利用该领域技术人员已知的几种技术中的任何一种,可以确定插入噪声的大小。例如通过在发送器设定的连接启动的过程中传递信号,或通过在无声段的第一个窗中作出估计来进行。利用后者,噪声值检测可以作到自适应。
计算降低模式非延迟无声段实现图6A中给出了计算降低模式的另一可选或“非延迟无声段”实现中执行的步骤。如下面更详细解释的,图6A的实现与图6中实现的基本不同在于数字滤波处理步骤的位置,特殊标志的使用,以及数字滤波处理步骤完成时执行的取决于标志的动作。
图6A中的“非延迟无声段”实现使得无声作用段开始点的确定(图4中的406或图5中的506)比“延迟无声段”实现早发生一个样本。在图6中的“延迟无声段”实现中,当在时刻t获得的当前样本形成窗w(t)时,无声段检测步骤604被执行。然而,在图6中,数字滤波处理步骤606被根据在窗w(t-1)上的无声段检测而执行。即,另一个样本必须在数字滤波器考虑了窗w(t)的无声段检测结果之前获得。
在图6A的实现中,另一方面,当窗w(t)被检测到存在无声段时,步骤680的数字滤波处理被执行—在接收另一个样本之前—来考虑窗w(t)的无声段检测结果。这在确定无声作用段的开始时序时,获得了一个样本的提前(与图6相比)。
图6A中的步骤与图6中同样编号的步骤相同。与图6相比,在图6A中,实现步骤606被除去,取而代之的是步骤680,使得步骤680跟随在四个分支中每一个的后面。图6A还表示了各种“标志”步骤,这些步骤都被加以后缀字母AA@,并且它们的步骤编号对应于图6中不加后缀的步骤。
图6A中采用的标志为一个NOISE(噪声)标志;一个SUPPRESS(抑制)标志;一个UPDATE(更新)标志;和一个OUTGOING(流出)标志。当图6A的实现确定了噪声将要被插入时,标志NOISE被设置为A1。同样地,当任何残留回声要被抑制时,标志SUPPRESS被设置为A1。如果线路66上的流出无声检测信号被设置为A1,标志OUTGOING被设置为A1。当在步骤602。获得每个新样本时,标志NOISE和SUPPRESS被重置为A0,标志OUTGOING被重置为A1。如果滤波器系数要被更新,标志AUPDATE@被设置为A1。
这样,与图6中的实现相比,图6A中的实现不包括用来更新滤波器系数的步骤646,而是包括其中标志UPDATE被设置为A1的步骤646A。同样的,替代图6中的步骤628,645和668的是图6A中的标志设置步骤628A,645A,和668A。以同样的方式,图6A并不包括噪声插入步骤632和抑制残留回声步骤654,而是用步骤632A和654A来设置标志位NOISE和SUPPRESS。
图6A中的步骤680是数字滤波处理步骤,该步骤在标志设置步骤632A或654A或670A中的一个完成时执行。在滤波处理步骤680之后,步骤682,684,686和688中适当的一个被执行。在步骤682,如果标志NOISE被设置为A1,噪声被插入,并且流出无声段信号被设置为A1。在步骤684,如果标志SUPPRESS被设置为A1,无声处理器60抑制任何残留回声,并且流出无声段信号被设置为A1。在步骤686,如果标志UPDATE被设置为A1,FIR滤波器52的系数被更新。在步骤688,如果标志OUTGOING被设置为A0,流出无声段信号被设置为A0。
这样,在图6A的实现中,在数字滤波处理步骤680之后执行输出动作(例如,流出无声段信号的设置,噪声插入,任何残留回声的抑制)以及潜在的系数更新。然而,从数字滤波处理步骤680在下一个样本接收之前发生的角度看,相对于图6的延迟无声段实现,这里的无声段检测提前了一个样本。
干扰降低模式—延迟无声段实现在干扰降低模式中,尽管在无声段中保持其系数不变,自适应FIR滤波器52持续工作。在干扰降低模式中,无声处理器60抑制任何FIR滤波器52不能消除的残留回声。
图7给出了干扰降低模式的第一或延迟无声段实现中执行的步骤。图7的步骤700表示使用干扰降低模式的回声消除器操作的开始。在步骤700,会进行各种初始化。在启动之后(收敛之后),在步骤702,无声检测器50从流入通讯路径30上的信号x(t)中获得新的样本。
步骤704和706类似于图6中的604和606。特别是,在步骤704无声检测器50确定刚刚在时间t上通过移入新接收到的样本而形成的窗w(t)是否是一个无声窗。在步骤706,在适当的时间,数字滤波处理被执行,任何的数字滤波器处理再一次涉及修正滤波器系数来反映窗w(t-1)的接收。
在步骤710,回声控制器54检查线路64上来自近端语音检测器56的信号是否表示双重通话情况。如果没有检测到双重通话情况(即,近端28的语音),步骤720继续执行。如果在步骤710检测到了双重通话情况,则流程继续执行到步骤760。
如果在步骤710没有检测到双重通话情况,在步骤720控制器54检查步骤704的结果来确定最近在步骤720中获得的窗是否是一个无声窗(即无声段是否在整个检测窗上被检测到)。如果在步骤720检测到了无声段,控制器54并不更新自适应FIR滤波器52的系数(步骤728)并且执行步骤750。在步骤750,控制器54启动无声处理器60使得无声处理器60尝试抑制任何发生在路径32上信号中的回声。而且,在步骤750,控制器将其在线路66上的“对流出信号的无声段检测”信号设置为“1”。
如果在步骤720没有确定是否包括无声段,控制器54就更新自适应FIR滤波器52的系数(步骤742)并且增加消除器活动因子计数器(步骤744)。然后执行步骤750,使得例如,控制器54启动无声处理器60以便让无声处理器60尝试抑制任何还没有被消除的残留回声。
如果近端语音检测器56在步骤710检测到双重通话情况,那麽就不会对自适应FIR滤波器52的系数进行更新(步骤760)。控制器54将线路64上的语音检测信号设置为0(步骤770)。
根据图7可以明白,在步骤750或步骤770完成之后,流程返回到步骤702用来获取一个新样本并且在步骤704形成一个新窗并加以估计。
干扰降低模式非延迟无声段实现图7A中给出干扰降低模式的另一可选或非延迟无声段实现中执行的步骤。图7A的实现与图7的差别与存在于图6A和图6之间的差别一样,即数字滤波器处理步骤的重新定位,特殊标志的使用,数字滤波处理步骤完成之后采取的依赖于标志的动作。同样的,如同图6A中的“非延迟无声段”实现的情况一样,图7A中的“非延迟无声段”实现使得无声作用段开始的确定比延迟无声段实现早发生一个样本(图4中的406或图5中的506)。
图7A中与图7中类似的步骤被标以同样的号码。与图7中相比,在图7A中,实现步骤706已经被除去,取而代之的是加入步骤780。图7A也给出各种“标志”步骤,这些步骤被加上后缀字母AA@,并且与图7中未加后缀的步骤具有同样的步骤编号。图7A中采用的标志是一个SUPPRESS(抑制)标志,一个UPDATE(更新)标志和一个OUTGOING(流出)标志,其含义可以根据图6A的描述而明白。例如,当任何残留回声要被抑制时,标志SUPPRESS被设置为“1”。如果线路66上的流出无声段检测信号被设置为“1”,标志OUTGOING被设置为“1”。在步骤702获得每个新样本之后,标志SUPPRESS被重置为“0”,标志OUTGOING被重置为“1””。如果滤波器系数被更新,标志UPDATE被设置为“1”。
图7A中的步骤780是数字滤波处理步骤,该步骤在标志设置步骤750A和770A的任何一个完成之后执行。在步骤780的滤波处理之后,步骤781,884,786和788中适当的一个被执行。步骤781表示,如果标志UPDATE为0,FIR滤波器52的系数不会更新。在步骤784,如果标志SUPPRESS被设置为1,无声处理器60抑制任何残留回声,并且流出无声段信号被设置为1。在步骤786,如果标志UPDATE被设置为1,FIR滤波器52的系数被更新。在步骤788,如果标志OUTGOING已经被设置为0,那麽流出无声段信号被设置为0。
这样,在图7A的实现中,如图6A中的实现一样,输出动作(例如,流出无声段信号的设置,噪声插入,任何残留回声的抑制)以及潜在的系数更新都在数字滤波处理步骤780之后发生。然而,从数字滤波处理步骤780发生于下一个样本接收之前的角度看,无声段检测比图7的延迟无声段实现早一个样本。
应该注意的是,任何FIR自适应横向滤波器算法都可以由控制器54实现。本发明的回声消除器20因此可以广泛使用并且独立于所选择的自适应算法。
基本上,回声抑制是在回声返回路径(图1中路径32的流出信号e(t)中)中插入一个损耗(例如35dB或更多)或信号截断。如这里陈述的,无声处理器60抑制任何残留回声。
通过使用来自无声检测器50和近端语音检测器56的输出,控制器54控制自适应FIR滤波器52的功能。控制器54还相对于路径32上的流出数据在线路66上给出“关于流出信号的无声段检测”信号,这对于利用编-解码进行的基于数据包的语音通讯很有用,这降低了语音无声段过程中使用的带宽。这是因为,假设回声消除器20正确操作,近端语音检测器56应该为语音检测提供基础。当不发生双重通话时,线路66上的流出无声段检测信号将被抬高到值1,否则将被设置为0。当使用具有编-解码功能的回声消除器20时,编-解码器可以利用线路66上的无声段检测信号来保存无声段检测功能,或者证实其无声段检测结果。
图3表示本发明的回声消除器20’的特殊硬件实现。在回声消除器20’中,无声检测器,自适应FIR滤波器,消除控制器,近端语音检测器,减法器和无声处理器的功能都由信号处理器300来执行。
在图3的实现中,线路X,Y和OUT都是N*64比特/秒的线路,因为这种实现被以64K比特/秒的速率定向到普通的PCM语音信道。这意味着这些线路包括64K比特/秒的N个时间片(TS)。
除了处理器300,回声消除器20包括解复用器(DEMUX)310和312,以及时多路复用器(MUX)314。DEMUX 310被连接在流入通讯路径30和信号处理器300之间;DEMUX 312被连接在近端和信号处理器300之间用来接收信号Y。DEMUX310和312被用来从N*64K比特/秒的线路上提取单个的64K比特/秒的信号。MUX 314被连接在信号处理器300和流出通讯路径32之间来从各个64K比特/秒的线路重构N*64比特/秒的结构。
线路X,Y和OUT以及所有由此通过DEMUX得到的线路是同步的或者已经被同步(即,它们被同一时钟驱动)。此外,线路X,Y和OUT以及所有从中得到的线路都是对称的。在用户A和用户B之间的电话交谈例子中,如果从用户A到用户B的语音在线路X的时间片1上传送,那麽从用户B到用户A的语音会在线路Y上的时间片1中对称传送。
图3中由字母G表示的线路是64K比特/秒的线路。然而,在其它的实施方案中,线路G可以是依赖于信号处理器300的能力的N*64K比特/秒的线路(在这种情况中,MUX和DEMUX功能适当地不同)。此外,在另一个实施方案中,线路G可以是串行或并行(即,总线)线路。
如果线路X,Y和OUT有N=1(即,只有一个64K比特/秒的信道),那麽MUX和DEMUX功能并不存在,线路X,Y和OUT被直接连接给信号处理器300。另一方面,在另一个实施方案中,线路X和Y包括N条64K比特/秒的线路。
不同于64K比特/秒的基本语音比特可以被使用,例如用于压缩语音的较低比特率。在这种情况中,取代信号处理器300需要的普通PCM压缩功能的是,根据压缩语音的类型(即,传送服务),所需要的是更复杂的恢复和压缩技术。
图3表示了给出一个信号处理器300的实现,然而,应该理解的是,在另一个实现中,可以采用多个通用DSP设备。另外,在其它实现中,可以利用一个或多个集成电路(例如ASIC)来实现本发明回声消除器的功能。这些电路可以被设计成利用逻辑电路执行所需的数字滤波和算法控制应用的形式,或可以是嵌入DSP设备。
图8给出本发明回声消除器20‘’的另一种硬件实现,是一种特别用于基于包的语音的实现。在回声消除器20‘’中,无声检测器,自适应FIR滤波器,消除控制器,近端语音检测器,减法器和无声处理器的功能都由信号处理器800执行。在图8中,线路X,Y和OUT传送基于包的语音(例如ATM)。在图3实现中包含MUX或DEMUX的位置处,图8的实现具有终止块810,812和814。终止块的第一侧接收基于包的语音,其第二侧再生基于包的语音。线路H是一个接口,该接口可以是基于包的,或同步于N*64K比特/秒。
当图8的接口H是基于包的时候,终止块终止所需包的基于包的结构并将用户值(负荷)放在H接口上,保持基于包的方法(例如在采用ATM协议情况下的UTOPIA接口)。当图8的接口H是基于同步N*64K比特/秒的,终止块执行完全的包终止并在任何以前描述的结构中提取64K比特/秒的时间片,并获取图3中给出的MUX和DEMUX分量。
在图9中所示的总线或并行接口中所有的接口H是一致的(即,特别用于基于包的接口,例如ATM)。图9给出了信号处理器900,终止电路910,912,线路X,Y和OUT以及接口H。
现存回声消除器实现的一个问题是其巨大的计算复杂度,即使对于最简单的算法也是这样。本发明将无声段检测用做禁止回声消除器20对语音无声段(例如,只有噪声)做自我调整并禁止FIR滤波器52的方式使调整量呈现明显的降低。语音检测表示出,平均来说,说话者仅在40%的时间上主动地产生语音,包括音节间停顿。因此,在整个对话期间,使用本发明的回声消除器20会得到潜在的60%的复杂度降低。
该技术领域已知的NLMS算法具有直接形式方案的非最佳化版本的复杂度,如表1所示

在表1中,AM@表示滤波器抽头数,AL@表示将要处理的数据的长度。通过使用本发明的回声消除器20,变量L被减小60%,这样回声消除器整个的计算复杂度也降低同样的数量。因此,在5分钟的对话段上,只承担120s(即960000样本)而不是300s(即2400000样本)的处理。
而且,小的无声段检测窗长度使得可获得更大的降低,因为它们还检测到音节间的停顿。在连续语音的两秒时间段上的模拟证明长10ms的无声段窗将用于计算的样本数至少降低5%。将此值应用于整个对话过程,这使得剩余的40%语音处理得到5%的额外降低。在5分钟的对话期间,这意味着,在以前计算的最大增益上节省了额外的6秒的处理时间,或48000个样本。
本发明的无声段得到改进的回声消除器使得可以用信号处理设备在比迄今可行延迟更长的延迟上进行回声消除。另外,它能够同时处理多信道。在每一情况下,这很大降低了成本。
本发明的回声消除器适用于所有的回声消除设备,包括通常的编-解码和包协议例如ATM(异步传送模式)。来自控制器54、输出在线路66上的无声段检测信号对于使用无声段抑制以使带宽最佳化的语音传送来说是有用的。这种“关于流出信号的无声段检测”信号可以用来驱动包括(但不限于)基于包的通讯中的抑制机制,本发明的回声消除器所做的实际无声段计算仅依赖于流入信号的能量大小。这进一步简化了所需的基于窗的连续无声段操作。
虽然,参考优选实施方案,本发明已经被特别表示并描述,该领域的技术人员应该理解的是在不偏离本发明的思想和范围的情况下,可以在形式上和细节上做各种改变。例如,当不利用滤波器系数进行乘法运算时,可以用一个滤波器使能参数并置位以禁止FIR滤波器52,而不是仅仅将FIR滤波器52的系数设置为0并如图中所示那样利用过去的无声段状态。
而且,应该理解的是,这里给出的各种方法的步骤顺序可以被改变。例如,另一方案是步骤604的基于窗的无声段检测可以并行于步骤606来执行,而且同样的,步骤704可以并行于步骤706来执行。同样地,应该理解的是,可以在步骤604之前执行步骤606,并且可以在步骤704之前执行步骤706。
权利要求
1.一种回声消除方法包括对流入通讯路径上的信号采样从而在时刻t(m)获得一个样本;确定样本窗w(m)是否包含无声段,窗w(m)包括在时刻t(m)获得的样本和以前的样本,并且如果窗w(m)包括无声段,那麽在时刻t(m+1)接收样本之前,将回声消除器的自适应滤波器的系数设置为无声段检测值;否则,利用在时刻t(m)获得的样本来更新自适应滤波器的系数,在时刻t(m+1)上获得样本之后,使用更新后的自适应滤波器来产生回声估计值,并利用回声估计值来修正流出通讯路径上的信号。
2.权利要求1的方法,其特征在于如果窗w(m)包含无声段,确定所述流出通讯路径上无声作用段的时序。
3.权利要求2的方法,其特征在于如果窗w(m)包含无声段,在时刻t(m+1)上接收样本之前,执行下述步骤中的一个在无声作用段中,将预定的噪声施加到流出通讯路径上;抑制所述流出通讯路径上没有被回声消除器的滤波器抑制的任何残留回声。
4.权利要求1的方法,其特征在于系数被设置为0并保持为0。
5.权利要求1的方法,其特征在于系数固定在检测无声段之前的系数值。
6.权利要求1的方法,其特征在于窗w(m)的持续时间长于回声路径纯延迟并且,其中,在确定流出通讯路径上的无声作用段时序中在其整个持续期上检测到无声段的窗w(s)的第一示例的终端,无声作用段开始,并且当流入通讯路径上信号中的无声段停止时,无声作用段终止。
7.权利要求1的方法,其特征在于窗w(m)的持续时间短于回声路径纯延迟并且,其中,在确定流出通讯路径上的无声作用段时序中无声作用段开始于流出通讯路径上信号中的某一点,该点对应于在其持续期上检测到无声段的窗w(s)的第一示例的终点,并且无声作用段终止于预定的预测间隔,该间隔在流出通讯路径信号中的某一点之前,该点对应于流入通讯路径上信号中无声段的停止点。
8.权利要求5的方法,其特征在于预定的预测间隔与窗长度相关。
9.权利要求6的方法,其特征在于预定的预测间隔为窗长度除以一个常数后的值。
10.权利要求7的方法,其特征在于常数值范围为3到10。
11.权利要求5的方法,其特征在于窗长度小于回声路径纯延迟并大于0。
12.权利要求1的方法,其特征在于只要没有检测到双重通话情况,自适应滤波器的系数根据在时刻t(m+1)接收样本之前的无声段检测值而设置。
13.权利要求1的方法,其特征在于在整个流出通讯路径的无声作用段上,自适应滤波器的系数保持在无声检测值。
14.权利要求1的方法,其特征在于还包括在时刻t(m+1)上接收样本之前,利用自适应数字滤波器的无声检测值来执行数字滤波处理。
15.确定回声消除过程中无声作用段的方法,该方法包括确定在流入通讯路径上接收的样本窗包括无声段,该窗的时间持续期比回声路径纯延迟长;在其持续期内检测到无声段的第一窗的终点时刻,在流出通讯路径上开始无声作用段;并且在流入通讯路径上信号中的无声段停止时刻终止无声作用段。
16.确定回声消除过程中无声作用段的方法,该方法包括确定在流入通讯路径上接收的样本窗是否包括无声段,该窗的时间持续期比回声路径纯延迟长;在流出通讯路径上信号中的一点开始无声作用段,该点对应于在其持续期上检测到无声段的第一窗的终点;并且在一个预定预测间隔上终止无声作用段,该间隔位于流出通讯路径上信号中的某一点之前,该点对应于流入通讯路径上信号中无声段的停止点。
17.一种回声消除器包括确定样本窗w(m)中是否包括无声段的无声检测器,窗w(m)包括在时间t(m)上获得的从流入通讯路径上接收到的信号的样本;一个延迟自适应滤波器,其系数被用来产生回声估计值。利用回声估计值修正流出通讯路径上的信号的装置;一个控制器(1)如果在窗w(m)中没有检测到无声段,根据在时刻t(m)上获得的样本值来修正滤波器系数,并且在时间t(m+1)上接收样本之后使滤波器工作来产生回声估计值;并且(2)如果窗w(m)包含无声段,在时间t(m+1)接收样本之前,将滤波器的系数保持在无声检测值。
18.权利要求17的装置,其特征在于控制器确定流出通讯路径上无声作用段的时序。
19.权利要求17的装置,其特征在于还包括一个无声处理器,在控制器的监控下,在无声作用段该处理器将预定噪声施加到流出通讯路径上。
20.权利要求17的装置,其特征在于还包括一个无声处理器,它在控制器的监控下,抑制流出通讯路径上没有被滤波器抑制的任何残留回声。
21.权利要求17的装置,其特征在于控制器将系数设置并保持为0。
22.权利要求17的装置,其特征在于控制器将系数保持在无声段检测之前的系数值。
23.权利要求17的装置,其特征在于还包括一个双重通话检测器,该检测器被连接到流出通讯路径。
全文摘要
一种确定流入通讯路径(30)上的样本窗W(m)中是否包括无声段的回声消除方法和装置(20),其中窗W(m)包括在时间t(m)上获得的样本和以前的样本。如果窗W(m)包括无声段,那么在时间t(m+1)上接收样本之前,回声消除器(20)的自适应滤波器(52)的系数被设置为无声段检测值。如果窗W(m)不包括无声段,并且不存在双重通话情况,那么在时间t(m)上获得的样本被用来更新自适应滤波器的系数;经修正的自适应滤波器在时间t(m+1)上获得样本之后产生一个回声估计值,并且该估计值被用来修正流出通讯路径(32)上的信号。
文档编号H04M1/60GK1239608SQ97180228
公开日1999年12月22日 申请日期1997年9月29日 优先权日1996年10月1日
发明者K·埃尔马尔基 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1