反向回声抵消器的制作方法

文档序号:19615619发布日期:2020-01-07 08:06阅读:311来源:国知局
反向回声抵消器的制作方法



背景技术:

基于分组的通信系统允许设备(例如,个人计算机)的用户利用如因特网协议(ip)的分组协议跨通信网络通信。基于分组的通信系统能够用于各种类型的通信事件。可以建立的通信事件包括语音通话、视频通话、即时消息传递、语音邮件、文件传输和其它。这些系统有益于用户,因为它们经常具有比固定线路或移动网络显著低的成本。对于长距离通信,情况尤其如此。为使用基于分组的系统,用户将客户端软件安装到他们的设备上且执行客户端软件。客户端软件提供基于分组的连接以及诸如注册和认证的其它功能。

基于分组的通信系统允许多个参与者参与会议语音或视频通话。位于相同的声空间(即,在同一房间中)的会议通话的参与者可以选择使用单个麦克风(以接收音频)和扬声器(以输出音频)。然而,位于与其它参与者相同的声空间内的会议通话的一些参与者可能希望使用他们自己的设备(具有相关联的麦克风和扬声器),因此多个麦克风可能存在于这样的声空间内:在该声空间内,存在会议通话的多个参与者。

当源自同一房间内的客户端设备的麦克风信号经通信网络传播到同一房间内的客户端设备且由他们的扩音器播出时,因为通信网络和客户端设备中的本地音频缓冲引入了通过信号发送的音频的延时,所以声音被位于相同房间内的会议参与者觉察为回声。



技术实现要素:

根据本公开的一个方面,提供了一种通过通信网络在用户设备与至少一个另一用户设备之间进行的通信事件期间所实现的方法,所述方法包括:接收待从所述用户设备的扬声器输出的音频信号,所述音频信号包括从至少一个另一用户设备中的一个或多个发送的至少一个麦克风信号;检测到所述音频信号包括从所述至少一个另一用户设备中的与所述用户设备位于相同位置的一个发送的麦克风信号的至少一个音频分量;以及基于该检测,从所述音频信号中去除所述至少一个音频分量以产生用于从所述扬声器输出的输出音频信号。

根据本公开的另一方面,提供一种用户设备,该用户设备包括:网络接口,其被配置为在通信事件期间通过通信网络在用户设备与至少一个另一用户设备之间发送和接收音频;麦克风,其用于接收音频信号;扬声器,用于输出音频信号;以及一个或多个处理器,其被配置为运行客户端应用,其中客户端应用被配置为:接收待从所述扬声器输出的音频信号,所述音频信号包括从至少一个另一用户设备中的一个或多个发送的至少一个麦克风信号;检测到所述音频信号包括从所述至少一个另一用户设备中的与所述用户设备位于共同位置的一个发送的麦克风信号的至少一个音频分量;以及基于该检测,从所述音频信号中去除所述至少一个音频分量以产生用于从所述扬声器输出的输出音频信号。

根据本公开的另一方面,提供一种网络实体,该网络实体包括:网络接口,其被配置为在通信事件期间通过通信网络在用户设备与至少一个另一用户设备之间发送和接收音频;以及回声去除模块,其被配置为:接收待从所述用户设备的扬声器输出的音频信号,所述音频信号包括从至少一个另一用户设备中的一个或多个发送的至少一个麦克风信号;检测到所述音频信号包括从所述至少一个另一用户设备中的与所述用户设备位于相同位置的一个发送的麦克风信号的至少一个音频分量;以及基于该检测,从所述音频信号中去除所述至少一个音频分量以产生用于从所述扬声器输出的输出音频信号。

提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选择。该发明内容不旨在识别所要求保护的主题的关键特征或主要特征,也不旨在用于限定所要求保护的主题的范围。

附图说明

为了更好的理解本公开且显示出如何将本公开投入实用,现在通过示例的方式参考附图,在附图中:

图1示出了通信系统;

图2示出了用户终端的示意图;

图3示出了回声如何由于会议参与者位于相同的声空间而产生;

图4示出了回声如何由于会议参与者位于相同的声空间而产生;

图5a是示出在用户终端上执行的回声去除中所使用的模块的功能图;

图5b是示出在服务器上执行的回声去除中所使用的模块的功能图;以及

图6是去除回声的过程的流程图。

具体实施方式

本公开的实施例应用于多个参与者位于共同的声空间(例如,在相同的房间内)使用多个音频输入设备(例如,麦克风)来进行会议通话(例如,语音或视频通话)的方案。

图1示出了通信系统100,该通信系统包括与用户终端112相关联的第一用户102(用户a)、与用户终端114相关联的第二用户104(用户b)、与用户终端116相关联的第三用户106(用户c)。用户a、b和c以及其相关联的设备位于相同的房间(“房间1”)内。虽然在房间1中示出了具有相关联的设备的三个用户,这仅是一个示例。

位于共同位置的用户可以与一个或多个其它的用户(未与位于共同位置的用户在共同位置)通信。图1示出了在房间“房间2”中的与用户终端118相关联的第四用户108(用户d),以及在房间“房间3”中的与用户终端120相关联的第五用户110。虽然图1示出了在室内环境中的用户终端118和120,但是这仅是一个示例。

用户终端可以在通信系统100中通过通信网络101通信,从而允许用户通过通信网络101彼此通信。通信网络101可以是具备提供用户终端之间的通信信道的能力的任何适合的网络。例如,通信网络101可以是因特网或另一类型的网络,如高数据率移动网络,例如第三代(“3g”)移动网络。

注意的是,在可替代的实施例中,用户终端能够经由图1中未示出的附加的中继网络连接到通信网络101。例如,如果用户终端是移动设备,则其能够经由例如gsm或umts网络的蜂窝移动网络(图1中未示出)与通信网络101连接。

用户终端可以是例如移动电话、个人数字助理(“pda”)、个人计算机(“pc”)(包括例如windowstm、macostm和linuxtmpc)、平板式计算机、游戏设备或其它能够与通信网络101连接的嵌入式设备。

每个用户终端执行由与通信系统100相关联的软件提供商所提供的通信客户端应用。通信客户端应用是在相应的用户终端中的本地处理器上执行的软件程序。通信客户端应用执行在相应的用户终端处所需的处理以便用户终端通过通信系统100发送和接收数据。在用户终端处执行的通信客户端应用可以经认证以通过数字证书的呈现而通过通信系统100通信(例如,证明相关联的用户是通信系统的真实订阅者——在wo2005/009019中进一步详述)。

比图1所示的更多的用户和用户设备可以包含在通信系统100中且利用相应的用户设备上执行的相应的通信客户端通过通信系统100来通信,这是本领域公知的。

图1示出了与网络101连接的服务器103。在会议通话期间,音频数据可以经由网络实体(例如,服务器)103在用户终端之间发送。可替代地或附加地,会议通话的音频数据可以在用户终端之间的点对点路径上发送(例如,不通过通信系统100中的任何服务器的路径),这是本领域公知的。

图2示出了用户终端114的具体视图,在用户终端上执行用于通过通信系统100通信的通信客户端应用。用户终端114包括:中央处理单元(“cpu”)202,诸如屏幕或触摸屏的显示器204连接到该中央处理单元;输入设备,诸如键盘206;照相机208;以及触摸屏204。输出音频设备210(例如,扬声器)和输入音频设备212(例如,麦克风)与cpu202连接。显示器204、键盘206、照相机208、输出音频设备210和输入音频设备212可以集成到用户终端114中,如图2所示。在可替代的用户终端中,显示器204、键盘206、照相机208、输出音频设备210和输入音频设备212中的一个或多个可以不集成到用户终端114中且可以经由相应的接口而连接到cpu202。该接口的一个示例是usb接口。cpu202连接到诸如用于与通信网络101通信的调制解调器的网络接口224。网络接口224可以集成到用户终端114中,如图2所示。在可替代的用户终端中,网络接口224不集成到用户终端114中。用户终端114还包括用于存储数据的存储器226,这是本领域公知的。存储器226可以是永久存储器,诸如rom。存储器226可以可替代地是临时存储器,例如ram。

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

现在将参考图3对由于会议参与者位于相同的房间而发生的第一回声效果进行说明。如图3所示,由用户终端114的麦克风212接收到的音频信号通过网络101发送到用户终端112以便由用户终端112的扬声器播出且发送到用户终端116以便由用户终端116的扬声器播出。虽然图3中未示出,将意识到由用户终端114的麦克风212接收到的音频信号也通过网络101发送到用户终端118和用户终端120(图3中未示出的用户终端118和用户终端120)。

由于用户终端112和116位于与用户终端114相同的声空间内,所以由用户终端114的麦克风212接收到的音频信号也可以由用户终端112的麦克风(虚线所指示)接收且通过网络101从用户终端112发送到用户终端114以便由用户终端114的扬声器播出且发送到用户终端116以由用户终端116的扬声器播出。

由于用户终端112和116位于与用户终端114相同的声空间内,所以由用户终端114的麦克风212接收到的音频信号可以也由用户终端116的麦克风(虚线所指示)来接收且通过网络101从用户终端116发送到用户终端112以便由用户终端112的扬声器播出且发送到用户终端114以便由用户终端114的扬声器播出。

在该方案中,用户b104将听到进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。这是由以下引起的:当由用户终端112的麦克风(虚线所指示)接收到的音频信号通过网络101从用户终端112发送到用户终端114时由网络101所引入的延时,以及当由用户终端116的麦克风(虚线所指示)接收到的音频信号通过网络101从用户终端112发送到用户终端114时由网络101所引入的延时。

用户a102将听到由于与用户b位于相同的房间内而导致的、进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)(即,声波在房间1内行进)。用户a102还将听到当用户终端114的麦克风(实线所指示)接收到的音频信号通过网络101从用户终端114发送到用户终端112且用户终端112的扬声器将该音频信号输出到用户a102时由网络101所引入的延时而导致的进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。用户a102还将听到当由用户终端116的麦克风(虚线所指示)接收到的音频信号通过网络101从用户终端116发送到用户终端112且用户终端112的扬声器输出该音频信号到用户a102时由于网络101所引入的延时而导致的、进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。

类似地,用户c106将听到由于处于与用户b相同的房间而导致的进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)(即,声波在房间1内行进)。用户c106还将听到当由用户终端114的麦克风(实线所指示)接收到的音频信号通过网络101从用户终端114发送到用户终端116且用户终端116的扬声器输出该音频信号到用户c106时由网络101所引入的延时而导致的进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。用户c106还将听到当由用户终端112的麦克风(虚线所指示)接收到的音频信号通过网络101从用户终端112发送到用户终端116并且用户终端116的扬声器输出该音频信号到用户c106时由网络101引入的延时导致的进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。

现在将参考图4来描述由于会议参与者位于相同的房间而发生的第二回声效应。如图4所示,通过用户终端112的扬声器和用户终端116的扬声器进行的由用户终端114的麦克风212接收到的音频信号的播出可以由其它位于共同位置的设备的麦克风接收。

用户b104将听到进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。这是由于如下引起的:(i)用户终端112的麦克风接收到从用户终端116的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端112传播到用户终端114以便由用户终端114的扬声器播出;以及(ii)用户终端116的麦克风接收从用户终端112的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端116传播到用户终端114以便由用户终端114的扬声器播出。用户a102也将听到进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。这是由于如下引起的:(i)用户终端116的麦克风接收到从用户终端112的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端116传播到用户终端112以便由用户终端112的扬声器播出;(ii)用户终端114的麦克风接收从用户终端112的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端114传播到用户终端112以便由用户终端112的扬声器播出;以及(iii)用户终端114的麦克风接收到从用户终端116的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端114传播到用户终端112以便由用户终端112的扬声器播出。

用户c106还将听到进入用户终端114的麦克风212的音频信号输入(例如,用户b的语音)的回声。这是由于如下引起的:(i)用户终端112的麦克风接收从用户终端116的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端112传播到用户终端116以由用户终端116的扬声器播出;(ii)用户终端114的麦克风接收从用户终端112的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端114传播到用户终端116以便由用户终端116的扬声器播出;以及(iii)用户终端114的麦克风接收从用户终端116的扬声器输出的音频信号(例如,用户b的语音),并且该音频信号通过网络101从用户终端114传播到用户终端116以便由用户终端116的扬声器播出。

进一步非期望的回声效应会发生,因为对于相同的初始语音信号(由用户终端114的麦克风212接收的音频信号),这将继续发生。

克服上文呈现的回声问题的一种方法将是,位于共同的声空间内的多个参与者,使得共同的声空间内的除了一个麦克风之外的全部麦克风静音。然而,这对于位于共同位置的会议参与者经常是不期望的。

另一方法是,位于共同的声空间内的多个参与者佩戴音频头戴式耳机。音频头戴式耳机是单个设备,该单个设备包含了输出音频组件(耳机、耳塞或类似物)和输入音频组件(麦克风),它们可以经由例如usb或基于音频插口的接口的适合的接口而与参与会议通话的用户终端连接。位于共同的声空间内的多个参与者使用音频头戴式耳机防止了发生上述的第二回声效应,因为音频从一个头戴式耳机的输出音频组件的播出将不会由位于共同位置的用户所佩戴的另一头戴式耳机的输入音频组件接收到。然而,位于与其它会议参与者相同的声空间内的会议参与者所佩戴的音频头戴式耳机的麦克风的位置通常不足以防止上述第一回声效应发生。

参考图5a和图6,现在描述一种去除回声的方法。图5a是用于从待从用户终端114的扬声器210输出的信号中去除回声的回声去除系统500的功能图。

图5a示出了作为在用户终端114的cpu202上执行的通信客户端应用的功能的部分而实现在用户终端114上的回声去除系统500;然而,如下文将更详细说明的,回声去除系统500还可以实现在服务器103上。

回声去除系统500包括延时模块502以及回声抵消模块506。

如图5a所示,由用户终端114的麦克风212捕获的近端信号y(t)与延时模块502的第一输入耦合。应当注意,在本文所述的实施例中,仅存在一个麦克风(由图中的附图标记212指示),但是在其它实施例中,存在多于一个的麦克风,其接收来自周围环境的音频信号。类似地,在本文所述的实施例中,存在仅一个扬声器(由图中的附图标记210指示),但是在其它实施例中,可能存在多于一个的扬声器,待输出信号与该扬声器耦合(用于从扬声器中输出)。待从扬声器210输出的信号x(t)与延时模块502的第二输入耦合。延时模块502的输出与回声抵消模块506的第一输入耦合。待从扬声器210输出的信号x(t)还与回声抵消模块506的第二输入耦合。

当回声去除系统500实现为在用户终端114的cpu202上执行的通信客户端应用的功能的部分时,由用户终端114的麦克风212所捕获的近端信号y(t)在由所述用户终端114上的编码器编码之前处于非编码形式,并且待从扬声器210输出的信号x(t)在通过通信网络101接收到的编码信号由所述用户终端114上的译码器译码之后处于非编码形式。

图6是去除由于源自近端信号y(t)的信号分量存在于待从扬声器210输出的信号x(t)中而导致的回声的过程600的流程图。

在步骤s602中,由用户终端114的麦克风212捕获的近端信号y(t)由回声去除系统500接收。例如,近端信号y(t)可以在用户102-110之间通过通信系统100在语音或视频通话期间由用户终端114的麦克风212捕获。

在步骤s604中,回声去除系统500接收待从扬声器210输出的信号x(t)。如上所述,延时模块502和回声抵消模块506被布置成接收待从扬声器210输出的信号x(t)。

在步骤s606中,延时模块502基于接收到作为输入的近端信号y(t)和信号x(t)来确定待应用于该近端信号y(t)的延时。该延时对应于在作为(作为待从扬声器210输出的信号x(t)的部分的)回声去除系统500的输入到达之前网络上的反馈环中的信号y(t)中的信号分量所经历的网络延时。由于变化的网络条件,延时模块502执行自适应延时估计。自适应延时估计方法是本领域技术人员公知的,因此未在本文中详述。一种方法将是使用如下的交叉相关技术:在多个不同的延时下(使用相关技术)来比较近端信号y(t)和待从扬声器210输出的信号x(t),以及选择最高相关的延时作为网络延时的估计。

在步骤s608中,在将该延时的近端信号y(t)输出到回声抵消模块506之前,延时模块502将步骤s606中确定的延时应用于近端信号y(t)。

基于接收到延时的近端信号y(t)和信号x(t),在步骤s610中,回声抵消模块506被布置成从信号x(t)中去除回声分量(其是位于与用户终端114相同的声空间中的会议参与者的麦克风信号的信号分量)。回声抵消模块506可以基于回声减除,其中回声的估计从信号x(t)中减除。可替代地,回声抵消模块506可以基于回声抑制,其中回声抑制增益(其必然小于或等于1)应用于信号x(t)。因此,所应用的增益将衰减信号x(t)中的功率以去除回声。此外,回声抵消模块506可以是组合回声减除和回声抑制技术的混合回声抵消器。本领域技术人员将熟悉实现回声抵消模块506的可能的方式,因此这些未在此进行详述。

为了完整性,下面对可由回声抵消模块506实现以执行步骤s610的几个示例的技术进行简要说明。然而,本领域技术人员将意识到,回声抵消模块506可以按下文所述的其它各种方式来实现。

在一个示例中,回声抵消模块506可以监视信号x(t)与从延时模块502输出的延时的近端信号y(t)之间的交叉相关。本领域技术人员将意识到,对于实际上可行的基于交叉相关的相似度度量,可能需要信号电平的监视以及交叉相关的平均化的调节。这使得回声抵消模块506能够判定位于与用户终端114相同的声空间内的会议参与者的麦克风信号是否存在于发送到用户终端114的信号x(t)中。

在另一示例中,回声抵消模块506可以基于近端信号y(t)对近端信号y(t)与接收到的信号x(t)之间的系统建模以提供信号x(t)的回声分量(其是位于与用户终端114相同的声空间内的会议参与者的麦克风信号的信号分量)的预测,然后将信号x(t)中的回声分量的预测与接收到的信号x(t)比较以确定延时的近端信号y(t)的信号分量与接收到的信号x(t)之间的相似度。例如,该比较可以最小二乘方式来执行,使得当实际的接收到的信号x(t)的分量与信号x(t)的预测的分量之间的平方差低时,信号分量被视为相似。

滤波器模块可用于对近端信号y(t)与接收到的信号x(t)之间的系统建模以提供信号x(t)中的回声分量的预测。所建模的系统包括近端信号y(t)的信号分量在作为信号x(t)的部分到达之前所通过(例如,近端信号的回声路径)的全部的系统组件,例如编码器和译码器、抖动缓冲器和网络101。滤波器模块以接收到的信号x(t)和从延时模块502输出的延时的近端信号y(t)作为输入。

滤波器模块包括自适应算法组件,该自适应算法组件执行自适应控制算法以确定最小化估计误差信号e(t)的量值、绝对值或平方值的滤波器模块的系数。

响应于误差信号e(t)、延时的近端信号y(t)和先前的滤波器系数来生成滤波器模块的更新的滤波器系数。

滤波器模块的自适应算法组件以时间递归方式来工作。这意味着,其不是即时适应系统的变化,而是算法迭代地收敛到近端信号y(t)与接收到的信号x(t)之间的系统在有限时间间隔上的近似。无论所使用的特定算法如何,滤波器模块的滤波器系数随着算法的每次迭代而更新,因此,滤波器模块的系数随时间持续地更新,而无论手边的信号状况如何。

滤波器模块的滤波器系数用于对延时的近端信号y(t)滤波以生成信号x(t)中的回声分量的估计(预测)。

在另一变型例中,模型被用来估计信号x(t)中的回声分量的特性,例如回声功率,并且回声抵消模块506被配置为基于信号x(t)中的回声分量的回声功率估计来执行回声抵消。存在多种本领域技术人员公知的完成此的方式,本公开的范围不限于任何特定的确定回声功率估计的方法。

滤波器模块可以使用任意实现随机梯度算法的滤波器。滤波器模块可以使用对近端信号y(t)与接收到的信号x(t)之间的系统建模的线性滤波器(例如,有限脉冲响应(fir)滤波器或无限脉冲响应(iir)滤波器)或者可替代地可以使用非线性滤波器。

y(t)的信号分量可以在作为信号x(t)的部分到达之前取多种不同的路径(以及因此通过不同的系统组件)。这可以通过配置滤波器模块如何对近端信号y(t)与接收到的信号x(t)之间的系统建模来处理。对于线性声回声抵消,可以通过增加滤波器的长度来处理多个回声,并且存在能够用于回声抑制器的类似的方法,这对于本领域技术人员而言是显而易见的。

将意识到,回声去除系统500可以视为“向后”或“反向”回声抵消器,因为其使用麦克风信号从而预测以及去除被发现源自麦克风信号的扩音器信号的任意部分,与常规的“前向”回声抵消器形成对比,其中该“前向”回声抵消器是本领域已知的,其用于去除被发现源自扩音器信号的麦克风信号中的回声。

虽然在上文已经将回声去除系统500描述为实现为在用户终端114的cpu202上执行的通信客户端应用的功能的部分,但是当回声去除系统500实现为在参与会议通话的任何用户终端上执行的通信客户端应用的功能的部分时,相同的原则适用。

如上所述,回声去除系统500可以实现在服务器103上。可以在服务器103上执行回声去除系统500的一种可能的方式示出在图5b中。

如图5b所示,当回声去除系统500实现在服务器103上时,由参与通信事件的用户终端的麦克风捕获的近端信号y(t)以编码形式(已经由相应的用户终端上的编码器编码)由服务器103在网络101上接收。

在图5b中,y1(t)接收自用户终端112,y2(t)接收自用户终端114,y3(t)接收自用户终端116,y4(t)接收自用户终端118,并且y5(t)接收自用户终端120。

通常,服务器103包括:译码器508,其对编码的信号y1(t)-y5(t)译码以输出相应的译码信号;混合器510,其被布置成接收译码信号且将它们组合成单流;以及编码器512,其对从混合器输出的单流编码以产生输出信号x(t)。每个参与用户终端都接收它们自己的x(t)的版本,但是这些信号x(t)中的一些可以相同。

如图5b所示,延时模块502接收输入到混合器510中的译码后的y1(t)-y5(t)信号。对于译码后的y1(t)-y5(t)信号中的每一个,延时模块502计算对应于声源和服务器103之间的信号传播时间的延时,该延时包括(i)由于声源和产生译码后y(t)信号的用户终端之间的传播路径导致的延时,(ii)由于产生译码后的y(t)信号的用户终端处的音频处理所导致的延时,以及(iii)产生译码后的y(t)信号的用户终端与服务器103之间的单向网络延时。由于网络101的可能不同的延时,译码后的y1(t)-y5(t)信号的信号传播时间可以是不同的量。由于变化的网络状况,当在服务器103上实现回声去除系统500时,延时模块502执行自适应延时估计。

为简化,下面参考从服务器103发送到产生y1(t)的用户终端112的信号x1(t)来论述在服务器103上实现回声去除系统500。

显然,在用户终端112(产生y1(t))与另一用户终端(例如,产生y2(t)的用户终端114)位于共同位置的方案中,由于来自单个源s(t)的声音由用户终端114的麦克风拾取,该声音在通信网络101上发送到服务器103以及存在于发送给用户终端112的信号x1(t)中,所以用户终端112处的用户a将听到回声。如上所述,回声抵消模块506可以实现各种已知技术中的一种来执行回声抵消。

在一个示例的技术中,译码后的信号y1(t)能够用来提供y2(t)的预测,即,存在于混合器510的单流输出中的、将导致用户终端112处的用户a听到回声的信号分量。

在该示例中,译码后的信号y1(t)提供给延时模块502。一旦延时已计算出且由延时模块502(下文更详细说明)应用于译码后的信号y1(t),延时的y1(t)信号供应给回声抵消模块506。

回声抵消模块506还接收混合器510的单流输出作为输入。基于接收到延时的信号y1(t)和混合器510的单流输出,回声抵消模块506被布置成从混合器510的单流输出中去除信号分量y2(t)以提供待从服务器103发送到用户终端112的信号x1(t)。

信号y1(t)是声源的函数,为y1(t)=f1(s(t)),并且信号y2(t)是声源的函数,为y2(t)=f2(s(t))。

函数f1是指在来自单源s(t)的声音作为服务器103的译码器508的输入y1(t)到达之前影响来自单源s(t)的声音的系统组件。这包括:(i)声源与用户终端112之间的传播路径,(ii)在用户终端112处记录的声音的信号处理,(iii)在用户终端112处的编码过程,以及(iv)网络101的延时。

类似地,函数f2是指在来自单源s(t)的声音作为服务器103的译码器508的输入y2(t)到达之前影响来自单源s(t)的声音的系统组件。这包括:(i)在声源与用户终端114之间的传播路径,(ii)在用户终端114处记录的声音的信号处理,(iii)在用户终端114处的编码过程,以及(iv)网络101的延时。

显然,y2(t)=f2f1’y1(t)(其中f1’是函数f1的逆),因此为了将信号y1(t)用作y2(t)的预测器,回声抵消模块506需要对f2和f1的逆(f1’)建模。

例如,假设f1和f2是简单常数而使得f1=5且f2=3;则y1(t)=5s(t)且y2(t)=3s(t),这意味着,y2(t)=3/5y1(t)。当f1和f2比这更先进时,情况类似,例如,如果f1和f2是fir滤波器,则y1与y2之间的关系变成具有提名项(nominator)和分母(denominator)的iir滤波器。

如上所述,计算延时,且通过延时模块502将延时应用于译码后的信号y1(t)。该延时是当s(t)中的某分量出现在y1(t)中时与当s(t)中的某分量出现在y2(t)中时之间的延时差。检测该延时差的一种方法是使用交叉相关技术,其在多个不同的延时下(使用相关技术)来比较信号y1(t)和y2(t),以及选择最高相关的延时作为延时差。检测该延时的另一方法是使用用来发送信号y1(t)和y2(t)的编码的音频数据的实时传输协议(rtp)分组的时间戳。

如果该延时未得到补偿,则基于y1(t)对y2(t)建模所计算的模型需要是非因果的,即,其可能需要包含y1(t)的未来分量(y1(t+1),y1(t+2),…)。然而,如果该延时被识别且补偿,则可以假设,该模型是因果的,这简化了模型参数估计。

也即,由延时模块502执行的延时计算的目的是对准信号y1(t)和y2(t)以允许使用y1(t)与y2(t)之间的关系的因果模型。因此,所计算且应用于信号y1(t)的延时是y1(t)与y2(t)之间的延时差,即,对于信号y1(t)和y2(t)而言声源与服务器103之间的信号传播时间差。

虽然上文已经参考y1(t)被用于提供y2(t)的预测对回声抵消进行了说明,但是对于y1(t)被用来提供从会议通话中的其它参与者接收到的音频信号的预测,相同的原则适用。

基于接收到关于参与会议通话的哪些用户终端位于相同的声空间中的信息(下文进一步详述),由于不必预测不源自与参与会议通话的另一用户终端位于共同位置的用户终端的信号的信号分量,而可以简化上文所述的延时计算和回声抵消。

回声抵消模块506还可以接收来自混合器510的表明译码后的y1(t)-y5(t)信号中的哪些已经混合在一起而产生由混合器510输出的单流的侧面信息。通过得知何种信号已经混合在一起而产生由混合器510输出的单流,回声抵消模块506能够得知任意位于共同位置的参与者的麦克风信号是否在流中。这将改善回声抵消模块506中的模型的估计,因为回声抵消模块506不必避免根据不是来自共同定位的位置的数据来估计模型。此外,将允许回声去除功能的选择性关闭,这将改善回声抵消模块506的输出的质量,因为这将降低去除错误回声(不是回声的回声)的风险。例如,如果相似的声音存在于y1(t)和位于混合器510输出的单流中的非共同定位信号中,则如果声音的延时匹配共同定位信号的任意延时,则非共同定位信号会受回声去除影响。

替代方案是使用信号分量识别模块(图中未示出),其被配置为基于接收信号x(t)和从延时模块502输出的延时的近端信号y(t)来识别信号x(t)的源自近端信号y(t)的信号分量。这将避免了当进入产生近端信号y(t)的麦克风的音频输入未存在于从服务器103发送以便从扬声器210输出的信号x(t)中时方案对于对信号x(t)执行回声抵消的回声抵消模块506的需要。

一旦已经执行了回声抵消,编码器512对从混合器回声抵消模块506输出的单流编码以产生编码的输出信号x1(t)以便在网络101上输送到用户终端112。

虽然上文已经参考从服务器103发送到产生y1(t)的用户终端112的信号x1(t)对回声去除系统500在服务器103上的实现进行了说明,当服务器103产生输出信号x(t)用于在网络101上输送到参与会议通话的各个用户终端时,相同的原则适用。

本领域技术人员将意识到,相比于回声去除系统500实现为执行于用户终端的cpu202上的通信客户端应用的功能的部分而言,在服务器103上实现回声去除系统500实现起来更简单。

通过通信客户端应用所建模的系统是非线性的,因为其包括两个编码器和译码器、服务器103和用户终端上的抖动缓冲器以及网络101中的任何损失。通过通信客户端应用建模的系统包含时变延时,因为其包含网络的往返延时以及服务器和客户端上的抖动缓冲器中的延时。

相比而言,服务器103所建模的系统更加(可能甚至是完全地)线性,并且具有相当可预测的(可能是恒定的)延时。回声抵消模块506所建模的系统越简单,回声抵消模块506的任务越简单。对于参与会议通话的各个用户终端使用相同的编码译码器的方案,在服务器实现方式中,因为回声抵消模块506能够在麦克风信号已经译码后以及扩音器信号已经编码之前应用,并且因为信号和回声已经在其通往服务器的途中按相同的方式进行编码/译码,所以模型无需包含存在于回声抵消模块506需要建模的系统中的编码器/译码器的效应。

结果是,在服务器实现方式中,由延时模块502执行的延时估计以及由回声抵消模块506执行的源自近端信号y(t)的、待从扬声器210输出的信号x(t)的信号分量的回声抵消会变得更精确和健壮。

回声去除系统500的功能可以恒定地激活以防止与使会议通话的参与设备(具有关联的扬声器和麦克风)位于相同的声空间内相关联的上述问题。

在其它的实施例中,回声去除系统500的功能仅当参与会议通话的用户终端位置靠近参与会议通话的另一用户终端(例如,在相同的声空间内)时才被激活,因此当不存在位于相同位置的参与会议通话的用户终端时,使回声去除系统500的功能去激活。图5a和5b示出了用于激活/去激活回声去除系统500的操作的输入φ。

当回声去除系统500实现为在用户终端的cpu202上执行的通信客户端应用的功能的部分时,存在通信客户端应用能够检测到其中执行通信客户端应用的用户终端与参与会议通话的另一用户终端位于共同位置的各种方式,这些将在下文进行说明。

在一个示例中,通信客户端应用能够基于用户终端的用户通过检测与通信客户端应用所提供的客户端用户接口的交互而检测到手动通知(例如,指示用户终端与另一用户终端位于共同位置的按钮的选择)来检测到通信客户端应用执行于其中的用户终端与参与会议通话的另一用户终端位于共同位置。当回声去除系统500基于在参与会议通话的用户终端上执行的通信客户端应用中的每一个被布置成将检测到的交互传送到服务器103而实现为服务器103的功能的部分时,相似的原则适用。

在另一示例中,基于通信客户端应用确定通信客户端应用在其中执行的用户终端的位置以及接收到来自参与会议通话的另一终端的位置信息,通信客户端应用能够检测到通信客户端应用执行于其中的用户终端与参与会议通话的另一用户终端位于共同位置。每个通信客户端应用可以确定通信客户端应用执行于其中的用户终端的位置并且通过将位置信息(即,纬度和经度信息)发送到在参与会议通话的另一用户终端上执行的其它通信客户端应用来报告它们的位置。通信客户端应用可以通过与运行于os214之上的位置确定模块通信来确定通信客户端应用执行于其中的用户终端的位置。位置确定模块使用地理位置技术根据相对于地球表面的地理位置来确定用户终端的位置;例如,基于卫星的定位系统,诸如gps(全球定位系统,包含例如辅助gps或差分gps的可能的变体)、glonass(全球导航卫星系统)或伽利略(galileo)。因此,通信客户端应用具有通信客户端应用执行于其中的用户终端的位置信息以及参与会议通话的其它用户终端的位置信息,并且能够基于另一用户终端是否位于用户终端的预定范围内而检测到通信客户端应用执行于其中的用户终端是否与参与会议通话的另一用户终端位于共同的位置。当回声去除系统500基于在参与会议通话的用户终端上执行的各个通信客户端应用被布置成将通信客户端应用执行于其中的用户终端的位置传送到服务器103而实现为服务器103的功能的部分时,相似的原则适用。

在另一示例中,每个通信客户端应用可以确定由用户终端使用来接入通信网络101的接入点的标识符且将该接入点标识符报告给在参与会议通话的其它用户终端上执行的其它通信客户端应用。因此,通信客户端应用具有通信客户端应用执行于其中的用户终端的接入点标识符以及接收自参与会议通话的其它用户终端的接入点标识符。因此,通信客户端应用能够基于用户终端用来接入通信网络101的接入点标识符是否匹配接收自参与会议通话的另一用户终端的接入点标识符而检测到通信客户端应用执行于其中的用户终端与参与会议通话的另一用户终端位于共同的位置。当基于在参与会议通话的用户终端上执行的各个通信客户端应用被布置成将通信客户端应用执行于其中的用户终端接入通信网络101所使用的接入点的标识符传送到服务器103而将回声去除系统500实现为服务器103的功能的部分时,相似的原则适用。

在另一示例中,每个通信客户端应用可以利用诸如或近场通信(nfc)的短程无线技术来获得通信客户端应用执行于其中的用户终端的范围内的用户终端的设备标识信息,并且将该获得的设备标识信息报告给在参与会议通话的其它用户终端上执行的其它通信客户端应用。

因此,具有参与会议通话的其它用户终端的设备标识的通信客户端应用能够基于另一用户终端是否在用户终端的范围内而检测到通信客户端应用执行于其中的用户终端是否与参与会议通话的另一用户终端位于共同的位置。当回声去除系统500基于在参与会议通话的用户终端上执行的各个通信客户端应用被布置成将通信客户端应用执行于其中的用户终端的设备标识信息传送到服务器103而实现为服务器103的功能的部分时,相似的原则适用。

每个通信客户端应用可被配置为以某频率输出例如正弦波形(例如手机铃声)以将呼入的电话告知与通信客户端应用执行于其中的用户终端相关联的用户。在又一示例中,通信客户端应用能够基于对从用户终端的麦克风输出的音频信号执行信号处理以检测到从麦克风输出的音频信号中的正弦波形的存在而检测到通信客户端应用执行于其中的用户终端与参与会议通话的另一用户终端位于共同位置。当回声去除系统500基于在参与会议通话的用户终端上执行的各个通信客户端应用被布置成将检测到的正弦波形的存在传送到服务器103而实现为服务器103的功能的部分时,相似的原则适用。

将意识到,对于本领域技术人员而言显而易见的其它方法可用于检测参与相同的声空间内的会议通话的两个以上用户终端的存在,并且本公开的实施例扩展至这些其它的方法。

通过使回声去除系统500去激活,不执行上文参考延时模块502和回声抵消模块506所描述的操作。这降低了实现回声去除系统500的设备(例如,用户终端或服务器103)的处理要求。当回声去除系统500实现在移动设备上作为在移动设备的cpu202上执行的通信客户端应用的功能的部分时这尤其有益,其中重要的是将移动设备的功耗保持在低水平,因为例如移动设备的电源会受限制。

如上所述,根据本公开的方面,提供一种在用户设备与至少一个另一用户设备之间通过通信网络进行的通信事件期间实现的方法,所述方法包括:接收待从所述用户设备的扬声器输出的音频信号,所述音频信号包括从所述至少一个另一用户设备中的一个或多个发送的至少一个麦克风信号;检测到所述音频信号包括从所述至少一个另一用户设备中的与所述用户设备位于共同位置的一个发送的麦克风信号的至少一个音频分量;以及基于该检测,从所述音频信号中去除所述至少一个音频分量以产生用于从所述扬声器输出的输出音频信号。

该方法还可以包括:接收来自所述用户设备的麦克风信号;基于所述音频信号和延时的麦克风信号来计算延时;以及将所述麦克风信号延迟所述计算的延时以提供延时的麦克风信号,其中所述检测基于所述音频信号和延时的麦克风信号。

计算延时的步骤可以包括:在多个不同的延时下比较所述音频信号和延时的麦克风信号以及选择提供所述音频信号与延时的麦克风信号之间的最高相关的延时。

检测步骤可以包括监视所述音频信号与延时的麦克风信号之间的交叉相关度。

检测步骤可以包括基于延时的麦克风信号利用自适应模型来对麦克风信号中的信号分量的回声路径建模以确定接收到的音频信号中的回声的自适应模型估计;以及将所述接收到的音频信号中的回声的自适应模型估计与所述接收到的音频信号比较。

在示范性的实施例中,音频信号通过所述通信网络在所述用户设备处接收。

在示范性的实施例中,该方法由在所述用户设备上执行的通信客户端应用来执行。

在其它示范性的实施例中,用户设备和至少一个另一用户设备在所述通信事件期间经由网络实体在通信网络上通信,并且该方法由所述网络实体执行。

在这些其它的示范性的实施例中,该方法还可以包括:接收来自所述用户设备的麦克风信号;接收来自所述至少一个另一用户设备的麦克风信号;基于接收自所述用户设备的麦克风信号和来自所述至少一个另一用户设备的麦克风信号来计算延时;以及将接收自所述用户设备的麦克风信号延迟所述计算的延时以提供延时的麦克风信号,其中所述检测基于所述音频信号和延时的麦克风信号。

计算延时的步骤可以包括在多个不同的延时下将接收自所述用户设备的麦克风信号和来自所述至少一个另一用户设备的麦克风信号进行比较;以及选择提供所述麦克风信号之间的最高相关的延时。

检测步骤可以包括:基于延时的麦克风信号利用自适应模型对音频源与网络实体之间经由所述至少一个另一用户设备的传播路径和音频源与网络实体之间经由所述用户设备的传播路径的逆进行建模,以确定接收自所述至少一个另一用户设备的麦克风信号中的回声的自适应模型估计;以及将接收自所述至少一个另一用户设备的麦克风信号中的回声的自适应模型估计与所述接收的音频信号进行比较。

网络实体可以包括混合器,所述混合器被配置为通过通信网络接收来自所述用户设备的麦克风信号和来自所述至少一个另一用户设备的麦克风信号,并且所述音频信号从所述混合器输出以便输送到所述用户设备。

该方法还可以包括在所述网络实体的编码器处对输出的音频信号编码以产生编码的输出音频信号,以及通过通信网络将编码的输出音频信号发送到所述用户设备。

在示范性的实施例中,该方法是基于检测到用户设备和至少一个另一用户设备位于共同的声空间中来执行的。

通信事件可以是语音通话和视频通话中的一个。

通信网络可以是基于分组的网络。基于分组的网络可以包括因特网。

根据本公开的一个方面,提供一种计算机程序,该计算机程序实施在计算机可读介质上且被配置为当在处理器上执行时执行本文所述的方法步骤中的任一个。

图6中单独示出的步骤可以或者可以不实现为单独的步骤。

一般地,本文所述的任意功能(例如,图5a和图5b所示的功能模块以及图6所示的功能步骤)可以利用软件、固件、硬件(例如,固定逻辑电路)来实现,或者利用这些实现方式的组合来实现。例如,在服务器实现方式中,功能可以通过回声去除模块来实现,回声去除模块可以利用软件、固件、硬件(例如,固定逻辑电路)或这些实现方式的组合来实现。

图5a、5b和图6单独示出的模块和步骤可以或者可以不实现为单独的模块或步骤。例如,回声抵消模块506可以执行延时模块502的功能。

本文所使用的术语“控制器”、“功能”、“组件”、“模块”、和“应用”一般表示软件、固件、硬件或其组合。在软件实现的情况下,控制器、功能、组件或应用表示当在处理器(例如,一个或多个cpu)上执行时执行规定任务的程序代码。程序代码能够存储在一个或多个计算机可读存储器设备上。下面描述的技术的特征是平台独立的,意指技术可实现在具有各种处理器的各种商业计算平台上。

例如,用户终端还可以包括使得用户终端的硬件执行操作的实体(例如,软件),例如处理器功能块等等。例如,用户终端可以包括计算机可读介质,计算机可读介质被配置为维护使用户终端以及更具体地用户终端的操作系统和关联硬件执行操作的指令。因此,指令起到配置操作系统和相关联硬件执行操作且以此方式实现操作系统和相关联硬件的变换而执行功能的作用。指令可由计算机可读介质经由各种不同的配置提供给用户终端。

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

虽然以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解的是,在随附的权利要求中限定的主题不一定局限于上述的具体特征或行为。而是,上述的具体特征和行为被公开作为实现权利要求的示例的形式。

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