本发明涉及一种音频技术领域,特别地涉及一种回声估计方法和装置。
背景技术:
在语音通话过程中,回声消除是信号处理中的一个重要方面。如图1所示,为一种典型的回声消除原理示意图。远端(farend)语音信号x(n)被扬声器(loudspeaker)播放后在近端(nearend)的声学环境中传播并被近端麦克风采集而形成回声信号y(n)。从远端信号x(n)到回声信号y(n)的过程可以建模成y(n)=h(n)*x(n),*表示卷积,h(n)表示通过建模表达的、由扬声器物理声学特性和近端环境声学响应组成的系统,也可称之为回声路径。麦克风采集到近端可能存在的语音和噪声信号v(n)(为方便说明,以下称为语音信号v(n)),因而近端信号d(n)=y(n) v(n)。回声消除要解决的问题是:从近端信号中消除回声信号y(n)。目前,所有的回声消除系统均采用自适应滤波器(adaptivefilter,简称af)学习回声路径h(n),从而得到近似回声路径
由于远端信号x(n)在进入扬声器之前缓存在设备上,它在变成回声信号y(n)之前需要经过在设备上的数据搬运、数字模拟转换、扬声器播放、和近端环境声学响应等过程,这一过程的时间根据设备和环境的变化是不同的,该过程所需要的时间t=tp ta1 ta2,其中,tp表示远端信号在设备上的处理导致的延迟,ta1表示扬声器声波按最短路径直接传播到麦克风导致的延迟,ta2表示扬声器声波按最短路径传播到麦克风和经过环境中的反射物反射一次或多次到达麦克风之间的时间差,所以从信号x(n)到信号y(n)的自适应滤波器系统长度是t。为了容忍一定程度的环境变化,用于学习h(n)的自适应滤波器的长度(ta1 ta2的变化)应该大于t,如记为t tr。自适应滤波器根据远端信号x(n)得到回声估计信号
技术实现要素:
针对现有技术中存在的技术问题,本发明提出了一种回声估计方法和装置,用以减少获取回声延迟时间的计算量,快速得到回声估计信号。
为了解决上述技术问题,本发明提供了一种回声估计方法,包括以下步骤:
在接收到远端信号x(n)时,检测是否已获取到回声延迟时间td;响应于没有获取到回声延迟时间,根据远端信号x(n)的下采样信号x’(n)计算回声延迟时间td;
基于所述回声延迟时间td延时所述远端信号x(n);以及
利用滤波模块对延时后远端信号x(n)进行滤波以得到回声估计信号
根据本发明的另一个方面,本发明提供了一种回声估计装置,其中,包括回声延迟时间检测模块、回声延迟时间计算模块、信号延时模块和滤波模块,其中,所述回声延迟时间检测模块经配置以在接收到远端信号x(n)时检测是否获取到回声延迟时间td;所述回声延迟时间计算模块与所述回声延迟时间检测模块相连接,经配置以在检测到没有回声延迟时间td时,根据远端信号x(n)的下采样信号x’(n)计算回声延迟时间td;所述信号延时模块经配置以在获得回声延迟时间td时,基于所述回声延迟时间td延时所述远端信号x(n);所述滤波模块与所述回声延迟时间检测模块和所述信号延时模块相连接,经配置以在获取到回声延迟时间td时,对延时后的远端信号x(n)进行滤波以得到回声估计信号
本发明在进行回声消除之前,计算从获取到远端信号到根据其产生回声信号
附图说明
下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
图1是现有技术中一种典型的回声消除原理示意图;
图2是根据本发明的一个实施例的回声估计方法流程图;
图3是根据本发明的一个实施例的在检测到系统中没有回声延迟时间td时的处理流程图;
图4是根据本发明的一个实施例的确定回声估计信号的方法流程图;
图5是根据本发明的一个实施例回声估计装置的原理框图;
图6是根据本发明的另一个实施例回声估计装置的原理框图;以及
图7是根据本发明的又一个实施例的回声估计装置的原理框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的详细描述中,可以参看作为本申请一部分用来说明本申请的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本申请的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本申请的技术方案。应当理解,还可以利用其它实施例或者对本申请的实施例进行结构、逻辑或者电性的改变。
为了减少自适应滤波器的运算量,本发明提出如下的方案:在回声时间延迟模型中,根据近端信号中是否出现了回声信号可以划分为两部分:t1和t2,其中在t1(t1=tp ta1)时段,远端信号处于未播放或在介质中传播阶段,并没有到达麦克风,此时麦克风采集信号中没有回声,相应地自适应滤波器的前t1长度应该为0,因此长度为t tr的自适应滤波器回声估计模型中的代表回声路径的参数
为了减少无价值的计算,估计回声延迟时间参数td(td<=t1=tp ta1)以缩短自适应滤波器回声路径参数
图2是根据本发明一个实施例的回声估计方法流程图。如图所示,所述方法包括:
步骤s10,接收远端信号x(n)。
步骤s11,检测是否已获取到回声延迟时间td。回声延迟时间td可以人工设置,也可以计算获得,一旦系统得到了回声延迟时间td,会存储在系统中。当接收到远端信号x(n)时,检测回声消除系统中是否已存储了回声延迟时间td。如果回声消除系统中没有存储回声延迟时间td,则执行步骤s12。如果回声消除系统中已经存储回声延迟时间td,则执行步骤s14。
步骤s12,对远端信号x(n)进行下采样,得到下采样信号x’(n)。例如,当回声消除系统中的音频采样率为16khz时,本实施例中的下采样时的音频采样率可以取1-4khz,如2khz或4khz,从而得到下采样信号x’(n)。
步骤s13,以下采样信号x’(n)为参考信号计算回声延迟时间td。计算时可以采用现有技术中的任何一种算法,例如:采用滑动相关法,其思想是一个信号x1是另一个信号x0的延迟,假设x1(n)=x0(n-m)延迟为m,通过不断尝试把x0(n)这个信号延迟k变成x0(n-k),当k=m时,x0(n-k)=x1(n),这时x0(n-k)和x1(n)最相似,相似性以相关系数来衡量,因此按从小到大的顺序改变k,当x1和x0的相关系数最大时对应的k即为延迟时间td。在另一种算法中,采用自适应滤波器
步骤s14,将所述远端信号x(n)延迟所述回声延迟时间td。
步骤s15,对延时后的所述远端信号x(n)进行滤波以得到回声估计信号
在以上实施例中,在进行回声消除之前,计算从获取到远端信号到基于其产生回声信号
在图2所示的实施例中,是以远端信号x(n)具有一定能量的声音信号为前提的处理流程,在实际应用中,当远端信号x(n)没有声音或其声音过小时,远端信号x(n)经过扬声器的播放不会产生回声或者是产生的回声可以忽略不计,因而也不必要计算回声延迟时间td。针对这种情景,本发明提供以下的处理方式:
参考图3,其为在检测到系统中没有回声延迟时间td时的处理流程图。与图2的区别在于,在下采样信号后,还包括步骤s22,计算下采样信号的能量值σx’。这是因为,如果接收到的远端信号x(n)没有声音或声音过小,在这种情况下,不应生成回声估计信号。因而,在本实施例中,通过计算远端信号的能量来确认远端信号是否有声音。
步骤s23,比较下采样信号的能量值σx’与能量阈值th的大小。如果下采样信号的能量值σx’大于或等于能量阈值th,其处理流程与图2中的流程相同,在此不再赘述。如果下采样信号的能量值σx’小于能量阈值th,则在步骤s27设置滤波参数,使回声估计信号
在本发明中,远端信号x(n)的状态是指远端信号x(n)的能量值是否大于或等于预置的能量阈值状态,如果远端信号x(n)的能量值大于或等于预置的能量阈值,则远端信号x(n)有声音,否则无声音或声音过小不足以形成回声。本发明通过系统内是否有回声延迟时间td和远端信号x(n)的具体状态来确定具体的回声估计信号是什么。
图4为根据本发明另一个实施例的确定回声估计信号的流程图。如图所示,所述方法包括:
步骤s30,检测是否已获取到回声延迟时间td,如果没有回声延迟时间td,执行步骤s31,如果有回声延迟时间td,执行步骤s34。
步骤s31,确定远端信号x(n)的状态是否有声音。具体地,计算下采样信号x’(n)的能量值σx’,并将其与能量阈值th进行比较,在能量值σx’大于或等于能量阈值th时,可确定远端信号x(n)有声音,此时执行步骤s32。在能量值σx’小于能量阈值th时,可确定远端信号x(n)没有声音,此时执行步骤s33。
步骤s32,设置滤波参数,使回声估计信号
步骤s33,设置滤波参数,使回声估计信号
步骤s34,计算远端信号x(n)能量值σx,用以确定当前远端信号x(n)的状态是否有声音。
步骤s35,比较所述能量值σx和能量阈值th的大小。在所述能量值σx大于或等于能量阈值th,说明远端信号x(n)有声音,且其能量足够引起回声,则在步骤s36,基于估计路径
根据本发明的另一个方面,本发明还提供了一种回声估计装置。图5为根据本发明一个实施例的回声估计装置原理框图。所述回声估计装置位于通信设备上。
回声估计装置包括回声延迟时间检测模块10、回声延迟时间计算模块12、信号延时模块14和滤波模块16。其中,通信设备将接收到远端信号x(n)存储到缓存中。所述回声延迟时间检测模块10在通信设备接收到远端信号x(n)时检测是否获取到回声延迟时间td。如果设备中存储了回声延迟时间td,将该回声延迟时间td发送给信号延时模块30。如果检测到设备中没有回声延迟时间td,则向回声延迟时间计算模块12发送指令。回声延迟时间计算模块12接收到该指令,根据远端信号x(n)计算回声延迟时间td。其中,如图6所示,回声延迟时间计算模块12包括下采样单元120和回声延迟时间计算单元122,下采样单元120对远端信号x(n)进行下采样,例如,以2khz的音频采样率获得下采样信号。回声延迟时间计算单元122根据所述下采样信号计算回声延迟时间td。回声延迟时间计算单元122计算得到回声延迟时间td后存储到设备的指定区域,同时将其发送给信号延时模块14。信号延时模块14或者接收回声延迟时间检测模块10发送的设备中存储的回声延迟时间td,或者接收回声延迟时间计算模块12计算后得到的回声延迟时间td,将远端信号x(n)延时回声延迟时间td后发送给滤波模块16。滤波模块16对远端信号x(n)滤波以得到回声估计信号
如果接收到的远端信号x(n)没有声音或声音过小,远端信号x(n)经过扬声器的播放不会产生回声或者是产生的回声可以忽略不计,在这种情况下,滤波模块16生成的回声估计信号应该为0,即没有回声估计信号生成。为了使滤波模块16在这种情况下实现其输出的回声估计信号为0,在另一个本实施例中,所述回声估计装置还包括声音检测模块18。如图7所示。声音检测模块18检测远端信号x(n)是否有声音,并根据远端信号x(n)是否有声音,滤波模块16调整滤波参数从而得到不同的回声估计信号。
在一个实施例中,如图7所示,当回声延迟时间检测模块10检测到设备内没有存储回声延迟时间td,需要由回声延迟时间计算模块20计算时,此时,声音检测模块18与下采样单元120相连接,计算下采样信号x’(n)的能量值σx’,根据该下采样信号的能量值σx’是否大于或等于能量阈值th来判断远端信号x(n)是否有声音。当下采样信号的能量值σx’大于或等于能量阈值th时,说明此时的远端信号x(n)有声音,向滤波模块16发送远端信号x(n)的状态有效信号。当下采样信号的能量值σx’小于能量阈值th时,说明此时的远端信号x(n)没有声音或声音不足以引起回声,则向滤波模块16发送远端信号x(n)的状态无效信号。
当回声延迟时间检测模块10检测到设备内已经存储了回声延迟时间td时,向声音检测模块18发送检测远端信号x(n)是否有声音的指令,声音检测模块18计算端信号x(n)能量值σx,在所述能量值σx大于或等于能量阈值th,说明远端信号x(n)有声音,且其能量足够引起回声,则向滤波模块16发送远端信号x(n)的状态有效信号。当所述能量值σx小于能量阈值th时,说明远端信号x(n)没有声音,或其能量不足够引起回声,则向滤波模块16发送远端信号x(n)的状态无效信号。
滤波模块16从回声延迟时间检测模块10处得到当前没有回声延迟时间td,当从声音检测模块18接收到远端信号x(n)为具有声音的有效信号时,由于此时还没有得到回声延迟时间td,应停止向远端输出信号e(n),即
当滤波模块16从回声延迟时间检测模块10处得到当前已存储了回声延迟时间td,且从声音检测模块18接收到远端信号x(n)的状态为有效信号时,基于估计路径
其中,所述的滤波模块16至少包括自适应滤波器af,其可以对远端信号x(n)进行自适应滤波,自适应滤波器af可根据是否已有回声延迟时间、远端信号x(n)是否为有效信号,调整其滤波参数,使其输出的回声估计信号为
本发明在计算回声延迟时间td时,对远端信号进行了下采样,降低了采样率,从而减小了回声估计信号时的运算量。例如,16khz采样率时1毫秒长度的语音对应16个采样点,2khz采样率时1毫秒语音对应2个采样点,因而采用2khz采样率计算回声延迟时间td的运算量是16khz采样率的1/8,从而可见节约了运算量,同时也提高了获得回声延迟时间td的速度。本发明在确定回声估计信号时,参考了系统内是否有回声延迟时间td、远端信号是否有效来输出恰当的回声估计信号,从而提高了回声消除系统的性能及响应速度,在有效、及时消除回声的同时,不损耗语音信息。
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。
1.一种回声估计方法,其中,包括:
在接收到远端信号x(n)时,检测是否已获取到回声延迟时间td;
响应于没有获取到回声延迟时间,根据远端信号x(n)的下采样信号x’(n)计算回声延迟时间td;
基于所述回声延迟时间td延时所述远端信号x(n);以及
利用滤波模块对延时后的远端信号x(n)进行滤波以得到回声估计信号
2.根据权利要求1所述的方法,其中,响应于没有获取到回声延迟时间,进一步包括:
对远端信号x(n)下采样得到下采样信号x’(n),其中,下采样率为远端信号x(n)采样率的1/16-1/4。
3.根据权利要求2所述的方法,其中,进一步包括:
计算下采样信号x’(n)的能量值σx’;
比较所述能量值σx’和能量阈值th的大小;以及
响应于所述能量值σx’大于或等于能量阈值th,计算并存储回声延迟时间td。
4.根据权利要求3所述的方法,其中,还进一步包括:在没有获取到回声延迟时间td时,响应于所述能量值σx’大于或等于能量阈值th,设置所述滤波模块的滤波参数,使回声估计信号为近端信号d(n)。
5.根据权利要求3所述的方法,其中,还进一步包括:在没有获取到回声延迟时间td时,响应于所述能量值σx’小于能量阈值th,设置所述滤波模块的滤波参数,使回声估计信号为0。
6.根据权利要求1所述的方法,其中,在检测已获得了回声延迟时间td时,进一步包括:
计算远端信号x(n)的能量值σx;
比较所述能量值σx和能量阈值th的大小;以及
响应于所述能量值σx大于或等于能量阈值th,利用滤波模块对延时后的远端信号x(n)进行滤波到回声估计信号
7.根据权利要求6所述的方法,其中,进一步包括:
响应于所述能量值σx小于能量阈值th,设置滤波参数,使回声估计信号为0。
8.一种回声估计装置,其中,包括:
回声延迟时间检测模块,经配置以在接收到远端信号x(n)时检测是否获取到回声延迟时间td;
回声延迟时间计算模块,与所述回声延迟时间检测模块相连接,经配置以在检测到没有回声延迟时间td时,根据远端信号x(n)的下采样信号x’(n)计算回声延迟时间td;
信号延时模块,经配置以在获得回声延迟时间td时,基于所述回声延迟时间td延时所述远端信号x(n);以及
滤波模块,其与所述回声延迟时间检测模块和所述信号延时模块相连接,经配置以在获取到回声延迟时间td时,对延时后的远端信号x(n)进行滤波以得到回声估计信号
9.根据权利要求8所述的装置,其中,所述回声延迟时间计算模块进一步包括:
下采样单元,经配置以在检测到没有回声延迟时间td时,对远端信号x(n)进行下采样以获得下采样信号x’(n),其中,下采样率为远端信号x(n)采样率的1/16-1/4;以及
回声延迟时间计算单元,经配置以根据所述下采样信号x’(n)计算回声延迟时间。
10.根据权利要求9所述的装置,其中,还进一步包括声音检测模块,其分别与所述下采样单元和所述回声延迟时间计算单元相连接,经配置用以检测下采样信号的能量值σx’是否大于或等于能量阈值th;
对应地,所述回声延迟时间计算单元响应所述能量值σx’大于或等于能量阈值th,计算并存储回声延迟时间td。
11.根据权利要求10所述的装置,其中,所述滤波模块经进一步配置,在没有获取到回声延迟时间td时,且所述下采样信号的能量值σx’大于或等于能量阈值th,设置滤波参数,使回声估计信号为近端信号d(n)。
12.根据权利要求10所述的装置,其中,所述滤波模块经进一步配置,在没有获取到回声延迟时间td时,且下采样信号的能量值σx’小于能量阈值th,设置滤波参数,使回声估计信号为0。
13.根据权利要求10所述的装置,其中,所述声音检测模块还进一步与回声延迟时间检测模块相连接,并接收远端信号x(n),经配置,所述声音检测模块在获取到回声延迟时间td时,检测远端信号x(n)的能量值σx是否大于或等于能量阈值th;
对应地,所述滤波模块经进一步配置,在获取到回声延迟时间td,且在远端信号x(n)的能量值σx大于或等于能量阈值th时,对延时后所述远端信号x(n)进行滤波得到回声估计信号
14.根据权利要求13所述的装置,其中,所述滤波模块经进一步配置,在获取到回声延迟时间td,且在远端信号x(n)的能量值σx小于能量阈值th时,设置滤波参数,使回声估计信号为0。
技术总结