非线性回波路径检测的制作方法

文档序号:11291195阅读:173来源:国知局
非线性回波路径检测的制造方法与工艺



背景技术:

设备可以具有可用于从周围环境接收音频信号的音频输入装置。设备还可以具有可用于向周围环境输出音频信号的音频输出装置。例如,设备可以具有用于输出音频信号的一个或多个扬声器和用于接收音频信号的一个或多个麦克风。从设备的扬声器输出的音频信号可能作为在由麦克风接收到的音频信号中的“回波”而被接收。有可能是这种情况:该回波在接收到的音频信号中是不想要的。例如,该设备可以是在通过网络与另一用户设备的诸如音频或视频呼叫的通信事件中使用的用户设备(诸如移动电话、平板电脑、膝上型计算机、pc等)。呼叫的远端信号可以在用户设备处从扬声器输出,并且可能作为设备处的麦克风接收到的音频信号中的回波而被接收。这样的回波对于呼叫的用户可能是有干扰的,并且呼叫的感知质量可能由于回波而降低。特别地,回波可能会对旨在由麦克风接收并发送到呼叫中的远端的近端音频信号造成干扰。因此,回波抵消和/或回波抑制可以应用于接收到的音频信号,从而抑制接收到的音频信号中的回波。

回波抵消(或“回波减除”)技术旨在基于对从扬声器输出的音频信号的知识来估计被包括于在麦克风处接收到的音频信号中的回波信号。然后可以从接收到的音频信号中减去回波信号的估计,从而从接收到的音频信号中消除至少一些回波。回波抑制被用于将频率相关抑制(frequency-dependentsuppression)应用于接收到的音频信号,从而对接收到的音频信号中的回波进行抑制。



技术实现要素:

根据本公开的第一方面,提供了一种用户终端,包括:扬声器组件;麦克风组件;音频信号处理模块,包括:音频参考信号生成器,其被配置为,在通过通信网络与至少一个另外的用户终端的通信事件的建立之前,生成音频参考信号,并输出音频参考信号到扬声器组件用于播放;回波消除模块,被配置为对在所述通信事件期间经由所述麦克风组件接收到的音频信号执行回波消除;以及检测器,其被配置为,在所述通信事件的建立之前:确定音频参考信号的特性;接收从麦克风组件输出的音频信号,其中接收到的音频信号包括由输出的音频参考信号造成的回波;确定所述接收到的音频信号的特性;将所确定的所述音频参考信号的特性与确定的接收到的音频信号的特性进行比较,以检测所述回波的非线性回波路径,以及基于所述检测来配置音频信号处理模块的组件。

根据本公开的另一方面,提供了至少一个计算机可读介质,其存储通信客户端应用,所述通信客户端应用当在用户终端的一个或多个处理器上执行时,使得所述一个或多个处理器执行以下操作:在通过通信网络与至少一个另外的用户终端的通信事件的建立之前,生成音频参考信号,并将所述音频参考信号供应给所述用户终端的扬声器组件;对在通信事件期间经由用户终端的麦克风组件接收到的音频信号执行回波消除;以及在通信事件的建立之前:确定音频参考信号的特性;接收从麦克风组件输出的音频信号,其中接收到的音频信号包括由输出的音频参考信号造成的回波;确定所述接收到的音频信号的特性;将所确定的所述音频参考信号的特性与确定的接收到的音频信号的特性进行比较,以检测所述回波的非线性回波路径;并基于所述检测来配置通信客户端应用的组件。

根据本公开的另一方面,提供了由通信客户端应用当在用户终端的一个或多个处理器上执行时执行的计算机实现的方法,所述方法包括:在通过通信网络与至少一个另外的用户终端的通信事件的建立之前生成音频参考信号;将音频参考信号供应给用户终端的扬声器组件;在通信事件的建立之前:确定音频参考信号的特性,接收从麦克风组件输出的音频信号,其中接收到的音频信号包括由输出的音频参考信号造成的回波;确定所述接收到的音频信号的特性;将所确定的所述音频参考信号的特性与所确定的所述接收到的音频信号的特性进行比较,以检测所述回波的非线性回波路径,以及基于所述检测来配置通信客户端应用的组件。

提供该发明内容是为了以简化的形式来介绍在下文的具体实施方式中进一步描述的概念的选集。该发明内容不旨在确定所要求保护的主题的关键特征或主要特征,也不旨在用于限制所要求保护的主题的范围。

附图说明

为了更好地理解本发明并且示出如何实现本发明,现在将通过示例的方式参考以下附图,其中:

图1示出了通信系统的示意图;

图2是用户终端的示意性框图;

图3是示出用于回波消除的用户终端的模块的功能图;

图4是用于检测回波路径中的非线性的流程图;以及

图5a和5b示出了示例的生成的音频参考信号和示例的麦克风信号。

具体实施方式

现在将仅通过示例的方式描述本发明的实施例。

图1示出了通信系统100,其包括与用户终端102相关联的第一用户104(用户a)和与用户终端108相关联的第二用户110(用户b)。用户终端102和108能够通过通信系统100中的通信网络106进行通信,从而允许用户104和110通过通信网络106彼此通信。通信网络106可以是具有提供用户终端102和第二用户终端108之间的通信信道的能力的任何合适的网络。例如,通信网络106可以是互联网,或另一类型的网络诸如高数据速率移动网络,诸如第三代(“3g”)移动网络。

注意,在替代实施例中,用户终端可以经由图1中未示出的另外的中间网络连接到通信网络106。例如,如果用户终端102是移动设备,则它可以经由蜂窝移动网络(图1中未示出),例如gsm或umts网络,来连接到通信网络106。参与通过通信网络106进行的通信事件的用户终端可以经由相同或不同类型的网络连接来连接到网络106。例如,用户终端102可以经由wifi连接来连接到通信网络106,并且用户终端108可以经由蜂窝移动网络(例如,2g/3g/4g等)连接到通信网络106。

用户终端102可以是例如移动电话、个人数字助理(“pda”)、个人计算机(“pc”)(包括例如windowstm,macostm和linuxtmpc)、平板电脑、游戏设备或能够连接到通信网络106的其他嵌入式设备。用户终端102被设置为从用户a104接收信息并向用户a104输出信息。

用户终端102执行由与通信系统100相关联的软件提供商提供的通信客户端应用112。通信客户端应用112是在用户终端102中的本地处理器上执行的软件程序。通信客户端应用112执行在用户终端102处所需的处理,以便用户终端102通过通信系统100发送和接收数据。在用户终端102处执行的通信客户端应用112可被认证以通过递交数字证书(例如,用以证明用户104是通信系统的真实用户,这在wo2005/009019中有更详细的描述)来通过通信系统进行通信。

用户终端108可以对应于用户终端102。用户终端108在本地处理器上执行与在用户终端102处执行的通信客户端应用112相对应的通信客户端应用114。在用户终端108处的通信客户端应用114,以与在用户终端102处的通信客户端应用112执行允许用户a104通过网络106进行通信所需的处理相同的方式,来执行允许用户110通过网络106进行通信所需的处理。用户终端102和108是通信系统中的端点(endpoint)。为了清楚,图1仅示出了两个用户(104和110)和两个用户终端(102和108),但是更多的用户和用户设备可以包括在通信系统100中,并且可以使用在相应的用户设备上执行的相应的通信客户端来通过通信系统100进行通信,如本领域中已知的。

除设备上的本地处理器之外,设备通常还具有专用音频信号处理模块(例如声卡)。该音频信号处理模块为用户设备执行音频处理功能,例如对在麦克风处捕获的音频信号的模数转换(adc)以及对用于扬声器播放的音频信号的数模转换(dac)。

通常,音频信号处理模块对播放信号(即,要从扬声器输出的信号)引入效果,以便最大化用户体验(例如包括在驱动器和/或硬件中的响度增强效果)。这些效果通过音频信号处理模块实现,音频信号处理模块的功能在使用os中可用的播放系统的设备上的本地处理器上执行的应用(例如,通信客户端)的控制之外,并且可能对于该应用是未知的。例如,通常的是,硬件制造商将“动态范围压缩”(例如,为最大化给定峰值信号电平的感知响度而进行的最大化)包括在(例如在笔记本电脑、智能手机、平板电脑等中的)扬声器设置中。

动态范围压缩(也被称为“动态压缩”或简称“压缩”)通过缩窄或“压缩”音频信号的动态范围(例如为了使得轻柔的部分较易听得见,并且/或者防止响亮的部分过于响亮)来降低响亮声音的音量或放大轻柔声音的音量。向下压缩将某个阈值以上的响亮声音降低,同时轻柔声音仍然不受影响,而向上压缩将在阈值以下的声音的响度提高,同时将较为响亮的通道保留不变。向下和向上压缩都可以减小音频信号的动态范围。在此上下文中,动态范围压缩可以被认为是“快速反应自动增益控制”,其中“快速”意味着对于音频信号处理(例如回波抵消)来说太快以至于不能跟上增益改变,从而导致不存在初始动态范围压缩(例如对于回波抵消器而言太快以至于不能适应、并且因此可能导致回波泄漏的改变)。

用户终端102和用户终端108都能够执行声学回波消除。实现声学回波消除有两种主要方式,一种是回波抵消/减除,另一种是回波抑制。通常将这两种途径相结合。

由用户终端102的麦克风捕获的音频信号通过网络106传输,以便由用户终端108播放。用户终端108的麦克风捕获由用户终端102发送的音频信号的回波。如果该回波未被完全抵消,那么用户终端108将其发送回用户终端102。接收到的信号通过用户终端102的扬声器被播放,并且回波被用户终端102的麦克风捕获。如果用户终端102中的回波抵消器不能够完全消除该回波,则将回波信号再次发送到用户终端108。

回波抵消通常利用参考,其通常是在提供给扬声器之前的某个版本的音频信号,从扬声器之前的音频信号处理链中的点进行抽头(tap),并且对通过该版本的音频信号观察到的回波路径进行建模。该回波路径对应于音频信号到扬声器所取的路径、扬声器和麦克风之间的空中接口以及从麦克风到回波抵消模块的路径。

一般地,当在设备播放的输出中寻找参考(用于回波抵消或某种其他基于参考的信号处理)时,如果设备应用未在参考中反映的未知的非线性处理,和/或如果非线性贡献被引入由用户终端的一个或多个扬声器、麦克风和外壳的物理特性引起的回波路径,则可能会是成问题的。

例如,传统回波抵消器更适合于对回波路径中的线性失真进行建模,并且通常具有起因于回波路径中存在的非线性失真的问题。这种非线性回波路径可能导致信号中的回波泄漏或回波残差。也就是说,当在参考与在麦克风信号中拾取的回波分量之间存在基本线性关系时,传统回波抵消器通常表现最佳。

然而,当在回波路径中引入非线性时。这对回波抵消器造成了挑战,因为传统的回波抵消方案对非线性回波路径进行了较差的建模,如所讨论的那样。

一些操作系统包括用于将要播放的信号反馈给在本地处理器上执行的应用的功能。被反馈给在本地处理器上执行的应用的该信号在下文中被称为“回送信号”。然后,回送信号可以用作回波抵消过程中的参考。包括此功能的操作系统的示例是microsoft的windows7,8,xp和vista以及windowsphone8操作系统。使用回送信号的回波抵消器不需要对由音频信号处理模块引入的那些非线性失真进行建模(因为音频信号处理模块被有效地从回波路径中移除),因此并未预期回波泄漏。但是,回送信号并不是对于所有操作系统都为可用的。不具有这种回送功能的操作系统的例子是android和ios移动操作系统。在没有回送参考信号的情况下,回波抵消可能失败并生成回波泄漏以及其他,本公开的目的之一是防止或至少减少这种回波泄漏。

图2示出了用户终端108的详细视图,在用户终端108上执行通信客户端应用114以便通过通信系统100进行通信。用户终端108包括中央处理单元(“cpu”)202,其连接有:诸如屏幕或触摸屏的显示器204,诸如小键盘206、摄像机208和触摸屏204的输入设备。输出音频设备210(例如扬声器)和输入音频设备212(例如麦克风)连接到cpu202。显示器204、小键盘206、摄像机208、输出音频设备210和输入音频设备212可以集成到用户终端108中,如图2所示。在替代的用户终端中,显示器204、小键盘206、摄像机208、输出音频设备210和输入音频设备212中的一个或多个可以不被集成到用户终端102中,并且可以经由相应的接口连接到cpu202。这种接口的一个例子是usb接口。cpu202连接到网络接口224,诸如用于与通信网络106通信的调制解调器。如图2所示,网络接口224可以集成到用户终端108中。在替代的用户终端中,网络接口224不被集成到用户终端108中。用户终端108还包括用于存储数据的存储器226,如本领域已知的。存储器226可以是永久存储器,诸如rom。存储器226可以替代地是暂态存储器,诸如ram。

扬声器210和麦克风212中的至少一个可以经由音频信号处理模块209连接到cpu202。当扬声器210经由音频信号处理模块209连接到cpu202时,为在用户终端108上(例如由客户端和其他应用)输出而生成的任何音频数据,在经由扬声器210输出之前,必须供应给音频信号处理模块209以便进行处理。当麦克风212经由音频信号处理模块209连接到cpu202时,经由麦克风212接收的任何音频数据必须在经由网络接口224通过网络106进行传输之前就被供应给音频信号处理模块209以便进行处理。

用户终端108可以包括除了图2所示的元件之外的其他元件。

用户终端108安装有通信客户端应用114,其中通信客户端应用114被存储在存储器226中,并且被布置为在cpu202上执行。图2还示出了在cpu202上执行的操作系统(“os”)214。在os214之上运行的是用于上述通信客户端应用114的软件栈216。软件栈示出了i/o层218、客户端引擎层220和客户端用户接口层(“ui”)222。每层负责特定功能。因为每层通常与其他两个层通信,所以它们被认为是布置在栈中,如图2所示。操作系统214管理计算机的硬件资源并且处理经由网络接口224发送到通信网络106和从通信网络106发送的数据。i/o层218包括音频和/或视频编解码器,其接收呼入(incoming)的经编码的流并对这些流进行解码,以便适当地输出到扬声器210和/或显示器204,并且其从麦克风212和/或摄像机208接收未编码的音频和/或视频数据,并对该数据进行编码以便作为流发送到通信系统100的其他最终用户终端。客户端引擎层220处理上文所讨论的voip系统的连接管理功能,例如建立呼叫或其他通过基于服务器或p2p地址查找和认证的连接。客户端引擎也可能负责本文中未讨论的其他次要功能。客户端引擎220还与客户端用户接口层222进行通信。客户端引擎220可以被布置为控制客户端用户接口层222经由显示在显示器204上的通信客户端应用114的用户接口向用户终端108的用户呈现信息并经由用户接口从用户终端108的用户接收信息。

参见图3,现在描述了一种回波抵消的方法。图3是用户终端108的一部分的功能图。

如图3所示,用户终端108包括扬声器210、麦克风212和音频信号处理模块300。音频信号处理模块300(如图3中虚线框所示)表示通过在用户终端108的cpu202上执行通信客户端应用114来实现的信号处理功能。音频信号处理模块300包括回波消除模块301、音频参考信号生成器308和非线性检测器310。回波消除模块301包括包含滤波器模块的建模模块302,以及在该实施例中实现回波抵消的回波抵消模块304。在其他实施例中,回波消除模块301还可实现回波抑制。通过执行通信客户端应用114实现的信号处理功能可以包括与图3所示相比更多或更少的功能。

用户终端108还可以包括音频信号处理模块209。音频信号处理模块209包括图3所示的以动态范围压缩(drc)模块306的形式的至少一个非线性处理模块306,其在音频信号处理模块300的控制之外。

尽管图3示出了非线性处理模块306,其被布置成在从扬声器210播放之前对音频信号应用非线性处理。替代地或另外地,用户终端108可以包括至少一个非线性处理模块306,其被布置成处理已经由麦克风212输出的音频信号。

下面参考用户终端108对实施例进行描述,其包括drc模块306,drc模块306被配置为在从扬声器210播放之前对音频信号应用动态范围压缩。

音频信号处理模块300耦合到drc模块306的输入。特别地,要从扬声器210输出的输入音频信号w(t)(表示为“远端信号”)耦合到drc模块306的第一输入。音频参考信号生成器308的输出耦合到drc模块306a的第二输入。drc模块306的输出耦合到扬声器210。为了对回波路径增益进行建模并估计由麦克风212捕获的回波,需要一个参考信号,这是标记为w(t)的信号。该信号表示通信客户端应用114发送以从扬声器210播放并且在能够经由扬声器210输出之前经历由软件客户端域之外的drc模块306进行的后续处理的音频信号w(t)。呼入的音频信号w(t)耦合到建模模块302的第一输入。麦克风212的输出y(t)耦合到建模模块302的第二输入。麦克风212的输出y(t)还耦合到回波抵消模块304的第一输入。建模模块302的输出耦合到回波抵消模块304的第二输入。回波抵消模块304的输出用于提供接收到的信号(其中已应用回波抵消)用于在用户终端108中进一步处理。

音频信号处理模块300可以包括被配置为选择性地对要从扬声器210输出的音频信号w(t)执行音频处理的音频处理组件303。在一个实施例中,音频处理组件303是线性滤波器。在另一个实施例中,音频处理组件303是增益控制模块。非线性检测器310的输出耦合到音频处理组件303。

麦克风212的输出y(t)耦合到非线性检测器310的第一输入。非线性检测器310被配置为接收从音频参考信号生成器308输出的音频参考信号的特性。非线性检测器310的输出耦合到回波消除模块301。非线性检测器310的操作将在下面进一步详细描述。

应当注意,在本文所描述的实施例中,仅有一个扬声器(在附图中由附图标记210表示),但在其他实施例中,可以存在多于一个扬声器,待输出的信号被耦合到该扬声器(以便从该扬声器中输出)。类似地,在本文所描述的实施例中,仅有一个麦克风(在附图中由附图标记212表示),但在其他实施例中,可以有多于一个麦克风,其接收来自周围环境的音频信号。

这里,函数“a(.)”是应用动态范围压缩(例如最大化)的预处理算子;也就是说,“a(.)”表示由drc模块306在生成输出x(t)=a(w(t))时执行的函数。音频信号w(t)是用作回波抵消参考的信号,并且也被发送到drc模块306。

现在将描述在通信事件(例如,语音或视频呼叫)期间由建模模块302和回波抵消模块304执行的回波抵消过程。

在通信事件期间(例如,在通信事件已经建立之后),接收输入音频信号w(t),其将要从扬声器210输出。例如,要输出的信号可以是远端信号,在用户104和110之间通过通信系统100的呼叫期间,该远端信号从用户终端102在网络接口220处接收在用户终端108中。输出音频信号从扬声器210输出到用户110。

麦克风212接收音频信号。如图3所示,接收到的音频信号可以包括作为想要的信号或“主信号”的近端信号。近端信号是用户110打算让麦克风212接收的信号(在图3中标示为近端),例如,话语。然而,接收到的音频信号还包括由从扬声器210输出的音频信号所造成的回波信号。接收到的音频信号还可以包括诸如背景噪声(未示出)之类的噪声。因此,总接收音频信号y(t)可以由近端信号、回波和噪声的和来给出。回波和噪声充当对近端信号的干扰。虽然在图3中未示出,但是模数转换(adc)被应用于由麦克风212捕获的信号以得出数字信号y(t)。

建模模块(滤波器模块)302将输入音频信号w(t)和接收到的音频信号y(t)作为输入。建模模块302用于对接收到的音频信号y(t)中的回波的回波路径进行建模。

回波路径描述从扬声器210输出到麦克风212的音频信号所行经的声学路径的效果。音频信号可以从扬声器210直接行进到麦克风212,或者可以反射自近端终端(near-endterminal)环境中的各种不同表面。从扬声器210输出的音频信号所遍历的回波路径可以被认为是具有可随时间变化的频率响应和相位响应的系统。

为了从在近端麦克风212处记录的信号y(t)消除声学回波s(t),有必要估计回波路径是如何将想要的远端扬声器输出信号改变为输入信号中的不想要的回波分量的。

在这种情况下,回波路径建模假定近似线性的回波路径,即假定回波路径的输出信号振幅随着回波路径的输入信号幅度而线性地缩放。

对于近似线性回波路径,回波路径h(t)描述了接收到的音频信号y(t)中的回波如何与从扬声器210输出的远端信号x(t)相关,例如对于根据以下等式由脉冲响应h(t)表示的线性回波路径:其中s(t)是接收到的音频信号y(t)中的回波,n_true是由麦克风212接收的输出的远端信号x(t)的采样数,而hn(t)是描述回波路径h(t)的脉冲响应的系数。回波路径h(t)可以在时间和频率两者上变化,并且在本文中可以被称为h(t)或h(t,f)。回波路径h(t)可以取决于:(i)扬声器210和麦克风212周围的当前环境条件(例如,是否存在对于从扬声器210到麦克风212的音频信号的通道的任何物理障碍物、空气压力、温度、风等),和(ii)扬声器210和/或麦克风212的特性,其可以在输出和/或接收时更改信号,以及(iii)可能没有在远端信号中反映出来的对信号的任何其它处理,特别是由于由音频信号处理模块209进行的处理(但也可能由于诸如缓存延迟等其它因素而导致)。

建模模块302通过确定输出的远端信号x(t)的当前值和有限数量(n)的先前值的加权和,来对接收到的音频信号y(t)中的与回波相关联的回波路径h(t)进行建模。因此,建模模块302实现具有(在时间上)有限长度的n阶滤波器,它在对回波路径的估计进行确定时在该有限长度上考虑输出的远端信号x(t)的值。以这种方式,建模模块302动态地适应回波路径的滤波器估计该操作由以下等式描述,其依据输出的远端信号x(t)定义接收到的音频信号y(t)中的回波:因此,输出的远端信号x(t)的n+1个采样被使用,具有相应的n+1个权重这里将n+1个权重的集合简称为回波路径的估计换句话说,回波路径的估计是具有n+1个值的向量,其中建模模块302实现n阶滤波器,考虑到输出的远端信号x(t)的n+1个值(例如,n+1个帧)。

可以理解,当回波是接收到的音频信号的主要部分时,即当时,更易于适配回波路径的滤波器估计然而,即使当回波不是接收到的音频信号y(t)的主要部分时,如果回波s(t)独立于y(t)的其他信号分量,则可以能够适配回波路径的滤波器估计。

本领域技术人员将理解,回波路径的估计不需要被明确地计算,而是可以通过从随机梯度算法(诸如最小均方正方形(lms)、归一化最小均方(nlms)、快速仿射投影(fap)和递归最小二乘法(rls))获得的滤波器系数来表示。

回波路径的估计用于提供滤波器系数,其对远端信号进行滤波以根据回波路径的估计来生成麦克风信号y(t)中的回波分量的估计s(t)。

不管所使用的特定算法如何,建模模块302的滤波器系数在算法的每次迭代中被更新,因此建模模块302的系数随着时间不断地被更新,而与即将到来的信号条件无关。

虽然上述描述涉及使用回波路径的时域fir模型来估计近端信号y(t)中的回波分量,但是本领域技术人员将理解,这只是一个例子,而不是要以任何方式进行限制。也就是说,建模模块302可以操作以确定回波路径的估计并且因此确定在时域或频域中的近端信号y(t)中的回波分量的估计s(t)。

回波路径的估计通常基于高能量信号,因为那些是生成最可靠的回波路径估计的信号。

回波抵消模块304被布置为接收麦克风信号中的回波分量的估计s(t)以及麦克风信号y(t)作为输入,并且从接收到的音频信号y(t)中减去回波信号的估计s(t)。

回波抵消模块304输出接收到的信号,其中回波已经被抵消,例如,用于在用户终端108上的进一步处理。例如,从回波抵消模块304输出的信号可以由通信客户端应用104处理(例如被编码和被封包化),然后在用户104和110之间的呼叫中通过网络106发送到用户终端102。

至少一个非线性处理模块306(例如以动态范围压缩(drc)模块306的形式)和/或一个或多个扬声器210和麦克风212的机械特性(例如这些组件或其壳体中的松弛零件导致的机械噪声)可能在回波路径中引入非线性,从而在从回波抵消模块304输出的信号中引起回波泄漏或回波残差。

在本公开的实施例中,可以在通信事件被建立之前识别回波路径中的非线性的存在和性质,使得当通信事件被建立时,由回波消除模块301实现的回波消除过程已经被配置为将回波路径中的非线性纳入考虑。

图4是由音频信号处理模块300执行的过程400的流程图。

在通信事件(例如,语音或视频呼叫)被建立之前执行过程400,使得音频信号处理模块300被预先地且在准备通信事件时被配置。

在步骤s402,音频参考信号生成器308生成音频参考信号,并且在步骤s404提供生成的音频参考信号以便由扬声器210播放。

音频参考信号生成器308可以将生成的音频参考信号并入铃声音频信号中,当通过网络106(例如,从用户终端102)接收到建立通信事件的请求时,通信客户端应用114从扬声器210播放铃声音频信号。也就是说,所生成的音频参考信号充当铃声中的导频信号。

可替代地,当通过网络106(例如,从用户终端102)接收到建立通信事件的请求时,生成的音频参考信号不被并入到通信客户端应用114从扬声器210播放的铃声中。当通过网络106(例如,从用户终端102)接收到建立通信事件的请求时,音频参考信号生成器308可以被配置为在扬声器210播放铃声之前提供生成的音频参考信号以便由扬声器210播放。在其他实施例中,接收到的建立通信事件的请求不会触发由音频参考信号生成器308生成的音频参考信号的输出。例如,音频参考信号生成器308可以生成音频参考信号并且提供所生成的音频参考信号以便由扬声器210周期性地播放。

通过在通信事件的建立之前播放生成的音频参考信号,参与通信事件的用户(例如,用户104和110)在通信事件期间不被所生成的音频参考信号干扰。

在步骤s406,非线性检测器310确定在步骤s404中播放的所生成的音频参考信号的特性。该步骤可以以各种方式执行。

通信客户端应用114可以将所生成的音频参考信号的特性存储在存储器226中。因此,在步骤s408,非线性检测器310可以通过向存储器226发送查询并且接收包括所生成的音频参考信号的特性的回复来确定生成的音频参考信号的特性。

可替代地,从音频参考信号生成器308输出的所生成的音频参考信号可以被提供给非线性检测器310(这在图3中未示出),并且非线性检测器310可以响应于接收到所生成的音频参考信号而确定生成的音频参考信号的特性。

所生成的音频参考信号的所确定的特征可以包括所生成的音频参考信号的功率包络,其反映音频信号功率中的峰值的变化。例如,所生成的音频参考信号可以具有以一定速率在预定时间段内线性增加的功率包络。可替代地,所生成的音频参考信号可以具有以一定速率在预定时间段内线性减小的功率包络。也就是说,所生成的音频参考信号的特性可以包括关于所生成的音频参考信号的功率包络在预定时间段内是线性地增加还是减小的信息。

另外或可替代地,所生成的音频参考信号的所确定的特性可以包括所生成的音频参考信号的频率特性。例如,生成的音频参考信号可以具有恒定的基频或在预定时间段内变化(例如,在预定时间段内增加和/或减小)的基频。也就是说,所生成的音频参考信号的特性可以包括恒定的基频,或者关于所生成的音频参考信号的基频如何在该预定时间段内变化的信息。

在步骤s408,通信客户端应用114激活麦克风212,使得麦克风能够在生成的音频参考信号已经遍历回波路径之后接收生成的音频参考信号。

如图3所示,从麦克风212输出的麦克风信号y(t)被供应给非线性检测器310。麦克风信号y(t)包括在其已遍历回波路径之后生成的音频参考信号。

在步骤s410,非线性检测器310确定从麦克风212接收的麦克风信号y(t)的特性。

所确定的麦克风信号y(t)的特性可以包括麦克风信号y(t)的功率包络,其反映音频信号功率的峰值变化。另外或可替代地,确定的麦克风信号y(t)的特性可以包括麦克风信号y(t)的频率特性。

在步骤s412,非线性检测器310将在步骤s406所确定的生成的音频参考信号的特性与在步骤s410所确定的麦克风信号y(t)的特性进行比较,以便确定是否有非线性存在于回波路径中。

现在参考图5a和5b,图5a和5b示出了示例的生成的音频参考信号和示例的麦克风信号。

图5a的上方的曲线图示出了在步骤s404由扬声器210输出的示例性的生成的音频参考信号502,其具有以一定速率在预定时间段内线性增加的功率包络。

图5a的下方的曲线图示出由麦克风212记录并提供给非线性检测器310的示例的麦克风信号y(t)504,其具有在预定时间段内非线性地增加的功率包络。

在这种情况下,基于所生成的音频参考信号502的功率包络与麦克风信号y(t)504的功率包络的比较,在步骤s414中,基于麦克风信号y(t)504的功率包络非线性地变化(例如,未表现出所生成的音频参考信号502的功率包络的线性增加),非线性检测器310检测到非线性存在于回波路径中。也就是说,回波路径中的非线性处理已经影响了所生成的音频参考信号502。

图5b的上方的曲线图示出了在步骤s404由扬声器210输出的示例性的生成的音频参考信号506,其具有在一定速率下在预定时间段内线性增加的基频。

图5b的下方的曲线图示出由麦克风212记录并提供给非线性检测器310的示例的麦克风信号y(t),该麦克风信号具有分量508,分量508具有基频f,其在预定时间段内以与生成的音频参考信号506相同的方式线性增加,并且具有作为分量508的基频的整数倍(例如,2f,3f等)的谐波泛音的另外的分量510和512。该谐波失真通常由诸如drc和增益调度之类的非线性处理引起。

在这种方案中,基于所生成的音频参考信号506的频率特性与麦克风信号y(t)504的频率特性的比较,在步骤s414中,基于麦克风信号y(t)中的谐波泛音分量510和512的检测,非线性检测器310检测到非线性存在于回波路径中。也就是说,回波路径中的非线性已经影响了所生成的音频参考信号506。

本领域技术人员将理解,可能发生混叠,这可能使泛音模式表现为非谐波。在这种情况下,基于麦克风信号y(t)中的非谐波泛音分量的检测,非线性检测器310仍然能够在步骤s414检测到回波路径中存在非线性。

虽然图5b是参考所生成的音频参考信号(包括单个激励音调506)来描述的。如果所生成的音频参考信号包括在不同频率(例如,f1和f2)的两个或更多个激励音调。在这种情形下,基于所生成的音频参考信号的频率特性与麦克风信号y(t)的频率特性的比较,非线性检测器310基于麦克风信号y(t)中的至少一个互调积分量的检测(例如,二阶互调积f1+f2,即和频,二阶互调积f2-f1,即差频,和/或更高阶的互调积),在步骤s414中检测到回波路径中存在非线性。也就是说,回波路径中的非线性已经影响了所生成的音频参考信号。

如图5b的下方的曲线图所示,麦克风信号y(t)还可以包括由例如扬声器210和/或麦克风212(其中它们的外壳在用户终端108上)的机械振动引起的杂散非谐波分量514。在图5b的下方的曲线图中所示的杂散非谐波分量514例示了依赖于激励信号频率的嘎嘎声/嗡嗡声。这些杂散分量514可以是或可以不是激励信号频率相关的。在这种方案中,基于所生成的音频参考信号的频率特性与麦克风信号y(t)的频率特性的比较,非线性检测器310基于对这些杂散非谐波分量514的检测而在步骤s414中检测到回波路径中存在非线性。

例如,可以通过看到噪声存在于多个不同的频率范围中来检测这些杂散非谐波分量514。

一旦在步骤s414中非线性检测器310检测到回波路径中存在非线性,则过程400进行到步骤s416,其中非线性检测器310基于在步骤s414的检测来配置音频信号处理模块300的分量。

步骤s416可以以各种方式实现。

在一些实施例中,非线性检测器310被布置成在步骤s416配置回波消除模块301。

在步骤s416中,非线性检测器310可以将建模模块302配置为使用非线性模型对回波的回波路径建模以确定回波的非线性模型估计,并且使用回波的非线性模型估计来控制回波抵消模块以执行所述回波抵消。非线性模型例如是volterra级数。其他非线性模型是本领域技术人员公知的,因而在此不再赘述。

在上述实施例中,并且如在附图中所示,回波消除模块301实现回波抵消。

由于在回波信号的估计中的可能的不准确,在由回波抵消模块304处理之后,残留回波可能保留在接收到的音频信号中。因此,在其他实施例中,回波消除模块301可以包括用于抑制残留回波的回波抑制模块。也就是说,在接收到的音频信号y(t)的处理中,在回波抵消的下游(即,之后)的回波消除模块301可以应用回波抑制。

回波抑制模块310被布置为接收麦克风信号s(t)中的回波分量的估计和从回波抵消模块304输出的音频信号作为输入。回波抑制模块310被布置成确定所估计的回波的功率和从回波抵消模块304输出的音频信号的功率。在回波抑制模块310中,估计的回波功率与从回波抵消模块304输出的音频信号的所确定的功率一起使用以形成针对时间t和频率f的回波抑制增益g(t,f),从而将从回波抵消模块304输出的音频信号中存在的任何残留回波抑制到足够低的水平,以便使它在麦克风212拾取的近端声音(非回波声音)存在时不明显/不干扰。回波抑制方法是本领域已知的。此外,由回波抑制模块应用的回波抑制方法可以以不同的方式实现。因此,本文中没有详细描述回波抑制方法的确切细节。

另外或可替代地,在步骤s416,非线性检测器310可以将建模模块配置为使用非线性模型来对回波的回波路径建模以确定回波的非线性模型估计,并且使用回波的非线性模型估计来控制回波抑制模块进行所述回波抑制。也就是说,基于回波的非线性模型估计来形成回波抑制增益g(t,f)。

可以基于回波路径中的非线性的性质(即类型)来执行步骤s416。

例如,响应于非线性检测器310基于对上文提到的与频率相关的杂散非谐波分量514的检测来检测到在回波路径中存在非线性,非线性检测器310可以配置音频处理组件303而不是建模模块302。

音频处理组件303可以是被配置为在由扬声器210播放之前对音频信号选择性地执行滤波的线性滤波器。在该实施例中,非线性检测器310被配置为基于非线性回波路径的检测来控制线性滤波器执行滤波(例如为了创建带阻),使得这些频率不被激发那么多(音频信号在被播放之前被线性滤波器修正)。

音频处理组件303可以是增益控制模块,被配置为在由扬声器210播放之前对音频信号施加增益。在该实施例中,非线性检测器310被配置为控制增益控制模块基于对非线性回波路径的检测来调整(例如降低)应用于音频信号的增益。这导致参考信号w(t)上的谐波失真与系统的谐波失真相匹配。

因此,本公开的实施例有利地通过将使用设备的扬声器播放的本地生成的音频参考信号的已知特性与使用同一设备的扬声器接收到的音频信号的特性进行比较,来识别由至少一个非线性处理模块引起的回波路径中的非线性的存在和性质,该非线性处理模块的功能在通信客户端应用114的控制之外。这使得能够在通信事件的建立之前配置回波消除模块301,使得当通信事件的建立时,回波消除模块301已经被配置为将回波路径中的非线性纳入考虑。

非线性检测器310可以削弱或减少非线性回波路径在通信事件期间对回波消除模块的性能的影响。回波路径可能不会被准确地建模,因为它是非线性的,但是尽管有这种不准确,非线性检测器310采取其他步骤(如上所述)以防止回波泄漏。这表示用于处理非线性回波路径的计算高效的机制,因为它不需要任何形式的非线性建模(非线性建模很可能在计算上是昂贵的)。

在用户终端108上实现的动态范围压缩可以包括对输入信号执行以生成具有比输入信号更窄的动态范围的输出信号的向上压缩(增加低于阈值的声音的响度,同时保持较响亮的声音不改变),以及/或对输入信号执行以生成具有比输入信号更窄的动态范围的输出的向下压缩(在轻柔声音不受影响的情况下,减小超过一定阈值的响亮声音)。

虽然已经参考动态范围压缩描述了在通信客户端应用114的控制之外的非线性处理,但这仅仅是示例,在由扬声器210输出之前对音频信号或者对由麦克风212接收到的音频信号执行的另外的和/或替代的非线性处理,可以在回波路径中引入非线性并且按照本公开的实施例来检测。例如,诸如增益调度、多带压缩、与扬声器保护相关的处理、外部aec以及外部降噪之类的非线性处理。对接收到的麦克风音频信号y(t)执行外部aec和外部降噪,但这些实际上是非线性的,并且对于尝试估计回波路径的回波抵消模块造成问题。

当音频信号处理模块209不存在于用户终端108上时,本公开的实施例也是适用的。例如,回波路径中的非线性可以由用户终端的扬声器、麦克风和外壳中的一个或多个的物理性质引起。

尽管在上文中,主题内容是在声学回波抵消的上下文中使用的,但一般来说,主题内容可以在使用参考来处理麦克风的任何音频信号处理的上下文中采用,例如处理麦克风信号的任何音频信号处理的上下文中使用。任何音频信号处理过程都基于参考和麦克风信号的至少一个分量之间存在线性关系的假设来处理麦克风信号。

本文描述的方法可以通过在用户终端108处执行计算机程序产品(例如,通信客户端应用114)来实现。也就是说,计算机程序产品可以被配置为在包括用户终端108的声学系统中执行音频信号处理(例如回波抵消)。声学系统还可以包括至少一个另外的用户终端。计算机程序产品体现在计算机可读存储介质上(例如存储在存储器226中),并且被配置为当在用户终端108的cpu202上被执行时执行本文所述的任何方法的操作。

上面已经描述了本公开的第一方面。

生成的音频参考信号可以被合并到响应于用户终端接收到建立通信事件的请求而被发送到扬声器组件以进行播放的铃声音频信号中。

所生成的音频参考信号可以响应于在铃声音频信号经由音频处理模块发送到扬声器组件以进行播放之前用户终端接收到建立通信事件的请求而被发送到扬声器组件以进行播放。

生成的音频参考信号可以在用户终端接收到建立通信事件的请求之前被发送到扬声器组件用于播放。

确定的所述音频参考信号的特性可以包括线性变化的功率包络,并且所确定的接收到的音频信号的特性包括接收到的音频信号的功率包络。

检测器可以被配置为基于检测到接收到的音频信号的功率包络非线性地变化,来检测非线性回波路径。

所确定的所述音频参考信号的特性可以包括音频参考信号的频率特性,并且所确定的所述接收到的音频信号的特性包括接收到的音频信号的频率特性。

检测器可以被配置为基于检测到接收到的音频信号包括具有是音频参考信号的基频的整数或非整数倍的基频的至少一个音频分量来检测非线性回波路径。

检测器可以被配置为基于检测到接收到的音频信号包括多个不同频率范围内的音频分量来检测非线性回波路径。

检测器可以被布置成基于所述检测来配置回波消除模块。

回波消除模块可以包括建模模块,其被配置为对回波的回波路径进行建模以确定回波的模型估计。

回波消除模块可以包括被配置为对经由麦克风组件接收到的音频信号执行回波抵消的回波抵消模块,并且检测器可以被配置为基于所述检测来将建模模块配置为使用非线性模型对回波的回波路径进行建模以确定回波的非线性模型估计,并且使用回波的非线性模型估计来控制回波抵消模块来执行所述回波抵消。

回波消除模块还可以包括回波抑制模块,其被配置为对从回波抵消模块输出的音频信号执行回波抑制,并且检测器可以被配置为基于所述检测来配置建模模块使用非线性模型来对回波的回波路径进行建模,以确定回波的非线性模型估计,并且使用回波的非线性模型估计来控制回波抑制模块来执行所述回波抑制。

音频信号处理模块可以包括被配置为在扬声器播放之前对音频信号进行处理的音频处理组件,并且所述检测器可以被布置为基于所述检测来配置音频处理组件。

音频处理组件可以是线性滤波器,其被配置为在由扬声器播放之前选择性地对所述音频信号执行滤波,其中所述检测器被配置为基于所述检测来控制所述线性滤波器来执行所述滤波。

音频处理组件可以是被配置为在由扬声器播放之前对音频信号施加增益的增益控制模块,其中,所述检测器被配置为控制所述增益控制模块,以基于所述检测调整施加于所述音频信号的增益。

用户终端还可以包括存储音频参考信号的特性的存储器,其中检测器被配置为通过查询所述存储器来确定音频参考信号的特性。

检测器可以被配置为接收音频参考信号,并且响应于接收音频参考信号来确定音频参考信号的特性。

通常,可以使用软件、固件、硬件(例如,固定逻辑电路)或者这些实现的组合,来实现本文描述的任何功能(例如,图3所示的功能模块和图4所示的功能步骤)。图3和图4中分别示出的模块和步骤可以或可以不被实现为单独的模块或步骤。本文使用的术语“模块”,“功能”,“组件”和“逻辑”通常表示软件、固件、硬件或其组合。在软件实现的情况下,模块、功能或逻辑表示在处理器(例如一个或多个cpu)上执行时执行特定任务的程序代码。程序代码可以存储在一个或多个计算机可读存储器设备中。这里描述的技术的特征是平台无关的,这意味着这些技术可以在具有各种处理器的各种商业计算平台上实现。例如,用户设备还可以包括使得用户设备的硬件执行操作的实体(例如,软件),例如处理器功能块等等。例如,用户设备可以包括计算机可读介质,其可以被配置为维持引起用户设备以及更具体的用户设备的操作系统和关联硬件执行操作的指令。因此,该指令起到配置操作系统和相关联的硬件来执行操作的作用,并且以这种方式导致操作系统和相关硬件的转换以执行功能。指令可以由计算机可读介质通过各种不同的配置提供给用户设备。

计算机可读介质的一种这样的配置是信号承载介质,并且因此被配置为例如经由网络将指令(例如,作为载波)发送到计算设备。计算机可读介质还可以被配置为计算机可读存储介质,因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(ram)、只读存储器(rom)、光盘、闪速存储器、硬盘存储器以及可能使用磁、光学和其它技术来存储指令和其他数据的其它存储器件。

虽然已经以特定于结构特征和/或方法动作的语言描述了主题内容,但是应当理解,所附权利要求中限定的主题内容不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开为对权利要求进行实现的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1