一种回声消除方法、装置、存储介质及处理器与流程

文档序号:21362421发布日期:2020-07-04 04:36阅读:376来源:国知局
一种回声消除方法、装置、存储介质及处理器与流程

本申请涉及音频处理技术领域,特别是涉及一种回声消除方法、装置、存储介质及处理器。



背景技术:

随着音视频技术的发展和硬件设备的迭代更新,在线教育软件、视频通话软件和娱乐连麦互动软件等需要进行音频处理的软件越来越多的走进了人们的生活中。这些软件的使用依赖于日趋完善的音视频互动技术。

在音视频互动过程中,容易产生回声问题,影响使用体验。下面通过示例简单描述音视频互动过程中回声的产生原理。假设用户a通过第一设备与使用第二设备的用户b进行音视频互动,第二设备的扬声器播放出用户a的声音,但是该声音在用户b所在的室内经过多个传播和反射路径后,与用户b的声音一同被第二设备的麦克风采集,然后发送给第一设备。如此一来,用户a通过第一设备的扬声器听到的声音也包括了自己的回声。显然,回声效果影响用户的音视频互动体验。

目前已有一些开源项目例如webrtc和speex可以对回声进行消除。但是音视频互动时,还常常面临播放伴奏音频给对端用户的需求。例如,教育软件中老师想要播放教学视频给学生看,教学视频中的音频即相当于老师音频的伴奏音频;或者,直播连麦软件中主播唱歌想要添加一个伴奏音乐,该伴奏音乐即相当于主播歌声的伴奏音频。此时如果使用其他的软件在本端播放上述伴奏音频,而由其他软件播放的伴奏音频不在已有成熟的声学回声消除(acousticechocanceler,aec)技术处理范围内,这导致对端用户会听到两次甚至更多次的伴奏音频。

如何避免在设备播放伴奏音频时导致对端收听到的回声,已经成为本领域急需解决的技术问题。



技术实现要素:

基于上述问题,本申请提供了一种回声消除方法、装置、存储介质及处理器,以在音视频互动一方播放伴奏音频时避免另一方收听到该伴奏音频的回声。

本申请实施例公开了如下技术方案:

第一方面,本申请提供一种回声消除方法,方法应用在本端设备,所述方法包括:

将伴奏音频数据和对端音频数据进行混音,得到第一混音数据;所述对端音频数据由与所述本端设备进行音频交互的对端设备提供;

播放所述第一混音数据;

采集所述第一混音数据播放后对应的衰减音频数据及本端音频数据;

利用所述衰减音频数据和所述本端音频数据进行音频处理,得到处理后的音频数据;所述音频处理包括:回声消除处理;

将所述处理后的音频数据和所述伴奏音频数据进行混音,得到第二混音数据;

向所述对端设备发送所述第二混音数据。

可选地,利用所述衰减音频数据和所述本端音频数据进行音频处理,得到处理后的音频数据,具体包括:

将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,对所述输入数据先后进行高通滤波处理、回声消除处理、噪声抑制处理、静音检测处理和增益控制处理,得到所述处理后的音频数据。

可选地,方法基于webrtc实现,所述webrtc包括用于导入所述伴奏文件的接口、播放线程和采集线程;

其中,所述播放线程执行所述将伴奏音频数据和对端音频数据进行混音,得到第一混音数据,以及执行所述播放所述第一混音数据;

所述采集线程执行所述采集所述第一混音数据播放后对应的衰减音频数据及本端音频数据;

所述采集线程还执行所述将所述处理后的音频数据和所述伴奏音频数据进行混音,得到第二混音数据。

可选地,在所述将伴奏音频数据和对端音频数据进行混音之前,所述方法还包括:

将伴奏文件解码为pcm格式的音频原始数据;

对所述音频原始数据按照目标采样率和目标声道数进行重采样,得到所述伴奏音频数据。

可选地,在所述对所述音频原始数据按照目标采样率和目标声道数进行重采样,得到所述伴奏音频数据之后,还包括:

将所述伴奏音频数据放入缓存;

将所述缓存中的所述伴奏音频数据切割为多个目标长度的数据包,依次放入队列中;所述目标长度为所述播放线程和所述采集线程各自的最小数据单元的长度。

可选地,回声消除处理具体包括:

根据所述第一混音数据的播放时间和所述衰减音频数据的采集时间估计延迟;

将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,根据所述延迟对所述输入数据进行对齐;

对对齐后的输入数据进行线性自适应滤波回声消除;

对消除过线性回声的输入数据进行非线性处理,其中,所述非线性处理包括:残留回声处理和非线性剪切处理;

对非线性处理过的输入数据进行舒适噪声生成。

第二方面,本申请提供一种回声消除装置,装置应用在本端设备,所述装置包括:

第一混音模块,用于将伴奏音频数据和对端音频数据进行混音,得到第一混音数据;所述对端音频数据由与所述本端设备进行音频交互的对端设备提供;

播放模块,用于播放所述第一混音数据;

采集模块,用于采集所述第一混音数据播放后对应的衰减音频数据及本端音频数据;

第一音频处理模块,用于利用所述衰减音频数据和所述本端音频数据进行音频处理,得到处理后的音频数据;所述音频处理包括:回声消除处理;

第二混音模块,用于将所述处理后的音频数据和所述伴奏音频数据进行混音,得到第二混音数据;

发送模块,用于向所述对端设备发送所述第二混音数据。

可选地,第一音频处理模块,具体包括:

高通滤波单元、回声消除单元、噪声抑制单元、静音检测单元和增益控制单元,分别用于对输入数据先后进行高通滤波处理、回声消除处理、噪声抑制处理、静音检测处理和增益控制处理,得到所述处理后的音频数据;所述输入数据包括:所述衰减音频数据和所述本端音频数据。

可选地,装置基于webrtc实现,所述webrtc包括用于导入所述伴奏文件的接口、播放线程和采集线程;

其中,所述播放线程用于实现所述第一混音模块和所述播放模块的功能;

所述采集线程用于实现所述采集模块和所述第二混音模块的功能。

可选地,装置还包括:伴奏处理模块,所述伴奏处理模块包括:

解码单元,用于将伴奏文件解码为pcm格式的音频原始数据;

重采样单元,用于对所述音频原始数据按照目标采样率和目标声道数进行重采样,得到所述伴奏音频数据。

可选地,伴奏处理模块,还包括:

缓存单元,用于将所述伴奏音频数据放入缓存;

数据切割单元,用于将所述缓存中的所述伴奏音频数据切割为多个目标长度的数据包,依次放入队列中;所述目标长度为所述播放线程和所述采集线程各自的最小数据单元的长度。

可选地,回声消除单元具体包括:

延迟估计子单元,用于根据所述第一混音数据的播放时间和所述衰减音频数据的采集时间估计延迟;将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,根据所述延迟对所述输入数据进行对齐;

线性消除子单元,用于对对齐后的输入数据进行线性自适应滤波回声消除;

非线性消除子单元,用于对消除过线性回声的输入数据进行非线性处理,其中,所述非线性处理包括:残留回声处理和非线性剪切处理;

舒适噪声生产子单元,用于对非线性处理过的输入数据进行舒适噪声生成。

第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述程序被处理器运行时,实现如第一方面提供的回声消除方法。

第四方面,本申请提供一种处理器,用于运行计算机程序,所述程序运行时执行如第一方面提供的回声消除方法。

相较于现有技术,本申请具有以下有益效果:

本申请提供的回声消除方法应用在本端设备。该方法中,将伴奏音频数据和对端设备提供的对端音频数据进行混音,得到第一混音数据,并播放该第一混音数据,使得本端设备的用户能够听到伴奏和对端传输来的音频。为了使对端能够听到不带有伴奏回声和对端音频回声的有效音频,在本申请中本端设备还采集了第一混音数据在本端播放后对应的衰减音频数据和本端音频数据,并将采集的音频数据进行回声消除处理在内的音频处理操作,通过回声消除,输出的音频数据为不带有伴奏回声和对端音频回声的本端有效音频。为了使对端在收听本端有效音频的同时还能够收听清晰伴奏,本申请将经过音频处理后的音频数据与伴奏音频数据进行混音,得到第二混音数据,最终向对端设备发送该第二混音数据。由于第二混音数据不包含伴奏回声和对端音频的回声,因此,避免了本端播放伴奏时对端收听到伴奏回声和对端音频自本端传输来的回声,从而消除了双方音视频交互的回声干扰,提升了音视频交互质量。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请技术方案的应用场景示意图;

图2为本申请实施例提供的一种回声消除方法的流程图;

图3为本申请实施例提供的一种回声消除处理的流程图;

图4为应用webrtc的播放线程、采集线程和音频处理模块实现回声消除方法的示意图;

图5为本申请实施例提供的一种回声消除装置的结构示意图;

图6为一种第一音频处理模块的结构示意图;

图7为本申请实施例提供的另一种回声消除装置的结构示意图;

图8为一种回声消除单元的结构示意图。

具体实施方式

正如前文描述,目前的音视频处理技术尽管能够在一定程度上消减回声影响,但是没有针对一端播放伴奏音频时伴奏回声对另一端的播放影响提出有效的解决方案。

基于以上问题,发明人经过研究提供一种回声消除方法、装置、存储介质及处理器。本申请中在本端设备播放第一混音数据,该第一混音数据为对伴奏音频数据和对端音频数据混音后得到的音频数据。为了使对端设备播放的音频不带有本端播放对端音频和伴奏音频的回声,在本端采集了第一混音数据在本端播放后的衰减音频数据和本端音频数据,对衰减音频数据和本端音频数据进行音频处理(包括回声消除处理),从而除去了回声。将经过音频处理后的音频数据与伴奏音频数据进行混音得到第二混音数据,最后将第二混音数据发送给对端设备。如此,对端设备播放第二混音数据后,对端用户听到的声音中不包含对端设备向本端设备传输的音频的回声,并且对端用户听到的声音中也不包含本端设备播放伴奏的回声。进而,本申请技术方案避免对端设备与本端设备音视频交互时受到回声影响。

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

为便于理解,首先介绍本申请实施例技术方案的应用场景。参见图1,该图为本申请技术方案的应用场景示意图。图1所示的应用场景中,包括第一终端101和第二终端102,第一终端101和第二终端102进行音视频交互。具体的音视频交互内容可以是在线教学、在先演唱歌曲等。此处对音视频交互的具体内容不进行限定。

其中对于任意一个终端来说,自身为本端设备,其他与其音视频交互的终端为对端设备。例如,对于第一终端101来说,自身为本端设备,而第二终端102为对端设备;对于第二终端102来说,自身为本端设备,而第一终端101为对端设备。

可以理解的是,本申请技术方案的应用场景中,还可以包括两个以上的终端。此处对于本端设备进行音视频交互的对端设备数量不进行限定。在应用场景中,第一终端101和第二终端102分别可以为移动终端(例如手机或平板电脑)或固定终端(例如台式电脑)。此处对应用场景中终端的具体类型不进行限定。

方法实施例

参见图2,该图为本申请实施例提供的一种回声消除方法的流程图。该方法应用于本端设备,在下面的方法描述中,以图1所示的第一终端101为本端设备,以第二终端102为对端设备进行描述。

如图2所示,该方法包括:

步骤201:将伴奏音频数据和对端音频数据进行混音,得到第一混音数据。

伴奏音频数据可以是伴奏音乐、教学视频的音频流等,此处对伴奏音频数据的具体内容不进行限定。伴奏音频数据需要在本端设备(第一终端101)和对端设备(第二终端102)分别播放,目的是使第一终端101的用户和第二终端102的用户收听到伴奏效果。

需要说明的是,本实施例中伴奏音频数据可以是实时从网页或应用程序的链接获取的,也可以是第一终端101本地存储的。此处对伴奏音频数据的获取方式不加限定。

对于第一终端101,在其与第二终端102音视频交互的过程中,第二终端102的采集设备(例如麦克风)可能采集了第二终端的102的用户的声音,这些由第二终端102采集并传输给第一终端101的音频数据在本实施例中称为对端音频数据。

对于第一终端101,不但需要播放伴奏音频数据,还需要播放对端音频数据,如此一来第一终端101的用户才能够听到伴奏和对端的声音。为此,本步骤将伴奏音频数据和对端音频数据进行混音,得到第一混音数据。

步骤202:播放第一混音数据。

通过上一步骤的混音获得了第一混音数据,第一终端101即可播放第一混音数据来满足第一终端101的用户的需求。

步骤203:采集第一混音数据播放后对应的衰减音频数据及本端音频数据。

可以理解的是,第一终端101按照第一混音数据播放后,若第一终端处于一个密闭的空间内,声音可能经过传播和反射路径后发生衰减。因此第一终端101可以采集该第一混音数据播放后对应的衰减音频数据。

此外,第一终端101还可以采集本端音频数据。作为示例,本端音频数据可以是第一终端101的用户唱歌的声音、教学的声音等。本端音频数据用以提供给第二终端102,以使第二终端102的用户收听。

步骤204:利用衰减音频数据和本端音频数据进行音频处理,得到处理后的音频数据;音频处理包括:回声消除处理。

实际应用中,第一混音数据播放后对应的衰减音频数据和本端音频数据可能被第一终端101同时采集。如果将采集到的音频数据直接发送给第二终端102,显然第二终端102播放出的声音中带有衰减音频数据形成的回声(包括伴奏回声和第二终端102曾提供的对端音频数据的回声)。为了避免这一问题,本步骤需要对上一步骤采集的数据进行音频处理。

本实施例中,音频处理至少包括回声消除处理。通过回声消除处理,将所处理的数据中在第二终端102播放能够导致回声效果的数据消除。

步骤205:将处理后的音频数据和伴奏音频数据进行混音,得到第二混音数据。

经过步骤204,处理后的音频数据不包含能够导致第二终端102播放伴奏回声和对端音频数据回声的数据,处理后的音频数据存留了干净(清晰的)的本端音频数据(相比于步骤203采集的本端音频数据,在处理后的音频数据中经过处理可能发生了某种程度的变化)。但是,为了使第二终端102仍能播放出与第一终端101处播放的相同伴奏,还需要执行本步骤,将上一步骤处理后的音频数据和伴奏音频数据进行混音,得到第二混音数据。

通过将处理后的音频数据和伴奏音频数据混音,使的第二混音数据中既包含了干净的本端音频数据和干净的伴奏音频数据,满足第二终端102用户的所需。

步骤206:向对端设备发送第二混音数据。

通过上一步骤获得了包含干净本端音频数据和干净伴奏音频数据的第二混音数据。因此在本步骤第一终端101即可向第二终端102发送第二混音数据,以便第二终端102接收到第二混音数据后进行播放。

可以理解的是,第二终端102的用户可以收听到干净的本端音频数据(由第一终端101提供)和干净的伴奏。并且,第二终端102的用户不会听到伴奏音频数据和对端音频数据(由第二终端102提供)在第一终端101场景中产生的回声。

以上即为本申请实施例提供的回声消除方法,该方法由本端设备实现中,该方法将伴奏音频数据和对端设备提供的对端音频数据进行混音,得到第一混音数据,并播放该第一混音数据,使得本端设备的用户能够听到伴奏和对端传输来的音频。为了使对端能够听到不带有伴奏回声和对端音频回声的有效音频,在本申请中本端设备还采集了第一混音数据在本端播放后对应的衰减音频数据和本端音频数据,并将采集的音频数据进行回声消除处理在内的音频处理操作,通过回声消除,输出的音频数据为不带有伴奏回声和对端音频回声的本端有效音频。为了使对端在收听本端有效音频的同时还能够收听清晰伴奏,本申请将经过音频处理后的音频数据与伴奏音频数据进行混音,得到第二混音数据,最终向对端设备发送该第二混音数据。由于第二混音数据不包含伴奏回声和对端音频的回声,因此,避免了本端播放伴奏时对端收听到伴奏回声和对端音频自本端传输来的回声,从而消除了双方音视频交互的回声干扰,提升了音视频交互质量。

在实际应用中,步骤204所执行的音频处理,除了包括回声消除处理,还可以包括其他的处理操作。在一种可能的实现方式中,步骤204具体包括:

将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,对所述输入数据先后进行高通滤波处理、回声消除处理、噪声抑制处理、静音检测处理和增益控制处理,得到所述处理后的音频数据。

高通滤波(highpassfilter)的目的是抑制不需要的低频信号。实际应用中可以根据需要来修改参数,选择相应的截止频率。对于某些有工频干扰的设备需要使用高通滤波器。

回声消除模块(aec)在第一终端101使用外置扬声器播放音频的时候应该使用,另外有些使用耳麦通讯的情况也会存在回声,也需要进行回声消除。

噪声抑制模块(ns/se)一般应用在有环境噪声的情况,或者是麦克风采集到的数据有明显噪声的情况。

静音检测模块(vad),该模块用于检测语音是否出现。用于编解码以及后续相关处理。在语音通话过程中,如果一方在收听,而没有说话,则会检测到输出端没有采集到数据,此时便不会发送数据。这样会根据是否采集到数据,动态调节数据的发送状况,降低了不必要的带宽浪费。

增益控制模块(agc),这个模块使用了语音的特征对系统硬件音量和输出的信号大小进行调节。硬件上可以控制输入音量。

参见图3,该图为一种回声消除处理的流程图。图3所示意的操作可以由aec模块实现,回声消除处理中具体可以包括:

步骤301:根据所述第一混音数据的播放时间和所述衰减音频数据的采集时间估计延迟。

可以理解的是,第一混音数据的播放时间早于第一混音数据播放后对应的衰减数据的采集时间。为了提供更加优质的处理效果,方便后续运算,需要获取前述播放时间和采集时间的延迟,因此执行本步骤。

步骤302:将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,根据所述延迟对所述输入数据进行对齐。

步骤303:对对齐后的输入数据进行线性自适应滤波回声消除。

本步骤就是对fe=f(fs)求解,建立远端回声的语音模型,进行第一轮回声消除。

执行本步骤后,消除了输入数据中的线性回声。但是消除线性回声后,还存在一些未除净的非线性回声。为此执行以下步骤。

步骤304:对消除过线性回声的输入数据进行非线性处理。

所述非线性处理包括:残留回声处理和非线性剪切处理。残留回声处理进行第二轮回声消除,处理残留回声;非线性剪切处理就是对衰减量达到阈值的音频数据进行比较激进的剪切处理。

步骤305:对非线性处理过的输入数据进行舒适噪声生成。

在本实施例中采用的滤波器长度是分为12块,每块64点,按照8000采样率,也就是12*8ms=96ms的数据,即处理96ms长度以内的数据。这样避免了估算错误带来的误差扩散。

在一种可能的实现方式中,本申请实施例提供的回声消除方法可以在开源的webrtc软件上实现。webrtc包括用于导入所述伴奏文件的接口、播放线程、采集线程和音频处理模块。参见图4,该图为应用webrtc的播放线程、采集线程和音频处理模块实现回声消除方法的示意图。

如图4所示,在本申请实施例中,播放线程401执行前述步骤201-202,即:所述将伴奏音频数据和对端音频数据进行混音,得到第一混音数据,以及执行所述播放所述第一混音数据。第一混音数据提供给音频处理模块402。

具体实现时,第一终端101的扬声器的播放线程401通过voebaseimpl类的getplayoutdata函数获取当前可供播放的音频数据,及对端音频数据。可选地,如果对端设备有多个(不仅仅包括第二终端102),这些对端设备的用户同时说话,则播放线程401还可以利用outputmixer类的mixactivechannels函数将多路对端音频数据混音。播放线程401通过outputmixer类的dooperationsoncombinedsignal函数在对端音频数据中混入伴奏音频数据。播放线程401通过audioprocessingimpl类的processreversestream函数将第一混音数据送入扬声器进行播放。最后播放线程401通过audioprocessingimpl类的analyzereversestreamlocked函数将第一混音数据放入音频处理模块402,以作为参考。

采集线程403执行步骤203所述采集所述第一混音数据播放后对应的衰减音频数据及本端音频数据,衰减音频数据和本端音频数据在采集后提供给音频处理模块402。具体实现时,第一终端101的麦克风采集线程403通过voebaseimpl类的recordeddataisavailable函数进行衰减音频数据和本端音频数据的采集。

所述音频处理模块402执行步骤204,即:所述利用所述衰减音频数据和所述本端音频数据进行音频处理,得到处理后的音频数据。具体实现时,可以采用audioprocessingimpl类的processstream函数进行音频处理。

所述采集线程403还执行步骤205,即:所述将所述处理后的音频数据和所述伴奏音频数据进行混音,得到第二混音数据。具体实现时,可以通过channel类的prepareencodeandsendmixexternalaudio函数将音频处理模块402处理后的音频数据与伴奏音频数据进行混音。

下面对本实施例方法中两次混音分别用到的伴奏音频数据的获取方式进行描述。

由于本实施例中webrtc包括用于导入所述伴奏文件的接口,因此当第一终端101需要播放某一伴奏文件时,即可将该伴奏文件导入至该接口。

为了便于后续的混音操作,本实施例中在将伴奏文件转化为混音所用的伴奏音频数据时,参考了播放线程401及采集线程403的采样率,以及参考了播放线程401及采集线程403的声道数。

首先,将通过上述接口导入的伴奏文件解码为pcm格式的音频原始数据。伴奏解码后格式各异,其后,对所述音频原始数据按照目标采样率和目标声道数进行重采样,得到所述伴奏音频数据。其中,所述目标采样率与所述播放线程及所述采集线程的采样率一致;所述目标声道数与所述播放线程及所述采集线程的声道数一致。作为示例,目标采样率为16000hz,目标声道数为1,即单声道。

由于伴奏音频数据是以目标采样率和目标声道数重采样得到的,因此,避免后续播放线程401及采集线程403分别执行混音操作时,发生音频数据采样率、声道数不一致的问题。

为供播放线程401、采集线程403及音频处理模块402使用伴奏音频数据,本实施例中在对伴奏重采样得到伴奏音频数据后,还将所述伴奏音频数据放入缓存buffer。

将所述缓存中的所述伴奏音频数据切割为多个目标长度的数据包,依次放入队列中;所述目标长度为所述播放线程、所述采集线程和所述音频处理模块各自的最小数据单元的长度。

作为示例,播放线程401、所述采集线程403和所述音频处理模块402各自的最小数据单元长度为10ms,因此可以按照10ms对伴奏音频数据进行切割,切割后依次放入队列中。假设采样率16000,则按照10ms进行切割,切割为160个采样点。

本申请实施例中,通过将伴奏音频数据放入buffer中,避免出现边界现象。例如如果切割后剩余不足目标长度,则可以将其留存在buffer中等待下一数据的来到,再形成新的数据包。由于音频是连续的信号,缺少一小段便会破坏听觉感受,因此按照本实施例中将其放入buffer提升了听觉体验。

当播放线程401运行到outputmixer类的dooperationsoncombined-signal函数时,将队列中的10ms伴奏音频数据与播放线程401的对端音频数据进行混音,以获得第一混音数据进行播放;

当采集线程403运行到channel类的prepareencodeandsendmixexternal-audio函数时,将队列中的10ms伴奏音频数据与经过音频处理模块402处理后的音频数据混音,得到第二混音数据,以发送给第二终端102。通过以上操作发送给第二终端102的第二混音数据在第二终端102播放后,形成的声音中伴奏是清晰且不包含回音的。

基于前述实施例提供的方法,本实施例还提供一种回声消除装置,下面结合附图进行说明。

装置实施例

参见图5,该图为本申请实施例提供的一种回声消除装置的结构示意图。

如图5所示,该装置包括:

第一混音模块501,用于将伴奏音频数据和对端音频数据进行混音,得到第一混音数据;所述对端音频数据由与所述本端设备进行音频交互的对端设备提供;

播放模块502,用于播放所述第一混音数据;

采集模块503,用于采集所述第一混音数据播放后对应的衰减音频数据及本端音频数据;

第一音频处理模块504,用于利用所述衰减音频数据和所述本端音频数据进行音频处理,得到处理后的音频数据;所述音频处理包括:回声消除处理;

第二混音模块505,用于将所述处理后的音频数据和所述伴奏音频数据进行混音,得到第二混音数据;

发送模块506,用于向所述对端设备发送所述第二混音数据。

本申请提供的回声消除装置应用在本端设备。该装置中,将伴奏音频数据和对端设备提供的对端音频数据进行混音,得到第一混音数据,并播放该第一混音数据,使得本端设备的用户能够听到伴奏和对端传输来的音频。为了使对端能够听到不带有伴奏回声和对端音频回声的有效音频,在本申请中本端设备还采集了第一混音数据在本端播放后对应的衰减音频数据和本端音频数据,并将采集的音频数据进行回声消除处理在内的音频处理操作,通过回声消除,输出的音频数据为不带有伴奏回声和对端音频回声的本端有效音频。为了使对端在收听本端有效音频的同时还能够收听清晰伴奏,本申请将经过音频处理后的音频数据与伴奏音频数据进行混音,得到第二混音数据,最终向对端设备发送该第二混音数据。由于第二混音数据不包含伴奏回声和对端音频的回声,因此,避免了本端播放伴奏时对端收听到伴奏回声和对端音频自本端传输来的回声,从而消除了双方音视频交互的回声干扰,提升了音视频交互质量。

图6为一种第一音频处理模块504的结构示意图。如图6所示,所述第一音频处理模块504,具体包括:

高通滤波单元highpassfilter、回声消除单元aec、噪声抑制单元ns/se、静音检测单元vad和增益控制单元agc,分别用于对输入数据先后进行高通滤波处理、回声消除处理、噪声抑制处理、静音检测处理和增益控制处理,得到所述处理后的音频数据;所述输入数据包括:所述衰减音频数据和所述本端音频数据。

可选地,上述装置基于webrtc实现,所述webrtc包括用于导入所述伴奏文件的接口、播放线程、采集线程和第二音频处理模块;

其中,所述播放线程用于实现所述第一混音模块501和所述播放模块502的功能;

所述采集线程用于实现所述采集模块503和所述第二混音模块505的功能;

所述第二音频处理模块用于实现所述第一音频处理模块504的功能。

可选地,如图7所示,该回声消除装置还包括:伴奏处理模块507,所述伴奏处理模块507包括:

解码单元5071,用于将伴奏文件解码为pcm格式的音频原始数据;

重采样单元5072,用于对所述音频原始数据按照目标采样率和目标声道数进行重采样,得到所述伴奏音频数据;所述目标采样率与所述播放线程及所述采集线程的采样率一致;所述目标声道数与所述播放线程及所述采集线程的声道数一致。

由于伴奏音频数据是以目标采样率和目标声道数重采样得到的,因此,避免后续播放线程401及采集线程403分别执行混音操作时,发生音频数据采样率、声道数不一致的问题。

可选地,所述伴奏处理模块507,还包括:

缓存单元,用于将所述伴奏音频数据放入缓存;

数据切割单元,用于将所述缓存中的所述伴奏音频数据切割为多个目标长度的数据包,依次放入队列中;所述目标长度为所述播放线程、所述采集线程和所述第二音频处理模块各自的最小数据单元的长度。

本申请实施例中,通过将伴奏音频数据放入buffer中,避免出现边界现象。例如如果切割后剩余不足目标长度,则可以将其留存在buffer中等待下一数据的来到,再形成新的数据包。由于音频是连续的信号,缺少一小段便会破坏听觉感受,因此按照本实施例中将其放入buffer提升了听觉体验。

参见图8,该图为一种回声消除单元的结构示意图。如图8,可选地,所述回声消除单元aec具体包括:

延迟估计子单元801,用于根据所述第一混音数据的播放时间和所述衰减音频数据的采集时间估计延迟;将所述衰减音频数据和所述本端音频数据共同作为音频处理的输入数据,根据所述延迟对所述输入数据进行对齐;

线性消除子单元802,用于对对齐后的输入数据进行线性自适应滤波回声消除;

非线性消除子单元803,用于对消除过线性回声的输入数据进行非线性处理,其中,所述非线性处理包括:残留回声处理和非线性剪切处理;

舒适噪声生产子单元804,用于对非线性处理过的输入数据进行舒适噪声生成。

基于前述实施例提供的回声消除方法及装置,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述程序被处理器运行时,实现如方法实施例中提供的回声消除方法。

基于前述实施例提供的回声消除方法及装置,本申请还提供一种处理器,该处理器用于运行计算机程序,所述程序运行时执行方法实施例提供的回声消除方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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