数据滤波方法、多人语音通话方法以及相关设备与流程

文档序号:11202385阅读:506来源:国知局
数据滤波方法、多人语音通话方法以及相关设备与流程

本发明涉及计算机技术领域,尤其涉及一种数据滤波方法、多人语音通话方法以及相关设备。



背景技术:

目前的fir(finiteimpulseresponse,有限冲激响应)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,fir滤波器在通信、图像处理、模式识别等领域都有着广泛的应用

目前的fir滤波器在滤波过程中,通常有两种处理方式:直接线性卷积和快速卷积。直接线性卷积的计算结构是点入点出,无须组帧,因此不会带来组帧所造成的时延,但是当fir滤波器中的单位冲激响应的长度过长时,直接线性卷积将会带来巨大的运算量。虽然采用快速卷积可以减少许多运算量,但是在快速卷积的过程中需要进行组帧,即需要等到输入数据的长度与单位冲激响应的长度相近似的时候才能开始运算,因此,当单位冲激响应的长度过长时,组帧所造成的时延将会很大,导致快速卷积无法在有实时性要求的场合进行使用。



技术实现要素:

本发明实施例提供一种数据滤波方法、多人语音通话方法以及相关设备,可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。

本发明实施例的第一方面提供了一种数据滤波方法,包括:

获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;

若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

其中,所述若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果,包括:

若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述第一单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;

将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果。

其中,所述组帧延时长度大于或等于32。

其中,所述输入序列为第一通话设备发送的第一原始通话数据,所述输出结果为所述第一滤波器输出的第一声道通话数据;

则所述方法还包括:

若同步输入至第二滤波器的所述输入序列的长度达到所述组帧延时长度,则对所述输入序列和所述第二滤波器的第二单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的第二声道通话数据;所述第二单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第二单位冲激响应为长序列;

对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放。

其中,所述对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放,包括:

若在接收到所述第一原始通话数据的同时,还接收到第二通话设备发送的第二原始通话数据,则将所述输入序列对应的第一声道通话数据与所述第二通话设备对应的第一声道通话数据进行混音,得到第一声道混音数据;所述第二通话设备对应的第一声道通话数据是由第三滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

将所述输入序列对应的第二声道通话数据与所述第二通话设备对应的第二声道通话数据进行混音,得到第二声道混音数据;所述第二通话设备对应的第二声道通话数据是由第四滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

对所述第一声道混音数据和所述第二声道混音数据进行播放。

本发明实施例的第二方面提供了一种多人语音通话方法,包括:

获取至少两个通话设备发送的原始通话数据,将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

对所述第一声道混音数据和所述第二声道混音数据进行播放。

其中,所述通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据,包括:

累计输入到所述基于第一声道的滤波器的原始通话数据所构成的输入序列的长度;

若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第一声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第一声道通话数据。

其中,所述通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据,包括:

累计已输入到所述基于第二声道的滤波器的原始通话数据所构成的输入序列的长度;

若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第二声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第二声道通话数据。

其中,所述组帧延时长度大于或等于32。

本发明实施例的第三方面提供了一种数据滤波装置,包括:

累计模块,用于获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;

第一滤波模块,用于若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

其中,所述第一滤波模块包括:

分段单元,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述第一单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;

快速卷积单元,用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述快速卷积单元,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果。

其中,所述组帧延时长度大于或等于32。

其中,所述输入序列为第一通话设备发送的第一原始通话数据,所述输出结果为所述第一滤波器输出的第一声道通话数据;

则所述装置还包括:

第二滤波模块,用于若同步输入至第二滤波器的所述输入序列的长度达到所述组帧延时长度,则对所述输入序列和所述第二滤波器的第二单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的第二声道通话数据;所述第二单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第二单位冲激响应为长序列;

播放模块,用于对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放。

其中,所述播放模块包括:

第一混音单元,用于若在接收到所述第一原始通话数据的同时,还接收到第二通话设备发送的第二原始通话数据,则将所述输入序列对应的第一声道通话数据与所述第二通话设备对应的第一声道通话数据进行混音,得到第一声道混音数据;所述第二通话设备对应的第一声道通话数据是由第三滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

第二混音单元,用于将所述输入序列对应的第二声道通话数据与所述第二通话设备对应的第二声道通话数据进行混音,得到第二声道混音数据;所述第二通话设备对应的第二声道通话数据是由第四滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

混音播放单元,用于对所述第一声道混音数据和所述第二声道混音数据进行播放。

本发明实施例的第四方面提供了一种多人语音通话装置,包括:

获取模块,用于获取至少两个通话设备发送的原始通话数据,将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

第一滤波模块,用于通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

第二滤波模块,用于通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

混音模块,用于将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

播放模块,用于对所述第一声道混音数据和所述第二声道混音数据进行播放。

其中,所述第一滤波模块包括:

第一累计单元,用于累计输入到所述基于第一声道的滤波器的原始通话数据所构成的输入序列的长度;

第一卷积单元,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第一声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

所述第一卷积单元,还用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述第一卷积单元,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第一声道通话数据。

其中,所述第二滤波模块包括:

第二累计单元,用于累计已输入到所述基于第二声道的滤波器的原始通话数据所构成的输入序列的长度;

第二卷积单元,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第二声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

所述第二卷积单元,还用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述第二卷积单元,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第二声道通话数据。

其中,所述组帧延时长度大于或等于32。

本发明实施例的第五方面提供了一种数据滤波装置,包括:处理器、存储器以及网络接口;

所述处理器分别与存储器、网络接口相连,其中,所述网络接口用于接收外部设备发送的输入样点,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行以下操作:

获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;

若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

本发明实施例的第六方面提供了一种多人语音通话装置,包括:处理器、存储器以及网络接口;

所述处理器分别与存储器、网络接口相连,其中,所述网络接口用于获取至少两个通话设备发送的原始通话数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行以下操作:

将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

对所述第一声道混音数据和所述第二声道混音数据进行播放。

本发明实施例的第七方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述处理器执行所述程序指令时执行本发明实施例中第一方面中的方法。

本发明实施例的第八方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述处理器执行所述程序指令时执行本发明实施例中第二方面中的方法。

本发明实施例通过获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。由于输入序列的长度为所述组帧延时长度,所以无论所述第一单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以所述第一单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。

附图说明

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

图1是本发明实施例提供的一种数据滤波方法的流程示意图;

图1a是本发明实施例提供的一种滤波处理过程示意图;

图2是本发明实施例提供的另一种数据滤波方法的流程示意图;

图2a是本发明实施例提供的一种多人语音通话的网络架构示意图;

图3是本发明实施例提供的一种多人语音通话方法的流程示意图;

图3a是本发明实施例提供的另一种多人语音通话的网络架构示意图;

图4是本发明实施例提供的一种数据滤波装置的结构示意图;

图5是本发明实施例提供的一种播放模块的结构示意图;

图6是本发明实施例提供的一种多人语音通话装置的结构示意图;

图7是本发明实施例提供的一种数据滤波装置的结构示意图;

图8是本发明实施例提供的另一种多人语音通话装置的结构示意图。

具体实施方式

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

请参见图1,是本发明实施例提供的一种数据滤波方法的流程示意图,所述方法可以包括:

s101,获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;

具体的,获取输入到第一滤波器的输入样点,所述输入样点可以为音频数据或图像数据或视频数据等多媒体数据中的最小单元数据。例如,若有一段持续输入的音频数据(即第一滤波器可以持续接收到多个输入样点),则可以累计由多个输入样点所构成的输入序列的长度。

s102,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

具体的,在s101之前,可以预先设置一个组帧延时长度t;其中,所述第一滤波器的第一单位冲激响应可以为超长的h(n),h(n)的长度为m,且m>t。

其中,在所述第一滤波器接收到输入样点之前,可以先默认输入序列x(n)为无限长,即x(n)的长度l>m,此时,可以对x(n)进行分段,得到多段输入序列xi(n)(i=0,1,…),其中,每段输入序列xi(n)的长度都为t。其中,

输入序列

此后,若开始有输入样点输入至所述第一滤波器,则通过多个输入样点可以构成每段输入序列xi(n),即若多个输入样点所累计的长度达到一段输入序列xi(n)的长度,则可以通过所述第一滤波器对该段输入序列xi(n)进行滤波处理,即计算卷积xi(n)*h(n)。即每输入一段输入序列xi(n)就进行一次滤波处理。例如,首先输入一段输入序列x0(n),并通过所述第一滤波器对x0(n)进行滤波处理后,再等待下一段输入序列x1(n)的输入,输入序列x1(n)输入到所述第一滤波器后,再对x1(n)进行滤波处理,以此类推,即每一次进行滤波处理的输入序列的长度都为t。

进一步的,上述的滤波处理的过程可以为:对所述输入序列xi(n)和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算;其中,可以将xi(n)视为所述第一单位冲激响应h(n)的短序列,h(n)视为xi(n)的长序列,进而可以根据所述t对所述h(n)进行分段,得到多个单位冲激响应分段hj(n)(j=0,1,…);其中,

所述单位冲激响应分段各单位冲激响应分段hj(n)的长度与所述t之间的差值均处于预设的差值区间内,即hj(n)的长度与所述t十分相近,即hj(n)的长度可以大于t,或hj(n)的长度可以小于t,或hj(n)的长度可以等于t。例如,hj(n)的长度±a=t,a可以为所述预设的差值区间内的任意数值。进而将所述xi(n)分别与所述各单位冲激响应分段hj(n)进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果,并将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果。例如,若单位冲激响应分段有5个,即j=4,则所述各单位冲激响应分段分别对应的线性卷积结果包括:xi(n)*h0(n)、xi(n)*h1(n)、xi(n)*h2(n)、xi(n)*h3(n)、xi(n)*h4(n);最后将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果,即所述输出结果为xi(n)*h(n)=xi(n)*h0(n)+xi(n)*h1(n)+xi(n)*h2(n)+xi(n)*h3(n)+xi(n)*h4(n)。得到xi(n)对应的所述输出结果后,可以进一步等待下一个xi+1(n)输入到所述第一滤波器,当新输入的多个输入样点可以构成输入序列xi+1(n)(即新输入的多个输入样点的长度也达到所述t)时,则可以对输入序列xi+1(n)执行s102的步骤。其中,对无限长的输入序列x(n)进行分段以及对xi(n)*h(n)进行基于长短序列的分段快速卷积的整个过程,可以统称为两级分段的快速卷积。其中,由于h(n)的长度m并不一定是t的整数倍,所以最后一段hj(n)可能不与t相近似。例如,假设对于已划分为5段的hj(n)中的h4(n)的长度小于t,且与t的差值超出预设的差值区间,虽然h4(n)的长度不与t相近似,但是由于t是远小于m,所以h4(n)和xi(n)进行快速卷积的运算量依然处于可接受范围内,因此,依然可以继续对h4(n)和xi(n)进行快速卷积。

进一步的,请一并参见图1a,是本发明实施例提供的一种滤波处理过程示意图。图1a中的xi(n)即为输入到第一滤波器中的输入序列,h(n)为所述第一滤波器的第一单位冲激响应,每段输入序列xi(n)的长度均为组帧延时长度t,在图1a中,h(n)被划分为j段,即h0(n)、h1(n)、h2(n)、…、hj(n),h0(n)至hj(n)中的每个单位冲激响应分段的长度均与t相近似,因此,xi(n)可以分别与h0(n)、h1(n)、h2(n)、…、hj(n)进行快速卷积计算,得到h0(n)、h1(n)、h2(n)、…、hj(n)分别对应的线性卷积结果,再将h0(n)、h1(n)、h2(n)、…、hj(n)分别对应的线性卷积结果进行相加,即可得到xi(n)对应的输出结果。由于每计算一段输入序列xi(n),所需要的组帧延时均为t对应的组帧延时,所以为了减少组帧延时,则可以减小t,即缩短输入序列xi(n)的长度。

由于在组帧时,无需要求所述输入序列xi(n)的长度与所述第一单位冲激响应的长度相近,只需将输入到第一滤波器的输入样点组帧至所述t长度,即可构成所述输入序列xi(n)(xi(n)的长度为t),进而可以开始对输入序列xi(n)进行滤波处理,所以无论所述第一单位冲激响应的长度有多长,组帧所造成的延时都始终为所述t对应的组帧延时。若所述t设置的越大,则对xi(n)和hj(n)进行直接线性卷积的运算量,与对xi(n)和hj(n)进行快速卷积的运算量的比值就越大,即t越大,所述第一滤波器的运算量则越优化,但t越大也会使组帧所造成的延时越大。因此,可以根据实际应用场景灵活调整所述t,若对实时性要求较高,则可以将所述t设置小一些,以降低组帧所造成的延时;若设备的硬件能力较低,则可以将所述t设置大一些,以减少运算量。通过设置所述t,可以对组帧所造成的延时和运算量进行均衡,以避免因进行直接线性卷积而造成巨大的运算量,也避免了因直接对所述第一单位冲激响应进行快速卷积而造成过高的组帧延时。其中,若所述t小于32,则对xi(n)和hj(n)进行直接线性卷积的运算量<对xi(n)和hj(n)进行快速卷积的运算量,所以为了保证在使用快速卷积时能够降低运算量,则所述t需要大于或等于32。即所述t可以在大于或等于32的范围内取值。在设置好所述t后,若要继续降低组帧所造成的延时,则可以降低所述t的值;若要降低运算量,则可以提高所述t的值。总之,通过设置所述t,可以使组帧所造成的延时和运算量都处于可接受的范围内,即对组帧所造成的延时和运算量进行均衡。

以图1a中的输入序列x0(n)和单位冲激响应分段h0(n)为例,x0(n)的长度为组帧延时长度t(即x0(n)为t个输入样点的序列),h0(n)的长度为m=m/j(t和m相近似,m为第一单位冲激响应的长度,j为单位冲激响应分段的数量),则x0(n)和h0(n)进行快速卷积的具体过程可以包括以下4步:第一步,先将x0(n)和h0(n)进行补零,使得下式成立:

第二步,计算这两个补零后的序列x0(n)和h0(n)的离散傅里叶变换:

x(k)=dft[x0(n)],h(k)=dft[h0(n)];

第三步,计算两个离散傅里叶变化的乘积y(k)=x(k)h(k);

第四步,求解反傅里叶变换得到x0(n)和h0(n)的快速卷积结果y(n)=idft[y(k)];

其中,当n为2的幂时,上述的dft和idft可以换成快速离散傅里叶变换fft,以进一步提高计算效率。其中,上述的dft和idft共需要次乘法,上述的第三步需要n次乘法,所以快速卷积算法的乘法次数

其中,对任意两个序列x1(n)和x2(n)进行直接线性卷积的公式可以为:

从直接线性卷积的公式中可以看出,设x1(n)为n1点,x2(n)为n2点,“*”为卷积号,则输出y(n)为n1+n2-1点。从这个式子可以看出,当采用直接线性卷积来滤波时,即式中x1(n)为输入序列,x2(n)为第一滤波器的单位冲激响应h(n),滤波过程是点入点出,无须组帧,故此不会带来组帧造成的延时,但是直接线性卷积需要进行n1n2次乘法才能算出结果,当滤波器阶数n2很大(即单位冲激响应h(n)的点数超长)时,计算量是相当巨大的。由此可见,对x0(n)和h0(n)进行直接线性卷积的乘法次数md=tm。由于m和t相近似,所以n≈2m,因此,可计算x0(n)和h0(n)的快速卷积和直接线性卷积之间的运算量比值由此可见,当m≥32时,k≥1.6,即m与t都需要大于或等于32时才能保证快速卷积比直接线性卷积的运算量更少,即32阶以上的快速卷积算法才呈现优势。而且t越大,k值也越大,即快速卷积算法呈现的优势越明显,如当t=4096时,k=99.9。由于t越大,组帧所造成的时延也越大,所以在设置t的大小时,需要根据实际应用场景对运算量和组帧延时进行均衡。

其中,若使用长度为l的x(n)与长度为m的第一单位冲激响应h(n)进行快速卷积,则对应的运算量若使用长度为l的x(n)与长度为m的第一单位冲激响应h(n)进行直接线性卷积,则对应的运算量md=ml;若l远大于m,则n=l+m-1≈l,此时的快速卷积和直接线性卷积之间的运算量比值其中,由于l远大于m,所以k小于1,即此处的快速卷积的运算量大于直接线性卷积的运算量,因此,从运算量角度而言,并不适合对长序列和短序列直接进行快速卷积。为了避免快速卷积的运算量大于直接线性卷积的运算量,需要将长序列分段成和短序列长度相近的段,然后卷积,利用卷积的性质:卷积的和等于和的卷积,将每小段卷积后的结果相加,得到最终的卷积结果(即输出结果)。若将长度为l的x(n)视为长序列,h(n)视为短序列,则分段卷积过程如下:

其中,将x(n)分成和h(n)长度相等或者相近的段,每段xi(n)的长度都与m相等或者相近,即因此,x(n)对应的卷积结果y(n)可以为:此时每一个xi(n)*h(n)都可以使用快速卷积的方法来运算,需要注意的是,每段的运算结果都是n点,但l+m-1后的点都是0,而每段和每段之间将有m-1个值重叠,在计算y(n)的过程中,这些重叠的点将被相加。其中,组帧延时由长度为m的xi(n)决定,即组帧延时为组帧m个点所产生的延时,若m的值很大(即h(n)很长),这时就会产生问题:如果不采用快速卷积,那么运算量巨大,而采用快速卷积时组帧延时又会过大。因此,本发明实施例通过先将长度为l的x(n)分段为每段长度为t的输入序列xi(n)(t小于m),再将长度为t的xi(n)视为短序列,h(n)视为长序列,然后对xi(n)和h(n)进行上述的基于长短序列的分段快速卷积处理,不仅可以降低运算量,还可以将组帧延时控制为组帧t个点所产生的延时,以降低组帧延时。

其中,快速卷积的实现原理可以具体为:假设任意两个序列为x1(n)和x2(n),则x1(n)和x2(n)进行圆周卷积的公式可以为:

圆周卷积是由他们的周期延伸所来定义的,周期延伸是把原本的函数平移某个周期t的整数倍后再全部加起来所产生的新函数;圆周卷积要求两个序列的长度相同,且输入和输出的长度是相同的。

其中,x1((n-m))n只在m=0到n-1的范围内取值(即以n的圆周移位),rn(n)是矩形窗口函数,即0到n-i的函数值为1,其余函数值为0。当x1(n)为l点,x2(n)为m点,则这两个序列的线性卷积和圆周卷积存在一定关系:即当两个序列做圆周卷积的长度满足公式n≥l+m-1时,这两个序列的圆周卷积和线性卷积结果相同,否则发生混叠两者不同。由于圆周卷积具有快速计算定理,即圆周卷积定理:两个序列的圆周卷积是这两个序列的离散傅里叶变换的积的反离散傅里叶变换。例如,若x1(n)和x2(n)做圆周卷积的长度n均满足n≥l+m-1,则可以分别取离散傅里叶变换(discretefouriertransform,dft):dft[x1(n)]=x1(k),dft[x2(n)]=x2(k);令y(k)=x1(k)x2(k),则即两个序列的圆周卷积是这两个序列的离散傅里叶变换的积的反离散傅里叶变换。因此,离散信号的圆周卷积可以经由圆周卷积定理使用快速傅立叶变换而有效率的计算。因此,若原本的线性卷积能转换成圆周卷积来计算,会远比直接计算更快速。由于长度l和长度m的两个有限长度离散信号x1(n)和x2(n),做卷积之后会成为长度l+m-1的信号,因此只要把原来的x1(n)和x2(n)补上适当数目的零成为n点信号,其中n≥l+m-1,则它们的圆周卷积就与线性卷积相等,因此,这种圆周卷积的过程可以称为快速卷积。

可选的,在得到多个单位冲激响应分段hj(n)后(假设当前的输入序列为x0(n),多个单位冲激响应分段hj(n)包括h0(n)、h1(n)、h2(n)),可以进一步对x0(n)进行分段,得到多个输入序列分段x0k(n)(k=0,1,…),若所述多个输入序列分段x0k(n)包括x00(n)和x01(n),且x00(n)和x01(n)的长度均为tx,并根据所述tx分别对h0(n)、h1(n)、h2(n)进行再次分段,得到h0(n)对应的多个单位冲激响应子分段h0z(n)(z=0,1,…),并得到h1(n)对应的多个单位冲激响应子分段h1z(n)(z=0,1,…),并得到h2(n)对应的多个单位冲激响应子分段h2z(n)(z=0,1,…)。之后,再将x00(n)分别与各h0z(n)、各h1z(n)、各h2z(n)进行快速卷积后相加,得到x00(n)对应的第一卷积子结果,将x01(n)分别与各h0z(n)、各h1z(n)、各h2z(n)进行快速卷积后相加,得到x01(n)对应的第二卷积子结果,再将第一卷积子结果和第二卷积子结果相加即可得到x0(n)对应的输出结果。以此类推,可以对所述输入序列进行更多层的分段,也同时可以对所述第一单位冲激响应进行更多层的分段,多层分段后同样可以继续使用分段快速卷积的方式来计算。

本发明实施例通过获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。由于输入序列的长度为所述组帧延时长度,所以无论所述第一单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以所述第一单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。

请参见图2,是本发明实施例提供的另一种数据滤波方法的流程示意图,所述方法可以包括:

s201,获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;

s202,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

其中,所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

具体的,所述第一滤波器可以属于三维音频处理滤波器,所以所述第一滤波器输出的所述第一声道通话数据具备三维音频属性。其中,所述第一滤波器可以称为第一hrir(headrelatedimpulseresponse,头相关冲激响应)滤波器。hrir是和与hrtf(head-relatedtransferfunction,头相关传递函数)对应的时域冲击响应,hrtf实际上就是外耳的频率响应,它定义为耳道中信号的傅里叶变换与自由声场信号傅里叶变换的比值。hrir和hrtf是一一对应的傅里叶变换关系,因此,hrir和hrtf本质是相同的。两者的实质都是一种音效定位的算法,可以利用此算法,通过对输入的音频信号的处理的来判断声音发生的位置,即hrir可以看作是一个滤波器,而对于一个人来说,由于距离声源的距离以及音频信号传输的路径等不同,所以一个人的左耳的hrir和右耳的hrir是不同的。进一步的,也可以将第一滤波器称之为第一hrtf滤波器,即hrtf是一组滤波器,hrtf利用itd(interauraltimedelay,双耳时间延迟)、iad(interauralamplitudedifference,耳间振幅差)和耳廓频率振动等技术产生立体音效,使声音传递至人耳内的耳廓,耳道和鼓膜时,聆听者会有环绕音效之感觉,通过dsp(digitalsignalprocessing,数字信号处理),hrtf可实时处理虚拟世界的音源。

所述第一声道通话数据即为上述图1对应实施例中的所述第一滤波器输出的所述输入序列对应的输出结果。所述输入序列为第一通话设备发送的第一原始通话数据,即所述第一通话设备与本端通话设备进行通话时,本端通话设备可以接收所述第一通话设备发送的第一原始通话数据,所述第一原始通话数据也是由多个输入样点组成的。s201-s202步骤的具体实现方式可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

s203,若同步输入至第二滤波器的所述输入序列的长度达到所述组帧延时长度,则对所述输入序列和所述第二滤波器的第二单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的第二声道通话数据;

其中,所述第二单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第二单位冲激响应为长序列。

具体的,所述本端通话设备可以包括第一滤波器和第二滤波器,所述第一滤波器和所述第二滤波器均用于为所述第一通话设备所发送的第一原始通话数据进行滤波,所述第一滤波器输出所述输入序列对应的第一声道通话数据,所述第二滤波器输出所述输入序列对应的第二声道通话数据。其中,所述第一声道通话数据可以为左声道通话数据(即用于左耳机输出的音频数据),所述第二声道通话数据可以为右声道通话数据(即用于右耳机输出的音频数据);或者,所述第一声道通话数据可以为右声道通话数据,所述第二声道通话数据可以为左声道通话数据。其中,所述第二单位冲激响应也可以为用于进行音频3d化处理的单位冲激响应,即所述第二滤波器可以属于三维音频处理滤波器,所以所述第二滤波器输出的所述第二声道通话数据也具备三维音频属性。所述第二滤波器可以称之为第二hrir滤波器,或者,所述第二滤波器也可以称之为第二hrtf滤波器。例如,第一滤波器为左声道的hrir滤波器,第二滤波器为右声道的hrir滤波器。

其中,输入到所述第二滤波器的输入序列与输入到所述第一滤波器的输入序列相同,且输入序列的长度都为组帧延时长度。因此,所述第二滤波器的滤波过程也同样为:根据所述组帧延时长度对所述第二单位冲激响应进行分段,得到多个第二单位冲激响应分段;各第二单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;将所述输入序列分别与所述各第二单位冲激响应分段进行快速卷积计算,得到所述各第二单位冲激响应分段分别对应的线性卷积结果,再将所述各第二单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的所述第二声道通话数据。因此,第二滤波器计算所述第二声道通话数据的过程与第一滤波器计算所述第一声道通话数据的过程相同。其中,所述第一单位冲激响应和所述第二单位冲激响应不同,且可以将第一单位冲激响应对应的单位冲激响分段应称为第一单位冲激响应分段。

其中,由于通话的过程中,实时性的要求是比较高的,所以通过设置所述组帧延时长度且使用分段快速卷积算法,可以有效缩短组帧所造成的时延,从而提高了通话的实时性。

s204,若仅接收到所述第一原始通话数据,则对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放;

具体的,若本端通话设备仅与所述第一通话设备进行通话,即所述本端通话设备仅接收到所述第一通话设备发送的所述第一原始通话数据,则所述本端通话设备可以对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放。若所述本端通话设备的音频输出设备为一对耳机,则可以通过左耳机播放所述第一声道通话数据(第一声道为左声道),通过右耳机播放所述第二声道通话数据(第二声道为右声道)。由于所述第一原始通话数据对应的第一声道通话数据和第二声道通话数据均具备三维音频属性,所以通过左右耳机分别输出第一声道通话数据和第二声道通话数据后,可以使所述第一原始通话数据对应的最终输出声音具备方位感,即用户听到的所述第一原始通话数据对应的最终输出声音可以位于该用户的左侧或右侧或正前方等方位。

s205,若在接收到所述第一原始通话数据的同时,还接收到第二通话设备发送的第二原始通话数据,则将所述输入序列对应的第一声道通话数据与所述第二通话设备对应的第一声道通话数据进行混音,得到第一声道混音数据;

其中,所述第二通话设备对应的第一声道通话数据是由第三滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;所述第三滤波器包括第三单位冲激响应。

具体的,若本端通话设备同时与第一通话设备和第二通话设备进行多人会话,则所述本端通话设备可以同时接收到所述第一通话设备发送的所述第一原始通话数据和所述第二通话设备发送的所述第二原始通话数据。其中,所述第一滤波器可以输出所述第一原始通话数据对应的第一声道通话数据,所述第二滤波器可以输出所述第一原始通话数据对应的第二声道通话数据。所述第三滤波器对所述第二原始通话数据进行滤波的过程与所述第一滤波器(或所述第二滤波器)的滤波过程相同,即当输入到所述第三滤波器的第二原始通话数据所构成的输入序列的长度达到所述组帧延时长度时,根据所述组帧延时长度对所述第三单位冲激响应进行分段,得到多个第三单位冲激响应分段(各第三单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内),再将所述第二原始通话数据(即输入序列)分别与所述各第三单位冲激响应分段进行快速卷积计算,得到所述各第三单位冲激响应分段分别对应的线性卷积结果,并将所述各第三单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述第二原始通话数据对应的第一声道通话数据。所述本端通话设备进一步将所述第一原始通话数据对应的第一声道通话数据与所述第二原始通话数据对应的第一声道通话数据进行混音,得到第一声道混音数据。所述第三单位冲激响应也可以为用于进行音频3d化处理的单位冲激响应,即所述第三滤波器可以属于三维音频处理滤波器,所以所述第三滤波器输出的所述第一声道通话数据也可以具备三维音频属性。所述第三滤波器可以称之为第三hrir滤波器,或者,所述第三滤波器也可以称之为第三hrtf滤波器。

s206,将所述输入序列对应的第二声道通话数据与所述第二通话设备对应的第二声道通话数据进行混音,得到第二声道混音数据;

其中,所述第二通话设备对应的第二声道通话数据是由第四滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;所述第四滤波器可以包括第四单位冲激响应。所述第二原始通话数据是被同时输入到所述第三滤波器和所述第四滤波器的数据。

具体的,所述第四滤波器对所述第二原始通话数据进行滤波的过程与所述第一滤波器(或所述第二滤波器或所述第三滤波器)的滤波过程相同,即当输入到所述第四滤波器的第二原始通话数据所构成的输入序列的长度达到所述组帧延时长度时,根据所述组帧延时长度对所述第四单位冲激响应进行分段,得到多个第四单位冲激响应分段(各第四单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内),再将所述第二原始通话数据(即输入序列)分别与所述各第四单位冲激响应分段进行快速卷积计算,得到所述各第四单位冲激响应分段分别对应的线性卷积结果,并将所述各第四单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述第二原始通话数据对应的第二声道通话数据。所述本端通话设备进一步将所述第一原始通话数据对应的第二声道通话数据与所述第二原始通话数据对应的第二声道通话数据进行混音,得到第二声道混音数据。所述第四单位冲激响应也可以为用于进行音频3d化处理的单位冲激响应,即所述第四滤波器可以属于三维音频处理滤波器,所以所述第四滤波器输出的所述第二声道通话数据也可以具备三维音频属性。所述第四滤波器可以称之为第四hrir滤波器,或者,所述第四滤波器也可以称之为第四hrtf滤波器。

s207,对所述第一声道混音数据和所述第二声道混音数据进行播放;

具体的,若本端通话设备同时与所述第一通话设备和所述第二通话设备进行通话,则所述本端通话设备可以对所述第一声道混音数据和所述第二声道混音数据进行播放。若所述本端通话设备的音频输出设备为一对耳机,则可以通过左耳机播放所述第一声道混音数据(第一声道为左声道),通过右耳机播放所述第二声道混音数据(第二声道为右声道)。所述第一原始通话数据对应的第一声道通话数据和第二声道通话数据、第二原始通话数据对应的第一声道通话数据和第二声道通话数据均具备三维音频属性,所以所述第一声道混音数据和所述第二声道混音数据也具备三维音频属性,因此,在通过左右耳机分别输出第一声道混音数据和第二声道混音数据时,可以合成所述第一原始通话数据对应的最终输出声音和所述第二原始通话数据对应的最终输出声音,且所述第一原始通话数据对应的最终输出声音和所述第二原始通话数据对应的最终输出声音均具备方位感,即用户听到的所述第一原始通话数据对应的最终输出声音可以位于该用户的左侧,用户听到的所述第二原始通话数据对应的最终输出声音可以位于该用户的右侧;或者,用户听到的所述第二原始通话数据对应的最终输出声音可以位于该用户的左侧,用户听到的所述第一原始通话数据对应的最终输出声音可以位于该用户的右侧。所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器均属于三维音频处理滤波器(如hrir滤波器),且所述第一单位冲激响应、所述第二单位冲激响应、所述第三单位冲激响应、所述第四单位冲激响应可以为互不相同的hrir,所以通过不同的滤波器对数据进行滤波,即可得到不同的声音方位感。

进一步的,请一并参见图2a,是本发明实施例提供的一种多人语音通话的网络架构示意图。在图2a中,第一通话设备可以发送第一原始通话数据到本端通话设备,第二通话设备可以发送第二原始通话数据到本端通话设备,本端通话设备将第一原始通话数据同时输入到第一滤波器和第二滤波器,本端通话设备将第二原始通话数据同时输入到第三滤波器和第四滤波器。其中,当输入到第一滤波器和第二滤波器的第一原始通话数据所构成的第一输入序列的长度达到预设的组帧延时长度t时,第一滤波器和第二滤波器分别对长度为t的第一输入序列进行基于长短序列的分段快速卷积(第一输入序列为短序列,第一滤波器和第二滤波器均为长序列),进而第一滤波器输出第一输入序列对应的左声道通话数据到mix-l(即左声道混音模块),第二滤波器输出第一输入序列对应的右声道通话数据到mix-r(即右声道混音模块)。其中,当输入到第三滤波器和第四滤波器的第二原始通话数据所构成的第二输入序列的长度也为预设的组帧延时长度t时,第三滤波器和第四滤波器分别对长度为t的第二输入序列进行基于长短序列的分段快速卷积(第二输入序列为短序列,第三滤波器和第四滤波器均为长序列),进而第三滤波器输出第二输入序列对应的左声道通话数据到mix-l,第四滤波器输出第二输入序列对应的右声道通话数据到mix-r。其中,基于长短序列的分段快速卷积的具体过程可以参见图1对应实施例中的s102,这里不再进行赘述。mix-l对第一滤波器和第三滤波器分别输出的左声道通话数据进行混音,得到左声道混音数据,并将左声道混音数据输出到左耳机进行播放。mix-r对第三滤波器和第四滤波器分别输出的右声道通话数据进行混音,得到右声道混音数据,并将右声道混音数据输出到右耳机进行播放。所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器中的单位冲激响应均可以为互不相同的hrir,因此,左声道混音数据和右声道混音数据中所合成的第一原始通话数据对应的最终输出声音可以具备声音方位感,如本端用户可以感觉到第一通话设备对应的用户的声音在本端用户的左侧;左声道混音数据和右声道混音数据中所合成的第二原始通话数据对应的最终输出声音也可以具备声音方位感,如本端用户可以感觉到第二通话设备对应的用户的声音在本端用户的右侧。其中,由于可以设置组帧延时长度t,所以4个滤波器对应的组帧延时均可以为t对应的组帧延时,所以通过降低t,可以缩短各滤波器的组帧延时,以提高通话的实时性。由此可见,通过在通话设备中设置多个滤波器,可以将各通话设备发送的原始通话数据进行音频3d化处理,使得在多人会话过程中,可以使用户感觉到各通话用户的声音具备对应的方位,而且通过设置组帧延时长度t,可以在多人会话中实现音频3d化处理的同时,对组帧延时和运算量进行均衡。

由此可见,将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且同时在多人会话设备中的各滤波器中还设置有所述组帧延时长度,通过设置所述组帧延时长度可以使得各滤波器对各自收到的通话数据进行滤波时,可以同时对组帧所造成的时延和运算量进行均衡。若多人会话设备的硬件能力足够强,则可以降低所述组帧延时长度,以进一步降低组帧延时,以提高通话的实时性。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

请参见图3,是本发明实施例提供的一种多人语音通话方法的流程示意图,所述方法可以包括:

s301,获取至少两个通话设备发送的原始通话数据,将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

具体的,若所述至少两个通话设备包括第一通话设备和第二通话设备,即本端通话设备可以同时与所述第一通话设备和所述第二通话设备进行多人会话,此时,所述本端通话设备可以同时接收所述第一通话设备发送的第一原始通话数据和所述第二通话设备发送的第二原始通话数据。所述第一原始通话数据可以被输入到其中一个滤波器组,该滤波器组可以包括第一滤波器(即基于第一声道的滤波器)和第二滤波器(基于第二声道的滤波器),即所述第一原始通话数据被同时输入到所述第一滤波器和所述第二滤波器;所述第二原始通话数据可以被输入到另一个滤波器组,该滤波器组可以包括第三滤波器(基于第一声道的滤波器)和第四滤波器(基于第二声道的滤波器),即所述第二原始通话数据被同时输入到所述第三滤波器和所述第四滤波器。其中,所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器均属于三维音频处理滤波器(如hrir滤波器);所述第一滤波器中的第一单位冲激响应、所述第二滤波器的第二单位冲激响应、所述第三滤波器的第三单位冲激响应以及所述第四滤波器中的第四单位冲激响应,可以为互不相同的hrir,即4个滤波器输出的音频数据分别具有不同的声音方位感。当然,本端通话设备中可以包括更多的滤波器组,一个滤波器组可以对一个通话设备发送的原始通话数据进行处理,即若有6个滤波器组,则本端通话设备可以同时与6个通话设备进行多人会话,且可以分别将6个通话设备发送的原始通话数据处理为6个不同声音方位感的音频数据。

s302,通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

具体的,以s301中的所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器为例,所述第一滤波器可以对接收到的第一原始通话数据进行三维音频处理,并输出第一原始通话数据对应的第一声道通话数据,所述第三滤波器可以对接收到的第二原始通话数据进行三维音频处理,并输出第二原始通话数据对应的第一声道通话数据。所述第一滤波器和所述第三滤波器可以统称为所述基于第一声道的滤波器。

s303,通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

具体的,以s301中的所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器为例,所述第二滤波器可以对接收到的第一原始通话数据进行三维音频处理,并输出第一原始通话数据对应的第二声道通话数据,所述第四滤波器可以对接收到的第二原始通话数据进行三维音频处理,并输出第二原始通话数据对应的第二声道通话数据。所述第二滤波器和所述第四滤波器可以统称为所述基于第二声道的滤波器。

s304,将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

具体的,以s301中的所述第一滤波器、所述第二滤波器、所述第三滤波器、所述第四滤波器为例,将所述第一滤波器输出的所述第一原始通话数据对应的第一声道通话数据和所述第三滤波器输出的所述第二原始通话数据对应的第一声道通话数据进行混音,得到第一声道混音数据。将所述第二滤波器输出的所述第一原始通话数据对应的第二声道通话数据和所述第四滤波器输出的所述第二原始通话数据对应的第二声道通话数据进行混音,得到第二声道混音数据。

s305,对所述第一声道混音数据和所述第二声道混音数据进行播放;

具体的,若所述本端通话设备的音频输出设备为一对耳机,则可以通过左耳机播放所述第一声道混音数据(第一声道为左声道),通过右耳机播放所述第二声道混音数据(第二声道为右声道)。所述第一原始通话数据对应的第一声道通话数据和第二声道通话数据、第二原始通话数据对应的第一声道通话数据和第二声道通话数据均具备三维音频属性,所以所述第一声道混音数据和所述第二声道混音数据也具备三维音频属性,因此,在通过左右耳机分别输出第一声道混音数据和第二声道混音数据时,可以合成所述第一原始通话数据对应的最终输出声音和所述第二原始通话数据对应的最终输出声音,且所述第一原始通话数据对应的最终输出声音和所述第二原始通话数据对应的最终输出声音均具备方位感,即用户听到的所述第一原始通话数据对应的最终输出声音可以位于该用户的左侧,用户听到的所述第二原始通话数据对应的最终输出声音可以位于该用户的右侧;或者,用户听到的所述第二原始通话数据对应的最终输出声音可以位于该用户的左侧,用户听到的所述第一原始通话数据对应的最终输出声音可以位于该用户的右侧。

由此可见,将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。

可选的,s302步骤可以具体包括:累计输入到所述基于第一声道的滤波器的原始通话数据所构成的输入序列的长度;若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第一声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第一声道通话数据。例如,可以通过设置所述组帧延时长度,对所述第一滤波器和所述第三滤波器的组帧延时和运算量进行均衡,为了提高通话实时性,可以进一步减少所述组帧延时长度,以进一步降低组帧延时。所述基于第一声道的滤波器根据所述组帧延时长度对由原始通话数据所构成的输入序列进行基于长短序列的分段快速卷积的工作原理可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

可选的,s303步骤可以具体包括:累计已输入到所述基于第二声道的滤波器的原始通话数据所构成的输入序列的长度;若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第二声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第二声道通话数据。例如,可以通过设置所述组帧延时长度,对所述第二滤波器和所述第四滤波器的组帧延时和运算量进行均衡,为了提高通话实时性,可以进一步减少所述组帧延时长度,以进一步降低组帧延时。所述基于第二声道的滤波器根据所述组帧延时长度对由原始通话数据所构成的输入序列进行基于长短序列的分段快速卷积的工作原理可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

其中,所述组帧延时长度大于或等于32。

进一步的,请一并参见图3a,是本发明实施例提供的另一种多人语音通话的网络架构示意图。在图3a中,本端通话设备可以同时与第一通话设备、第二通话设备、…、第n通话设备进行多人会话,其中,第一通话设备可以发送用户p1的单声道声音(即第一原始通话数据)到本端通话设备,第二通话设备可以发送用户p2的单声道声音(即第二原始通话数据)到本端通话设备,第n通话设备可以发送用户pn的单声道声音(即第n原始通话数据)到本端通话设备。本端通话设备可以将第一原始通话数据同时输入到hrir1-l和hrir1-r(hrir1-l和hrir1-r可以构成第一滤波器组),本端通话设备将第二原始通话数据同时输入到hrir2-l和hrir2-r(hrir2-l和hrir2-r可以构成第二滤波器组),本端通话设备将第n原始通话数据同时输入到hrirn-l和hrirn-r(hrirn-l和hrirn-r可以构成第n滤波器组)。其中,hrir1-l、hrir2-l、…、hrirn-l统称为基于左声道的滤波器;hrir1-r、hrir2-r、…、hrirn-r统称为基于右声道的滤波器。其中,hrir1-l和hrir1-r分别对第一原始通话数据进行滤波,进而hrir1-l输出第一原始通话数据对应的左声道通话数据到mix-l(即左声道混音模块),hrir1-r输出第一原始通话数据对应的右声道通话数据到mix-r(即右声道混音模块)。其中,hrir2-l和hrir2-r分别对第二原始通话数据进行滤波,进而hrir2-l输出第二原始通话数据对应的左声道通话数据到mix-l,hrir2-r输出第二原始通话数据对应的右声道通话数据到mix-r。其中,hrirn-l和hrirn-r分别对第n原始通话数据进行滤波,进而hrirn-l输出第n原始通话数据对应的左声道通话数据到mix-l,hrirn-r输出第n原始通话数据对应的右声道通话数据到mix-r。mix-l对各基于左声道的滤波器分别输出的左声道通话数据进行混音,得到左声道混音数据,并将左声道混音数据输出到左耳机进行播放。mix-r对各基于右声道分别输出的右声道通话数据进行混音,得到右声道混音数据,并将右声道混音数据输出到右耳机进行播放。通过各基于左声道的滤波器和各基于右声道的滤波器进行滤波,左声道混音数据和右声道混音数据中所合成的第一原始通话数据对应的最终输出声音可以具备声音方位感,如本端用户可以感觉到第一通话设备对应的用户的声音在本端用户的左侧;左声道混音数据和右声道混音数据中所合成的第二原始通话数据对应的最终输出声音可以具备声音方位感,如本端用户可以感觉到第二通话设备对应的用户的声音在本端用户的右侧;左声道混音数据和右声道混音数据中所合成的第n原始通话数据对应的最终输出声音可以具备声音方位感,如本端用户可以感觉到第n通话设备对应的用户的声音在本端用户的正前方。可选的,每次输入到滤波器的原始通话数据所构成的输入序列的长度可以始终保持为预设的组帧延时长度t,滤波器再对长度为t的输入序列(即原始通话数据)进行基于长短序列的分段快速卷积(长度为t的输入序列为短序列,滤波器为长序列),以输出相应声道的通话数据,其中,基于长短序列的分段快速卷积的具体过程可以参见图1对应实施例中的s102,这里不再进行赘述。由于n个滤波器对应的组帧延时均可以为t对应的组帧延时,所以通过降低t,可以缩短各滤波器的组帧延时,以提高通话的实时性。由此可见,通过在通话设备中设置多个滤波器,可以将各通话设备发送的原始通话数据进行音频3d化处理,使得在多人会话过程中,可以使用户感觉到各通话用户的声音具备对应的方位,而且通过设置组帧延时长度t,可以在多人会话中实现音频3d化处理的同时,对组帧延时和运算量进行均衡。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

请参见图4,是本发明实施例提供的一种数据滤波装置的结构示意图。所述数据滤波装置1可以包括:累计模块11、第一滤波模块12、第二滤波模块13、播放模块14;

所述累计模块11,用于获取输入到第一滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器包括第一单位冲激响应;

所述第一滤波模块12,用于若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

其中,所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

所述累计模块11和所述第一滤波模块12的具体功能实现方式可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

其中,所述输入序列为第一通话设备发送的第一原始通话数据,所述输出结果为所述第一滤波器输出的第一声道通话数据。

所述第二滤波模块13,用于若同步输入至第二滤波器的所述输入序列的长度达到所述组帧延时长度,则对所述输入序列和所述第二滤波器的第二单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的第二声道通话数据;所述第二单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第二单位冲激响应为长序列;

所述播放模块14,用于对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放。

其中,所述第二滤波模块13和所述播放模块14的具体功能实现方式可以参见上述图2对应实施例中的s203-s204,这里不再进行赘述。

进一步的,如图4所示,所述第一滤波模块12可以包括:分段单元121、快速卷积单元122;

所述分段单元121,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述第一单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;

所述快速卷积单元122,用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述快速卷积单元122,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果。

其中,所述组帧延时长度大于或等于32。其中,所述分段单元121和所述快速卷积单元122的具体功能实现方式可以参见上述图1对应实施例中的s102,这里不再进行赘述。

进一步的,请一并参见图5,是本发明实施例提供的一种播放模块14的结构示意图,所述播放模块14可以包括:第一混音单元141、第二混音单元142、混音播放单元143;

所述第一混音单元141,用于若在接收到所述第一原始通话数据的同时,还接收到第二通话设备发送的第二原始通话数据,则将所述输入序列对应的第一声道通话数据与所述第二通话设备对应的第一声道通话数据进行混音,得到第一声道混音数据;所述第二通话设备对应的第一声道通话数据是由第三滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

所述第二混音单元142,用于将所述输入序列对应的第二声道通话数据与所述第二通话设备对应的第二声道通话数据进行混音,得到第二声道混音数据;所述第二通话设备对应的第二声道通话数据是由第四滤波器对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

所述混音播放单元143,用于对所述第一声道混音数据和所述第二声道混音数据进行播放。

其中,所述第一混音单元141、所述第二混音单元142以及所述混音播放单元143的具体功能实现方式可以参见上述图2对应实施例中的s205-s207,这里不再进行赘述。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

请参见图6,是本发明实施例提供的一种多人语音通话装置的结构示意图。所述多人语音通话装置2可以包括:获取模块21、第一滤波模块22、第二滤波模块23、混音模块24、播放模块25;

获取模块21,用于获取至少两个通话设备发送的原始通话数据,将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

第一滤波模块22,用于通过所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

第二滤波模块23,用于通过所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

混音模块24,用于将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

播放模块25,用于对所述第一声道混音数据和所述第二声道混音数据进行播放。

其中,所述获取模块21、所述第一滤波模块22、所述第二滤波模块23、所述混音模块24以及所述播放模块25的具体功能实现方式可以参见上述图3对应实施例中的s301-s305,这里不再进行赘述。

进一步的,如图6所示,所述第一滤波模块22可以包括:第一累计单元221、第一卷积单元222;

所述第一累计单元221,用于累计输入到所述基于第一声道的滤波器的原始通话数据所构成的输入序列的长度;

所述第一卷积单元222,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第一声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

所述第一卷积单元222,还用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述第一卷积单元222,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第一声道通话数据。

其中,所述第一累计单元221和所述第一卷积单元222的具体功能实现方式可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

进一步的,如图6所示,所述第二滤波模块23可以包括:第二累计单元231、第二卷积单元232;

所述第二累计单元231,用于累计已输入到所述基于第二声道的滤波器的原始通话数据所构成的输入序列的长度;

所述第二卷积单元232,用于若所述输入序列的长度达到预设的组帧延时长度,则根据所述组帧延时长度对所述基于第二声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

所述第二卷积单元232,还用于将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果;

所述第二卷积单元232,还用于将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第二声道通话数据。

其中,所述第二累计单元231以及所述第二卷积单元232的具体功能实现方式可以参见上述图1对应实施例中的s101-s102,这里不再进行赘述。

其中,所述组帧延时长度大于或等于32。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

请参见图7,是本发明实施例提供的另一种数据滤波装置的结构示意图。如图7所示,所述数据滤波装置1000可以包括:处理器1001、存储器1005、多个滤波器(图7以4个滤波器为例,分别为第一滤波器1006a、第二滤波器1006b、第三滤波器1006c、第四滤波器1006d)、声音接收器1007(如麦克风)以及声音发送器1008(如耳机、扬声器等等),其中,声音接收器1007可以用于采集和记录本地用户的说话声音,声音发送器1008可以用于对其他通话设备所发送的语音进行播放。此外,所述数据滤波装置1000还可以包括:网络接口1004,用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图7所示的数据滤波装置1000中,网络接口1004可提供网络通讯功能,以接收外部设备发送的输入样点(即接收其他通话设备发送的原始通话数据),网络接口1004还可以用于将声音接收器1007所采集到的本地用户的说话声音(即本地的原始通话数据)发送给其他通话设备;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

获取输入到第一滤波器1006a的输入样点,并累计由多个输入样点所构成的输入序列的长度;所述第一滤波器1006a包括第一单位冲激响应;

若所述输入序列的长度达到预设的组帧延时长度,则控制所述第一滤波器1006a对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果;

所述第一单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第一单位冲激响应为长序列。

在一个实施例中,所述处理器1001在执行若所述输入序列的长度达到预设的组帧延时长度,则控制所述第一滤波器1006a对所述输入序列和所述第一单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果时,可以具体执行以下步骤:

若所述输入序列的长度达到预设的组帧延时长度,则控制所述第一滤波器1006a根据所述组帧延时长度对所述第一单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;

控制所述第一滤波器1006a将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果,并将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的输出结果。

其中,所述组帧延时长度大于或等于32。

在一个实施例中,所述输入序列为第一通话设备发送的第一原始通话数据,所述输出结果为所述第一滤波器1006a输出的第一声道通话数据;

则所述处理器还可以执行以下步骤:

若同步输入至第二滤波器1006b的所述输入序列的长度达到所述组帧延时长度,则控制所述第二滤波器1006b对所述输入序列和所述第二滤波器1006b的第二单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的第二声道通话数据;所述第二单位冲激响应的长度大于所述组帧延时长度;所述输入序列为短序列,所述第二单位冲激响应为长序列;

控制声音发送器1008对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放。

在一个实施例中,所述处理器1001在执行对所述输入序列对应的第一声道通话数据和第二声道通话数据进行播放时,可以具体执行以下步骤:

若在接收到所述第一原始通话数据的同时,还接收到第二通话设备发送的第二原始通话数据,则将所述输入序列对应的第一声道通话数据与所述第二通话设备对应的第一声道通话数据进行混音,得到第一声道混音数据;所述第二通话设备对应的第一声道通话数据是由第三滤波器1006c对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

将所述输入序列对应的第二声道通话数据与所述第二通话设备对应的第二声道通话数据进行混音,得到第二声道混音数据;所述第二通话设备对应的第二声道通话数据是由第四滤波器1006d对所述第二原始通话数据进行基于长短序列的分段快速卷积后输出得到;

控制声音发送器1008对所述第一声道混音数据和所述第二声道混音数据进行播放。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据滤波装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图1或图2所对应实施例中对所述数据滤波方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。

请参见图8,是本发明实施例提供的另一种多人语音通话装置的结构示意图。如图8所示,所述多人语音通话装置2000可以包括:处理器2001、存储器2005、多个滤波器(图8以4个滤波器为例,分别为第一滤波器2006a、第二滤波器2006b、第三滤波器2006c、第四滤波器2006d)、声音接收器2007(如麦克风)以及声音发送器2008(如耳机、扬声器等等),其中,声音接收器2007可以用于采集和记录本地用户的说话声音,声音发送器2008可以用于对其他通话设备所发送的语音进行播放。此外,所述多人语音通话装置2000还可以包括:网络接口2004,用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(display)、键盘(keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器2005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图8所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图8所示的多人语音通话装置2000中,网络接口2004可提供网络通讯功能,以用于获取至少两个通话设备发送的原始通话数据,网络接口2004还可以用于将声音接收器2007所采集到的本地用户的说话声音(即本地的原始通话数据)发送给其他通话设备;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:

将各通话设备发送的原始通话数据分别输入至对应的滤波器组;每个滤波器组均包括基于第一声道的滤波器和基于第二声道的滤波器;不同的滤波器组输出的音频数据对应的三维方位互不相同;

控制所述基于第一声道的滤波器(包括第一滤波器2006a和第三滤波器2006c)对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据;

控制所述基于第二声道的滤波器(包括第二滤波器2006b和第四滤波器2006d)对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据;

将输出的多个第一声道通话数据进行混音,得到第一声道混音数据,并将输出的多个第二声道通话数据进行混音,得到第二声道混音数据;

控制声音发送器2008对所述第一声道混音数据和所述第二声道混音数据进行播放。

在一个实施例中,所述处理器2001在执行控制所述基于第一声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第一声道通话数据时,可以具体执行以下步骤:

累计输入到所述基于第一声道的滤波器的原始通话数据所构成的输入序列的长度;

若所述输入序列的长度达到预设的组帧延时长度,则控制所述基于第一声道的滤波器根据所述组帧延时长度对所述基于第一声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

控制所述基于第一声道的滤波器将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果,并将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第一声道通话数据。

在一个实施例中,所述处理器2001在执行控制所述基于第二声道的滤波器对所输入的原始通话数据进行三维音频处理,并输出第二声道通话数据时,可以具体执行以下步骤:

累计已输入到所述基于第二声道的滤波器的原始通话数据所构成的输入序列的长度;

若所述输入序列的长度达到预设的组帧延时长度,则控制所述基于第二声道的滤波器根据所述组帧延时长度对所述基于第二声道的滤波器的单位冲激响应进行分段,得到多个单位冲激响应分段;各单位冲激响应分段的长度与所述组帧延时长度之间的差值均处于预设的差值区间内;所述单位冲激响应的长度大于所述组帧延时长度;

控制所述基于第二声道的滤波器将所述输入序列分别与所述各单位冲激响应分段进行快速卷积计算,得到所述各单位冲激响应分段分别对应的线性卷积结果,并将所述各单位冲激响应分段分别对应的线性卷积结果进行相加,得到所述输入序列对应的第二声道通话数据。

其中,所述组帧延时长度大于或等于32。

本发明实施例通过将可进行音频3d化处理的滤波器应用在多人会话设备中,可以使得多人会话过程中,为不同的通话对象的通话数据设置不同的声音方位感,以丰富通话效果。而且对于多人会话设备中的每一个滤波器,均可以获取输入到滤波器的输入样点,并累计由多个输入样点所构成的输入序列的长度,若所述输入序列的长度达到预设的组帧延时长度,则对所述输入序列和滤波器中的单位冲激响应进行基于长短序列的分段快速卷积计算,得到所述输入序列对应的输出结果。由于输入序列的长度为所述组帧延时长度,所以无论单位冲激响应的长度有多长,组帧所造成的时延都始终由所述组帧延时长度来决定,因此,通过减小所述组帧延时长度,即可减少组帧延时。而且以单位冲激响应作为长度列,与所述输入序列进行分段快速卷积,可以减少滤波过程中的运算量,从而可以在滤波过程中对运算量和组帧延时进行均衡控制,以提高滤波处理效率。而且通过进一步降低组帧延时长度,可以进一步降低组帧延时,以提高通话的实时性。

此外,这里需要指出的是:本发明实施例还提供了另一种计算机存储介质,且所述计算机存储介质中存储有前文提及的多人语音通话装置2所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图3所对应实施例中对所述多人语音通话方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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