应用声音抑制方法、装置、介质以及设备与流程

文档序号:16542383发布日期:2019-01-08 20:32阅读:325来源:国知局
应用声音抑制方法、装置、介质以及设备与流程

本申请涉及应用开发技术领域,尤其涉及一种应用声音抑制方法、装置、计算机存储介质以及设备。



背景技术:

目前,许多应用都具有音频播放功能和语音通信功能,用户在语音通信时,常会受到应用本地播放音频信号的干扰,影响正常的语音通信。

以游戏应用为例,游戏玩家在游戏中会通过语音通信与其他玩家沟通,以提高沟通效率,但语音通信过程中,玩家输入的语音常常会与游戏应用播放的应用声音如游戏背景音乐,一同被麦克风采集,从而导致语音信噪比下降,严重时使得接收端难以区分出发送端正常人声。

为了减少语音通信过程中,应用本地声音的干扰,目前常用的解决方案是,通过经典的降噪算法抑制麦克风采集的信号中的应用声音,以提高语音信噪比。但由于经典的降噪算法主要是基于噪声是平稳的假设为前提,然而,许多应用中的应用声音通常都不符合这个假设,导致经典的降噪算法的抑制效果不好。



技术实现要素:

本申请实施例提供了一种应用声音抑制方法,使得能够利用回声消除算法消除麦克风采集的环境声音数据中的应用声音的回声,实现应用声音抑制,其抑制效果显著,语音信噪比得到明显提升。基于此,本申请实施例还提供了对应的装置、设备以及计算机存储介质。

有鉴于此,本申请一方面提供了一种应用声音抑制方法,所述方法包括:

获取应用声音数据;

获取麦克风采集的环境声音数据,所述环境声音数据包括语音输入数据以及来自扬声器的播放数据;

根据回声消除算法和所述应用声音数据,对所述环境声音数据进行回声消除处理。

本申请一方面提供一种应用声音抑制装置,所述装置包括:

第一获取模块,用于获取应用声音数据;

第二获取模块,用于获取麦克风采集的环境声音数据,所述环境声音数据包括语音输入数据以及来自扬声器的播放数据;

回声消除模块,用于根据回声消除算法和所述应用声音数据,对所述环境声音数据进行回声消除处理。

本申请一方面提供一种应用声音抑制设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行如上述应用声音抑制方法的步骤。

本申请一方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述应用声音抑制方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例中提供了一种应用声音抑制方法,该方法是基于回声消除算法实现应用声音抑制的,具体地,将麦克风采集的环境声音数据作为待处理信号,获取的应用声音数据作为参考信号,由于参考信号在通过扬声器播放后,会在传播过程中形成回声被麦克风采集,而参考信号及其回声是高度相关的,因此,采用回声消除算法和参考信号对待处理信号进行回声消除处理,可以消除环境声音数据中应用声音的回声,从而实现应用声音抑制。

附图说明

图1为本申请实施例中一种应用声音抑制方法的场景架构图;

图2为本申请实施例中一种应用声音抑制方法的流程图;

图3为本申请实施例中一种对环境声音数据进行回声消除处理的流程图;

图4为本申请实施例中一种应用声音抑制方法的流程图;

图5为本申请实施例中一种对环境声音数据进行回声消除处理的流程图;

图6为本申请实施例中一种对环境声音数据进行回声消除处理的流程图;

图7a为本申请实施例中一种应用声音抑制方法的应用场景示意图;

图7b为本申请实施例中一种游戏界面示意图;

图8为本申请实施例中一种应用声音抑制装置的结构示意图;

图9为本申请实施例中一种应用声音抑制装置的结构示意图;

图10为本申请实施例中一种应用声音抑制装置的结构示意图;

图11为本申请实施例中一种应用声音抑制装置的结构示意图;

图12为本申请实施例中一种应用声音抑制装置的结构示意图;

图13为本申请实施例中一种应用声音抑制装置的结构示意图;

图14为本申请实施例中一种应用声音抑制装置的结构示意图;

图15为本申请实施例中一种应用声音抑制装置的结构示意图;

图16为本申请实施例中一种应用声音抑制设备的结构示意图。

具体实施方式

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

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

针对经典的降噪算法对应用声音抑制效果不显著,语音信噪比无法得到明显提升的技术问题,本申请基于回声消除思想,提出了一种与经典降噪算法完全不同的应用声音抑制方法,具体地,将麦克风采集的环境声音数据作为待处理信号,获取的应用声音数据作为参考信号,由于参考信号经过扬声器播放,在传播过程中形成回声被麦克风采集,该回声可以分为直接回声和间接回声,所谓直接回声是指扬声器的声音未经任何反射直接进入麦克风,这种回声延迟最短。间接回声是指扬声器播放的声音经不同的路径一次或者多次反射后进入麦克风所产生的回声集合。在本申请中主要采用回声消除算法,以应用声音数据作为参考信号,得到该应用声音数据对应的模拟回声信号,进而从环境声音数据中消除该模拟回声信号,以达到抑制应用声音的目的。与通过经典降噪算法实现应用声音抑制的方法相比,该方法对应用声音抑制效果显著,语音信噪比得到明显提升,接收端能够接收到纯净的语音信号,从而能够提升用户体验。

可以理解,本申请提供的应用声音抑制方法可以应用于终端设备。终端设备是具有数据处理能力的计算设备,包括但不限于台式机、笔记本电脑或智能手机。在一些可能的实现方式中,该方法也可以由服务器执行,或者由终端设备与服务器协同执行。

在实际应用中,许多应用对会存在应用声音干扰语音通信的问题,而本申请提供的应用声音抑制方法能够兼容解决任一应用存在的该问题。例如,游戏应用、直播应用、即时通信应用等应用都可以利用本申请提供的应用声音抑制方法以解决语音通信受应用声音干扰的问题。例如,在游戏应用中,利用本申请的应用声音抑制方法可以抑制语音通信过程中被麦克风采集的游戏本地播放的背景音乐,以提升语音信噪比。又例如,在直播场景中,主播在通过直播应用进行直播时,主播的人声和直播应用本地播放的声音一同被麦克风采集,为了使得直播间的观众能够获得清楚地听到主播的人声,可以利用上述应用声音抑制方法,抑制直播应用的应用声音。当然,该应用声音抑制方法还可以应用于其他场景中,在此不再一一列举,为了便于理解本申请的技术方案,下文描述的实施例是以游戏应用场景作为示例进行说明,但其并不限制本申请的实现。

图1为本申请实施例中一种应用声音抑制方法的场景架构图,参见图1,该场景中包括终端设备10和终端设备20,游戏玩家可以通过各自的终端设备,如终端设备10和终端设备20进行游戏语音通信。游戏语音通信过程包括终端设备10向终端设备20发送语音数据,以及终端设备20向终端设备10发送语音数据,其具体实现过程是相同的,本实施例以终端设备10向终端设备20发送语音数据作为示例进行说明。

终端设备10获取游戏背景音乐数据,并获取麦克风采集的环境声音数据,其中,环境声音数据包括语音输入数据以及来自扬声器的播放数据,然后终端设备10根据回声消除算法和游戏背景音乐数据,对环境声音数据进行回声消除处理,并将处理后的数据发送给终端设备20。

其中,终端设备10可以通过服务器将处理后的数据发送给终端设备20,图1中并未示出服务器,并不构成对本申请技术方案的限定。

在该应用场景中,终端设备利用游戏背景音乐数据作为参考信号,根据该参考信号和回声消除算法对麦克风采集的环境声音数据进行回声消除处理,有效抑制了环境声音数据中的背景声音,提高了语音信噪比,提升了游戏语音通信的用户体验。

接下来,将从终端设备的角度,结合附图对本申请实施例提供的应用声音抑制方法进行详细说明。

图2为本申请实施例中一种应用声音抑制方法的流程图,参见图2,该方法包括:

s201:获取应用声音数据。

其中,应用声音数据为应用本地产生的声音数据,其在播放过程会与语音数据一并被麦克风所采集,从而会对语音信号产生干扰,降低语音信噪比。

在本实施例中,获取该应用声音数据的目的是,为后续基于回声消除算法实现应用声音抑制打好数据基础。在具体实现时,用户通过终端设备使用应用进行语音通信时,应用还为用户播放本地产生的声音数据,而声音数据播放过程是将需要播放的数据放入缓存区进而基于依次播放缓存区中的数据,基于此,终端设备可以从缓存区中获取待播放的应用声音数据,以为后续的应用声音抑制打好数据基础。

以游戏应用为例,游戏玩家在进行语音通信时,游戏应用常常还会播放背景音乐,则背景音乐数据就是游戏应用中的应用声音数据,为了降低该背景音乐数据对语音信号的干扰,则在游戏应用播放游戏背景音乐数据时,获取待播放的游戏背景音乐数据,以用于后续的应用声音抑制处理。由于在声音传播过程中应用声音会形成回声而被采集,然而应用声音的回声是难以直接获得的,因此,在本实施例中需要获取待播放的应用声音,将其作为参考信号,以便后续利用回声消除算法从麦克风采集的信号中消除该应用声音。

在游戏应用场景下,终端设备可以通过游戏引擎中的音频插件获取游戏应用的应用声音数据,该应用声音数据具体为游戏背景音乐数据。为了便于理解,以游戏引擎unity为例进行说明。例如,终端设备可以利用unity中的音频插件unitynativeaudiopluginsdk获取背景音乐数据,其中,unitynativeaudiopluginsdk可以通过播放回调函数获取待播放的背景音乐数据。另外,终端设备具体可以响应于麦克风开启指令,获取应用声音数据。如此,可以保证环境声音数据与应用声音数据的同步。

需要说明的是,在游戏应用中,游戏语音往往是基于内嵌于游戏中的实现玩家间语音通信的软件开发工具包(softwaredevelopmentkit,sdk)实现的,为了方便表述,将该软件开发工具包记作游戏语音sdk。基于此,可以由游戏语音sdk监听麦克风是否开启,当游戏语音sdk接收到麦克风开启指令时,可以向游戏引擎发送麦克风开启指令,以通知游戏引擎根据该指令,获取待播放的游戏背景音乐数据。

在具体实现时,终端设备获取到待播放的应用声音之后,将其存储在参考队列中,以便为后续的回声消除处理提供基础数据。以游戏应用为例,终端设备获取到待播放的游戏背景音乐数据之后,将其存储在背景音乐参考队列中,以便在在执行回声消除处理时,直接从背景音乐参考队列中获取该游戏背景音乐数据作为参考信号。

s202:获取麦克风采集的环境声音数据。

其中,所述环境声音数据包括语音输入数据以及来自扬声器的播放数据。语音输入数据是指发送端的用户以语音方式输入的数据,也称近端语音输入数据。播放数据是指发送端的扬声器所播放的声音数据。

在具体实现时,该近端语音输入数据以及来自扬声器的播放数据均会被麦克风采集,因而麦克风采集的环境声音数据实际为近端语音输入数据以及来自扬声器的播放数据形成的混合数据。而终端设备获取麦克风采集的环境声音数据,主要是为了对其进行应用声音抑制处理后再发送给接收端,以提高语音通信双方的语言通信质量。如在游戏应用中,播放数据可以是发送端的扬声器所播放的游戏背景音乐数据。在具体实现时,终端设备可以通过游戏语音sdk,获取麦克风采集的环境声音数据,以便对其进行游戏背景音乐处理后再发送给接收端,以提高游戏玩家双方的语音通信质量。

考虑到在实际应用中,应用声音数据的音频属性可能会与环境声音数据的音频属性不一致,基于此,终端设备还可以将环境声音数据的音频属性作为目标音频属性,按照目标音频属性调整应用声音数据,得到符合目标音频属性的应用声音数据。其中,声音数据的音频属性包括该声音数据的采样率、通道数目等属性中的至少一种。所谓采样率也称采样频率,是指录音设备在一秒钟内采集声音信号的次数,采样率越高,采集的声音数据越接近真实数据;通道数目是指声音数据的通道数,例如单声道的声音数据的通道数为一,立体声的声音数据的通道数可以为二,当然通道数目不限于以上数值。

在游戏应用中,背景音乐数据是通过游戏引擎获取的,环境声音数据是通过游戏语音sdk获取的,游戏引擎和游戏语音sdk在进行数据采集时,所采用的采样率和采样通道数目可能存在不一致的情况,因此,待播放的游戏背景音乐数据的音频属性与环境声音数据的音频属性可能存在不一致的情况。基于此,终端设备还可以对待播放的背景音乐数据的音频属性以及环境声音数据的音频属性进行同步,具体为将环境声音数据的采样率和通道数目作为目标音频属性,按照该目标音频属性调整游戏背景音乐数据的采样率和通道数目。

上述步骤s201和s202的执行顺序并不局限于图2所示,在具体实现时,这两个步骤也可以并行执行,或者先执行202再执行s201,对此本实施例不作具体限定。

s203:根据回声消除算法和所述应用声音数据,对所述环境声音数据进行回声消除处理。

终端设备内置有回声消除算法,在获取到应用声音数据和环境声音数据后,根据回声消除算法模拟应用声音数据的回声数据,从环境声音数据减去该回声数据,从而实现环境声音数据的回声消除处理,如此,环境声音数据中的应用声音数据被抑制,可以得到纯净的语音输入数据。

若如上文所示,对应用声音数据还进行了音频属性同步处理,则s203在具体实现时是根据回声消除算法和符合目标音频属性的应用声音数据,对环境声音数据进行回声消除处理,以得到纯净的语音输入数据。

在本实施例一些可能的实现方式中,为了实现便于通信对方及时获得同通信数据,终端设备可以将经过回声消除处理后的环境声音数据,发送给接收端。具体地,终端设备可以将经过回声消除处理后的环境声音数据,通过服务器发送至接收端,以使接收端接收经过回声消除处理后的环境声音数据。如此,即使接收端用户不在线,也可以在后续上线后,从服务器下载上述回声消除处理后的环境声音数据,实现语音通信。

由上可知,本申请实施例中提供了一种应用声音抑制方法,该方法是基于回声消除算法实现应用声音抑制的,将麦克风采集的环境声音数据作为待处理信号,获取的应用声音数据作为参考信号,由于参考信号在通过扬声器播放后,会在传播过程中形成回声被麦克风采集,而远端参考信号及其回声是高度相关的,因此,采用回声消除算法和远端参考信号对待处理信号进行回声消除处理,可以消除环境声音数据中应用声音的回声,从而实现应用声音抑制。

可以理解,回声消除算法可以通过自适应滤波来完成。以游戏应用为例,通过对待播放的背景音乐数据进行滤波,滤波后的数据可以模拟背景音乐数据在传播过程中形成的回声数据,如此,在环境声音数据中减去滤波后的数据,相当于从环境声音数据中消除背景音乐的回声数据,从而实现回声消除处理。也即,针对图2所示实施例中的s203,本申请还提供了一种基于滤波的回声消除处理的实现方式,下面将结合附图,对s203的一种具体实现方式进行介绍。

图3为本申请实施例中根据回声消除算法和应用声音数据,对所述环境声音数据进行回声消除处理的一种实现方式的流程图,参见图3,包括:

s301:将所述应用声音数据输入第一滤波器,获取所述第一滤波器输出的数据,作为第一模拟回声数据。

由于本实施例中终端设备获取的数据为应用声音数据,而麦克风采集的环境声音数据所混合的数据为应用声音数据在通过扬声器播放,传播至麦克风所形成的回声数据,基于此,终端设备需要对应用声音数据进行回声模拟,得到与该应用声音数据对应的第一模拟回声数据。在具体实现时,终端设备可以将应用声音数据输入第一滤波器,通过第一滤波器对应用声音数据进行滤波,获取第一滤波器输出的数据,作为第一模拟回声数据。

在游戏应用中,应用声音数据为待播放的游戏背景音乐数据,而需要进行回声消除处理的环境声音数据所混合的数据包括播放的游戏背景音乐数据对应的回声数据,为了得到玩家的语音输入数据,需要从环境声音数据中消除播放的游戏背景音乐数据对应的回声数据。

背景音乐数据在经过扬声器播放后,在传播过程中形成回声,然后被麦克风采集,可以理解麦克风采集到的背景音乐数据与最初获取的待播放的背景音乐数据是不同的,若从麦克风采集的环境声音数据中直接减去待播放的背景音乐数据难以得到近端语音输入数据,因此,需要对待播放的背景声音数据进行模拟,得到经扬声器播放后在传播过程中形成的回声数据。其中,回声数据表达的语义与待播放的背景音乐数据所表达的语义是相同的,二者之间存在函数关系,具体可以参见如下公式:

echo=f(fe)(1)

其中,fe表征待播放的背景音乐数据,echo表征背景音乐数据的回声数据,函数f表征回声路径。

在本实施例一些可能的实现方式中,可以通过自适应滤波器原理求解函数f。自适应滤波器是以输入和输出信号的统计特性的估计为依据,采取特定算法自动地调整滤波器系数,使其达到最佳滤波特性的一种算法或装置。以最小均方误差为准则设计的自适应滤波器的系数可以通过维纳-霍甫夫方程解得。在本申请实施例其他可能的实现方式中,还可以通过最小均方算法,实时求解自适应滤波器系数;具体地,该算法利用最陡下降法,根据均方误差的梯度估计,从现时刻滤波器系数向量迭代计算下一时刻的系数向量,收敛后的滤波器系数向量即为最佳滤波器系数。根据求解的最佳滤波器系数可以确定函数f。

在本实施例中,终端设备可以将用于模拟背景音乐数据的回声数据的滤波器作为第一滤波器,第一滤波器的系数可以通过维纳-霍甫夫方程或者最小均方算法求解得到。基于此,终端设备将游戏背景音乐数据输入第一滤波器,获取第一滤波器输出的数据,作为第一模拟回声数据。该第一模拟回声数据能够模拟真实场景中背景音乐数据对应的回声数据。

s302:从所述环境声音数据中消除所述第一模拟回声数据以实现回声消除处理。

由于第一模拟回声数据能够模拟真实环境中应用声音数据的回声数据,因此,从混合了语音输入数据和播放数据的环境声音数据中消除应用声音数据的回声数据,可以实现回声消除处理,提高语音信噪比。

由上可知,本申请实施例提供了一种基于滤波的回声消除处理的实现方式,通过将应用声音数据输入第一滤波器,获取第一滤波器的输出数据,该输出数据能够模拟该游戏背景音乐数据在播放后的传播过程中形成的回声数据,接着从环境声音数据中减去该输出数据能够实现回声消除处理,提高语音信噪比,将处理后的数据发送给接收端时,其接收到的数据是应用声音数据被抑制的语音输入数据,提高了语音信噪比,因而提高了用户体验。

在通信过程中,发送端的麦克风采集到的来自扬声器的播放数据不仅可以包括扬声器播放的应用声音数据,在有些情况下,还可以包括扬声器播放的人声数据。播放的人声数据也存在回声数据,基于此,在进行回声消除处理时,还可以在图2所示示例的基础上,根据人身数据对环境声音数据进行回声消除处理。为了便于理解,下面将结合具体实施例进行详细地说明。

图4为本申请实施例中一种背景声音抑制方法的流程图,参见图4,该方法包括:

s401:获取应用声音数据。

s401的具体实现与s201相同,其具体实现可以参见图2所示实施例相关内容描述,本申请实施例在此不再赘述。

s402:获取人声数据。

在语音通信过程中,发送端的扬声器还可能会播放人声数据,也称远端人声数据,其是与所述发送端通信的对端用户生成的人声数据;则发送端的麦克风采集的环境声音数据中就会融合有该远端人声数据,基于此,为了进一步提高语言信噪比,则还需要从该环境声音数据中消除该远端人声数据,终端设备需要先获取该远端人声数据作为参考信号,后续基于回声消除算法以从环境声音数据中消除该远端人声数据,提高语言信噪比。与应用声音数据类似,终端设备难以直接获得该远端人声数据的回声,因此,需要先获取待播放的远端人声数据,以为后续的回声消除处理打好数据基础。

在具体实现时,终端设备会接收到远端人声数据,并将其放入缓存区,同时将其存储至远端人声参考队列,以便后续直接从该远端人声参考对象中直接获取数据用于回声消除。

s403:获取麦克风采集的环境声音数据。

可以理解的是,在本实施例中麦克风所采集的环境声音数据包括近端语音输入数据以及来自扬声器的播放数据,而该播放数据既包括已播放的应用声音数据,又包括已播放的远端人声数据。

上述步骤s401和s402的执行顺序并不局限于图2所示,在具体实现时,这两个步骤也可以并行执行,或者先执行402再执行s401,对此本实施例不作具体限定。

s404:根据回声消除算法、所述应用声音数据以及所述人声数据,对所述环境声音数据进行回声消除处理。

由于,环境声音数据中不仅包含有经扬声器播放的应用声音数据,还包含有经扬声器播放的远端人声数据,因此,终端设备根据回声消除算法,以应用声音和远端人声数据作为参考信号,能够实现对环境声音数据进行回声消除处理,以得到纯净的语音数据。

由上可知,本申请实施例提供了一种应用声音抑制方法,该方法通过获取应用声音数据,以及人声数据,通过利用回声消除算法模拟播放的应用声音数据对应的回声数据,以及播放的远端人声数据对应的回声数据,并基于回声消除算法将模拟得到的应用声音数据的回声数据以及远端人声数据的回声数据从环境声音数据中消除,如此显著抑制了应用声音数据以及远端人声数据,提升了语音信噪比,接收端能够接收到纯净的语音信号,提升了用户体验。

针对上述图4所示实施例中的s404,本申请实施例还提供了几种具体实现方式,下面结合图5和图6分别对两种实现方式进行说明。

参见图5,图5示出了回声消除处理的一种实现方式,该实现方式包括:

s501:将所述应用声音数据和所述人声数据合成的数据,作为联合数据。

在进行回声消除处理时,终端设备可以将应用声音数据和人声数据进行合成处理,并将合成处理的数据即联合数据,作为一个整体进行回声消除。

以游戏应用为例,终端设备根据待播放的游戏背景音乐数据和远端人声数据合成得到联合数据。具体的,可以将游戏背景音乐数据和远端人声数据两路信号可以按照一定比例合成一路信号,作为一个示例,可以将其按照1:1的比例进行合成,当然在具体实现时,也可以按照其他比例进行合成。

进一步地,应用声音数据和远端人声数据由扬声器播放,然后经过麦克风采集的,而语音输入数据是由麦克风直接采集的,由于信号传播路径不同引起时间延迟,因此在一些可能的实现方式中,终端设备还可以对应用声音数据和人声数据作延迟估计,以便根据延迟估计后的应用声音数据和延迟估计后的人声数据进行回声消除处理。例如在游戏应用中,终端设备可以对待播放的游戏背景音乐数据以及远端人声数据分别进行延迟估计。在具体实现时,终端设备还可以通过将游戏语音sdk接收的麦克风开启信号实时同步给游戏引擎,以实现状态同步,该状态同步操作能够抵消开关麦克风产生的延迟,提高回声消除处理的准确度。

s502:将所述联合数据输入联合滤波器,获取所述联合滤波器输出的数据,作为联合模拟回声数据。

联合滤波器是指用于对联合数据进行回声模拟的滤波器。其中,联合滤波器的系数可以通过上文所述的维纳-霍甫夫方程或者最小均方算法求解得到。

终端设备将联合数据输入联合滤波器,获取所述联合滤波器输出的数据,作为联合模拟回声数据,该联合模拟回声数据能够模拟联合数据在通过扬声器播放后形成的回声数据。

s503:从所述环境声音数据中消除所述联合模拟回声数据以实现回声消除处理。

由于环境声音数据中包括语音输入数据以及来自扬声器播放的数据,而来自扬声器的播放数据包括应用声音数据和远端人声数据,联合模拟回声数据能够模拟联合数据在通过扬声器播放后的信号,也即应用声音数据和远端人声数据在通过扬声器播放后形成的回声数据,因而,终端设备从环境声音数据中减去联合模拟回声数据,相当于消除来自扬声器播放的数据,如此可以实现回声消除处理。

由上可知,本申请实施例提供了一种根据回声消除算法、应用声音数据数据以及人声数据,对环境声音数据进行回声消除处理的实现方式,通过将应用声音数据和人声数据合成得到联合数据,然后通过联合滤波器,模拟联合数据在通过扬声器播放后形成的回声数据,并从环境声音数据减去该模拟数据实现回声消除处理,该方法实现简单,而且能够复用已有的单通道回声消除技术,回声消除成本相对较低。

接下来参见图6,图6示出了回声消除处理的另一种实现方式,该实现方式包括:

s601:将所述应用声音数据输入第一滤波器,获取所述第一滤波器输出的数据,作为第一模拟回声数据。

本步骤的具体实现与s301相同,其具体实现可以参见图3所示实施例相关内容描述,本申请实施例在此不再赘述。

s602:将所述人声数据输入第二滤波器,获取所述第二滤波器输出的数据,作为第二模拟回声数据。

第二滤波器是用于对人声数据进行模拟的滤波器,第二滤波器的系数可以通过维纳-霍甫夫方程或者最小均方算法求解得到。

终端设备将人声输入数据输入该第二滤波器,获取第二滤波器输出的数据,作为第二模拟回声数据。该第二模拟回声数据能够模拟远端人声数据在通过扬声器播放后形成的回声数据。

上述步骤s601和s602的执行顺序并不局限于图6所示,在具体实现时,这两个步骤也可以并行执行,或者先执行s602再执行s601,对此本实施例不作具体限定。。

s603:从所述环境声音数据中减去所述第一模拟回声数据和所述第二模拟回声数据以实现回声消除处理。

由于环境声音数据中包括语音输入数据以及来自扬声器播放的数据,其中,来自扬声器的播放数据包括播放的应用声音数据和播放的远端人声数据,而第一模拟回声数据能够模拟播放的应用数据对应的回声数据,第二模拟回声数据能够模拟播放的远端人声数据对应的回声数据,终端设备从环境声音数据中减去第一模拟回声数据和第二模拟回声数据,相当于从环境声音数据中消除播放的背景音乐数据的回声数据和播放的远端人声数据的回声数据,得到语音输入数据,如此可以实现回声消除处理。

由上可知,本申请实施例提供了一种根据回声消除算法、应用声音数据以及远端人声数据,对环境声音数据进行回声消除处理的实现方式,通过将应用声音数据和远端人声数据分别输入各自对应的滤波器,模拟其通过扬声器播放后形成的回声数据,然后从环境声音数据中减去应用声音数据的模拟回声数据以及远端人声数据的模拟回声数据,从而实现回声消除处理。在该实现方式中,每路通道滤波器互相独立,能各自逼近最佳的滤波器值,因此,能够取得更好的回声抵消性能。

可以理解,本申请实施例提供的上述应用声音抑制方法能够被封装成应用程序编程接口,作为应用声音抑制使能接口,该应用声音抑制使能接口用于为应用提供服务接口,以便应用通过调用接口的方式实现应用声音的抑制。在具体实现时,终端设备可以为应用设置可视化的控件或功能模块,以便触发该控件或功能模块,调用该应用声音抑制使能接口实现应用声音抑制方法。

为了更清楚地理解本申请提供的应用声音抑制方法的具体实现,下文将结合图7a所示的游戏应用场景为例进行详细说明。图7a所示场景为,游戏应用玩家双方在进行语音通信时,发送端利用本申请提供的应用声音抑制方法抑制掉游戏背景音乐数据和远端人声数据,从而提高发送端的语音信噪比,以使接收端接收到纯净的语音数据,提高双方通信质量。

在图7中,发送端内置有游戏引擎unity和游戏语音sdk,游戏引擎中集成有音频引擎fmod,unity可以通过fmod从背景音源数据库中获取游戏背景音乐数据,以通过扬声器播放游戏背景音乐。游戏语音sdk则可以获取麦克风采集的环境声音数据,具体的,该环境声音数据包括游戏背景音乐数据、发送端的语音输入数据以及接收端的人声数据即远端人声数据。而发送端在向接收端发送该环境声音数据时,需要先利用上述应用声音抑制方法抑制掉游戏背景音乐数据和远端人声数据,得到纯净的语音输入数据,以提高游戏语音通信质量。

接下来,参见图7b所示的游戏界面示意图,结合用户交互界面对上述应用声音抑制方法的具体实现进行说明,如图7b所示,游戏玩家可以通过游戏界面上的语音输入控件和语音收听控件实现语音通信,具体地,游戏玩家通过触控语音输入控件触发语音输入操作,终端设备响应于该语音输入操作,发出麦克风开启指令,语音sdk接收到麦克风开启指令,将麦克风开启信号同步给游戏引擎unity,游戏引擎unity调用音频插件unitynativeaudiopluginsdk,获取待播放的背景音乐,并将其存储到背景音乐参考队列,同时获取远端人声数据,存储到远端人声参考队列,游戏语音sdk获取麦克风采集信号,麦克风采集的环境声音信号混合了背景音乐回声、远端人声回声以及近端玩家语音输入数据等3路信号,然后游戏语音sdk可以通过双通道回声消除算法,将远端人声参考队列和背景音乐参考队列中的数据分别输入对应的滤波器,以模拟远端人声回声和背景音乐回声,并从麦克风采集的环境声音信号中消除模拟的远端人声回声和背景音乐回声,得到双通道回声消除输出信号,进而发送端将该双通道回声消除输出信号发送给接收端,以实现语音通信,其中,接收端可以为一个,也可以为多个,例如可以为游戏玩家战队中的其余玩家的终端设备。

以上为本申请实施例提供的一种应用声音抑制方法的一些具体实现方式,基于此,本申请实施例还提供了一种应用声音抑制装置。接下来将从功能模块化的角度对本申请实施例提供的应用声音抑制装置进行介绍。

图8为本申请实施例中应用声音抑制装置的结构示意图,参见图8,该装置800包括:

第一获取模块810,用于获取应用声音数据;

第二获取模块820,用于获取麦克风采集的环境声音数据,所述环境声音数据包括语音输入数据以及来自扬声器的播放数据;

回声消除模块830,用于根据回声消除算法和所述应用声音数据,对所述环境声音数据进行回声消除处理。

可选的,所述第一获取模块810具体用于:

响应于麦克风开启指令,获取应用声音数据。

可选的,参见图9,图9为本申请实施例中应用声音抑制装置的一个结构示意图,在图8所示结构的基础上,所述回声消除模块830包括:

第一输入子模块831,用于将所述应用声音数据输入第一滤波器,获取所述第一滤波器输出的数据,作为第一模拟回声数据;

第一消除子模块832,用于从所述环境声音数据中消除所述第一模拟回声数据以实现回声消除处理。

可选的,参见图10,图10为本申请实施例中应用声音抑制装置的一个结构示意图,在图8所示结构的基础上,所述装置还包括第三获取模块840,具体用于:

获取人声数据;

则回声消除模块830具体用于:

根据回声消除算法、所述应用声音数据以及所述人声数据,对所述环境声音数据进行回声消除处理。

可选的,参见图11,图11为本申请实施例中应用声音抑制装置的一个结构示意图,在图10所示结构的基础上,所述回声消除模块830包括:

合成子模块833,用于将所述应用声音数据和所述远端人声数据合成的数据,作为联合数据;

第二输入子模块834,用于将所述联合数据输入联合滤波器,获取所述联合滤波器输出的数据,作为联合模拟回声数据;

第二消除子模块835,用于从所述环境声音数据中消除所述联合模拟回声数据以实现回声消除处理。

可选的,参见图12,图12为本申请实施例中应用声音抑制装置的一个结构示意图,在图10所示结构的基础上,所述回声消除模块830包括:

第三输入子模块836,用于将所述应用声音数据输入第一滤波器,获取所述第一滤波器输出的数据,作为第一模拟回声数据;

第四输入子模块837,用于将所述人声数据输入第二滤波器,获取所述第二滤波器输出的数据,作为第二模拟回声数据;

第三消除子模块838,用于从所述环境声音数据中消除所述第一模拟回声数据和所述第二模拟回声数据以实现回声消除处理。

可选的,参见图13,图13为本申请实施例中应用声音抑制装置的一个结构示意图,在图10所示结构的基础上,所述装置还包括延迟估计模块850,具体用于:

在对所述环境声音数据进行回声消除处理之前,对所述应用声音数据和所述人声数据作延迟估计,以便根据延迟估计后的应用声音数据和延迟估计后的人声数据进行回声消除处理。

可选的,参见图14,图14为本申请实施例中应用声音抑制装置的一个结构示意图,在图8所示结构的基础上,所述装置还包括调整模块860,具体用于:

若所述应用声音数据的音频属性与所述环境声音数据的音频属性不一致时,则将所述环境声音数据的音频属性作为目标音频属性,按照所述目标音频属性调整所述应用声音数据,得到符合目标音频属性的应用声音数据,所述音频属性包括采样率和/或通道数目;

则回声消除模块830具体用于:

根据回声消除算法和所述符合目标音频属性的应用声音数据,对所述环境声音数据进行回声消除处理。

可选的,第一获取模块810具体用于:

通过游戏引擎中的音频插件获取游戏应用的应用声音数据,所述应用声音数据为游戏背景音乐数据。

可选的,参见图15,图15为本申请实施例中应用声音抑制装置的一个结构示意图,在图8所示结构的基础上,所述装置还包括发送模块870,具体用于:

将经过回声消除处理后的环境声音数据,通过应用服务器发送至接收端,以使所述接收端接收所述经过回声消除处理后的环境声音数据。

由上可知,本申请实施例提供了一种应用声音抑制装置,该装置通过回声消除算法实现应用声音抑制,具体地,将麦克风采集的环境声音数据作为待处理信号,获取的应用声音数据作为参考信号,由于参考信号在通过扬声器播放后,会在传播过程中形成回声被麦克风采集,而参考信号及其回声是高度相关的,因此,采用回声消除算法和参考信号对待处理信号进行回声消除处理,可以消除环境声音数据中应用声音的回声,从而实现应用声音抑制。

图8至图15所示实施例从功能模块化的角度,对本申请实施例提供的应用声音抑制装置进行了介绍,本申请实施例还提供了一种应用声音抑制设备,接下来将从硬件实体化的角度对本申请实施例提供的应用声音抑制设备进行介绍。

本申请实施例提供了一种应用声音抑制设备,该应用声音抑制设备可以是终端设备,如图16所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:personaldigitalassistant,英文缩写:pda)、销售终端(英文全称:pointofsales,英文缩写:pos)、车载电脑等任意终端设备,以终端为手机为例:

图16示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图16,手机包括:射频(英文全称:radiofrequency,英文缩写:rf)电路1610、存储器1620、输入单元1630、显示单元1640、传感器1650、音频电路1660、无线保真(英文全称:wirelessfidelity,英文缩写:wifi)模块1670、处理器1680、以及电源1690等部件。本领域技术人员可以理解,图16中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图16对手机的各个构成部件进行具体的介绍:

rf电路1610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1680处理;另外,将设计上行的数据发送给基站。通常,rf电路1610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:lownoiseamplifier,英文缩写:lna)、双工器等。此外,rf电路1610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:globalsystemofmobilecommunication,英文缩写:gsm)、通用分组无线服务(英文全称:generalpacketradioservice,gprs)、码分多址(英文全称:codedivisionmultipleaccess,英文缩写:cdma)、宽带码分多址(英文全称:widebandcodedivisionmultipleaccess,英文缩写:wcdma)、长期演进(英文全称:longtermevolution,英文缩写:lte)、电子邮件、短消息服务(英文全称:shortmessagingservice,sms)等。

存储器1620可用于存储软件程序以及模块,处理器1680通过运行存储在存储器1620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1630可包括触控面板1631以及其他输入设备1632。触控面板1631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1631上或在触控面板1631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1680,并能接收处理器1680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1631。除了触控面板1631,输入单元1630还可以包括其他输入设备1632。具体地,其他输入设备1632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1640可包括显示面板1641,可选的,可以采用液晶显示器(英文全称:liquidcrystaldisplay,英文缩写:lcd)、有机发光二极管(英文全称:organiclight-emittingdiode,英文缩写:oled)等形式来配置显示面板1641。进一步的,触控面板1631可覆盖显示面板1641,当触控面板1631检测到在其上或附近的触摸操作后,传送给处理器1680以确定触摸事件的类型,随后处理器1680根据触摸事件的类型在显示面板1641上提供相应的视觉输出。虽然在图16中,触控面板1631与显示面板1641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1631与显示面板1641集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1660、扬声器1661,传声器1662可提供用户与手机之间的音频接口。音频电路1660可将接收到的音频数据转换后的电信号,传输到扬声器1661,由扬声器1661转换为声音信号输出;另一方面,传声器1662将收集的声音信号转换为电信号,由音频电路1660接收后转换为音频数据,再将音频数据输出处理器1680处理后,经rf电路1610以发送给比如另一手机,或者将音频数据输出至存储器1620以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块1670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图16示出了wifi模块1670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1620内的软件程序和/或模块,以及调用存储在存储器1620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1680可包括一个或多个处理单元;优选的,处理器1680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1680中。

手机还包括给各个部件供电的电源1690(比如电池),优选的,电源可以通过电源管理系统与处理器1680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本申请实施例中,该终端所包括的处理器1680还具有以下功能:

获取应用声音数据;

获取麦克风采集的环境声音数据,所述环境声音数据包括语音输入数据以及来自扬声器的播放数据;

根据回声消除算法和所述应用声音数据,对所述环境声音数据进行回声消除处理。

可选的,处理器1680还可以用于执行本申请实施例中一种应用声音抑制方法的任意一种实现方式的步骤。

本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种应用声音抑制方法中的任意一种实施方式。

本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种应用声音抑制方法中的任意一种实施方式。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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