低延迟的回声消除方法和***
技术领域
本发明涉及具有改进声学特性的音频通信***和方法,并且特别涉及包括改进音频回声消除***的会议***。
背景技术
在传统的会议***中,一个或多个麦克风捕获远端场点的声波,并且把所述声波转换成第一音频信号。所述第一音频信号被传送至近端场点,在近端场点电视机和放大器和扬声器通过把在远端场点产生的第一音频信号转换成声波来再现原始的声波。在近端场点所产生的声波部分由近端场点的音频捕获***捕获,转换成第二音频信号并传送回在所述远端场点的***。在一个场点捕获声波,传送到另一个场点,然后再传送回最初的场点,这样的问题被称为声学回声(acousticecho)。在最严重的情况下,当环路增益超过单位增益,声学回声可引起反馈声。声学回声还引起在两个场点的参会者听到他们自己的声音,使得通过会议***的谈话变得困难。
进一步参照图1来说明回声问题。来自远端的数字音频信号1101通过数模转换器(DAC)1301被转换到模拟域,在扩音机放大器1302放大,并进一步由扩音机1303转换成声音信号。直接信号1304和由墙壁/天花板等反射的反射信号1306都由麦克风1308获得,这样的获得是不期望的。麦克风还采集所期望的近端信号1307。这种麦克风信号在麦克风放大器1309中被放大,而且在模数转换器1310中被数字化,并输出这种回声未消的麦克风信号1202。
如果回声未消的麦克风信号被传送到远端,该远端场点将听到他们自己的回声,并且如果在该远端存在类似的***,甚至会发生啸叫/反馈。
解决这种问题的通常方法是在麦克风信号路径上添加声学回声消除器1203。这种回声消除器使用数字扩音机信号作为信号参考,并且估计所有的扩音机至麦克风路径1304/1306,从回声未消的麦克风信号1202减去这些估计,形成回声已消的麦克风信号1204,作为信号1102传送到远端。
根据现有技术,有两种主要的方法用于声学回声消除器。第一种是全带(full band)消除器,第二种是子带(sub band)消除器。这两种消除器通常都使用自适应FIR(有限脉冲响应)滤波器用于回声路径估计,但是要分别应用在全带域和子带域。
所使用的声学回声消除器通常包括几个附加的子块,如双谈话算法、非线形处理单元、舒适噪声生成等。为了简单明了,在这里不讨论这些子块,因这些块与本发明的范围不直接相关。这些块各不相同并且在现有技术的文献中有记载。对于本领域的技术人员来说,这些块的集成是简单易懂的。
图2示出了现有技术的全带声学回声消除器。来自远端的信号2101作为信号2102被传递到扩音机,并且还被用作扩音机参考信号2103。
通过自适应FIR滤波器2104来滤波扩音机参考信号2103。该自适应滤波器聚敛(converge)并跟踪房间的脉冲响应。对于初始聚敛,以及为调整房间中任何声学变化(门打开、人走动等),自适应FIR滤波器2104需要自适应。为此可使用许多不同的自适应算法,从廉价(低处理能力)的LMS(最小均方)到更复杂且更昂贵的算法如APA(仿射投影算法)和RLS(递归最小二乘)。但是,通常所有这些算法都使用FIR滤波器更新环路2108来适应。
自适应FIR滤波器输出反转的回声估计2105,并添加给回声未消的麦克风信号2106,计算出回声已消的麦克风信号2107。
在全带回声消除器中,对麦克风信号路径不增加算法延迟,因此,当需要短延迟的时候常常使用全带消除器。
但是,现有技术的全带消除器存在某些缺点。一个缺点是自适应滤波器跟踪声学环境变化的能力差/慢,尤其对于说话和其他自然(彩色)信号。另外的缺点是处理能力要求很高,如下面所解释的。
在大多数回声消除器中使用的声学***模型是FIR滤波器。在信号处理领域,FIR滤波器是众所周知的,因此这里不再讨论有关的基本概念。FIR滤波器近似房间中直接声音和大多数反射的传输功能。由于处理能力的要求,在扩音机播放信号之后,FIR滤波器并不试图用无限的时间来消除回声。而是在给定时间(所说的尾长,英文tail length)之后,接受这样的实事,回声不再被消除,而作为残留回声出现。
为了估计在完整尾长中的回声,要求的FIR滤波器长度是
L=Fs*taillength,
其中Fs是按Hz的采样频率,并且尾长(taillength)按秒来给定。
为计算滤波器的一个单采样输出所需要的乘法和加法的每个的数量等于滤波器长度,并且对每个采样应该计算一次滤波器的输出。因此,乘法和加法的总数是:
Fs*L=Fs*Fs*taillength=taillength*Fs2
尾长的典型值是0.25秒。对于使用8kHZ采样频率的***,乘法和加法数量是16,000,000,对16kHz是64,000,000,对48kHz是576,000,000。
对于滤波器更新算法也可执行类似的计算。最简单的算法LMS具有与FIR滤波器相同数量的加法和乘法,因此对于绝对最简单的全带消除器,加法和乘法的数量各等于:
2*taillength*Fs2.
更复杂的更新算法可改进FIR滤波器的跟踪能力,但在处理能力方面更加复杂。存在其算法复杂度与滤波器长度成比例的算法,但比例常数大大高于LMS算法,并且还有算法,其复杂度与滤波器长度的平方成比例。后一种情况导致对全带回声消除器的处理能力要求与Fs*(Fs*taillength)2成比例,这对于全带声学回声消除器来说是不现实的。
克服上述全带回声消除器的两个缺点的传统方法是引入子带处理。在图3中,示出这样一种方法,并在下面讨论。
来自远端的信号3101作为信号3102被传递给扩音机。使用分析滤波器3301把该信号划分成选定数量的子带。利用另外(但同样)的分析滤波器3302把回声未消的麦克风信号3106划分成子带。子带的选定数在下文中记为N。
对每个子带,扩音机分析滤波器输出子带参考信号3203,该信号经由子带FIR滤波器3204滤波,计算反转的子带回声估计3205。麦克风分析滤波器输出子带回声未消信号3206,并将其添加到所述反转的回声估计,输出子带回声已消的麦克风信号3207。该回声已消的麦克风信号用于自适应所述FIR滤波器,如子带FIR滤波器更新环路3208所示。
来自所有子带的回声已消的麦克风信号通过综合滤波器3303被一起合并到全带回声已消的麦克风信号3107。
使用这种方法,信号被划分成具有较小带宽的带,可采用较低的采样频率来表示,这在下面讨论。注意分析滤波器由滤波器组和取样器(decimator)组成,而综合滤波器由滤波器组和内插器(interpolator)组成。
根据Nyquist采样定理,全带信号的采样频率按下述公式计算:
Fsfullband=2*Ffullband
其中Ffullband是全带频率带。类似地,子带信号的采样频率可按如下计算:
Fssubband=2*Fsubband
其中Fsubband是子带频率带。而且,每个子带的频率带可如下表示:
Fsubband=Ffullband/N
另外,为了简化和降低滤波器组的处理能力要求,传统上使用过采样(oversampling)。这可通过引入常数用数学方式表示,这当然可包括添加到表达式中的其他常数。
根据上述的表达式,可得出子带信号将具有采样频率:
Fssubband=(K/N)*Fsfuiiband
其中K是过采样系数。K总是大于1,但通常较小,典型情况下小于2。
假定FIR滤波器采用与滤波器长度(如LMS)成比例的复杂度,用于滤波并且在一个子带中采用的要求处理能力可表示为:
ProsPowsubband=C1*taillength*Fssubband 2
ProsPoWsubband=C1*taillength*(K/N*Fsfullband)2
其中C1是比例常数。
因此,对所有N个子带,所要求的处理能力等于:
ProsPow=N*C1*taillength*(K/N*Fsfuiiband)2
ProsPow=C1*taillength*(K*Fsfullband)2/N
这样,对大的N,可显著降低滤波的处理能力要求。当然,必须增加分析与综合滤波器的开销,但对于高尾长和相当大的N,较之所述的节省,这种开销是很小的。
对于复杂度与滤波器长度的平方成比例的更复杂更新算法,较之全带情况,由于显著降低的滤波器长度,复杂度的降低还更大。
另外,经验表明,子带回声消除器具有改进的能力来适应声学环境的变化,尤其对于说话和其他自然(彩色)信号。
但是,一个主要缺点是引入了子带模式。分析和综合滤波器对麦克风信号增加了算法延迟。在某些应用中,这是不期望的,甚至是不可接受的。
总之,所介绍的两种方法的优点和缺点是互逆的。全带回声消除器有零算法延迟的优点,但具有较慢的自适应和高处理复杂度的缺点。子带回声消除器具有较快自适应和较低处理复杂度的优点,而具有算法延迟的缺点。
发明内容
本发明的一个目的是提供一种用于克服上述问题的音频回声消除的方法和***。
特别,本发明公开一种音频回声消除器,适于通过添加反转的回声估计信号(5105)根据添加了回声的麦克风信号(5106)提供回声削减输出信号(5107),所述添加了回声的麦克风信号(5106)由近端音频信号和源于远端音频信号(5101)的回声信号组成,所述反转的回声估计(5105)通过利用全带FIR滤波器(5104)过滤所述远端音频信号(5101)而生成,所述全带FIR滤波器(5104)包括一组全带滤波器抽头,所述音频回声消除器进一步包括:第一分析滤波器(5301),被构造成把远端音频信号(5101)划分成多个子带参考信号(5203);第二分析滤波器,被构造成把所述添加了回声的麦克风信号(5106)划分成多个添加子带回声的麦克风信号(5206);多个子带FIR滤波器,包括相应的子带滤波器抽头集,构造每个子带FIR滤波器用于滤波相关联的子带参考信号(5203),并输出反转的子带回声估计(5205)用来添加到相关联的添加了子带回声的麦克风信号(5206)以提供子带回声削减的反馈信号(5207),利用所述子带回声削减的反馈信号(5207)更新相关联的子带滤波器抽头集;以及第一综合滤波器,被构造成用于把来自所述的子带滤波器抽头集的相应的子带滤波器抽头合并到要传递至所述全带FIR滤波器(5104)的对应全带滤波器抽头。本发明还公开了相应的方法。
附图说明
为了使本发明更易于理解,下文中的讨论将参考附图,其中
图1是传统会议***设置的详细方框图,
图2是具有全带处理的声学回声消除子***的更近视图,
图3是利用子带处理实现的相应回声消除器子***的方框图,
图4是子带FIR滤波器的具有更近视图的子带***的方框图,
图5是本发明第一实施例的方框图,
图6是本发明第二实施例的方框图。
具体实施方式
在下面将通过描述优选实施例并参考附图来讨论本发明。但是,尽管通过特定的例子描述了特定实施例,本领域技术人员可理解,其他的应用和修改也在权利要求书所定义的本发明的范围之内。
本发明保持了子带回声消除器的快速自适应以及全带回声消除器的零延迟。它对处理能力要求的增加很少,较之传统的全带回声消除器,依然非常接近传统子带回声消除器的低处理能力要求,尤其当涉及复杂和精巧的自适应算法时。
为了描述本发明,参考图4详细说明图3的现有技术的***,图4示出了该***的详细内容。
如图3所示,来自远端的信号4101作为信号4102被传递给扩音机。利用分析滤波器4301把该信号划分成子带。利用另外(但相同)的分析滤波器4302把回声未消的麦克风信号4106划分成子带。
对每个子带,扩音机分析滤波器输出子带参考信号4203,经由子带FIR滤波器滤波,子带FIR滤波器由参考延迟线4211、一组FIR滤波器抽头4212和卷积单元(convolution unit)4213组成。所述卷积单元输出反转的子带回声估计4205。麦克风分析滤波器输出子带回声未消的信号4206,添加到所述反转的回声估计,输出子带回声已消的麦克风信号4207。该回声已消的麦克风信号被用于FIR滤波器的自适应,如子带FIR滤波器更新环路4208所示。
来自所有子带的回声已消的麦克风信号通过综合滤波器4303被一起合并至麦克风回声已消的全带信号4107。
图5示出了本发明的第一实施例。如图4的现有技术的***,来自远端的信号5101作为信号5102被传递给扩音机。使用分析滤波器5301把该信号划分成子带。使用另外(但相同)的分析滤波器5302把回声未消的麦克风信号划分成子带。
对每个子带,扩音机分析滤波器输出子带参考信号5203,经由子带FIR滤波器滤波。所述子带FIR滤波器由参考延迟线5211、一组FIR滤波器抽头5212和卷积单元5213组成。所述卷积单元输出反转的子带回声估计5205。麦克风分析滤波器输出子带回声未消的信号5206,将其添加到所述反转的回声估计,输出子带回声已消的麦克风信号5207。
如图4的现有技术的***,回声已消的麦克风信号被用于FIR滤波器的自适应,如子带FIR滤波器更新环路5208所示。
但是,与现有技术不同,子带回声已消的麦克风信号不通过综合滤波器。
而是FIR滤波器的各滤波器抽头值顺序通过FIR模型综合滤波器5304,以计算全带FIR滤波器复本5104。滤波器抽头多路器(multiplexer)5214控制这种顺序。首先,该综合滤波器被复位到全零状态,然后,把各子带FIR滤波器的滤波器抽头值馈送给所述综合滤波器,所有的子带以h0抽头开始,然后是h1抽头,等等,以所有子带的hn-1抽头结束。这里,n是所述各子带FIR滤波器中的抽头数量。在子带回声消除器中,常常对不同的子带使用不同数量的抽头,并且在这种情况下,对于没有所有更多抽头的子带,滤波器抽头多路器将输出零。
因此,由于综合滤波器的延迟和响应长度,某些具有全零的通(pass)要通过综合滤波器,计算这种响应的结尾。所需要的通数目依赖于综合滤波器的设计。
最后,把综合滤波器的输出复制到FIR滤波器复本5104。这样,全带FIR滤波器由根据相应子带的FIR抽头生成的FIR抽头组成。
关于如何以及何时经由综合滤波器传递子带FIR滤波器抽头,可能有几种方法。可自动执行所有顺序(在一个时间点),但这会不必要地增加处理能力。更优选的解决方案是按每个采样间隔经由综合滤波器传递一组抽头。这意味着仅在略大于所选择尾长的间隔更新全带滤波器,但这是无关紧要的,因子带滤波器是相当固定的。即使当声学响应改变,较之尾长/更新间隔,再自适应时间也将更高。
另外,来自远端的信号5101,与至扩音机的信号5102相同,通过全带FIR滤波器复本5104,形成反转的全带回声估计5105。这被添加到回声未消的麦克风信号5106,形成回声已消的全带麦克风信号5107。
使用这种方法,得到零算法延迟,因麦克风信号不暴露给信号处理。所有自适应在子带上执行,保持了子带回声消除器的优点。
但是,要进行两次全带回声滤波,一次在子带域(计算上开销小),一次在全带域(计算上开销大)。因此,尽管处理能力要求显著低于全带情况,但高于纯子带方法,因而期望进一步降低。
在本发明的第二实施例中,处理能力要求更低。该实施例在图6中示出。
同样,来自远端的信号6101作为信号6102被传递给扩音机。使用分析滤波器6301把该信号划分成子带。使用另外(但类似)的分析滤波器6302把回声未消的麦克风信号6106划分成子带。
对每个子带,扩音机分析滤波器输出子带参考信号6203,经由双子带FIR滤波器滤波,所述双子带FIR滤波器由参考延迟线6211、一组FIR滤波器抽头6212和双卷积单元6213组成。该卷积单元输出反转的子带早回声估计6205和反转的子带迟回声估计6209。所述子带早回声估计是子带回声估计的按时间的最早部分,由滤波器抽头h0-hm-1来确定,而所述子带迟回声估计是子带回声估计的按时间的最后部分,由滤波器抽头hm-hn来确定。麦克风分析滤波器输出子带回声未消的信号6206,该信号被添加到这两种反转的回声估计,输出子带回声已消的麦克风信号6207。
如同在图5中,回声已消的麦克风信号被用于FIR滤波器的自适应,如子带FIR滤波器更新环路6208所示。FIR滤波器的自适应与图5中的相同。
如同在图5中,滤波器抽头多路器6214和FIR模型综合滤波器6304计算全带响应滤波器复本6104。但是,仅使用估计的子带FIR滤波器响应的早部分来计算该复本,并且该全带复本仅代表该声学响应的早部分。因此,全带FIR滤波器复本6104较之图5中的复本短很多。全带参考信号6101通过该滤波器,输出反转的全带早回声估计6108。
另外,反转的子带迟回声估计通过迟回声综合滤波器6303,形成反转的全带迟回声估计6109。注意,是迟回声估计而不是回声降低信号(如在图4中)通过综合滤波器。为了平衡经过分析滤波器和综合滤波器的延迟,恰好在综合滤波器6303之后需要延迟调整6110。
全带早回声估计6104和全带迟回声估计6109相加,形成全带回声估计6105。该全带回声估计被添加到回声未消的麦克风信号6106,输出回声已消的麦克风信号。
基本上,第二实施例的方法使用全带FIR滤波器仅估计回声的最早部分,而使得由于某种原因延迟的回声的迟部分能够通过子带结构所引入的固有延迟来进行计算,无需引入麦克风信号路径上的任何算法延迟。
由于全带早响应滤波器复本较之图5中的复本短很多,因此降低了复杂度。
可用于早回声和迟回声的滤波器抽头的数量取决于分析和综合滤波器的设计。根据这种设计,在来自全带FIR滤波器和来自子带迟回声模型的回声估计贡献之间可能有某些重叠。作为一个例子,假定分析和综合滤波器引入40ms的算法延迟,而***需要去除250ms的尾长。通常,早回声全带FIR滤波器需要比40ms的延迟略长。由全带滤波器单独消除最早的40ms,由全带FIR滤波器和迟回声估计共同消除接下来的如10ms,而由迟回声估计单独消除最后的200ms。在该例子中,较之图5所示的实施例,全带滤波器处理能力要求降低80%。净改进没有这么大,因需要另外的综合滤波器。但是,较之第一实施例,对于全带滤波器的相同更新间隔,由于必须通过的抽头集较少,可降低FIR模型综合滤波器的计算复杂度。
本发明结合了全带回声消除器和子带回声消除器的优点,而没有引入缺点。
利用本发明,在麦克风路径上只有零算法延迟,这是全带消除器的情形,克服了子带消除器的固有延迟。
另外,自适应/收敛速度等于子带回声消除器,因自适应是在子带上执行,克服了全带回声消除器的低收敛速度,尤其对于说话和自然信号。
最后,本发明仅需要低计算复杂度,接近子带回声消除器,克服了全带消除器的高计算复杂度。