回音消除方法、装置、电子设备及存储介质与流程

阅读: 评论:0



1.本公开涉及回音消除技术领域,尤其涉及一种回音消除方法、装置、电子设备及存储介质。


背景技术:



2.在基于unity开发的全真在线教育场景中,老师和学生会处于同一虚拟场景,在该虚拟场景中会通过unity播放一些环境音,如此在老师讲课时,麦克风会把老师的声音和通过unity播放的环境音进行录制,然后发送给学生,在学生端再播放,这时学生端会听到从老师端发过来的环境音以及本地通过unity播放的环境音,从而导致回音。
3.回音的存在会影响学生的听课效果以及听课体验。


技术实现要素:



4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种回音消除方法、装置、电子设备及存储介质,实现了在基于unity开发的全真在线场景中回音的消除。
5.根据本公开的一方面,提供了一种回音消除方法,应用于第一用户终端所述方法包括:
6.在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使rtc(real-time communication,实时通信)应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;
7.通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征;
8.当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;
9.通过所述rtc应用将所述第三音频发送至所述第二用户的终端。
10.根据本公开的另一方面,提供了一种回音消除装置,包括:
11.获取模块,用于在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使实时通信rtc应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;
12.播放模块,用于通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征;
13.过滤模块,用于当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;
14.发送模块,用于通过所述rtc应用将所述第三音频发送至所述第二用户的终端。
15.根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理
器执行上述回音消除方法。
16.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述回音消除方法。
17.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行上述回音消除方法。
18.本公开实施例提供的技术方案与现有技术相比具有如下优点:
19.本技术实施例中提供的回音消除方法,在基于unity开发的全真在线虚拟场景中,能够消除使用户感知到回音的音频,即能够实现回音消除,从而提升用户的使用体验。
附图说明
20.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
21.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1为本公开实施例提供的一种体现环境音分别在第一用户端和第二用户端进行播放的示意图;
23.图2为本公开实施例提供的一种回音消除方法的流程示意图;
24.图3为本公开实施例提供的一种回音消除的流程示意图;
25.图4为本公开实施例提供的一种回音消除的过程示意图;
26.图5为本公开实施例提供的一种回音消除的过程示意图
27.图6为本公开实施例提供的一种回音消除装置的结构示意图;
28.图7为本公开实施例提供的电子设备的结构示意图。
具体实施方式
29.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
30.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
31.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
32.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
33.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
34.通常,在ios系统基于unity开发的全真在线虚拟场景中,会有一些通过unity控制播放的环境音,该环境音分别在第一用户的终端和第二用户的终端进行播放,如图1所示的一种体现环境音分别在第一用户的终端和第二用户的终端进行播放的示意图,其中audio2表示环境音,由unity控制播放,该环境音分别在第一用户110的终端和第二用户120的终端进行播放,如此第一用户110和第二用户120均会听到各自终端所播放的环境音audio2。在通过第一用户110的终端的麦克风130对第一用户110的发言(audio1)进行录制时,麦克风130会将当时本地扬声器140(即第一用户110的终端的扬声器)播放的环境音audio2也进行录制,如此,当录制的音频(该音频包括环境音audio2)传到第二用户120的终端时,第二用户会再次听到一次环境音audio2,从而产生回音的效果。回音的存在会影响用户收听期望音频的效果,进而影响用户的使用体验,因此有必要对产生回音的音频(即上述环境音audio2)进行消除。
35.示例性的,全真在线虚拟场景包括全真在线教育场景,例如老师(第一用户)和学生(第二用户)分别通过登陆各自的账号进入同一个虚拟场景,该虚拟场景里会播放一些环境音(unity控制播放),老师讲课时,麦克风会把老师的声音和环境音都录进去,然后发送给学生的终端,学生的终端再播放,这时学生会听到一次从老师的终端发过来的环境音和一次本地播放的环境音,从而导致回音。
36.针对上述问题,本公开实施例提供一种回音消除方法,旨在消除ios系统基于unity开发的全真在线虚拟场景中产生回音的音频。所述回音消除方法可以由回音消除装置执行,所述回音消除装置可集成于电子设备中,例如智能终端。
37.如图2所示的一种回音消除方法的流程示意图,所述回音消除方法包括如下步骤:
38.步骤210、在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使实时通信rtc应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频。
39.具体的,通过使所述第一音频静音,可达到所述第一音频不通过unity控制播放的效果,也就是在图1所示的音频播放示意图中,从扬声器140处并不能听到第一音频audio2的声音,如此,第一音频audio2也不会被麦克风130录制。
40.第一音频audio2通常是一些有意义的提示音,因此还需保证第一用户110能够听到第一音频audio2的播放,因此还需有进一步的执行步骤,以保证第一音频audio2在第一用户的终端被有声播放。在本公开实施例中,将第一音频转移至rtc应用,由rtc应用控制所述第一音频播放,以保证第一音频在第一用户端被有声播放。具体的,使所述第一音频静音,并使rtc应用获取所述第一音频。
41.步骤220、通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征。
42.通过rtc应用播放的音频,在音频播放时,rtc应用会自动记录所播放音频的音频特征,例如音频的频谱。如此,当通过麦克风录制的音频被rtc应用播放时,rtc应用内部会
将其记录的音频特征与麦克风录制的音频的音频特征进行比对,并将麦克风录制的音频中与其记录的音频特征相同的音频进行过滤,如此保证通过rtc应用播放的音频不包括其内部记录的音频特征的音频。
43.换言之,在通过所述rtc应用控制所述第一音频播放时,即使该第一音频与第一用户的发言同时被麦克风进行了录制,当麦克风录制的音频到达rtc应用时,所述第一音频也会被rtc应用内部的aec(acoustic echo canceller,回音消除)模块过滤掉,如此保证在第二用户的终端只播放一次第一音频,进而保证使第二用户只能听到一次第一音频。
44.步骤230、当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频。
45.其中,语音录制设备典型的是麦克风。通过麦克风录制的第二音频包括第一用户的发言以及同一时间通过扬声器播放的第一音频。通过基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得不包括第一音频的第三音频,从而保证第二用户的终端所获得的音频中不包括第一音频,进而保证第二用户听到的音频中不包括第一音频,最终实现回音消除的目的。
46.步骤240、通过所述rtc应用将所述第三音频发送至所述第二用户的终端。
47.概括性的,本公开实施例提供的回音消除方案是把原本通过unity播放的第一音频静音,并通过rtc应用对所述第一音频进行播放,既保证了在第一用户的终端实现所述第一音频的有声播放,又可实现在第二用户的终端播放的录制音频中不包括所述第一音频,从而保证第二用户仅听到一次所述第一音频,达到回音消除的目的。
48.在ios系统中,使原本通过unity播放的第一音频静音,并通过rtc应用对所述第一音频进行播放,需保证rtc应用能够获取到所述第一音频,因此需要拦截unity使用的ios系统提供的音频单元audio unit获得所述第一音频。
49.示例性的,所述使实时通信rtc应用获取所述第一音频,包括:
50.在通过unity调用ios系统中的音频单元audio unit中第一应用的应用程序编程接口(application programming interface,api)时,拦截所述第一应用的应用程序编程接口,以将所述第一应用的应用程序编程接口中的第一回调函数替换为第二回调函数;
51.通过所述第二回调函数调用所述第一回调函数,以使所述rtc应用获取所述第一音频,其中,所述rtc应用通过所述第二回调函数获取所述第一音频,所述第二回调函数通过所述第一回调函数获取所述第一音频,所述第一回调函数包括所述第一音频的获取逻辑。
52.所述第一应用的应用程序编程接口包括audiounitsetproperty,所述第一回调函数包括playcallback,所述第二回调函数包括newplaycallback。其中,audiounitsetproperty是用来设置播放相关信息的应用程序编程接口,播放相关信息包括音频格式信息以及获取音频数据的回调。第一应用的应用程序编程接口audiounitsetproperty以及所述第一回调函数playcallback均是ios系统提供的库函数。上述过程换言之为:拦截audiounitsetproperty,获取其中的播放相关信息,将获取的播放相关信息中获取音频数据的回调playcallback替换为newplaycallback,通过newplaycallback调用playcallback,playcallback是实际获取音频数据的函数,因为是newplaycallback调用playcallback,因此,newplaycallback则可获得音频数据,如此,rtc
应用便可获取到音频数据,该音频数据在本公开实施例中指上述第一音频。
53.进一步的,所述通过所述rtc应用控制所述第一音频播放之前,所述方法还包括:对所述第一音频进行处理,获得与所述rtc应用的音频格式适配的目标音频。
54.示例性的,将所述第一音频重采样成与所述rtc应用的音频格式适配的目标音频,例如,按照设定采样频率、设定采样格式以及设定通道数量对所述第一音频进行重采样,获得与所述rtc应用的音频格式适配的目标音频。音频格式主要体现在音频数据的采样点数量以及通道数量,而采样点数量由采样频率决定,采样频率越高,则采样点数量越多。设定采样格式体现在每个采样点的位数,例如有16位的、32位的。其中,所述设定采样频率以及所述设定采样格式基于所述第一用户的终端确定,更具体的说是基于第一用户的终端性能确定,例如有的终端只能播放44100hz的采样率、16位采样格式的音频数据。通过充分考虑第一用户的终端性能,可确保目标音频在第一用户的终端被成功播放,并尽量提高目标音频的播放音质。
55.可选的,通过所述第二回调函数将所述第一音频保存至预设缓冲队列;将所述预设缓冲队列中的所述第一音频发送至输入缓冲;将所述输入缓冲中的所述第一音频重采样成与所述rtc应用的音频格式适配的目标音频。所述预设缓冲队列包括audiobufferlist类型的iodata。
56.所述通过所述rtc应用记录所述第一音频的音频特征,包括:通过所述rtc应用将所述目标音频作为所述第一音频的音频特征进行记录。
57.对应的,参考如图3所示的一种回音消除的流程示意图,具体包括:在unity通过audiounitsetproperty准备控制第一音频播放时,通过第一用户终端本地的拦截函数hookaudiounitsetproperty拦截audiounitsetproperty,以获取到音频相关信息,替换其中用于获取音频数据的回调,然后unity控制播放第一音频,在第一用户的终端本地通过替换的获取音频数据的回调获取到第一音频,将第一音频存入输入缓冲,将第一音频重采样成rtc应用播放模块需要的音频格式,将重采样获得的音频放入输出缓冲,然后通过rtc应用控制第一音频播放,同时rtc应用进行录音及回音消除,然后将不包括第一音频的音频发送给第二用户的终端。
58.参照图3所示,所述回音消除方法可以概括为如下步骤:使用fishhook拦截audiounitsetproperty(audiounitsetproperty是用来设置播放相关的信息的api,包括音频格式信息,获取音频数据的回调);unity准备控制播放;audiounitsetproperty拦截触发,获取音频的具体参数信息,替换获取音频数据的回调(newplaycallback);unity播放;替换的newplaycallback触发,调用保留的playcallback,获取到音频数据,将获取到的音频数据保存在audiobufferlist类型的iodata中,将iodata给到待重采样的输入缓冲;将输入缓冲中的音频数据重采样成rtc应用播放需要的音频格式,将转换后的音频数据输出到输出缓冲;将原本iodata中的音频数据(即通过unity控制播放的音频数据)静音;rtc应用控制输出缓冲中的音频数据播放,并将这份数据(指图1中的第一音频audio2)保存作为参考信号;rtc应用录音得到图1中的audio1和audio2,并利用上一步中的参考信号将录音得到的audio2消除,最终只得到audio1,将auido1发送到第二用户的终端。
59.对应的,参考如图4所示的一种回音消除的过程示意图,首先unity准备控制第一音频audio2播放,通过ios系统提供的音频单元audio unit获取第一音频audio2,此时,通
过拦截函数hook对音频单元audio unit进行拦截,使rtc应用获取到所述第一音频audio2,并通过rtc应用控制第一音频audio2播放(具体是rtc应用控制扬声器440开启,并向扬声器440传输音频数据),并记录第一音频audio2的音频特征。在通过rtc应用对第一音频audio2进行控制播放时,麦克风430将第一音频audio2与第一用户410的发言audio1同时进行录制,获得包括第一音频audio2与第一用户410发言audio1的第二音频,并将第二音频(audio1+audio2)通过rtc应用发送至第二用户420的终端进行播放。当第二音频到达rtc应用时,rtc应用内部的aec模块基于记录的第一音频audio2的音频特征对第二音频中的第一音频audio1进行过滤,获得仅包括第一用户410发言audio1的第三音频,最终仅将第一用户410的发言audio1发送至第二用户420的终端进行播放。如此,在第二用户420的终端只播放一次第一音频audio2,第二用户只能听到一次第一音频audio2,达到消除回音的目的。
60.在一种实施方式中,所述第二音频还包括所述第二用户的第四音频,所述第四音频通过所述rtc应用控制播放,即第四音频为第二用户的发言,在通过rtc应用控制播放时,被同时工作的麦克风所录制,使得麦克风录制的音频中包括第一用户的发言audio1、第一音频audio2和第二用户的发言audio3。
61.对应的,所述通过所述rtc应用控制所述第一音频播放,包括:
62.在通过所述rtc应用控制所述第四音频播放之前,将所述第一音频与所述第四音频进行混合,获得混合音频;通过所述rtc应用控制所述混合音频播放。
63.进一步的,所述方法还包括:在通过所述rtc应用记录所述第一音频的音频特征的同时,还通过所述rtc应用记录所述第四音频的音频特征,在对所述第二音频中包括的所述第一音频进行过滤的同时,还基于所述第四音频的音频特征对所述第二音频中包括的所述第四音频进行过滤。具体的,可以参考如图5所示的一种回音消除的过程示意图。
64.本公开实施例提供的回音消除方法,不需要增加额外的设备(例如耳机)即可实现,具体是通过拦截unity使用的audio unit,得到unity控制播放的音频,把unity原本要控制播放的音频静音,然后给到rtc应用来控制播放该音频,当通过麦克风录制的音频到达rtc应用时,利用rtc应用的aec模块消除麦克风录制的音频中所包括的所述unity要控制播放的音频,从而达到消除回音的目的。
65.在上述实施例的基础上,参考如图6所示的一种回音消除装置的结构示意图,该回音消除装置包括:获取模块610、播放模块620、过滤模块630和发送模块640。
66.其中,获取模块610,用于在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使实时通信rtc应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;播放模块620,用于通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征;过滤模块630,用于当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;发送模块640,用于通过所述rtc应用将所述第三音频发送至所述第二用户的终端。
67.获取模块610包括拦截单元,用于在通过unity调用ios系统中的音频单元audio unit中第一应用的应用程序编程接口时,拦截所述第一应用的应用程序编程接口,以将所述应用程序编程接口中的第一回调函数替换为第二回调函数;获取单元,用于通过所述第二回调函数调用所述第一回调函数,以使所述第二回调函数获得通过所述第一回调函数获
取到所述第一音频。
68.可选的,所述第一应用的应用程序编程接口包括audiounitsetproperty,所述第一回调函数包括playcallback,所述第二回调函数包括newplaycallback。
69.可选的,所述装置还包括处理模块,用于在通过所述rtc应用控制所述第一音频播放之前,对所述第一音频进行处理,获得与所述rtc应用的音频格式适配的目标音频。
70.可选的,所述处理模块具体用于:按照设定采样频率对所述第一音频进行重采样,获得与所述rtc应用的音频格式适配的目标音频。
71.可选的,所述装置还包括:保存模块,用于通过所述第二回调函数将所述第一音频保存至预设缓冲队列;传输模块,用于将所述预设缓冲队列中的所述第一音频发送至输入缓冲。对应的,所述重采样模块具体用于:将所述输入缓冲中的所述第一音频重采样成与所述rtc应用的音频格式适配的目标音频。对应的,播放模块620用于通过所述rtc应用将所述目标音频作为所述第一音频的音频特征进行记录。
72.可选的,所述预设缓冲队列包括audiobufferlist类型的iodata。
73.可选的,所述第二音频还包括所述第二用户的第四音频,所述第四音频通过所述rtc应用控制播放。
74.播放模块620具体用于:在通过所述rtc应用控制所述第四音频播放之前,将所述第一音频与所述第四音频进行混合,获得混合音频;通过所述rtc应用控制所述混合音频播放,在通过所述rtc应用记录所述第一音频的音频特征的同时,还通过所述rtc应用记录所述第四音频的音频特征。过滤模块630还用于:在对所述第二音频中包括的所述第一音频进行过滤的同时,还基于所述第四音频的音频特征对所述第二音频中包括的所述第四音频进行过滤。
75.本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
76.本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
77.本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
78.参考图7,现将描述可以作为本公开的服务器或客户端的电子设备400的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
79.如图7所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(rom)402中的计算机程序或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序,来执行各种适当的动作和处理。在ram 403中,还可存储设备400操作所需的各种程序和数
据。计算单元401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
80.电子设备400中的多个部件连接至i/o接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向电子设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元404可以包括但不限于磁盘、光盘。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
81.计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理。例如,在一些实施例中,回音消除方法或识别网络的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom 402和/或通信单元409而被载入和/或安装到电子设备400上。在一些实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行回音消除方法。
82.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
83.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
84.如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
85.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机
具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
86.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
87.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
88.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:


1.一种回音消除方法,其特征在于,应用于第一用户的终端,所述方法包括:在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使实时通信rtc应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征;当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;通过所述rtc应用,将所述第三音频发送至所述第二用户的终端。2.根据权利要求1所述的方法,其特征在于,所述使实时通信rtc应用获取所述第一音频,包括:在通过unity调用ios系统中的音频单元中第一应用的应用程序编程接口时,拦截所述第一应用的应用程序编程接口,以将所述应用程序编程接口中的第一回调函数替换为第二回调函数;通过所述第二回调函数调用所述第一回调函数,以使所述rtc应用获取所述第一音频,其中,所述rtc应用通过所述第二回调函数获取所述第一音频,所述第二回调函数通过所述第一回调函数获取所述第一音频,所述第一回调函数包括所述第一音频的获取逻辑。3.根据权利要求2所述的方法,其特征在于,所述通过所述rtc应用控制所述第一音频播放之前,所述方法还包括:按照设定采样频率、设定采样格式以及设定通道数量对所述第一音频进行重采样,获得与所述rtc应用的音频格式适配的目标音频,其中,所述设定采样频率以及所述设定采样格式基于所述第一用户的终端确定。4.根据权利要求3所述的方法,其特征在于,所述通过所述rtc应用控制所述第一音频播放之前,所述方法还包括:通过所述第二回调函数将所述第一音频保存至预设缓冲队列;将所述预设缓冲队列中的所述第一音频发送至输入缓冲;所述对所述第一音频进行处理,获得与所述rtc应用的音频格式适配的目标音频,包括:将所述输入缓冲中的第一音频重采样成与所述rtc应用的音频格式适配的目标音频。5.根据权利要求3所述的方法,其特征在于,所述通过所述rtc应用记录所述第一音频的音频特征,包括:通过所述rtc应用将所述目标音频作为所述第一音频的音频特征进行记录。6.根据权利要求1-5任一项所述的方法,其特征在于,所述第二音频还包括所述第二用户的第四音频,所述第四音频通过所述rtc应用控制播放;所述通过所述rtc应用控制所述第一音频播放,包括:在通过所述rtc应用控制所述第四音频播放之前,将所述第一音频与所述第四音频进行混合,获得混合音频;通过所述rtc应用控制所述混合音频播放。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在通过所述rtc应用记录所述第一音频的音频特征的同时,还通过所述rtc应用记录所述第四音频的音频特征,在对所述第二音频中包括的所述第一音频进行过滤的同时,还基于所述第四音频的音频特征对所述第二音频中包括的所述第四音频进行过滤。8.一种回音消除装置,其特征在于,包括:获取模块,用于在检测到通过unity控制第一音频播放时,使所述第一音频静音,并使实时通信rtc应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;播放模块,用于通过所述rtc应用控制所述第一音频播放,并通过所述rtc应用记录所述第一音频的音频特征;过滤模块,用于当通过语音录制设备录制的第二音频到达所述rtc应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;发送模块,用于通过所述rtc应用将所述第三音频发送至所述第二用户的终端。9.一种电子设备,其特征在于,所述电子设备包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行权利要求1-7任一项所述的回音消除方法。10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7任一项所述的回音消除方法。

技术总结


本公开涉及一种回音消除方法、装置、电子设备及存储介质。回音消除方法包括:在检测到通过Unity控制第一音频播放时,使所述第一音频静音,并使实时通信RTC应用获取所述第一音频,其中,所述第一音频为在第一用户的终端和第二用户的终端分别播放的音频;通过所述RTC应用控制所述第一音频播放,并通过所述RTC应用记录所述第一音频的音频特征;当通过语音录制设备录制的第二音频到达所述RTC应用时,基于所述第一音频的音频特征对所述第二音频中包括的所述第一音频进行过滤,获得第三音频;通过所述RTC应用将所述第三音频发送至所述第二用户的终端。本公开能够实现在基于Unity开发的全真在线场景中回音的消除。发的全真在线场景中回音的消除。发的全真在线场景中回音的消除。


技术研发人员:

张锐杰

受保护的技术使用者:

北京新唐思创教育科技有限公司

技术研发日:

2022.06.02

技术公布日:

2022/9/2

本文发布于:2023-03-05 19:37:03,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/66712.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   音频   终端   用户
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图