CN114868183A - 用于回声消除的滤波器自适应步长控制 - Google Patents
用于回声消除的滤波器自适应步长控制 Download PDFInfo
- Publication number
- CN114868183A CN114868183A CN202080088290.3A CN202080088290A CN114868183A CN 114868183 A CN114868183 A CN 114868183A CN 202080088290 A CN202080088290 A CN 202080088290A CN 114868183 A CN114868183 A CN 114868183A
- Authority
- CN
- China
- Prior art keywords
- filter
- adaptation
- coefficient
- time
- gradient
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
- G10L2021/02082—Noise filtering the noise being echo, reverberation of the speech
Abstract
在一些实施例中,一种回声消除方法包括至少一个预测滤波器的自适应,其中通过使用滤波器的一组滤波器系数上的梯度下降控制自适应步长,其中自适应步长的控制至少部分基于自适应的方向和自适应梯度的可预测性(例如,梯度向量)。本发明实施例的其他方面包括用于控制自适应(例如,低复杂度自适应)回声消除的自适应步长的系统、方法和计算机程序产品。在一些实施例中,自适应步长控制基于归一化的、缩放的自适应梯度,或者包括归一化的自适应梯度的平滑。
Description
相关申请的交叉引用
本申请要求2020年12月2日提交的美国临时专利申请第63/120,408号;2020年3月17日提交的美国临时专利申请第62/990,870号;和2019年12月18日提交的美国临时专利申请第62/949,598号的权益,这些专利申请通过引用并入本文。
发明领域
本公开总体上涉及音频信号处理(例如,音频信号的回声消除)。一些实施例涉及利用预测滤波器自适应来执行回声消除,其中自适应步长(例如,预测滤波器系数集合的连续估计之间的差)被控制(例如,鲁棒地且高效地实现回声消除)。
背景技术
文中使用“回声消除”这一表述来指示对音频信号的回声内容的抑制、消除或其他管理。
许多商业上重要的音频信号处理应用(例如,消费者设备的双工通信和室内噪声补偿)受益于回声消除。回声管理是需要双工回放和捕获的任何音频信号处理技术中的关键方面,该音频信号处理技术包括语音通信技术以及具有语音助手的消费者回放设备。
回声消除的典型实现包括一个或多个预测滤波器的自适应(adaptation)。一个或多个预测滤波器将参考信号作为输入,并输出尽可能接近在麦克风信号中观测到的对应值的(也就是,与该对应值的距离最小的)一组值。该预测通常使用以下任一种来完成:单个滤波器(或一组M个滤波器),其对参考信号帧的时域样本进行操作;或者一个或多个滤波器,每个滤波器对参考信号帧的频域表示的数据值进行操作。
当利用一组M个预测滤波器对频域数据进行预测时,这些滤波器中的每一个的长度仅为捕获相同延迟范围所需的单个时域滤波器长度的1/M。在自适应期间,一个或多个预测滤波器的系数通常由自适应机制来调节,以最小化输入与一个或多个预测滤波器的输出之间的距离。在本领域中已知多种自适应机制(例如,LMS(最小均方)、NLMS(归一化最小均方)和PNLMS(比例归一化最小均方)自适应机制是常规的)。
如上所述,回声消除系统可以在时域中对时域输入信号进行操作。对于许多音频样本(例如,数万个音频样本),实现这样的系统可能非常复杂,在使用长时域相关滤波器的情况下尤其如此,并且可能不会产生好的结果。
替代地,回声消除系统可以在频域中对各时域输入信号的频率变换表示进行操作(即,而不是在时域中操作)。这种系统可以对每个输入信号的一组复值带通表示进行操作(这可以通过对每个输入信号应用STFT或其他复值均匀调制滤波器组来获得)。例如,2019年5月23日公布的美国专利申请公开第2019/0156852号描述了回声管理(回声消除或回声抑制),其包括一组预测滤波器的频域自适应。
在回声消除期间,在各种信号和环境条件(例如,存在各种类型的噪声)中的任一信号和环境条件下对一组预测滤波器进行自适应(例如,使用梯度下降自适应滤波器方法)的需求增加了自适应过程的复杂性。用于控制自适应步长的传统方法引入了不确定性(在某种意义上,当使用它们时,自适应可能不收敛,或者在某些条件下不能可靠且足够快速地收敛)。有用的是利用自适应步长控制来执行回声消除(包括一个或多个预测滤波器的自适应),使得自适应是鲁棒的(即,在宽范围的信号和环境条件下,包括在存在各种类型的噪声的情况下,可靠地和足够快速地收敛)和高效的。
符号和术语
在包括权利要求的整个公开内容中,在信号或数据“上”执行操作(例如,对信号或数据进行滤波、缩放、变换或应用增益)的表述在广义上用于表示直接对信号或数据执行操作,或者对信号或数据的处理版本(例如,在对其执行操作之前已经历了初步滤波或预处理的信号的版本)执行操作。
在包括权利要求的整个公开内容中,术语“系统”在广义上用于表示设备、系统或子系统。例如,实现回声消除的子系统可以被称为回声消除系统,并且包括这种子系统的系统也可以被称为回声消除系统。
在包括权利要求的整个公开内容中,术语“处理器”在广义上用于表示可编程或以其他方式可配置(例如,用软件或固件)为对数据(例如,音频数据)执行操作的系统或设备。处理器的示例包括现场可编程门阵列(或其他可配置的集成电路或芯片组)、被编程和/或以其他方式配置成对音频数据执行流水线处理的数字信号处理器、被配置为对音频数据执行处理的图形处理单元(GPU)、可编程通用处理器或计算机、以及可编程微处理器芯片或芯片组。
在包括权利要求的整个公开内容中,术语“耦合”或“被耦合”用于表示直接或间接连接。因此,如果第一设备被称为耦合到第二设备,则该连接可以通过直接连接,或者通过经由其他设备和连接的间接连接。
在包括权利要求的整个公开内容中,“音频数据”表示指示由至少一个麦克风捕获的声音(例如,语音)的数据,或者如下数据,所述数据被生成的(例如,合成的)使得所述数据可渲染以供作为声音(例如,语音)回放(由至少一个扬声器)。例如,可以生成音频数据,以便用作指示由至少一个麦克风捕获的声音(例如,语音)的数据的替代。
发明内容
在一些实施例中,本发明是一种回声消除方法,其包括至少一个预测滤波器的自适应,其中通过使用滤波器的一组滤波器系数(即,一个或多个滤波器系数)(即,先前已经确定的滤波器的一组滤波器系数)上的梯度下降来控制自适应步长,其中自适应步长的控制至少部分基于自适应的方向和自适应梯度的可预测性。
在梯度下降自适应中,每个自适应步骤从先前(即,当前)的一组滤波器系数θn-1确定更新的一组滤波器系数θn。每个自适应步骤包括从当前的一组滤波器系数中减去更新项(σn):θn=θn-1-σn,其中每个更新项至少部分地由该组滤波器系数的函数f[θn-1]的梯度确定。这里,“自适应梯度”表示梯度或梯度的缩放(例如,缩放和归一化)版本。
在滤波器系数集合θn包括多个系数的情况下,函数f[θn-1]、梯度集合θn和更新项σn中的每一者可以被描述为向量,每个向量的每个元素对应于系数之一。每个自适应步长是向量的元素,θn-θn-1=σn,其对应于一个滤波器系数(或者,如果滤波器系数集合θn仅由一个系数组成,则自适应步长是标量值θn-θn-1=σn)。
典型地,自适应被控制为当自适应梯度如预期的那样(即,具有高的可预测性)时,自适应快速进行(具有相对较大的步长),而当自适应梯度不是预期的那样(即,具有低的可预测性)时,自适应缓慢进行(具有相对较小的步长)。自适应梯度通常取决于预测误差,并且预测误差预期从一个自适应步骤到另一个自适应步骤减小(在一个方向上)。因此,在典型的实施例中,当预测误差如预期的那样(在一个方向上)减小时(例如,在执行回声消除的环境中的意外噪声的条件下),自适应被控制为比预测误差没有如预期的那样(在一个方向上)减小时进行得更快(具有更大的步长)。
在一些实施例中,自适应梯度被归一化,并且还被时间相关因子(例如,下面描述的时变权重s[t])缩放,以基于归一化的、经缩放的自适应梯度的可预测性来控制自适应步长(或有助于自适应步长的控制)。一些实施例实现了归一化的自适应梯度的平滑化,以基于经平滑化的自适应梯度的可预测性来改进对自适应步长的控制。
在第一类实施例中,每个自适应步骤(其响应于滤波器系数a[t,k]确定更新的滤波器系数a[t+1,k])是:
其中“·”表示乘法,“k”是标识一个滤波器系数a[k]的索引,该滤波器系数a[k]在一系列不同的时间被更新(其中a[t,k]表示a[t,k]在时间t的值),X[t]是时变权重,1/N是归一化因子,|e[t]|是误差e[t]在时间t的绝对值,是自适应梯度。
在第一类实施例中,时变权重X[t]典型地在误差如预期减小时增加自适应步长(自适应速度),并且典型地在误差未如预期减小(在一个方向上)时降低自适应速度(例如,在执行回声消除的环境中的意外噪声条件下)。这是对由归一化因子1/N提供的控制的补充,因为自适应梯度的归一化通常在预期条件下(例如,低的意外噪声条件,当误差如预期那样随时间减少时)实现比没有归一化时可实现的自适应更快的自适应(具有收敛)。
第二类实施例利用改进的加速梯度(MGA)下降实现自适应。在第二类实施例中,每个自适应步骤(其响应于滤波器系数a[t,n]确定更新的滤波器系数a[t+1,n])是:
a[t+1,n]=a[t,n]–β[n]σ[t+1,n]
其中“n”是标识在一系列不同时间被更新的一个滤波器系数a[n]的索引(其中a[t,n]表示a[n]在时间t的值),并且其中β[n]是基于时间索引的权重。可选地,省略基于时间索引的加权(即,每个β[n]可以具有值1)。在第二类实施例中,更新项σ[t+1,n]是:
其中,γ是平滑因子,μ是因子,1/(f[t])1/2是归一化因子,e2[t]是时间t处的平方误差,是自适应的梯度。MGA下降实现自适应的平滑,平滑因子γ控制平滑的量(即,γ=0导致不平滑),例如用于补偿意外或不可预测的噪声条件。自适应梯度的归一化通常在预期条件下(例如,低的意外噪声条件,当误差如预期那样随时间减小时)实现比没有归一化时可实现的自适应更快的自适应(具有收敛)。因此,归一化避免了在正常或预期条件下的过慢自适应(即,低噪声条件,其中预测误差如预期那样随着时间减少,以接近最小值)。
在本发明的一些实施例中,采用了基于时间索引的加权。例如,基于时间索引的加权可以如在第二类实施例中那样通过权重β[n]来实现,或者通过权重μ[k]来实现,其中在第一类实施例中,X[t]实现为X[t]=μ[k]s[t],其中s[t]是时变权重。例如,在被更新的每个系数属于由滤波器抽头索引l的值标识的滤波器(使用滤波器组确定)的情况下,权重μ(k)可以依赖于包括被调整(adapted)的系数(由索引k标识)的滤波器的滤波器抽头索引l。
利用自适应梯度归一化的内斯特罗夫加速梯度(NAG)自适应可以在预期的回声消除条件下(例如,在正常的或预期的低噪声条件下)实现快速收敛,而在其他条件下(例如,在高的、意外的噪声条件下)具有足够的收敛。在回声消除器的许多操作条件下,NAG自适应自身(即,没有归一化)通常太慢。归一化自适应梯度(在除NAG自适应之外的梯度自适应中)本身可以提供快速收敛,代价是当自适应接近目标时会更不准确(例如,在意外的噪声条件下)。
根据典型实施例,在宽范围的信号和环境条件下(例如,在存在各种类型和数量的噪声的情况下),在自适应可靠且足够快速地收敛的意义上,回声消除期间预测滤波器系数的自适应可以被控制为不仅在计算上高效,而且是鲁棒的。
本发明的各方面包括被配置(例如,被编程)为执行本发明方法或其步骤的任何实施例的系统,以及实现数据的非暂时性存储的有形的、非暂时性的计算机可读介质(例如,盘或其他有形存储介质),该介质存储有用于执行(例如,可执行以实行)本发明方法或其步骤的任何实施例的代码。例如,本发明系统的实施例可以是或包括可编程通用处理器、数字信号处理器、GPU或微处理器,其用软件或固件编程和/或以其他方式配置成对数据执行各种操作中的任何操作,包括本发明方法或其步骤的实施例。这种通用处理器可以是或包括计算机系统,该计算机系统包括输入设备、存储器和处理子系统,其被编程(和/或以其他方式被配置)以响应于向其断言的数据来执行本发明方法的实施例(或其步骤)。本发明系统的一些实施例可以(或者是)被实现为云服务(例如,系统的元件位于不同的位置,并且数据传输例如通过互联网在这些位置之间进行)。
附图说明
图1是实现预测滤波器自适应的示例回声消除系统的元件的框图。
图2是示例回声消除过程的流程图,该过程包括预测滤波器自适应(例如,具有根据本发明实施例的自适应步长控制)。
图3是示例回声消除系统的框图,该系统可以实现根据本发明实施例的具有滤波器自适应的声学回声消除算法(例如,使用归一化梯度向量的平滑化)。
图4是根据本发明实施例的回声消除的示例过程的流程图(例如,使用归一化梯度向量的平滑化)。
图5是根据实施例的用于实现参考图1-4描述的特征和过程的移动设备架构。
具体实施方式
有效的声学回声消除技术可以利用一组滤波器系数上的梯度下降来理论上达到(即,通过滤波器自适应来确定)最佳的一组回声消除滤波器(其中该组包括一个或多个回声消除滤波器),其使得预测误差(例如,通过最小二乘法确定)最小。在本发明的不同实施例中,不同的梯度下降方法(例如,使用梯度向量的归一化和/或平滑的方法)被用于对至少一个滤波器进行自适应(即,逐步调试滤波器的一系列状态)以实现对滤波器的最佳版本(例如,具有最小化的预测误差)的更好近似。在一类实施例中,使用梯度下降(例如,利用归一化梯度向量的平滑化)来控制滤波器自适应步长。
典型的回声消除存在自适应滤波问题。回声消除的一个挑战是麦克风能够听到多个声源,但典型的回声消除系统(用于包括至少一个麦克风和至少一个扬声器的设备中或与之一起使用)只打算消除这些声源的一些。例如,在会议电话用例中,回声消除系统可以被设计为预测设备扬声器的线性分量,但是麦克风可能(例如)接收在麦克风附近说话的人的话语以及设备扬声器产生的非线性。考虑到被发送到扬声器(在房间或其他环境中)的信号,以及被麦克风(在环境中)接收的信号,回声消除必须解决以下问题:如何形成将基于发送到扬声器的信号预测麦克风中的信号的滤波器(或一组滤波器)?如果回声消除系统可以确定这样的滤波器,则该滤波器可以用于从麦克风信号中减去预测信号,以确定房间(或其他环境)中的剩余信号。
参考图1,在示例回声消除系统中,m[t]是由麦克风捕获的麦克风信号,r[t]是发送到扬声器的参考信号,并且e[t]是通过从麦克风信号m[t]中减去参考信号的被滤波版本而生成的误差信号。标记为“自适应滤波器”的元件可以确定具有滤波器系数的滤波器a[t],并将该滤波器应用于参考信号r[t],以产生被从麦克风信号m[t]中减去的信号。在一系列不同时间t中的每一个时间,滤波器被调整(用可根据本发明的实施例实现的自适应滤波器步长控制来更新)以最小化误差e[t]。更新的滤波器(对于每个时间t确定的)然后可以用于对麦克风信号进行滤波(以抑制或消除麦克风信号的回声内容)。该更新的过滤器可一直使用,直到其的新更新版本(在时间序列中的下一时间)被确定。
误差e[t]的一个例子如下:
如果滤波器在时域中实现,则滤波器需要包含许多有用的系数。对如此大的滤波器进行自适应在计算上是昂贵的,并且在算法上难以产生快速收敛。通常优选采用M个滤波器(其中M是一个数)的集合,每个滤波器是用于对参考信号的片段(例如帧)的频域表示的数据值的子集进行滤波的小滤波器。因此,本发明的典型实施例利用滤波器组,例如短时傅立叶变换(STFT)或近似完全重构DFT滤波器组,以用数个(例如,多个)较小滤波器(每个具有不同的索引l)替换指定类型的大时域滤波器(即,通过有效地将大滤波器分解成该数个较小滤波器),使得滤波器自适应问题为典型地在频域中(对于时间序列中的每个时间t)如何确定每个索引值l的滤波器系数的最佳集合al(在下式中写成"al[k]"):
其中l是滤波器组的组件(第“l”过滤器)的索引。换句话说,滤波器组的输出是一组滤波器,每个滤波器由索引l的不同值标识。在每个时间t的这些滤波器的自适应包括最小化各滤波器的误差el[t],以确定在时间t的更新的滤波器组。
如果假设房间(或其他环境)中没有其他噪声,则可以将e[t]的幅度或每个误差el[t]视为最小化目标函数,并且在初始滤波器系数集合(例如,初始系数集合al)上执行梯度下降,从而找到在时间t的最佳滤波器系数集合(例如,最佳系数集合al)。然而,通常,房间中存在不希望任何滤波器适应于的其他噪声源(可能包括其他人的谈话)。通常不希望尝试创建如下这样的滤波器,该滤波器不仅尝试预测期望的内容(例如,由麦克风捕获的用户的话语)而且还预测所有其他音频源。已经提出了用于回声消除器中的滤波器自适应的各种技术,这些技术避免尝试适应于除了期望内容之外的音频(例如,由麦克风捕获的用户的话语)。
一旦滤波器系数在时间t被合理地适配,则误差e[t](或每个误差el[t])表示加上房间(或其他环境)中的音频的扬声器信号的不可预测分量。希望不可预测分量的电平显著低于扬声器信号本身,但不可预测分量通常仍需要使用其他机制被进一步抑制。
接下来,参考图2,描述根据本发明的一类实施例的回声消除的例子。图2是包括自适应滤波器步长控制的示例回声消除过程200的流程图。过程200可以由包括一个或多个处理器的系统(例如回声消除器)来执行。
在过程200中,回声消除器接收(在步骤210中)来自麦克风的输入信号,并且回声消除器接收(在步骤220中)到扬声器的输出信号(扬声器馈送信号)。通常,扬声器和麦克风在单个设备中实现。回声消除器预测(在步骤230中)由扬声器引起(即由扬声器发出并由麦克风捕获的声音产生的)的输入信号(由麦克风捕获的信号)的一部分(即内容)。预测(步骤230)包括基于输入信号和输出信号配置(包括初始化和适配)自适应滤波器。该配置可以包括根据本发明的实施例缩放(或以其他方式控制)自适应滤波器的自适应速率(例如,基于滤波器抽头的索引或误差信号的能量中的至少一者,如下所述)。回声消除器从输入信号中去除(在步骤240中)由扬声器引起的输入信号的部分(即内容)。
在过程200的一些实现中,步骤230包括对一组滤波器(每个滤波器包括具有不同滤波器抽头索引值的系数)进行自适应,并且自适应速率被控制(根据本发明的实施例)为对于增加的滤波器抽头索引值该自适应速率较慢。在过程200的一些实现中,至少一个滤波器的自适应速率被控制(根据本发明的实施例)为响应于误差信号能量的降低而增加,并且响应于误差信号能量的增加而降低自适应速率。典型地,自适应速率被允许增加和减少到各自的极限值。
根据本发明一些实施例的滤波器自适应使用梯度下降。使用梯度下降来构建(适配)自适应滤波器依赖于能够计算每个滤波器系数的误差函数的偏导数。然后,在自适应期间,滤波器系数被移动(改变)依赖于偏导数的某个值,即:
其中,“k”表示被调整的滤波器系数(即,第“k”个滤波器系数被调整),而“μ”是缩放因子。在一些实施例中,存在多个不同的滤波器(并且经受自适应),每个滤波器由对应于不同滤波器组抽头的系数组成,这样的系数中的每一个由滤波器抽头索引“l”的不同值来标识。
如果该因子μ过大(对于根据上述等式的自适应而言),则即使对于良好的输入,滤波器也可能不收敛。如果μ太小,则滤波器将非常缓慢地适配。随着滤波器接近(在自适应期间)误差函数的最小值,偏导数变小,从而产生更慢的收敛。尝试解决这个问题的一种已知方法是在自适应期间采用另一种动态加权(归一化因子),例如,下式的分母中的平方根量:
在上式中,索引“n”的范围包括索引k的所有值,因此在k的所有可用值(所有被调整的滤波器系数)上进行求和。该式确定了滤波器系数之一(其具有一个索引“k”)的更新值。
在先前段落的式子中,μ变得与单个系数在每次自适应迭代中可能改变的最大绝对值相关。该方法可以工作良好,直到在麦克风处引入了与设备正在回放的音频相关的信号(即,引入噪声)(例如:一个人在设备附近说话,而扬声器也在播放语音)。
接下来,描述了本发明方法的两个示例实施例,其解决了上述自适应方法的这种限制。
在两个示例实施例中,假设滤波器已经在较早的时间t被调整(或初始化),则滤波器的自适应步骤在时间t+1进行(发生)。通常,自适应被执行多次(每次自适应在不同的时间开始发生)。在这些例子中,索引“k”表示哪个滤波器系数正在被调整(即,这些式子属于正在被调整的第“k”滤波器系数)。典型地,存在多个不同的滤波器,每个滤波器对应于由索引“l”的不同值标识的不同滤波器组抽头。符号a[t,k]表示已经在时间t被调整(或初始化)的一个滤波器的系数。每个(“第k”)滤波器系数以参考系数值a[t,k]描述的方式被调整。典型地,被调整的每个滤波器仅包括少量系数(可以由滤波器抽头索引“l”的不同值来标识),使其稳定地构造。在第一示例实施例中,被调整的每个滤波器由8个系数组成,每个系数对应于由索引“l”的8个值中的不同一个所标识的不同滤波器组抽头。
第一示例:基于滤波器抽头索引的缩放μ
第一示例实施例认识到以下这样的事实:在任何通常的环境中,每个回声消除滤波器的随时间的形状应该衰减(不期望在回声强度随时间增加的环境中执行或者将执行回声消除)。不是让所有滤波器系数以相同的速度移动(在自适应期间),而是允许更接近时间零点的系数比时间上更远的系数移动得更快。因此,为了处理麦克风信号指示其他数据(可能导致下面定义的偏导数尝试在自适应期间将滤波器拖入非衰减形状)的情况,引入了加权因子(μ[k]),其对构建不衰减的滤波器的尝试进行惩罚。
在这个例子中,前述式子中的加权因子μ被一组加权因子μ[k]代替。该示例假设每个被调整的滤波器由8个系数组成,每个系数对应于由不同的索引值“l”标识的不同滤波器组抽头。每个因子μ[k]与由不同的索引值l标识的系数有关(并且用于该系数的自适应)。
在示例实施例的典型实现中,本发明的回声消除器使用以20毫秒抽取音频信号的滤波器组进行操作。对于每个滤波器组频带,存在8个复数抽头的自适应滤波器(每个“抽头”由不同索引值l标识),给予消除器消除大约160毫秒回声的能力。这些滤波器的一组合适的加权因子μ[k]为:
对于具有抽头索引l=0的滤波器系数,μ[k]=0.004;
对于具有抽头索引l=1的滤波器系数,μ[k]=0.004;
对于具有抽头索引l=2的滤波器系数,μ[k]=0.002;
对于具有抽头索引l=3的滤波器系数,μ[k]=0.001;
对于具有抽头索引l=4的滤波器系数,μ[k]=0.0004;
对于具有抽头索引l=5的滤波器系数,μ[k]=0.0004;
对于具有抽头索引l=6的滤波器系数,μ[k]=0.0001;
对于具有抽头索引l=7的滤波器系数,μ[k]=0.0001。
在示例性的该组加权因子μ[k]的变型中,采用加权因子μ[k]的其他值。典型地,用于具有较低索引值l的滤波器抽头的加权因子大于(或等于)用于较高索引值l的滤波器抽头的加权因子
加权因子μ[k]可以应用于根据下述第二示例实施例执行的每个滤波器自适应步骤中。例如,在下面的用于第二示例实施例的自适应步骤的式子中,加权因子μ[k]如(式子右侧最后一项的)分子中所指示地那样采用,乘以因子s[t],并除以归一化因子(式子右侧最后一项的分母中的平方根量)。在该示例的变型中,因子s[t]和归一化因子中的一者或两者被省略(即,被值“1”代替)。
第二示例:基于误差信号e[t]的能量对μ进行动态缩放
示例实施例是梯度下降自适应的示例。第二示例实施例采用根据预测误差移动的方向和量修改的时变权重s[t]。通常,它还采用上述加权因子μ[k],但是在一些情况下这些因子可以被省略(即,被具有值“1”的因子代替)。在第二示例实施例中,滤波器自适应步骤(其响应于滤波器系数a[t,k]确定更新的滤波器系数a[t+1,k])为:
其中,在典型实现中,s[t]定义为:
在上面的式子中,α、β、γ和δ是可配置的参数,并且索引“n”的范围包括索引k的所有值。因此,分母中的总和(即,归一化因子)是在被调整的所有系数(每个系数由不同的k值标识)上的。更具体地,求和是对于所有索引值k的平方误差的偏导数的。每个被调整的滤波器系数由索引“k”的值来标识,并且因子“μ[k]”的不同值通常对应于不同的滤波器组抽头(具有滤波器抽头索引l)。
当除了由设备的扬声器产生的音频刺激之外没有音频刺激(由麦克风捕获)时,期望随着所有滤波器的滤波器系数a向一个结果移动,误差e[t]在大多数时间(在一系列滤波器自适应步骤期间)应该减小。因此,当满足指示的条件(e[t]的绝对值小于e[t-1]的绝对值)时,s[t]的表达式中的参数α优选地被设为略大于1的值,以增加自适应步长。当存在这样的音频刺激时,期望为相反的情况:通常,误差会随着时间的推移而增加。因此,s[t]的表达式中的参数β优选设为略小于1的值,以在满足相应条件时减小步长。步长范围受到参数γ和δ的特定值的限制。在实现中,给定上述μ[k]的8个示例值,α、β、γ和δ的值可以分别是1.01、0.99、0.005和8.0。
在示例实施例中,当误差e[t]的绝对值减小时(即,小于误差e[t-1]的绝对值),s[t]具有相对较大的值。s[t]的较大值(和/或μ[k]的较大值)趋向于增加自适应的速度(即,增加自适应步长),而s[t](和/或μ[k])的较小值趋向于降低自适应的速度(即,减小自适应步长)。这具有当潜在的双向通话发生时(例如,当误差e[t]不随时间减小时)使步长降为零的效果,这样防止了滤波器系数a快速变化。当环境条件良好时,示例实施例允许自适应步长增加,因此自适应快速移动(以改善自适应时间)。
图3是示例回声消除系统的框图,该系统可以实现本发明的声学回声消除算法的实施例(例如,使用梯度下降自适应(例如,使用归一化梯度向量的平滑化)来执行滤波器自适应的实施例)。
图3的系统可以是包括处理子系统(至少一个处理器,其被编程或以其他方式被配置为实现音频处理子系统111、通信应用113、媒体播放器112和语音助手114)和耦合到处理子系统的物理设备硬件(包括扬声器101和麦克风102)的通信设备。典型地,该系统包括存储指令的非暂时性计算机可读介质,当该指令被至少一个处理器执行时,使得所述至少一个处理器执行本发明方法的实施例。
音频处理子系统111(例如,实现为音频处理对象)可以被实现(即,图3系统的至少一个处理器被编程为执行子系统111)以执行本发明的回声消除方法的实施例。子系统111被配置为生成(例如,实现滤波器组,该滤波器组生成)或接收指示提供给扬声器101的回放音频信号(扬声器馈送,在此有时称为“参考”信号)的音频内容的频域回放音频数据、以及指示从麦克风102输出的麦克风信号的音频内容的频域麦克风数据。
子系统111的子系统103(在图3中标记为“AEC”)是回声消除子系统,其被配置为执行回声消除(例如,本发明的声学回声消除算法的实施例)。子系统111还被实现为(例如,它包括语音处理子系统104,其被实现为)对回声消除子系统103的输出执行其他音频处理。
子系统111可以被实现为与图3系统的处理子系统中存在的音频数据交互的软件插件。
在图3的典型实现中,包括提供给扬声器101的参考信号样本的时域参考音频数据r[n]和包括从麦克风102输出的麦克风信号样本的时域麦克风音频数据m[n]被提供给子系统111。回声消除子系统(回声消除器)103的子系统(在图3中标记为“预测”的子系统)实现滤波器组,该滤波器组对数据r[n]执行时域到频域的变换,对数据m[n]执行时域到频域的变换,并生成预测滤波器的初始集合(每个预测滤波器具有不同的索引l)。每个预测滤波器包括滤波器系数的初始集合al[k]。子系统103被配置成在频域中(对于时间序列中的每个时间t),通过对每个索引值l的滤波器系数的初始集合执行自适应,来确定所述索引值l的滤波器系数的最佳集合al[k]。
响应于参考信号(指示要从扬声器101播放的音频内容的扬声器馈送)和麦克风信号(指示由麦克风102捕获的音频内容)来执行回声消除。麦克风信号可能不期望地包含从扬声器101发出的音频内容。典型地,回声消除器103的输出是麦克风音频的回声管理版本,期望尽可能或实际地从中去除尽可能多的说话者音频。回声消除器103的输出被提供给通信应用113,并且可选地还被提供给语音助手114。
回声消除过程通常以如下方式被实现,包括尝试估计将参考音频(参考信号的内容)映射到麦克风音频(麦克风信号的内容)的滤波器(或一组滤波器中的每一个)。更明确地说,每个滤波器由自适应过程确定以努力确定如下这样的被调整的滤波器,该被调整的滤波器可对指示已发送给扬声器的音频内容(参考音频)的音频数据进行滤波,自适应试图确定最佳估计麦克风音频的值的线性组合(参考音频的滤波版本,有时称为估计回声)。然后,使用被调整的(估计的)滤波器对麦克风音频进行滤波,以努力从麦克风音频中减去所估计的回声。
回声消除的低复杂度解决方案使用梯度下降技术(例如,本发明的滤波器自适应方法的实施例)来找出如何以最小化成本函数的方式更新(自适应)每个预测滤波器。成本函数通常被定义为所估计的回声信号(参考音频的被滤波版本)和麦克风音频之间的平方误差。梯度下降通常假设输入和输出音频之间存在线性关系,但由于系统的非线性和其他噪声源的存在,实际设备中不会出现这种情况,这阻碍了这些技术产生良好的输出。有许多方式来执行每个滤波器更新(即,滤波器的自适应以产生更新的滤波器),并且可以选择更新方法来优化消除器的不同方面(例如,该优化考虑了回声消除器有多快找到合理的滤波器和/或滤波器能够减少多少回声)。在此公开的本发明方法的实施例通常实现滤波器自适应,使得滤波器以期望的速率(例如,相当快地)和鲁棒地自适应,使得被调整的滤波器能够产生期望量的回声抑制。
仍然参考图3,经由扬声器101回放的参考音频r[n]得自混合器105,混合器105可以从多个源接收音频。响应于来自麦克风102的麦克风音频m[n]和参考音频r[n]来执行回声消除。
子系统103(子系统111中虚线包围的区域)是回声消除器。可以看出,回声消除器将麦克风和参考音频引入“预测”块,该“预测”块创建滤波器系数,通过该滤波器系数对参考音频进行滤波以产生p[n],p[n]是预测信号。然后从麦克风信号中减去该信号,以产生回声消除的输出。单独来看,回声消除信号可能仍然不适合于语音通信,并且可能需要进一步“清理”以去除噪声和不能被消除器去除的回声分量。在图3系统的典型实现中,这种附加处理可以在块(语音处理子系统)104中执行。所得的输出音频随后被传递到通信应用113和/或语音助手114。此外,如果想要音频输出的应用是语音助理,则与通信应用接收输出音频的情况相比,系统的配置可以受益于以不同配置进行操作。
接下来描述本发明的回声消除方法的示例实施例,其使用梯度下降滤波器自适应方法(其控制自适应步长)来实现至少一个预测滤波器(例如,一组预测滤波器)的自适应。示例实施例可以由图3系统的回声消除子系统103或本发明系统的其他实施例来实现。
梯度下降自适应采用某个参数向量θ(例如,作为预测滤波器系数的参数向量)的函数f(θ),并使用该函数相对于参数中的一个或多个(例如,一个或多个滤波器系数)的梯度来调节至少一个(例如,所有)参数的当前估计以接近某个最小值。尽管参数向量θ可以由多个参数组成(例如,在本发明的一些实施例中,它由多个滤波器系数组成,每个滤波器系数是不同预测滤波器的系数),但是在一些情况下,它可以仅由一个参数(滤波器系数)组成。更具体地,尽管回声消除可以包括一组滤波器的一组系数的自适应(例如,如上所述,每个滤波器由不同索引值l标识),但是本文对梯度下降实施例的一些描述清楚地描述了一个这种滤波器的仅一个系数的自适应(例如,在时间序列的每个时间t,包括最小化该系数的误差e[t]),但是该自适应可以包括通过从多个滤波器系数确定的因子进行归一化。在每次要更新多个滤波器系数(例如,多个预测滤波器的系数的向量)的情况下,每个系数可以这里描述的方式被调整。
在声学回声消除器中实现的梯度下降自适应中,函数f(θ)可以被定义为使得其是从麦克风信号中减去预测信号(传递给扬声器的扬声器馈送的内容的被滤波版本)的总误差的平方,其中包括向量θ的参数是预测滤波器(或预测滤波器集合)的系数。有时使用表达式e2[t]来表示麦克风信号m[t]和传递给扬声器的音频r[t]的被滤波版本之间的总误差平方,其中a[t]是预测滤波器系数(应用于r[t]确定r[t]的被滤波版本)。虽然误差函数e2[t]是时间的函数,但有时称之为e2(θ),因为θ可能是在时间t的滤波器系数a[t]的向量。
当执行梯度下降的一些实现来对一组预测滤波器系数进行自适应时,每个自适应步骤包括减去函数f(θ)相对于向量θ的梯度(偏导数),或者减去函数f(θ)的梯度的被修改(例如,缩放、加权和/或平滑化)版本的梯度,以努力“步进”到零误差。换句话说,(预测滤波器系数θn的当前集合的)梯度下降自适应的每个步骤可以如下确定一组更新的滤波器系数θn+1:
已经提出了各种方法来控制梯度下降滤波器自适应中的自适应步长θn+1-θn(取决于索引n的范围,这可以替换地写成θn-θn-1)。
我们接下来描述这些方法的三个类别。在每个示例方法中,通过从滤波器系数的先前(即,当前)集合(向量)中减去向量(σn),根据滤波器系数的当前向量θn-1来确定滤波器系数的每个更新向量θn:
θn=θn-1-σn。
梯度下降滤波器自适应的三个例子在如何定义向量σn上有所不同。
确定矢量σn的三个例子如下:
其中“·”表示乘法,μ是因子,f[θn-1]是θn-1的函数,是f[θn-1]关于θn-1的偏导数。因为θn-1是向量(由一个或多个滤波器系数组成),所以是由元素组成的向量,其中每个元素是f[θn-1]相对于不同的一个滤波器系数的偏导数。分母中的量是归一化因子(例如,的(在所有索引值x上的)和的平方根,其中每个θx-1是包括向量θn-1的滤波器系数之一,并且索引x的每个不同值标识滤波器系数中的不同一个滤波器系数);和
如上所述,在每个梯度下降自适应步骤中,θn=θn-1-σn,下一组滤波器系数θn(即,时间“n”的一个或多个预测滤波器系数)是通过从当前一组滤波器系数θn-1中减去矢量σn来获得的。
确定σn(上面编号为“1”)的第一种方法是经典的随机梯度下降法,其中每个梯度都用因子μ进行缩放。一旦误差函数f[θn-1]在自适应过程中开始接近零,参数(滤波器系数θn)逐个步骤地以越来越小的量移动。然而,这种方法已知缓慢地自适应。对于系统是动态的情况(例如,当执行自适应以更新回声消除器的预测滤波器时),由于优化路径中的噪声,它通常表现不佳,并且永远不会获得好的结果。
确定σn的第二种方法(上面编号为“2”)将梯度向量归一化,并以因子μ对归一化后的梯度向量进行缩放。在这种情况下,因子μ提供了一种在自适应速度和自适应精度之间进行折中的方式。需要注意限制μ的值,以确保系统保持稳定,同时不要选择过小的值,以免系统无法很好地自适应。
确定σn的第三种方法(上面编号为“3”)被称为内斯特罗夫加速梯度(NesterovAccelerated Gradient)法。该方法通过包括附加项γσn-1并用梯度向量替换梯度向量来应用平滑化。这种方法不是基于梯度(导数参数)的当前值来找到梯度(导数参数),而是在假设导数已经继续沿其当前方向向前移动了一段距离(这是因为导数被有效地平滑化,这可以从σn对其先前值σn-1的依赖性中看出)的情况下来确定导数。
接下来描述本发明的滤波器自适应方法的实施例(修改梯度加速或“MGA”实施例),其实现了内斯特罗夫加速梯度(NAG)方法的修改,以优化待优化的预测滤波器系数θn-1(即,对预测滤波器系数θn-1的当前集合执行自适应)。该实施例是上述用于选择σn的第三种方法的修改版本,其中梯度向量不是仅仅通过速率因子μ来缩放,而且通过量μ/N来缩放,其中μ是速率因子,1/N是归一化因子。接下来更详细地描述MGA实施例。
在MGA实施例中,误差信号被定义为:
e[t]=m[t]–p[t]
其中p[t]是预测信号(即,从扬声器信号预测麦克风信号m[t]的信号)。在一些滤波器自适应实现中,预测信号被定义为(如上)为:
其中a[t,k]是预测滤波器系数,r[t]是发送给扬声器的扬声器馈送。
在现在描述的示例性MGA实施例中,修改该定义以将误差信号p[t]定义为:
其中a[t,k]是预测滤波器系数,r[t]是发送给扬声器的扬声器馈送,σ是从预测滤波器系数的当前集合(矢量)(上面标识为θn-1)中减去的矢量,用于确定预测滤波器系数的更新矢量(上面标识为θn),其中γ是平滑因子(即,在γ=0的情况下没有平滑)。
在以上对内斯特罗夫加速梯度(NAG)自适应技术的一般描述中,使用索引“n”以表示更新时间来定义更新向量σn,使得σn表示更新时间的向量(其中该向量具有在该时间被更新的每个滤波器系数的分量),而σn+1表示下一更新时间的向量(其中该向量具有在该下一更新时间被更新的每个滤波器系数的分量)。为了完成对本发明的示例MGA实施例的描述,为了方便起见,使用不同的符号“σ[t,n]”来表示每个更新向量的元素。更具体地,更新向量(在时间t)由多个元素组成,并且在时间t的更新向量的每个元素在新的标记法中是“σ[t,n]”,其中索引“n”区分相同更新向量的元素。在新的标记法中,元素为σ[t,n]的更新向量对应于上面定义的更新向量σn,其中“σn”中的索引“n”表示时间。
使用新的标记法,假设在时间t,预测滤波器系数的集合(向量)(每个系数由不同索引值n标识)被调整。每个预测滤波器系数是“a[t,n]”。因此,在新的标记法中,σ[t,n]是用来更新滤波器系数“a[t,n]”的更新向量的元素。
使用p[t]的新定义
误差项e2[t]为:
e2[t]=(m[t]-p[t])2。
其中“r[t]”表示由预测滤波器滤波的扬声器馈送,“m[t]”表示麦克风信号。
为方便起见,我们将归一化量f[t]定义为:
在归一化量f[t]的定义中,求和是针对所有预测滤波器系数a[n]的偏导数(即,求和索引k涵盖标识滤波器系数a[n]的索引“n”的所有可能值)。尽管求和标记考虑到可能存在无限数量的索引k的值,但是在实际实现中,只有有限数量的索引k的值。
在示例MGA实施例中,使用用于更新向量元素σ[t,n]的新标记和上述定义的归一化量f[t],用于(在时间t+1)更新(对于先前时间t确定的)滤波器系数a[n]的更新向量元素σ[t+1,n]是:
其中符号“·”表示乘法,σ[t,n]是被更新的更新向量元素(在先前时间t使用的更新元素),γ是平滑因子(即,在γ=0的情况下没有平滑),μ是速率因子,以及(f[t])-1/2是归一化因子。速率因子μ和平滑因子γ的合适值分别是0.005和0.6,假设对于麦克风和参考的中等数字信号电平,自适应每秒发生50次。
一般来说,可针对各滤波器系数采用相同的速率因子μ,或可针对各滤波器系数采用速率因子μ的不同值(先前段落中的式子中的μ可写作“μ[n]”,以明确表示用于第“n”滤波器系数的速率因子)。例如,每个速率因子μ[n]可以是上述权重μ[k]之一(其中在权重μ[k]的上述描述中,索引k标识具有抽头索引l的滤波器的滤波器系数)。可替换地或附加地,另一种加权(例如,使用下述权重β[n]的基于时间索引的加权)可以在自适应期间被应用于每个更新元素σ[t+1,n],其中这样的另一种加权取决于哪些滤波器系数被调整(例如,使得不同的加权被应用于不同滤波器的滤波器系数)。
使用更新向量元素σ[t+1,n],示例性MGA实施例通过利用偏导数的平滑化(如上述式子中对于σ[t+1,n]所指示的)并且优选地利用基于时间索引的加权来(在每个时间t+1)更新滤波器系数a[t,n](针对前一时间t确定的)。具体地,MGA示例实施例的滤波器系数自适应步骤是:
a[t+1,n]=a[t,n]–β[n]σ[t+1,n]
其中a[t+1,n]表示第“n”滤波器的更新的预测滤波器系数,并且其中β[n]是基于时间索引的权重。可选地,省略基于时间索引的加权(即,每个β[n]可以具有值1)。
因此,在滤波器系数a[t,n]的当前值(在先前时间t确定的)的自适应(在时间t+1)期间,自适应的MGA实施例以β[n]σ[t+1,n]的较大绝对值进行得更快,而以β[n]σ[t+1,n]的较小绝对值进行得较慢。
参考权重β[n],“基于时间索引的”加权表示在每个索引n对应于时间的情况下,每个权重β[n]取决于哪个滤波器系数(第“n”滤波器系数)正在被更新。例如,每个权重β[n]可以是上述权重μ[k]之一,其中索引k对应于索引n,这是因为在权重μ[k]的上述描述中,索引k标识具有抽头索引l(该抽头索引又对应于时间)的滤波器的滤波器系数,使得权重μ[k]在区分所述滤波器组的不同滤波器的意义上是基于时间索引的。
在自适应的MGA实施例中,很明显,更新元素σ[t+1,n]是通过在假设该梯度已经从其先前值向前移动了若干量的情况下归一化和缩放每个梯度并且根据平滑因子γ对该自适应进行平滑化而确定的。每个梯度通过将其乘以归一化因子(f[t])-1/2)而被归一化,并且当预测误差如预期的那样随时间减小时,该归一化增加自适应步长,并且当预测误差没有以预期的方式随时间减小时(例如,在非预期或未预测的噪声的情况下),该归一化减小自适应步长。在每个自适应步骤期间,每个梯度由速率因子μβ[n]缩放,并且被归一化。只要缩放的、归一化的梯度的移动仍然具有与调节向量σ的移动相似的方向,系统将继续增加自适应速率。如果梯度(或缩放的、归一化的梯度)开始不可预测地表现,例如表现为噪声(例如,由于预测滤波器系数a[n],对于索引n的所有或一些值,接近最小值,和/或由于音频路径中的噪声),则自适应速率将由于更新步骤的低通(平滑化)性质而降低。换句话说,MGA方法加速了自适应的移动(自适应速率),直到梯度(对于索引n的所有值,它们被一起考虑为梯度向量)或梯度的缩放、归一化版本中的全部或一些开始变得更加随机。因此,基于自适应方向和自适应梯度的可预测性来控制预测滤波器系数的自适应。
图4是根据本发明实施例的回声消除的示例过程400的流程图(例如,使用归一化梯度向量的平滑化,如在上述自适应的MGA实施例中那样)。过程400可以由回声消除器系统来执行,该回声消除器系统可以包括一个或多个适当编程的处理器。回声消除器可以在包括麦克风和扬声器的设备(例如,移动设备)中实现(或实现为该设备),因此回声消除器在这里有时被称为设备。
参考图4,回声消除器从设备的麦克风接收(410)输入信号。回声消除器接收(420)到与麦克风在同一设备上的扬声器的输出信号(扬声器馈送)。回声消除器预测(430)由扬声器馈送的音频内容引起的输入信号的一部分(即内容)。预测包括基于输入信号和输出信号配置自适应滤波器。该配置包括至少基于自适应方向和自适应梯度的可预测性来缩放(即,控制)自适应滤波器的自适应速率。回声消除器从输入信号中去除(440)由扬声器馈送的音频内容引起的输入信号部分。
示例系统架构
图5是根据实施例的用于实现参考图1-4描述的特征和过程的移动设备架构(800)。根据本发明的实施例,具有架构800的设备可以被配置(例如,该架构的一个或多个处理器801和音频子系统803可以被配置)以通过控制预测滤波器自适应步长来执行回声消除(或其步骤)。架构800可以在任何电子设备中实现,包括但不限于:台式计算机、消费者音频/视频(AV)设备、无线电广播设备、移动设备(例如,智能手机、平板电脑、膝上型计算机、可穿戴设备)。在图5所示的示例实施例中,架构800用于智能电话,并且包括一个或多个处理器801、外围设备接口802、音频子系统803、扬声器804、麦克风805、传感器806(例如,加速度计、陀螺仪、气压计、磁力计、照相机)、位置处理器807(例如,GNSS接收器)、无线通信子系统808(例如,Wi-Fi、蓝牙、蜂窝)和一个或多个I/O子系统809(其包括触摸控制器810以及其他输入控制器811)、触摸表面812、以及其他输入/控制设备813,它们如图所示地耦合。具有更多或更少组件的其他架构也可以用于实现所公开的实施例。
存储器接口814耦合到处理器801、外围设备接口802和存储器815(例如,闪存、RAM、ROM)。存储器815存储计算机程序指令和数据,包括但不限于:操作系统指令816、通信指令817、GUI指令818、传感器处理指令819、电话指令820、电子消息指令821、网页浏览指令822、音频处理指令823、GNSS/导航指令824、和应用/数据825。音频处理指令823包括用于执行参考图1-4描述的音频处理(包括回声消除)的指令。
本文描述的系统的各方面可以在用于处理数字或数字化音频文件的适当的基于计算机的声音处理网络环境中实现。自适应音频系统的各部分可以包括一个或多个网络,该网络包括任何期望数量的单独机器,包括用于缓冲和路由在计算机之间传输的数据的一个或多个路由器(未示出)。这种网络可以建立在各种不同的网络协议上,并且可以是因特网、广域网(WAN)、局域网(LAN)或其任意组合。
组件、块、过程或其他功能组件中的一个或多个可以通过控制系统的基于处理器的计算设备的执行的计算机程序来实现。还应注意,根据其行为、寄存器传输、逻辑组件和/或其他特性,本文公开的各种功能可以使用硬件、固件和/或体现在各种机器可读或计算机可读介质中的数据和/或指令的任意数量的组合来描述。其中可以体现这种格式化数据和/或指令的计算机可读介质包括但不限于各种形式的物理(非暂时性)、非易失性存储介质,例如光、磁或半导体存储介质。
本发明的一些实施例的方面可以从以下示例实施例(“EEE”)中的一个或多个被理解:
EEE 1.一种回声消除方法,包括:
由回声消除器接收来自麦克风的输入信号;
由回声消除器接收到扬声器的输出信号;
由所述回声消除器预测由所述扬声器响应于所述输出信号而进行的声音发射所引起的所述输入信号的回声内容,其中所述预测包括以自适应步长进行至少一个预测滤波器的自适应,所述自适应步长通过使用滤波器的一组滤波器系数上的梯度下降被控制,其中所述自适应步长的控制至少部分基于自适应方向和自适应梯度的可预测性;以及
从输入信号中去除在预测步骤期间已经预测的所述回声内容中的至少一些。
EEE 2.根据EEE 1所述的方法,其中所述自适应的每个自适应步骤从先前确定的一组滤波器系数θn-1确定更新的一组滤波器系数θn,包括从先前确定的一组滤波器系数中减去更新项σn,其中更新项至少部分地由自适应梯度确定。
EEE 3.根据EEE 1或EEE 2所述的方法,其中所述自适应确定滤波器的至少一个系数a[k],所述自适应的每个自适应步骤响应于系数a[k]的先前确定版本a[t,k]确定系数a[k]的更新版本a[t+1,k],其中t表示时间,并且其中:
EEE 4.根据EEE 3所述的方法,其中,当预测误差以预期方式减小时,权重X[t]增大自适应步长,并且当预测误差不以预期方式减小时,降低自适应速度,并且其中,归一化因子1/N是动态归一化因子,其值在自适应接近收敛时增大。
EEE 5.根据EEE 3或EEE 4所述的方法,其中X[t]=μ[k]s[t],其中s[t]是时变权重,μ[k]是系数a[k]的基于时间索引的权重,预测滤波器具有滤波器抽头索引l,权重μ[k]依赖于滤波器抽头索引l的值。
EEE 6.根据EEE 1或EEE 2所述的方法,其中梯度下降是内斯特罗夫加速梯度下降。
EEE 7.根据EEE 6所述的方法,其中所述自适应确定滤波器的至少一个系数a[n],所述自适应的每个自适应步骤响应于系数a[n]的先前确定的版本a[t,n]确定系数a[n]的更新版本a[t+1,n],其中t表示时间,并且其中:
a[t+1,n]=a[t,n]–σ[t+1,n]
其中
EEE 8.根据EEE 6所述的方法,其中所述自适应确定滤波器的至少一个系数a[n],所述自适应的每个自适应步骤响应于系数a[n]的先前确定的版本a[t,n]确定系数a[n]的更新版本a[t+1,n],其中t表示时间,并且其中:
a[t+1,n]=a[t,n]–β[n]σ[t+1,n]
其中,β[n]是基于时间索引的权重,其中:
EEE 9.根据EEE 8所述的方法,其中β[n]是系数a[n]的基于时间索引的权重,包括系数a[n]的预测滤波器具有滤波器抽头索引l,并且权重β[n]依赖于滤波器抽头索引l的值。
EEE 10.根据EEE 1到EEE 9中任一项所述的方法,其中在所述预测滤波器的自适应期间,所述自适应步长的控制至少部分基于所述预测滤波器的滤波器抽头索引。
EEE 11.一种存储指令的非暂时性计算机可读介质,当所述指令被至少一个处理器执行时,使得所述至少一个处理器执行根据EEE 1到EEE10中任一项所述的方法。
EEE 12.一种被配置成执行回声消除的系统,所述系统包括:
至少一个处理器,被耦合和配置成接收来自麦克风的输入信号和到扬声器的输出信号,并且响应于输入信号和输出信号来确定至少一个预测滤波器,
其中,所述至少一个处理器被配置成预测由所述扬声器响应于所述输出信号而进行的声音发射所引起的所述输入信号的回声内容,包括以自适应步长进行至少一个预测滤波器的自适应,所述自适应步长通过使用滤波器的一组滤波器系数上的梯度下降被控制,其中所述自适应步长的控制至少部分基于自适应方向和自适应梯度的可预测性,以及
其中所述至少一个处理器被耦合并被配置为处理所述输入信号,以从所述输入信号中去除已经被预测的回声内容中的至少一些。
EEE 13.根据EEE 12所述的系统,其中所述自适应的每个自适应步骤从先前确定的一组滤波器系数θn-1确定更新的一组滤波器系数θn,包括从先前确定的一组滤波器系数中减去更新项σn,其中更新项至少部分地由自适应梯度确定。
EEE 14.根据EEE 12或EEE 13所述的系统,其中所述自适应确定滤波器的至少一个系数a[k],所述自适应的每个自适应步骤响应于系数a[k]的先前确定版本a[t,k]确定系数a[k]的更新版本a[t+1,k],其中t表示时间,并且其中:
EEE 15.根据EEE 14所述的系统,其中,当预测误差以预期方式减小时,权重X[t]增大自适应步长,并且当预测误差不以预期方式减小时,降低自适应速度,并且其中,归一化因子1/N是动态归一化因子,其值在自适应接近收敛时增大。
EEE 16.根据EEE 14或EEE 15所述的系统,其中X[t]=μ[k]s[t],其中s[t]是时变权重,μ[k]是系数a[k]的基于时间索引的权重,预测滤波器具有滤波器抽头索引l,权重μ[k]依赖于滤波器抽头索引l的值。
EEE 17.根据EEE 12或EEE 13所述的系统,其中梯度下降是内斯特罗夫加速梯度下降。
EEE 18.根据EEE 17所述的系统,其中所述自适应确定滤波器的至少一个系数a[n],所述自适应的每个自适应步骤响应于系数a[n]的先前确定的版本a[t,n]确定系数a[n]的更新版本a[t+1,n],其中t表示时间,并且其中:
a[t+1,n]=a[t,n]–σ[t+1,n]
其中
EEE 19.根据EEE 17所述的系统,其中所述自适应确定滤波器的至少一个系数a[n],所述自适应的每个自适应步骤响应于系数a[n]的先前确定的版本a[t,n]确定系数a[n]的更新版本a[t+1,n],其中t表示时间,并且其中:
a[t+1,n]=a[t,n]–β[n]σ[t+1,n]
其中,β[n]是基于时间索引的权重,其中:
EEE 20.根据EEE 19所述的系统,其中β[n]是系数a[n]的基于时间索引的权重,包括系数a[n]的预测滤波器具有滤波器抽头索引l,并且权重β[n]依赖于滤波器抽头索引l的值。
EEE 21.根据EEE 12到EEE 20中任一项所述的系统,其中在所述预测滤波器的自适应期间,所述自适应步长的控制至少部分基于所述预测滤波器的滤波器抽头索引。
虽然已经通过示例的方式并且根据具体实施例描述了一个或多个实现,但是应当理解,一个或多个实现不限于所公开的实施例。相反,本发明旨在覆盖对本领域技术人员来说显而易见的各种修改和类似布置。因此,所附权利要求的范围应当符合最广泛的解释,以便涵盖所有这样的修改和类似布置。
Claims (21)
1.一种回声消除方法,包括:
由回声消除器接收来自麦克风的输入信号;
由回声消除器接收到扬声器的输出信号;
由所述回声消除器预测由所述扬声器响应于所述输出信号而进行的声音发射所引起的所述输入信号的回声内容,其中所述预测包括以自适应步长进行至少一个预测滤波器的自适应,所述自适应步长通过使用滤波器的一组滤波器系数上的梯度下降被控制,其中所述自适应步长的控制至少部分基于自适应方向和自适应梯度的可预测性;以及
从输入信号中去除在预测步骤期间已经预测的所述回声内容中的至少一些。
2.根据权利要求1所述的方法,其中所述自适应的每个自适应步骤从先前确定的一组滤波器系数θn-1确定更新的一组滤波器系数θn,包括从先前确定的一组滤波器系数中减去更新项σn,其中更新项至少部分地由自适应梯度确定。
4.根据权利要求3所述的方法,其中,当预测误差以预期方式减小时,权重X[t]增大自适应步长,并且当预测误差不以预期方式减小时,降低自适应速度,并且其中,归一化因子1/N是动态归一化因子,其值在自适应接近收敛时增大。
5.根据权利要求3所述的方法,其中X[t]=μ[k]s[t],其中s[t]是时变权重,μ[k]是系数a[k]的基于时间索引的权重,预测滤波器具有滤波器抽头索引l,权重μ[k]依赖于滤波器抽头索引l的值。
6.根据权利要求1所述的方法,其中梯度下降是内斯特罗夫加速梯度下降。
9.根据权利要求8所述的方法,其中β[n]是系数a[n]的基于时间索引的权重,包括系数a[n]的预测滤波器具有滤波器抽头索引l,并且权重β[n]依赖于滤波器抽头索引l的值。
10.根据权利要求1所述的方法,其中在所述预测滤波器的自适应期间,所述自适应步长的控制至少部分基于所述预测滤波器的滤波器抽头索引。
11.一种存储指令的非暂时性计算机可读介质,当所述指令被至少一个处理器执行时,使得所述至少一个处理器执行根据权利要求1-10中任一项所述的方法。
12.一种被配置成执行回声消除的系统,所述系统包括:
至少一个处理器,被耦合和配置成接收来自麦克风的输入信号和到扬声器的输出信号,并且响应于输入信号和输出信号来确定至少一个预测滤波器,
其中,所述至少一个处理器被配置成预测由所述扬声器响应于所述输出信号而进行的声音发射所引起的所述输入信号的回声内容,包括以自适应步长进行预测滤波器的自适应,所述自适应步长通过使用滤波器的一组滤波器系数上的梯度下降被控制,其中所述自适应步长的控制至少部分基于自适应方向和自适应梯度的可预测性,以及
其中所述至少一个处理器被耦合并被配置为处理所述输入信号,以从所述输入信号中去除已经被预测的回声内容中的至少一些。
13.根据权利要求12所述的系统,其中所述自适应的每个自适应步骤从先前确定的一组滤波器系数θn-1确定更新的一组滤波器系数θn,包括从先前确定的一组滤波器系数中减去更新项σn,其中更新项至少部分地由自适应梯度确定。
15.根据权利要求14所述的系统,其中,当预测误差以预期方式减小时,权重X[t]增大自适应步长,并且当预测误差不以预期方式减小时,降低自适应速度,并且其中,归一化因子1/N是动态归一化因子,其值在自适应接近收敛时增大。
16.根据权利要求14所述的系统,其中X[t]=μ[k]s[t],其中s[t]是时变权重,μ[k]是系数a[k]的基于时间索引的权重,预测滤波器具有滤波器抽头索引l,权重μ[k]依赖于滤波器抽头索引l的值。
17.根据权利要求12所述的系统,其中梯度下降是内斯特罗夫加速梯度下降。
20.根据权利要求19所述的系统,其中β[n]是系数a[n]的基于时间索引的权重,包括系数a[n]的预测滤波器具有滤波器抽头索引l,并且权重β[n]依赖于滤波器抽头索引l的值。
21.根据权利要求12所述的系统,其中在所述预测滤波器的自适应期间,所述自适应步长的控制至少部分基于所述预测滤波器的滤波器抽头索引。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962949598P | 2019-12-18 | 2019-12-18 | |
US62/949,598 | 2019-12-18 | ||
US202062990870P | 2020-03-17 | 2020-03-17 | |
US62/990,870 | 2020-03-17 | ||
US202063120408P | 2020-12-02 | 2020-12-02 | |
US63/120,408 | 2020-12-02 | ||
PCT/US2020/064397 WO2021126670A1 (en) | 2019-12-18 | 2020-12-11 | Filter adaptation step size control for echo cancellation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114868183A true CN114868183A (zh) | 2022-08-05 |
Family
ID=74141911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080088290.3A Pending CN114868183A (zh) | 2019-12-18 | 2020-12-11 | 用于回声消除的滤波器自适应步长控制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11837248B2 (zh) |
EP (1) | EP4078577A1 (zh) |
CN (1) | CN114868183A (zh) |
WO (1) | WO2021126670A1 (zh) |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592548A (en) | 1995-05-31 | 1997-01-07 | Qualcomm Incorporated | System and method for avoiding false convergence in the presence of tones in a time-domain echo cancellation process |
US6563803B1 (en) | 1997-11-26 | 2003-05-13 | Qualcomm Incorporated | Acoustic echo canceller |
US6263078B1 (en) | 1999-01-07 | 2001-07-17 | Signalworks, Inc. | Acoustic echo canceller with fast volume control compensation |
US6707912B2 (en) | 1999-03-11 | 2004-03-16 | Motorola, Inc. | Method and apparatus for setting a step size for an adaptive filter coefficient of an echo canceller |
GB2356328B (en) | 1999-11-11 | 2002-10-30 | Motorola Israel Ltd | Echo suppression and echo cancellation |
US6947550B2 (en) | 2002-04-30 | 2005-09-20 | Innomedia Pte Ltd. | Acoustic echo cancellation |
US7031461B2 (en) | 2004-01-12 | 2006-04-18 | Acoustic Technologies, Inc. | Robust adaptive filter for echo cancellation |
US7577248B2 (en) * | 2004-06-25 | 2009-08-18 | Texas Instruments Incorporated | Method and apparatus for echo cancellation, digit filter adaptation, automatic gain control and echo suppression utilizing block least mean squares |
US20060018460A1 (en) | 2004-06-25 | 2006-01-26 | Mccree Alan V | Acoustic echo devices and methods |
US7426270B2 (en) | 2005-08-10 | 2008-09-16 | Clarity Technologies, Inc. | Method and system for clear signal capture |
US8014516B2 (en) | 2006-01-27 | 2011-09-06 | Mediatek Inc. | Method and apparatus for echo cancellation |
EP2014132A4 (en) | 2006-05-04 | 2013-01-02 | Sony Computer Entertainment Inc | CANCELLATION OF ECHO AND NOISE |
WO2008004157A1 (en) * | 2006-07-03 | 2008-01-10 | Nxp B.V. | Adaptive filter for channel estimation with adaptive step-size |
JP4509126B2 (ja) | 2007-01-24 | 2010-07-21 | 沖電気工業株式会社 | エコーキャンセラ及びエコーキャンセル方法 |
JP5016551B2 (ja) | 2007-05-11 | 2012-09-05 | ティーオーエー株式会社 | エコーキャンセラ |
US20090281803A1 (en) * | 2008-05-12 | 2009-11-12 | Broadcom Corporation | Dispersion filtering for speech intelligibility enhancement |
US8363712B2 (en) | 2011-01-06 | 2013-01-29 | Analog Devices, Inc. | Apparatus and method for adaptive I/Q imbalance compensation |
US9036815B2 (en) | 2012-06-02 | 2015-05-19 | Yuan Ze University | Method for acoustic echo cancellation and system thereof |
US9036816B1 (en) | 2014-03-13 | 2015-05-19 | Amazon Technologies, Inc. | Frequency domain acoustic echo cancellation using filters and variable step-size updates |
US9172791B1 (en) | 2014-04-24 | 2015-10-27 | Amazon Technologies, Inc. | Noise estimation algorithm for non-stationary environments |
US9613634B2 (en) * | 2014-06-19 | 2017-04-04 | Yang Gao | Control of acoustic echo canceller adaptive filter for speech enhancement |
US9344579B2 (en) | 2014-07-02 | 2016-05-17 | Microsoft Technology Licensing, Llc | Variable step size echo cancellation with accounting for instantaneous interference |
EP3469591B1 (en) | 2016-06-08 | 2020-04-08 | Dolby Laboratories Licensing Corporation | Echo estimation and management with adaptation of sparse prediction filter set |
US9754605B1 (en) | 2016-06-09 | 2017-09-05 | Amazon Technologies, Inc. | Step-size control for multi-channel acoustic echo canceller |
US9972337B2 (en) | 2016-06-22 | 2018-05-15 | Cisco Technology, Inc. | Acoustic echo cancellation with delay uncertainty and delay change |
US10367948B2 (en) | 2017-01-13 | 2019-07-30 | Shure Acquisition Holdings, Inc. | Post-mixing acoustic echo cancellation systems and methods |
US10163432B2 (en) | 2017-02-23 | 2018-12-25 | 2236008 Ontario Inc. | Active noise control using variable step-size adaptation |
US10482895B2 (en) | 2017-09-01 | 2019-11-19 | Cirrus Logic, Inc. | Acoustic echo cancellation (AEC) rate adaptation |
US11189297B1 (en) * | 2020-01-10 | 2021-11-30 | Amazon Technologies, Inc. | Tunable residual echo suppressor |
-
2020
- 2020-12-11 EP EP20838777.9A patent/EP4078577A1/en active Pending
- 2020-12-11 WO PCT/US2020/064397 patent/WO2021126670A1/en unknown
- 2020-12-11 US US17/786,138 patent/US11837248B2/en active Active
- 2020-12-11 CN CN202080088290.3A patent/CN114868183A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11837248B2 (en) | 2023-12-05 |
US20230021739A1 (en) | 2023-01-26 |
WO2021126670A1 (en) | 2021-06-24 |
EP4078577A1 (en) | 2022-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7175441B2 (ja) | 雑音のある時変環境のための重み付け予測誤差に基づくオンライン残響除去アルゴリズム | |
US11315587B2 (en) | Signal processor for signal enhancement and associated methods | |
US10123113B2 (en) | Selective audio source enhancement | |
CN110088834B (zh) | 用于语音去混响的多输入多输出(mimo)音频信号处理 | |
CN111418012B (zh) | 用于处理音频信号的方法和音频处理设备 | |
US11373667B2 (en) | Real-time single-channel speech enhancement in noisy and time-varying environments | |
WO2009130513A1 (en) | Two microphone noise reduction system | |
EP2036399A1 (en) | Adaptive acoustic echo cancellation | |
WO2017160294A1 (en) | Spectral estimation of room acoustic parameters | |
US10056092B2 (en) | Residual interference suppression | |
EP2987314B1 (en) | Echo suppression | |
Hamidia et al. | Improved variable step-size NLMS adaptive filtering algorithm for acoustic echo cancellation | |
WO2020124325A1 (zh) | 一种回声消除中的自适应滤波方法、装置、设备及存储介质 | |
WO2014194013A1 (en) | Echo removal | |
WO2007123048A1 (ja) | 適応アレイ制御装置、方法、プログラム、及びこれを利用した適応アレイ処理装置、方法、プログラム | |
Cho et al. | Stereo acoustic echo cancellation based on maximum likelihood estimation with inter-channel-correlated echo compensation | |
CN114868183A (zh) | 用于回声消除的滤波器自适应步长控制 | |
JP2003250193A (ja) | 反響消去方法、この方法を実施する装置、プログラムおよびその記録媒体 | |
Braun et al. | Low complexity online convolutional beamforming | |
US20230137830A1 (en) | Wideband adaptation of echo path changes in an acoustic echo canceller | |
JP6343585B2 (ja) | 未知伝達系推定装置、未知伝達系推定方法、およびプログラム | |
JP6356087B2 (ja) | エコー消去装置、その方法及びプログラム | |
Mahbub et al. | Gradient Based Adaptive Algorithm for Echo Cancellation from Recorded Echo Corrupted Speech | |
CN113870884A (zh) | 单麦克风噪声抑制方法和装置 | |
JP2004128994A (ja) | 適応フィルタシステム |
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 |