掌桥专利:专业的专利平台
掌桥专利
首页

一种基于远端音频处理的回声消除方法和系统

文献发布时间:2024-04-18 19:58:26


一种基于远端音频处理的回声消除方法和系统

技术领域

本发明涉及音频处理技术领域,具体涉及一种基于远端音频处理的回声消除方法和系统。

背景技术

随着对音频设备的小型化,再加上成本等各方面的限制,音频设备的一些音频处理功能均放在了服务器端来实现。在服务器端实现音频处理时,由于网络延迟、网络波动以及网络丢包等情形常有发生,使得进行音频通信的不同音频设备间的回声产生的尾声延迟不一致,造成数据对齐不同步,从而导致音频处理效果不佳,影响用户体验。

发明内容

为了克服现有技术的不足,本发明实施例的目的在于提供一种基于远端音频处理的回声消除方法和系统,其可以通过远端的音频处理,消除网络原因造成的不同音频设备间的回声产生的尾声延迟不一致现象,实现对讲、多方通话、会议等场景中的音频效果处理。

为解决上述问题,本发明实施例第一方面公开一种基于远端音频处理的回声消除方法,用于实现至少一个第一终端和至少一个第二终端的音频通信;其包括以下步骤:

接收第一终端采集并发送的第一音频数据,所述第一终端发送所述第一音频数据时,携带为所述第一音频数据赋予的第一标记;

对所述第一音频数据进行缓存,并重新为所述第一音频数据赋予第二标记;

将所述第二标记以及所述第一音频数据发送至第二终端,以使所述第二终端对所述第一音频数据进行音源播放;

接收第二终端采集并发送的第二音频数据,所述第二终端发送所述第二音频数据时,携带为所述第二音频数据赋予的第三标记,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记;

基于第二终端发送所述第二音频数据时携带的所述第二标记确定该第二标记对应的目标第一音频数据,将所述目标第一音频数据作为回声处理的参考源,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据;

缓存所述第三音频数据,重新为所述第三音频数据赋予第四标记,将所述第四标记以及所述第三音频数据发送至第一终端,以使所述第一终端对所述第三音频数据进行音源播放。

作为一种优选的实施方式,在本发明实施例第一方面中,在接收第一终端采集并发送的第一音频数据,之前,还包括:

通过NTP时间同步,对所述第一终端和第二终端的时间进行校准。

作为一种优选的实施方式,在本发明实施例第一方面中,对所述第一标记的命名规则为:Xi(j),其中,Xi代表第i个第一终端,Xi(j)代表第i个第一终端发送的第j个第一音频数据;

对所述第二标记的命名规则为:Z

对所述第三标记的命名规则为:Yi(j),其中,Yi代表第i个第二终端,Yi(j)代表第i个第二终端发送的第j个第二音频数据;

对所述第四标记的命名规则为:Z

作为一种优选的实施方式,在本发明实施例第一方面中,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据,之后,还包括:

从缓存队列中删除所述参考源。

作为一种优选的实施方式,在本发明实施例第一方面中,所述方法,还包括:

所述第一终端发送所述第一音频数据时,还携带发送时间戳t1;

将所述第二标记以及所述第一音频数据发送至第二终端时,还携带发送时间戳t2;

记录所述第二终端播放所述第一音频数据的播放时间t3以及第二终端采集第二音频数据的采集时间t4;

所述第二终端发送所述第二音频数据时,还携带发送时间戳t5;

记录接收所述第二音频数据的接收时间戳t6;

根据所述接收时间戳t6和发送时间戳t2确定延迟时间,以在所述延迟时间大于预设阈值时,不将所述第二音频数据放入缓存队列。

作为一种优选的实施方式,在本发明实施例第一方面中,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记,包括:

以预设间隔时间发送的第二音频数据中,携带所述第一音频数据对应的第二标记。

本发明实施例第二方面公开了一种基于远端音频处理的回声消除装置,其包括:

第一接收单元,用于接收第一终端采集并发送的第一音频数据,所述第一终端发送所述第一音频数据时,携带为所述第一音频数据赋予的第一标记;

缓存单元,用于对所述第一音频数据进行缓存,并重新为所述第一音频数据赋予第二标记;

第一发送单元,用于将所述第二标记以及所述第一音频数据发送至第二终端,以使所述第二终端对所述第一音频数据进行音源播放;

第二接收单元,用于接收第二终端采集并发送的第二音频数据,所述第二终端发送所述第二音频数据时,携带为所述第二音频数据赋予的第三标记,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记;

回声消除单元,用于基于第二终端发送所述第二音频数据时携带的所述第二标记确定该第二标记对应的目标第一音频数据,将所述目标第一音频数据作为回声处理的参考源,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据;

第二发送单元,用于缓存所述第三音频数据,重新为所述第三音频数据赋予第四标记,将所述第四标记以及所述第三音频数据发送至第一终端,以使所述第一终端对所述第三音频数据进行音源播放。

本发明实施例第三方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的一种基于远端音频处理的回声消除方法。

本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种基于远端音频处理的回声消除方法。

本发明实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面公开的一种基于远端音频处理的回声消除方法。

本发明实施例第六方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面公开的一种基于远端音频处理的回声消除方法。

本发明实施例第七方面公开一种基于远端音频处理的回声消除系统,其包括至少一个第一终端、至少一个第二终端以及服务器;其中:

所述第一终端采集并向服务器发送第一音频数据,所述第一终端发送所述第一音频数据时,携带为所述第一音频数据赋予的第一标记;

所述服务器对所述第一音频数据进行缓存,并重新为所述第一音频数据赋予第二标记;

所述服务器将所述第二标记以及所述第一音频数据发送至第二终端,以使所述第二终端对所述第一音频数据进行音源播放;

所述第二终端采集并向服务器发送第二音频数据,所述第二终端发送所述第二音频数据时,携带为所述第二音频数据赋予的第三标记,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记;

所述服务器基于第二终端发送所述第二音频数据时携带的所述第二标记确定该第二标记对应的目标第一音频数据,将所述目标第一音频数据作为回声处理的参考源,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据;

所述服务器缓存所述第三音频数据,重新为所述第三音频数据赋予第四标记,并将所述第四标记以及所述第三音频数据发送至第一终端,以使所述第一终端对所述第三音频数据进行音源播放。

本发明实施例旨在对实际场景下声音效果的优化及实现,为教育、智慧路灯、监狱、交通、银行旅游景点、企业等行业提供高质量的音频体验,与现有技术相比,其有益效果在于:

1、通过远端服务器确定参考源,并利用回声消除技术对含有参考源相关回声的音频数据进行处理,消除不同音频设备间的回声产生的尾声延迟不一致的现象,各音频设备本身无需具有音频处理功能,为生产以及使用音频设备的企业或个人大大减少了资金投入。

2、统一了音频的处理效果,保持各种设备音频效果的一致,提升用户体验。

3、降低了音频处理对音频设备的依赖性,音频设备只需要具备音频发送和音频接收功能即可。

4、兼容性强,音频设备端只需要进行微小且不占用资源的改动。

5、拓展性强,基于远程音频处理框架,后续可方便扩展各种实用性的音频算法。

6、在网络波动延迟不一致的场景下也能进行回声消除,扩大了适应范围。

附图说明

图1是本发明实施例公开的一种基于远端音频处理的回声消除方法的流程示意图一;

图2是本发明实施例公开的一种基于远端音频处理的回声消除方法的流程示意图二;

图3是RTP头部格式的示意图;

图4是RTP扩展头格式示意图;

图5是本发明实施例公开的对齐和回声消除的原理示意图;

图6是本发明实施例公开的一种基于远端音频处理的回声消除装置的结构示意图;

图7是本发明实施例公开的一种基于远端音频处理的回声消除系统的结构示意图;

图8是本发明实施例公开的服务器的组成原理示意图;

图9是本发明实施例公开的时间同步的原理示意图;

图10是本发明实施例公开的一种电子设备的结构示意图。

具体实施方式

本具体实施方式仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本发明实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。

本发明实施例在音频设备与服务器建立会话通道后,服务器的音频处理框架对音频进行AEC,AGC,NC等音频算法多音频进行远程集中处理前,对音频包进行数据标记方式,以及在做回声抵消前进行对齐处理的方法,保证实际场景下的音频应用效果,以下结合附图进行详细描述。

实施例一

请参阅图1和图2,图1和图2是本发明实施例公开的一种基于远端音频处理的回声消除方法的流程示意图。该方法主要应用于两个或两个以上的音频设备之间的音频通信,包括但不限于双端通话、多端通话以及会议等,该方法的执行主体为具有数据接收、发送以及处理功能的电子设备,主要是采用远端服务器实现,远端服务器可以是云端服务器,也可以是布局于远端可以与第一终端和第二终端进行通信的实体服务器等,这里将远端服务器统称为服务器。

第一终端和第二终端为具有最基本音频功能的音频设备,包括音频采集和音频发送,在外部或者内部扬声器的配合下,还可以实现音频播放功能。可以理解的是,第一终端和第二终端只是为了区分不同音频设备的命名,二者在一定的条件下,可以具备相同的功能,且身份可以相互转换。

示例性地,第一终端A可以将语音数据发送给所有的第二终端,也可以发送给其他的第一终端,甚至该第一终端A本身,因此,在这种情况下,所有能够接收到第一终端A发送的语音数据的终端均视为第二终端,同样地,所有接收第二终端发送的语音数据的终端也均视为第一终端。

如图1和图2所示,该基于远端音频处理的回声消除方法包括以下步骤:

S110、接收第一终端采集并发送的第一音频数据,第一终端发送第一音频数据时,携带为第一音频数据赋予的第一标记。

在第一终端和第二终端进行音频通信之前,执行主体即服务器会对所有形成音频通信群组的第一终端和第二终端进行时间校准,以使其与服务器的时间一致。当然,在其他的实施例中,服务器可以对所有与之建立关联的音频设备定时或不定时地进行时间校准。

服务器对第一终端和第二终端时间校准的方式是通过NTP协议发送时间同步命令,从而使得第一终端和第二终端与服务器的时间保持一致。设置时间同步的目的在于服务器可以精准计算各音频设备与服务器之间的延迟时间以及网络抖动情况,可以实时调节缓存大小,更方便回声抵消的对齐工作。

第一终端音源输入采集的音频后,记为第一音频数据,该第一音频数据为音频包,第一终端将该第一音频数据发送给服务器。

第一终端向服务器发送第一音频数据时,还会携带第一标记,该第一标记命名规则是Xi(j),其中,Xi代表第i个第一终端,Xi(j)代表第i个第一终端向服务器发送的第j个第一音频数据,假设是第一个第一终端率先进行音频通信,则该第一标记为X1(1)。

音频设备与服务器之间的音频通信可以通过RTP协议实现。因此,如果需要在第一音频数据中添加第一标记,则根据RFC1889标准协议,在RTP头部中,设置X位置为1,添加扩展头。

图3示出了RTP头部格式说明,请参照图3所示,前12个字节是每个RTP头都有的,CSRC字段只有当MIXER插入时才产生。

Version(V):2bits,为RTP版本号;

padding(P):1bit,其置1时表明末尾有非数据的填充字段。所有填充字段的最后一个字节为填充字段长度,填充字段常被用于需加密的场合。

extension(X):1bit,此位若置1,则在标准的头部字段后还有扩展的字段,因此,可以将X值设置成1对RTP头部进行扩展。

CSRC count(CC):4bits,表示CSRC列表的项数。

marker(M):1bit,由配置文件定义,用于特定的应用程序。

payload type(PT):7bits,为负载数据类型编号,具体格式定义在PAYLOADFORMAT SPECIFICATION文件中。

sequence number:16bits,每发送一个RTP包,该项加1,其初始数值随机产生,以防止别人破译加密。

Timestamp:32bits,该项用于时间同步计算和抖动控制,其精度必须足以满足上述两项要求。时钟频率与负载类型有关,二者同时定义在PAYLOAD FORMAT SPECIFICATION文件中,其初始值随机。

SSRC:32bits,其为同步化源标识符,即此RTP包的发出者。因为一个RTP会话中不能有2个相同的SSRC,所以当发送者传输地址改变时此值需重新生成,以防止形成循环。

对RTP头的扩展,用于音频数据标记,请参照图4所示,设置profile的值为0x10,设置length为3,附带长度位3*4=12字节,附带header extension为:

+2字节:发送音频包标记值X(n);

+2字节:参考音频包标记值Y(n);

+8字节:音频包发送时的音频终端时间(毫秒级);

总共12字节。音频包标记为2字节的无符号短整型,每次使用时依次递增。

在第一终端服务器发送第一音频数据的同时,还携带音频包发送时第一终端的时间,记为发送时间戳t1。

S120、对第一音频数据进行缓存,并重新为第一音频数据赋予第二标记。

服务器根据需要设置有缓存队列设定长度,在当前缓存队列长度小于缓存队列设定长度时,将第一音频数据放入缓存队列中,并重新为该第一音频数据赋予第二标记,即第二标记和第一标记对应的音频数据为同一数据,不过是标记不同而已,该第二标记会在服务器中存储,且通过该第二标记可以确定服务器缓存队列中对应的第一音频数据。

对第二标记的命名规则为:Z

S130、将第二标记以及第一音频数据发送至第二终端,以使第二终端对第一音频数据进行音源播放。

服务器将该第一音频数据以及重新标记的第二标记发送给第二终端,同时还携带服务器发送该第一音频数据的时间,记为发送时间戳t2,第二终端接收到该第一音频数据后,可以进行音源输出播放。

S140、接收第二终端采集并发送的第二音频数据,第二终端发送第二音频数据时,携带为第二音频数据赋予的第三标记,如果第二终端对第一音频数据进行音源播放时,在第二终端发送第二音频数据时,还携带第一音频数据对应的第二标记。

第二终端如果进行音源输出播放,即只要是播放该第一音频数据,该第二终端就会以预设间隔时间T向服务器发送的第二音频数据RTP附带信息中就会携带该第一音频数据对应的第二标记。

预设间隔时间可以根据需要进行设置。因为第二终端播放第一音频数据产生回应与采集音频的时间间隔相对稳定,可设为t(interval),根据环境动态调整,第二终端可以根据t4-t3=t(interval)的时间计算出采集的音频包为t(interval)时间前放入扬声器的音频数据,根据第二终端缓存的音频包播放队列中取出t3时间段的音频包标记,即第二标记,第二标记在发送音频包时,在第二音频数据中附带数据上添加与之相关播放数据的服务器发送的第二标记作为服务器的参考音频包标记。

其中,可以在第二终端内部设置播放副本缓存队列,存储第二标记以及当前播放时间,其向服务器发送的数据根据副本缓存队列是否有数据及当前播放时间+预设间隔时间是否近似等于当前发放时间,如果有数据,且二者近似相等,则在发送的第二数据中携带该第二标记。

如果第二终端不播放第一音频数据,或者静音播放第一音频数据,则向服务器发送第二音频数据时,可以不携带该第二标记,第二终端可以通过对扬声器的输出检测确定其是否播放第一音频数据,以及是否静音播放第一音频数据。

除了该第二标记外,在第二终端发送第二音频数据时,均会携带第三标记,同时也会携带发送时间,记为发送时间戳t5,服务器在接收第二终端发送的第二音频数据时,记录其接收时间,记为接收数据戳t6。

第三标记的命名规则可以是Yi(j),其中,Yi代表第i个第二终端,Yi(j)代表第i个第二终端发送的第j个第二音频数据。

上述第一标记、第二标记以及第三标记中的j值可以是根据发送次数逐渐增加的,其最大值可以是65535,当j值达到65535后,则重置为0重新开始。

S150、基于第二终端发送第二音频数据时携带的第二标记确定该第二标记对应的目标第一音频数据,将目标第一音频数据作为回声处理的参考源,基于第二音频数据和参考源,对第二音频数据进行回声消除,形成第三音频数据。

服务器接收第二终端发送过来的第二音频数据,取t6-t2=t(diff)可知从服务器发送第一音频数据给设备播放、以及服务器接收第二音频数据的延迟时间,由于网络延迟、丢包、乱序等问题,可根据第二标记将多个第一音频数据进行重新排序,以减少因中间空白音频包或无回声音频包对回声处理造成的影响。

排序方法是:根据第二标记中j值从小到大排序放置在缓存队列中(Z

如果t(diff)过大,超过预设阈值(例如预设阈值可以是基准阈值*缓存队列设定长度,例如20ms*200=4s)时不将其放入缓存队列进行音频处理,但是其会进入缓存队列排序,服务器可以根据延迟时间动态调整缓存队列的设定长度大小,例如,当延迟时间过大时,可以增加缓存队列设定长度的值,从而可以将进入缓存队列排序靠前的音频数据进入缓存队列内。

在一些其他的实施例中,由于在缓存队列中的一些音频数据(可能是参考源,也可能是带有回声的音频数据)被处理,服务器就将这些被处理的音频数据删除,在此情况下,进入缓存队列排序靠前的音频数据也可以进入缓存队列内。

服务器接收到第二终端发送的第二音频数据后,可以根据第二标记确定其对应的位于服务器缓存队列中的第一音频数据,将该第一音频数据称为参考源。

基于参考源以及具有该参考源作为回声的第二音频数据,就可以对第二音频数据进行回声消除,其过程是:先将参考源和第二音频数据进行对齐,然后将对齐后的参考源和第二音频数据通过AEC算法进行回声消除,消除回声后的第二音频数据记为第三音频数据,将该第三音频数据缓存,并删除缓存队列中的上述参考源。

S160、缓存第三音频数据,重新为第三音频数据赋予第四标记,将第四标记以及第三音频数据发送至第一终端,以使第一终端对第三音频数据进行音源播放。

与步骤S120相类似的方式,为第三音频数据赋予第四标记,该第四标记命名规则为:Z

将第三音频数据以及第四标记、服务器向第一终端发送第三音频数据的发送时间(记为发送时间戳t7)发送给第一终端。

后续第一终端在播放第三音频数据时,同样会在音频采集时,对其第四音频数据造成回声干扰,因此,在将第四音频数据发送给服务器时,采用与步骤S140类似的方法,即将第四标记也发送给服务器,服务器基于该第四标记确定参考源,并利用参考源对第四音频数据进行回声消除,再重新为回声消除后的第四音频数据进行标记,并发送给第二终端,如此循环,使得整个音频通信过程中不再有回声。可以解决在服务端处理音频场景中由于网络延迟波动、设备回声产生间隔不一致等问题,出现的回声大,噪声大,音量不均匀等问题。

在一些其他的实施例中,服务器还可以通过额外算法(如丢包重传RTX,前向纠错FEC,自动带宽检测等)对参考源和第二音频数据在不同网络环境下的高质量传输,从而保证音频质量和回声抵消效果。可以在不同网络环境下(如丢包、延迟、抖动等)应用,也可以解决在一段时间静音后,突然说话,开始时间段回声无法消除问题。

图5示出了对音频包进行对齐以及回声处理的原理图,有图5可以看出:

1、服务器从缓存队列中取出终端(第一终端或第二终端)发送的其采集的音频数据包,并从该音频数据包中确定参考音频包标记(即类似于上述的第二标记),如果未携带参考音频包标记则服务器直接转发给对端设备;

2、当终端发送采集音频数据包中有携带参考音频包标记,将标记值与服务器参考信号缓存队列的参考音频包标记进行比对。标记相同的送入音频处理模块,根据频谱分析消除相关的回声信号,然后将处理后的音频包转发给对端设备。

实施例二

请参阅图6,图6是本发明实施例公开的一种基于远端音频处理的回声消除装置的结构示意图。如图6所示,该基于远端音频处理的回声消除装置可以包括:

第一接收单元210,用于接收第一终端采集并发送的第一音频数据,所述第一终端发送所述第一音频数据时,携带为所述第一音频数据赋予的第一标记;

缓存单元220,用于对所述第一音频数据进行缓存,并重新为所述第一音频数据赋予第二标记;

第一发送单元230,用于将所述第二标记以及所述第一音频数据发送至第二终端,以使所述第二终端对所述第一音频数据进行音源播放;

第二接收单元240,用于接收第二终端采集并发送的第二音频数据,所述第二终端发送所述第二音频数据时,携带为所述第二音频数据赋予的第三标记,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记;

回声消除单元250,用于基于第二终端发送所述第二音频数据时携带的所述第二标记确定该第二标记对应的目标第一音频数据,将所述目标第一音频数据作为回声处理的参考源,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据;

第二发送单元260,用于缓存所述第三音频数据,重新为所述第三音频数据赋予第四标记,将所述第四标记以及所述第三音频数据发送至第一终端,以使所述第一终端对所述第三音频数据进行音源播放。

优选地,在第一接收单元210之前,还可以包括同步单元,用于通过NTP时间同步,对所述第一终端和第二终端的时间进行校准。

优选地,对所述第一标记的命名规则为:Xi(j),其中,Xi代表第i个第一终端,Xi(j)代表第i个第一终端发送的第j个第一音频数据;对所述第二标记的命名规则为:Z

优选地,回声消除单元250,之后,还包括:删除单元,用于从缓存队列中删除所述参考源。

优选地,该装置还包括,时间记录单元,用于在所述第一终端发送所述第一音频数据时,还携带发送时间戳t1;将所述第二标记以及所述第一音频数据发送至第二终端时,还携带发送时间戳t2;记录所述第二终端播放所述第一音频数据的播放时间t3以及第二终端采集第二音频数据的采集时间t4;在第二终端发送所述第二音频数据时,还携带发送时间戳t5;服务器记录其接收第二音频数据的时间,记为接收时间戳t6。

还可以根据所述接收时间戳t6和发送时间戳t2确定延迟时间,以在所述延迟时间大于预设阈值时,不将所述第二音频数据放入缓存队列。

优选地,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,以预设间隔时间发送的第二音频数据中,携带所述第一音频数据对应的第二标记。

实施例三

请参阅图7,图7是本发明实施例公开的一种基于远端音频处理的回声消除系统的结构示意图。如图7所示,该基于远端音频处理的回声消除系统可以包括:其包括至少一个第一终端10、至少一个第二终端30以及服务器20。第一终端和第二终端可以通过拾音器例如麦克风等采集音频数据,并通过网络将音频数据发送至服务器,也可以通过网络接收服务器发送的音频数据,通过扬声器或其他方式将音频数据播放。

所述第一终端采集并向服务器发送第一音频数据,所述第一终端发送所述第一音频数据时,携带为所述第一音频数据赋予的第一标记;

所述服务器对所述第一音频数据进行缓存,并重新为所述第一音频数据赋予第二标记;

所述服务器将所述第二标记以及所述第一音频数据发送至第二终端,以使所述第二终端对所述第一音频数据进行音源播放;

所述第二终端采集并向服务器发送第二音频数据,所述第二终端发送所述第二音频数据时,携带为所述第二音频数据赋予的第三标记,如果第二终端对所述第一音频数据进行音源播放时,在第二终端发送所述第二音频数据时,还携带所述第一音频数据对应的第二标记;

所述服务器基于第二终端发送所述第二音频数据时携带的所述第二标记确定该第二标记对应的目标第一音频数据,将所述目标第一音频数据作为回声处理的参考源,基于所述第二音频数据和所述参考源,对所述第二音频数据进行回声消除,形成第三音频数据;

所述服务器缓存所述第三音频数据,重新为所述第三音频数据赋予第四标记,并将所述第四标记以及所述第三音频数据发送至第一终端,以使所述第一终端对所述第三音频数据进行音源播放。

请参照图8所示,服务器20可以实现音频数据的接收、发送和处理,按照服务器对音频的处理过程,可以将其分为网络延迟处理模块21、预设延迟处理模块22、自动对齐模块23以及音频处理模块24。其中:

网络延迟处理模块21主要是根据音频携带的时间戳来确定当前实时网络延迟,基于当前实时网络延迟对音频包在缓存区的位置进行处理。预设延迟处理模块22主要根据应用场景预设好的延迟配置,对音频包在缓存区的位置进行调整。自动对齐模块23主要对消除网络与预设延迟后的音频包,与之前发送到设备的音频参考信号进行对齐,缩短消除回声时的误差,仅做AEC处理时启用。音频处理模块24集成AEC,AGC,NC等算法,根据应用场景或配置进行远程音频数据处理。

音频终端通过咪头或其他方式采集音频数据,并通过网络发送至服务器;服务器缓存音频终端发送上来的音频包;音频包首先进入网络延迟处理模块,消除音频包的网络延迟,纠正音频包在缓存队列的位置,然后音频包再进入预设延迟处理模块,对音频包通过预设延迟处理,纠正音频包在缓存队列的位置,之后音频包进入自动对齐模块,将设备发送音频包与之前设备接收的音频包进行频谱分析,校正设备发送音频包与设备接收音频的处理相对位置,最后,音频包进入音频处理模块,根据当前任务的类型以及相关配置文件进行音频处理。音频数据处理完成后,通过网络将数据发给对应的音频终端,音频终端接收到音频数据后,通过扬声器或其他方式播放音频数据。

请参照图9所示,在进行网络延迟处理时,服务器先通过NTP协议向所有的第一终端和第二终端发送时间同步指令,以使得第一终端、第二终端和服务器的时间保持一致。

实施例四

请参阅图10,图10示出了可以用来实施本发明实施例的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的或/和者要求的本发明实施例的实现。

如图10所示,电子设备包括至少一个处理器410,以及与至少一个处理器410通信连接的存储器,如ROM(只读存储器)420、RAM(随机访问存储器)430等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器410可以根据存储在ROM 420中的计算机程序或者从存储单元480加载到随机访问存储器RAM 430中的计算机程序,来执行各种适当的动作和处理。在RAM 430中,还可存储电子设备操作所需的各种程序和数据。处理器410、ROM420以及RAM 430通过总线440彼此相连。I/O(输入/输出)接口450也连接至总线440。

电子设备中的多个部件连接至I/O接口450,包括:输入单元460,例如键盘、鼠标等;输出单元470,例如各种类型的显示器、扬声器等;存储单元480,例如磁盘、光盘等;以及通信单元490,例如网卡、调制解调器、无线通信收发机等。通信单元490允许电子设备通过诸如因特网的计算机网络或/和各种电信网络与其他设备交换信息/数据。

处理器410可以是各种具有处理和计算能力的通用或/和专用处理组件。处理器410的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器410执行上文实施例一任一描述的一种基于远端音频处理的回声消除方法的一个或多个步骤。

在一些实施例中,一种基于远端音频处理的回声消除方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元480。在一些实施例中,计算机程序的部分或者全部可以经由ROM 420或/和通信单元490而被载入或/和安装到电子设备上。当计算机程序加载到RAM 430并由处理器410执行时,可以执行上文实施例一描述的一种基于远端音频处理的回声消除方法的一个或多个步骤。备选地,在其他实施例中,处理器410可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种基于远端音频处理的回声消除方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、或/和它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行或/和解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本发明实施例的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图或/和框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明实施例的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

以上对本发明公开的一种基于远端音频处理的回声消除方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种用于回声消除的滤波方法及装置、设备、介质
  • 一种用于回声消除的滤波方法及装置、设备、介质
  • 一种用于语音识别过程的回声消除方法及装置
  • 一种基于神经网络双讲检测的回声消除方法及系统
  • 一种基于时间戳同步的回声消除方法及系统
技术分类

06120116490018