CN112687285A - 回声消除方法和装置 - Google Patents
回声消除方法和装置 Download PDFInfo
- Publication number
- CN112687285A CN112687285A CN202011526000.7A CN202011526000A CN112687285A CN 112687285 A CN112687285 A CN 112687285A CN 202011526000 A CN202011526000 A CN 202011526000A CN 112687285 A CN112687285 A CN 112687285A
- Authority
- CN
- China
- Prior art keywords
- filter
- band
- frequency domain
- signal
- current frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Telephone Function (AREA)
Abstract
本申请涉及一种回声消除方法和装置。其中,回声消除方法包括:获取当前帧频域子带信号;比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号,输出滤波器系数;失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布;根据全带滤波器系数特征分布的曲线极值点确定时延估计值。本申请能够有效减少滤波器阶数的负担,提高滤波器运用时候的鲁棒性和有效性,当存在外界干扰信号时,也能保证滤波器系数不会轻易发散,降低对时延估计值的偏差。
Description
技术领域
本申请涉及信号处理技术领域,特别是涉及一种回声消除方法和装置。
背景技术
随着移动互联网技术的不断发展,各种各样的智能产品的涌现,这些智能产品作为人们交流沟通时的重要媒介载体,如何克服通话过程中回声带来的通话影响一直以来都是重点研究的课题。
回声分为电子回声和声学回声。电子回声的产生原因较复杂,实际通信效果的影响远小于声学回声,目前业界研究的重点是声学回声消除。回声消除的原理为:在移动端通过网络传输获取的语音信号经过解码后得到的信号称为远端信号,作为自适应滤波器的输入;通过麦克风拾取的音频信号称为近端信号,作为自适应滤波器的期望信号,然后将近端信号与滤波后的远端信号之差作为反馈信号对滤波器参数进行动态调整,从而实现回声消除。
由于远端信号在经过扬声器播放、空气传播、麦克风采集等过程中,不可避免会产生时延,称为回声时延。作为影响声学回声消除效果的关键技术,准确的时延估计可以大大的优化回声的消除效果,通过对远、近端信号进行时延估计和对齐,回声的估计和消除工作才能进一步完成。在实现过程中,发明人发现传统技术中至少存在如下问题:传统回声消除方法,存在复杂度高且回声消除效果差的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效消除回声的回声消除方法和装置。
为了实现上述目的,一方面,本发明实施例提供了一种回声消除方法,包括:
获取当前帧频域子带信号;当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号;
比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号,输出滤波器系数;失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;
抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布;
根据全带滤波器系数特征分布的曲线极值点确定时延估计值;时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
在其中一个实施例中,获取当前帧频域子带信号的步骤包括:
获取通话中的远端信号和近端信号;
分别对远端信号和近端信号进行分帧加窗处理后滤波,得到当前帧远端频域子带信号和当前帧近端频域子带信号。
在其中一个实施例中,还包括步骤:
基于滤波器系数和当前帧远端频域子带信号,得到回声估计值;
将回声估计值与当前帧近端频域子带信号的差,确定为差异度;
对差异度和当前帧近端频域子带信号进行范数处理,得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
在其中一个实施例中,
对差异度和当前帧近端频域子带信号进行范数处理的步骤中,基于以下公式得到失调度:
其中,M表示失调度;‖·‖2表示矩阵范数;e(n)表示差异度;De(n)表示当前帧近端频域子带信号。
在其中一个实施例中,滤波器的类型包括RLS滤波器和NLMS滤波器;
比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号的步骤,包括:
在比较的结果为失调度小于预设阈值的情况下,选取NLMS滤波器处理当前帧频域子带信号;
在比较的结果为失调度大于预设阈值的情况下,选取RLS滤波器处理当前帧频域子带信号。
在其中一个实施例中,
在当前帧频域子带信号为首帧频域子带信号的情况下,选取RLS滤波器处理首帧频域子带信号。
在其中一个实施例中,抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布的步骤,包括:
根据转换频率与全频带的占比,对滤波器系数进行有效数据的提取及降采样处理,得到全带滤波器系数特征分布。
在其中一个实施例中,曲线极值点为全带滤波器系数特征分布的峰值点;时延估计值为峰值点的横坐标;
根据全带滤波器系数特征分布的曲线极值点确定时延估计值的步骤,包括:
基于输入数据点数和转换频率与全频带的占比,将全带滤波器系数特征分布的点数连续分成若干块,并基于能量最大的块获取定时延估计值;输入数据点数为根据数据采样率和采样后数据分帧时一帧数据的时间得到。
一种回声消除装置,包括:
频域信号获取模块,用于获取当前帧频域子带信号;当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号;
滤波模块,用于比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号,输出滤波器系数;失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;
子带全带转换模块,用于抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布;
时延模块,用于根据全带滤波器系数特征分布的曲线极值点确定时延估计值;时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
本申请首先获取近端信号和远端信号的频域子带信号,根据失调度和预设阈值的比较结果,将频域子带信号输入到相应的滤波器中以输出滤波器系数,其中,可根据当前帧滤波器计算出的失调度进行下一帧输入滤波器类型选择;进一步的,根据当前帧滤波器系数,将该系数转换到全带,寻找极值点,进而确认当前帧近端信号所对应远端信号的时延点数,最后通过调整提前缓存的远端信号,便可得到对齐后的远端和近端信号,进行后面回声消除的操作。本申请能够有效减少滤波器阶数的负担,从而提高滤波器运用时候的鲁棒性和有效性,当存在外界干扰信号时,本申请也能保证滤波器系数不会轻易发散,降低对时延估计值的偏差。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中回声消除方法的应用环境图;
图2为一个实施例中回声消除方法的流程示意图;
图3为另一个实施例中回声消除方法的流程示意图;
图4为一个实施例中回声消除装置的结构框图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
空间关系术语例如“在...下”、“在...下面”、“下面的”、“在...之下”、“在...之上”、“上面的”等,在这里可以用于描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,描述为“在其它元件下面”或“在其之下”或“在其下”元件或特征将取向为在其它元件或特征“上”。因此,示例性术语“在...下面”和“在...下”可包括上和下两个取向。此外,器件也可以包括另外地取向(譬如,旋转90度或其它取向),并且在此使用的空间描述语相应地被解释。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
作为回声消除的前提,能否准确估计出时延大小格外重要。在传统的回声消除技术中,在做自适应滤波前,会通过应用时延估计算法对近端和远端信号进行对其操作。常见的时延估计算法包括:基于互相关的时延估计算法,即通过近端信号和远端信号的互相关函数峰值来计算回声时延,该方法的缺点是计算复杂度大且很难实现实时动态的时延追踪;另外一种是利用固定步长的单一自适应滤波器进行时延估计的算法,该算法虽然在跟踪动态时延性能上有所提升,但遇到近端双讲情况或者时延变化强烈时,起滤波器系数的发散会强烈的引起估计结果偏差增大。这些不足都会使得最终回声消除的结果变差,严重影响主观使用者的感受。
以上,传统技术至少存在如下弊端:①基于互相关的时延算法,计算复杂度高;②算法过程长,无法实现时延动态变化的实时跟踪;③固定步长的单一自适应滤波器下难以适应环境的突变带来的影响。
本申请提出了一种回声消除方法,采用基于子带的双滤波器混合的时延估计。首先对接收到的近端和远端信号进行分帧加窗进行子带分解,得到频域子带信号,然后,将得到的频域子带信号输入到滤波器,根据当前帧滤波器计算出的失调度进行下一帧输入滤波器类型选择;时延的计算可以根据当前帧滤波器系数,将该系数转换到全带,寻找极值点,以确认当前帧近端信号所对应远端信号的时延点数,最后通过调整提前缓存的远端信号,便可得到对齐后的远端和近端信号,进行后面回声消除的操作。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的回声消除方法,可以应用于如图1所示的应用环境中。其中,可以分别获取通话中麦克风和扬声器端的近端信号De(t)和远端信号Ref(t),对获取的远端信号Ref(t)和近端信号De(t)分别进行分帧加窗操作,然后分别对每帧信号运用相应滤波器组转换到子带,可以得到子带的远端信号Ref(n)和近端信号De(n);图1中,Σ表示求和,+表示麦克风采集得到信号,De(n)取正;-表示反馈的信号,回声估计值rr(n)取负,差异度e(n)=De(n)-rr(n)。
需要说明的是,图1中全带--子带转换单元、时延估计单元以及Ref(n)信号缓存单元等模块,可全部或部分通过软件、硬件及其组合来实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个实施例中,如图2所示,提供了一种回声消除方法,以该方法应用于图1为例进行说明,包括以下步骤:
步骤202,获取当前帧频域子带信号;
其中,当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号。
具体地,可以对接收到的近端信号和远端信号进行分帧加窗进行子带分解,进而得到频域子带信号。本申请提出利用子带信号特征分布集中特性,将全带信号转换到子带,可有效减少滤波器阶数,以及减少数据的运算量,以应对滤波器步长变长时候极易因近端环境变化而导致滤波器发散问题;
在一些实施例中,获取当前帧频域子带信号的步骤可以包括:
获取通话中的远端信号和近端信号;
分别对远端信号和近端信号进行分帧加窗处理后滤波,得到当前帧远端频域子带信号和当前帧近端频域子带信号。
具体而言,如图1所示,可以分别获取通话中麦克风和扬声器端的近端信号De(t)和远端信号Ref(t),对获取的远端信号Ref(t)和近端信号De(t)分别进行分帧加窗操作,然后可以分别对每帧信号运用DFT(Discrete Fourier Transform,离散傅里叶变换)滤波器组转换到子带,可以得到当前帧远端频域子带信号Ref(n)和当前帧近端频域子带信号De(n)。
本申请通过子带分解技术,将近端和远端接收到的信号转换到子带上进行滤波,可有效减少滤波器阶数的负担,从而提高滤波器运用时候的鲁棒性和有效性。采用滤波器组将全带信号转换到子带进行处理,可以有效较少对应特性频带的特征值范围,以此来减少子带信号滤波时采取滤波器的长度,从而解决由于滤波器的阶数太长影响其系数的收敛速度和发散等问题。
需要说明的是,对获取的远端信号Ref(t)和近端信号De(t)分别进行分帧加窗操作后,也可以采用其它类型的滤波器组进行处理,上述DFT滤波器组仅为示例性说明。
步骤204,比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号,输出滤波器系数;
其中,失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数。即本申请可以根据滤波器处理当前帧频域子带信号得出的失调度,进行下一帧输入滤波器类型选择。该失调度可以用来衡量滤波器收敛速度和稳态失调程度,例如,失调度可以是对差异度和当前帧近端频域子带信号进行范数处理得到,当估计得到的子带远端信号的特征越接近真实值,则失调度就越小。而预设阈值可以按照需求取值,在一个示例中,预设阈值可以取-40dB。
具体而言,本申请涉及到的滤波器系数w(n)可以用于调节远端信号和声学回声的偏差,即w(n)*ref(n)=rr(n),w(n)使得rr(n)与声学回声r(n)尽可能接近,w(n)可以用于调节回声估计值rr(n)。进一步的,本申请将得到的当前帧频域子带信号输入到滤波器,进而可以根据当前帧滤波器计算出的失调度进行下一帧输入滤波器类型选择。即本申请采用自适应滤波器来代替互相关计算,以减少时延估计算法的复杂度和增加算法对时延动态变化的跟踪,能够有效解决互相关时延计算算法的时间复杂度偏高问题。
基于前述示例,本申请将输入全带信号通过滤波器组转换到子带,以使信号特征分布范围减少,对应每个子带的自适应滤波器阶次比全频带自适应滤波器阶次低了很多,使得自适应算法的收敛性容易保证,且计算复杂度大大降低,收敛速度加快,进而本申请解决了自适应滤波器长度的增加,会导致的诸如收敛慢和系数发散等问题。
在其中一个实施例中,还可以包括步骤:
基于滤波器系数和当前帧远端频域子带信号,得到回声估计值;
将回声估计值与当前帧近端频域子带信号的差,确定为差异度;
对差异度和当前帧近端频域子带信号进行范数处理,得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
具体地,当前帧远端频域子带信号和当前帧近端频域子带信号分别通过两路信号输入到相应的滤波器中,获得近端子带信号中近似包含的远端子带信号的特征(即回声估计值)rr(n),同时,也可获得两者之间的差异度e(n)=De(n)-rr(n);然后,可以对差异度e(n)和当前帧近端频域子带信号De(n)进行范数处理,得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
时延估计的准确性直接影响到后面回声是否消除的干净,同时,本申请还考虑了实时性;通过提出用自适应滤波器法来增加时延估计的实时性,本申请能够避免互相关算法计算复杂度高等缺点。
在其中一个实施例中,对差异度和当前帧近端频域子带信号进行范数处理的步骤中,可以基于以下公式得到失调度:
其中,M表示失调度;‖·‖2表示矩阵范数;e(n)表示差异度;De(n)表示当前帧近端频域子带信号。
具体而言,‖·‖2可以表示范数算子,该范数算子可以是矩阵范数,将一定的矩阵空间建立为赋范向量空间时为矩阵的范数;本申请可以根据前述步骤中得到的差异度e(n)、以及当前帧近端频域子带信号De(n),获得预设的参数失调度M,M可以用来衡量滤波器收敛速度和稳态失调程度。进而可以通过判断失调度M与预设阈值的大小关系,选择滤波器的类型,并迭代更新滤波器系数至系数收敛。
在其中一个实施例中,滤波器的类型可以包括RLS滤波器和NLMS滤波器;
比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号的步骤,可以包括:
在比较的结果为失调度小于预设阈值的情况下,选取NLMS滤波器处理当前帧频域子带信号;
在比较的结果为失调度大于预设阈值的情况下,选取RLS滤波器处理当前帧频域子带信号。
具体而言,本申请涉及到两种滤波器相关的滤波器系数;本申请将得到的当前帧频域子带信号输入到滤波器,该滤波器的类型可以为NLMS(Normalized Least MeanSquare,基于归一化的最小均方)更新算法的滤波器,或者RLS(Recursive least squares,基于最小二乘)更新算法的滤波器,进而本申请可以根据当前帧滤波器计算出的NMSE(Normalized Mean Square Error,归一化均方误差)进行下一帧输入滤波器类型选择。
本申请提出根据每帧归一化均方误差阈值来混合使用不同种滤波器,可以避免滤波器系数发散带来后面的时延估计不准的问题,进而解决单一自适应滤波器在面对近端干扰突变时易引起系数发散问题。当自适应滤波器的步长固定时,针对环境的突变,系数不能很好的跟踪变化,可以根据计算出的归一化均方误差进行不同滤波器之间进行切换,增加收敛速度,以使得到的滤波器系数准确。
此外,本申请利双滤波器混合方式加快滤波器开始阶段收敛速度,以及克服在双讲时步长较大情况下滤波器易发散的缺点,增加算法的鲁棒性。其中,双讲时,指麦克风同时采集到远端信号和近端信号,步长是指滤波器系数的u;同时,双滤波器混合的使用,当存在外界干扰信号时,也能保证滤波器系数不会轻易发散,降低对时延估计值的偏差。
以预设阈值Thr为40dB为例,当失调度M高于预设阈值Thr时,表明滤波器系数处于发散非稳态状态,维持RLS(递归最小二乘)滤波器加快滤波器系数的收敛,避免对后面时延估计造成影响。当失调度M低于预设阈值Thr时,表明滤波器系数处于收敛状态,此时应切换到NLMS(归一化最小均方)滤波器。当估计得到的子带远端信号的特征越接近真实值,则算法失调度就越小,即M值越小。
在其中一个实施例中,在当前帧频域子带信号为首帧频域子带信号的情况下,选取RLS滤波器处理首帧频域子带信号。
具体而言,在当前帧频域子带信号为首帧频域子带信号时,也即尚未计算出失调度的情况下,本申请采用RLS滤波器处理输入的频域子带信号,进而得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
其中,将当前帧远端频域子带信号Ref(n)和当前帧近端频域子带信号De(n)分别通过两路信号输入到滤波器中,而初始状态下,滤波器可以选择RLS,进而通过判断失调度M与预设阈值的大小关系,选择滤波器的类型,并迭代更新滤波器系数至系数收敛。
步骤206,抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布。
具体而言,在完成前面步骤基础上,本申请提出将获得的滤波器系数w(n)从子带转换回到全带,进而可以根据当前帧滤波器系数计算时延。
在其中一个实施例中,抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布的步骤,可以包括:
根据转换频率与全频带的占比,对滤波器系数进行有效数据的提取及降采样处理,得到全带滤波器系数特征分布。
具体而言,可以依据人声频率分布特性,只选取特定频段的音频信号,计算所选取转换频率的与全频带的占比factor,通过该占比factor实现子带转换到全带特征分布。
不同于传统将子带所有数据转到全带上,本申请依据选取转换频率的占比factor,将滤波器系数w(n)中有效数据的部分(人声部分)提取出来,并利用升降采样频谱特性,通过降采样的方式,减少fft(Fast Fourier Transform,快速傅立叶变换)/ifft(Inverse Fast Fourier Transform,快速反向傅里叶变换)的点数,得到全频带下抽取的全带系数特征分布,从而加速算法运算速度。
步骤208,根据全带滤波器系数特征分布的曲线极值点确定时延估计值;时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
具体而言,本申请根据全带滤波器系数特征分布曲线极值点确定时延估计值;根据当前帧滤波器系数计算时延,将该滤波器系数转换到全带,寻找极值点,而极值点的横坐标可以是当前帧近端信号所对应远端信号的时延点数,最后通过调整提前缓存的远端信号,便可得到对齐后的远端和近端信号,进行后面回声消除的操作。
在其中一个实施例中,极值点可以为全带滤波器系数特征分布的峰值点;时延估计值可以为峰值点的横坐标;
根据全带滤波器系数特征分布的曲线极值点确定时延估计值的步骤,可以包括:
基于输入数据点数和转换频率与全频带的占比,将全带滤波器系数特征分布的点数连续分成若干块,并基于能量最大的块获取定时延估计值;输入数据点数为根据数据采样率和采样后数据分帧时一帧数据的时间得到。
具体而言,将滤波器系数转换到全带,根据全带系数特征分布的峰值点计算时延,时延估计值可以为峰值点的横坐标。进一步的,时延估计值可以为能量最大块所对应的序号。
例如,根据输入数据点数N和占比factor,将抽取的全带滤波器系数特征分布点数NN连续分成若干块MN块,其中,MN=NN/(N*factor),选取能量最大块对应的块作为当前计算出时延估计值idx,其中,0<idx<MN,idx为整数,根据时延值调整远端信号Ref(n),并缓存至远端信号缓存单元,最后通过自适应滤波器更新滤波器系数,使得进入后面回声消除部分滤波器的近端和远端信号在时域上处于对齐状态。而回声消除滤波器是为了消除近端信号中回声分量,得到干净的语音信号。
其中,对于输入数据点数N,N=fs*T,fs是数据的采样率,T是对采样后数据分帧时一帧数据的时间。而如图1所示,当近端和远端信号在时域上处于对齐状态时,输出的近端信号就是回声消除后的近端信号y(n)。
综上,麦克风分别采集近端信号和远端信号,分帧加窗处理以及时频域变换处理,分别经过全带-子带转换模块,得到时延估计值,输入至Ref(n)信号缓存单元,时延估计值和Ref(n)信号值通过自适应滤波器处理,输出回声估计值rr(n),与近端信号De(n)比较,得到差异度e(n),通过所述的差异度迭代更新滤波器系数至收敛,最终输出回声消除后的近端信号y(n)。
上述回声消除方法,能够有效减少滤波器阶数的负担,从而提高滤波器运用时候的鲁棒性和有效性,当存在外界干扰信号时,本申请也能保证滤波器系数不会轻易发散,降低对时延估计值的偏差。
为了进一步说明本申请的方案,下面结合一个具体实例予以说明。如图3所示,提供了一种回声消除方法,以该方法应用于图1为例进行说明,包括以下步骤:
步骤S1,首先分别获取通话中麦克风和扬声器端的远端信号Ref(t)和近端信号De(t),对获取的远端信号和近端信号分别进行分帧加窗操作,然后分别对每帧信号运用DFT(离散傅里叶变换)滤波器组转换到子带,得到子带远端信号Ref(n)和子带近端信号De(n)。
步骤S2,将子带远端信号Ref(n)和子带近端信号De(n),分别通过两路信号输入到RLS(递归最小二乘)滤波器中,获得近端子带信号中近似包含的远端子带信号的特征rr(n),同时也可获得两者之间的差异度e(n)=De(n)-rr(n);其中,初始状态下,滤波器可以选择RLS,通过判断失调度M与预设阈值的大小关系,选择滤波器的类型,并迭代更新滤波器系数至系数收敛。
步骤S3,根据步骤S2中计算得到的差异度e(n)、以及原始近端子带信号De(n),预设参数失调度M,可以用来衡量滤波器收敛速度和稳态失调程度;M可以表示为:
上述式子中,‖·‖2表示范数算子,该范数算子是矩阵范数,将一定的矩阵空间建立为赋范向量空间时为矩阵的范数;
当失调度M高于预设阈值Thr(Thr通常取-40dB)时,表明滤波器系数处于发散非稳态状态,维持RLS滤波器加快滤波器系数的收敛,避免对后面时延估计造成影响。
当失调度M低于预设阈值Thr(Thr通常取-40dB)时,表明滤波器系数处于收敛状态,此时应切换到NLMS滤波器。
当估计得到的子带远端信号的特征越接近真实值,则算法失调度就越大,即M值越大。
步骤S4,在完成前面步骤基础上,将获得的滤波器系数w(n)从子带转换回到全带,可依据人声频率分布特性,只选取特定频段的音频信号,计算所选取转换频率的与全频带的占比factor,通过所述占比factor实现子带转换到全带;
具体的,本申请依据选取转换频率的占比factor,将w(n)中有效数据的部分(人声部分)提取出来,并利用升降采样频谱特性,通过降采样的方式,减少fft/ifft的点数,得到全频带下抽取的全带系数特征分布,从而加速算法运算速度。
步骤S5,根据输入数据点数N和占比factor,将抽取的全带滤波器系数特征分布点数NN连续分成若干块MN块,其中,MN=NN/(N*factor),选取能量最大块对应的块作为当前计算出时延估计值idx,其中,0<idx<MN,idx为整数,根据时延值调整远端信号Ref(n),并缓存至远端信号缓存单元,最后通过自适应滤波器更新滤波器系数,使得进入后面回声消除部分滤波器的近端和远端信号在时域上处于对齐状态。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种回声消除装置,包括:
频域信号获取模块410,用于获取当前帧频域子带信号;当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号;
滤波模块420,用于比较失调度与预设阈值的大小,根据比较的结果选取相应类型的滤波器处理当前帧频域子带信号,输出滤波器系数;失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;
子带全带转换模块430,用于抽取滤波器系数中的有效子带系数,并将有效子带系数转换为全带滤波器系数特征分布;
时延模块440,用于根据全带滤波器系数特征分布的曲线极值点确定时延估计值;时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
在其中一个实施例中,频域信号获取模块,用于获取通话中的远端信号和近端信号;以及分别对远端信号和近端信号进行分帧加窗处理后滤波,得到当前帧远端频域子带信号和当前帧近端频域子带信号。
在其中一个实施例中,还包括失调度获取模块,用于基于滤波器系数和当前帧远端频域子带信号,得到回声估计值;将回声估计值与当前帧近端频域子带信号的差,确定为差异度;以及对差异度和当前帧近端频域子带信号进行范数处理,得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
在其中一个实施例中,失调度获取模块,用于基于以下公式得到失调度:
其中,M表示失调度;‖·‖2表示矩阵范数;e(n)表示差异度;De(n)表示当前帧近端频域子带信号。
在其中一个实施例中,滤波器的类型包括RLS滤波器和NLMS滤波器;
滤波模块,用于在比较的结果为失调度小于预设阈值的情况下,选取NLMS滤波器处理当前帧频域子带信号;以及在比较的结果为失调度大于预设阈值的情况下,选取RLS滤波器处理当前帧频域子带信号。
在其中一个实施例中,滤波模块,用于在当前帧频域子带信号为首帧频域子带信号的情况下,选取RLS滤波器处理首帧频域子带信号。
在其中一个实施例中,子带全带转换模块,用于根据转换频率与全频带的占比,对滤波器系数进行有效数据的提取及降采样处理,得到全带滤波器系数特征分布。
在其中一个实施例中,极值点为全带滤波器系数特征分布的峰值点;时延估计值为峰值点的横坐标;时延模块,用于基于输入数据点数和转换频率与全频带的占比,将全带滤波器系数特征分布的点数连续分成若干块,并基于能量最大的块获取定时延估计值;输入数据点数为根据数据采样率和采样后数据分帧时一帧数据的时间得到。
关于回声消除装置的具体限定可以参见上文中对于回声消除方法的限定,在此不再赘述。上述回声消除装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述回声消除方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种回声消除方法,其特征在于,包括:
获取当前帧频域子带信号;所述当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号;
比较失调度与预设阈值的大小,根据所述比较的结果选取相应类型的滤波器处理所述当前帧频域子带信号,输出滤波器系数;所述失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;
抽取所述滤波器系数中的有效子带系数,并将所述有效子带系数转换为全带滤波器系数特征分布;
根据所述全带滤波器系数特征分布的曲线极值点确定时延估计值;所述时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
2.根据权利要求1所述的回声消除方法,其特征在于,获取当前帧频域子带信号的步骤包括:
获取通话中的所述远端信号和所述近端信号;
分别对所述远端信号和所述近端信号进行分帧加窗处理后滤波,得到所述当前帧远端频域子带信号和所述当前帧近端频域子带信号。
3.根据权利要求1所述的回声消除方法,其特征在于,还包括步骤:
基于所述滤波器系数和所述当前帧远端频域子带信号,得到回声估计值;
将所述回声估计值与所述当前帧近端频域子带信号的差,确定为差异度;
对所述差异度和所述当前帧近端频域子带信号进行范数处理,得到用于选取处理下一帧频域子带信号的滤波器类型的失调度。
5.根据权利要求1至4任一项所述的回声消除方法,其特征在于,所述滤波器的类型包括RLS滤波器和NLMS滤波器;
比较失调度与预设阈值的大小,根据所述比较的结果选取相应类型的滤波器处理所述当前帧频域子带信号的步骤,包括:
在所述比较的结果为失调度小于所述预设阈值的情况下,选取所述NLMS滤波器处理所述当前帧频域子带信号;
在所述比较的结果为失调度大于所述预设阈值的情况下,选取所述RLS滤波器处理所述当前帧频域子带信号。
6.根据权利要求5所述的回声消除方法,其特征在于,
在所述当前帧频域子带信号为首帧频域子带信号的情况下,选取所述RLS滤波器处理所述首帧频域子带信号。
7.根据权利要求1所述的回声消除方法,其特征在于,抽取所述滤波器系数中的有效子带系数,并将所述有效子带系数转换为全带滤波器系数特征分布的步骤,包括:
根据转换频率与全频带的占比,对所述滤波器系数进行有效数据的提取及降采样处理,得到所述全带滤波器系数特征分布。
8.根据权利要求1所述的回声消除方法,其特征在于,所述曲线极值点为所述全带滤波器系数特征分布的峰值点;所述时延估计值为所述峰值点的横坐标;
根据所述全带滤波器系数特征分布的曲线极值点确定时延估计值的步骤,包括:
基于输入数据点数和转换频率与全频带的占比,将所述全带滤波器系数特征分布的点数连续分成若干块,并基于能量最大的块获取所述定时延估计值;所述输入数据点数为根据数据采样率和采样后数据分帧时一帧数据的时间得到。
9.一种回声消除装置,其特征在于,包括:
频域信号获取模块,用于获取当前帧频域子带信号;所述当前帧频域子带信号包括当前帧远端频域子带信号和当前帧近端频域子带信号;
滤波模块,用于比较失调度与预设阈值的大小,根据所述比较的结果选取相应类型的滤波器处理所述当前帧频域子带信号,输出滤波器系数;所述失调度为上一帧频域子带信号经滤波器处理得到的、用于衡量滤波器收敛速度和稳态失调程度的参数;
子带全带转换模块,用于抽取所述滤波器系数中的有效子带系数,并将所述有效子带系数转换为全带滤波器系数特征分布;
时延模块,用于根据所述全带滤波器系数特征分布的曲线极值点确定时延估计值;所述时延估计值用于指示远端信号的调整以得到回声消除后的近端信号。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526000.7A CN112687285B (zh) | 2020-12-22 | 2020-12-22 | 回声消除方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526000.7A CN112687285B (zh) | 2020-12-22 | 2020-12-22 | 回声消除方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112687285A true CN112687285A (zh) | 2021-04-20 |
CN112687285B CN112687285B (zh) | 2023-09-29 |
Family
ID=75450472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011526000.7A Active CN112687285B (zh) | 2020-12-22 | 2020-12-22 | 回声消除方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112687285B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006020361A2 (en) * | 2004-08-10 | 2006-02-23 | Clarity Technologies, Inc. | Systems and methods for echo cancellation and noise reduction |
US20070280472A1 (en) * | 2006-05-30 | 2007-12-06 | Microsoft Corporation | Adaptive acoustic echo cancellation |
JP2007327980A (ja) * | 2005-05-11 | 2007-12-20 | Toa Corp | デジタルフィルタ、周期性騒音低減装置および騒音低減装置 |
CN103680515A (zh) * | 2013-11-21 | 2014-03-26 | 苏州大学 | 采用系数重用的比例自适应滤波器系数向量更新方法 |
CN108010536A (zh) * | 2017-12-05 | 2018-05-08 | 深圳市声扬科技有限公司 | 回声消除方法、装置、系统及存储介质 |
-
2020
- 2020-12-22 CN CN202011526000.7A patent/CN112687285B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006020361A2 (en) * | 2004-08-10 | 2006-02-23 | Clarity Technologies, Inc. | Systems and methods for echo cancellation and noise reduction |
JP2007327980A (ja) * | 2005-05-11 | 2007-12-20 | Toa Corp | デジタルフィルタ、周期性騒音低減装置および騒音低減装置 |
US20070280472A1 (en) * | 2006-05-30 | 2007-12-06 | Microsoft Corporation | Adaptive acoustic echo cancellation |
CN103680515A (zh) * | 2013-11-21 | 2014-03-26 | 苏州大学 | 采用系数重用的比例自适应滤波器系数向量更新方法 |
CN108010536A (zh) * | 2017-12-05 | 2018-05-08 | 深圳市声扬科技有限公司 | 回声消除方法、装置、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
DESMOND K. PHILLIPS,等: "Multirate acoustic echo cancellation: Which adaptive filters for which subbands?", 《9TH EUROPEAN SIGNAL PROCESSING CONFERENCE (EUSIPCO 1998)》 * |
文昊翔,等: "应用于双滤波器结构的活跃系数定位算法", 《计算机工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112687285B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107123430B (zh) | 回声消除方法、装置、会议平板及计算机存储介质 | |
KR101137159B1 (ko) | 라운드 로빈 정규화를 이용한 멀티 채널 에코 제거 | |
US7742592B2 (en) | Method and device for removing echo in an audio signal | |
CN106898359A (zh) | 音频信号处理方法、系统、音频交互装置及计算机设备 | |
CN109754813B (zh) | 基于快速收敛特性的变步长回声消除方法 | |
JP2002528995A (ja) | 周波数ドメインの非線形プロセッシングを使用したエコー・サプレッションを提供するための方法および装置 | |
JP2002541753A (ja) | 固定フィルタを用いた時間領域スペクトラル減算による信号雑音の低減 | |
CN109727607B (zh) | 时延估计方法、装置及电子设备 | |
CN110211602B (zh) | 智能语音增强通信方法及装置 | |
CN108010536B (zh) | 回声消除方法、装置、系统及存储介质 | |
CN112735456A (zh) | 一种基于dnn-clstm网络的语音增强方法 | |
CN110992923B (zh) | 回声消除方法、电子设备以及存储装置 | |
CN110265054A (zh) | 语音信号处理方法、装置、计算机可读存储介质和计算机设备 | |
CN112689056B (zh) | 一种回声消除方法及使用该方法的回声消除装置 | |
CN112489670B (zh) | 时延估计方法、装置、终端设备和计算机可读存储介质 | |
CN109559756B (zh) | 滤波系数确定方法、回声消除方法、相应装置及设备 | |
CN111755020B (zh) | 一种立体声回声消除方法 | |
CN106161820B (zh) | 一种用于立体声声学回声抵消的通道间去相关方法 | |
WO2019024621A1 (zh) | 一种声学回声抵消器输出语音信号的后处理方法及装置 | |
CN109215672B (zh) | 一种声音信息的处理方法、装置及设备 | |
US9172791B1 (en) | Noise estimation algorithm for non-stationary environments | |
CN113744748A (zh) | 一种网络模型的训练方法、回声消除方法及设备 | |
US20160019906A1 (en) | Signal processor and method therefor | |
CN112687285A (zh) | 回声消除方法和装置 | |
Pu et al. | A signal decorrelation PNLMS algorithm for double-talk acoustic echo cancellation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Applicant after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Applicant before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |