一种音频处理方法、装置及设备与流程

文档序号:17652175发布日期:2019-05-15 21:32阅读:230来源:国知局
一种音频处理方法、装置及设备与流程

本申请涉及计算机技术领域,尤其涉及一种音频处理方法、装置及设备。



背景技术:

随着网络技术的不断发展,人们对音频的多样性需要越来越多。比如,唱歌软件可以将录好的音频进行不同音效的处理,例如,对人的声音进行多种变化。不同音效算法,实现各不相同,即使同一种音效,比如均衡器(equalizer,eq),其实现结构,参数,也有很大区别。现有的音效算法,主要是以程序的形式存在,如果要实现某种音效,就需要调用音效对应的音效算法的实现程序,由于不同的音效需要调用不同的程序,不能采用统一的音效算法模型进行处理,增加了音效算法实现的复杂性。



技术实现要素:

本申请实施例提供一种音频处理方法、装置及设备,用以解决现有技术中的不同的音频算法需要实施不同的运算程序造成的复杂性的问题。

本申请实施例提供的一种音频处理方法,包括:

获取待处理音频;

确定针对所述待处理音频的处理音效;

调取所述处理音效对应的冲激响应;

采用所述冲激响应对所述待处理音频进行音效处理。

可选的,在所述调取所述处理音效对应的冲激响应之前,所述方法还包括:

预先将各种处理音效对应的冲激响应存储至冲激响应库,所述冲激响应库中的各个冲激响应与处理音效一一对应;

所述调取所述处理音效对应的冲激响应,具体包括:

从所述冲激响应库中调取所述处理音效对应的冲激响应。

可选的,在所述预先将各种处理音效对应的冲激响应存储至冲激响应库之前,还包括:

确定所述处理音效对应的音效算法;

根据所述音效算法与冲激序列生成所述冲激响应。

可选的,所述根据所述音效算法与冲激序列生成所述冲激响应,具体包括:

将单位冲激序列进行降幅处理;

采用所述音效算法对经过降幅后的单位冲激序列进行处理,得到冲激响应。

可选的,在所述采用所述冲激响应对所述待处理音频进行音效处理之前,所述方法还包括:

对所述冲激响应进行有效长度截取,所述截取后的冲激响应满足如下条件:

其中,l表示冲激响应的长度,ε1与ε2为可调的阈值,h(n)表示冲激响应,h(l-1)表示冲激响应的第l个点的数值,h(l-2)表示冲激响应的第(l-1)个点的数值。

可选的,在所述采用所述冲激响应对所述待处理音频进行音效处理之前,所述方法还包括:

对所述冲激响应进行归一化处理。

可选的,所述对所述冲激响应进行归一化处理,具体包括:

根据所述冲激响应确定增益调整因子;

将所述冲激响应与所述增益调整因子进行乘法运算。

可选的,所述根据所述冲激响应确定增益调整因子,具体包括:

采用如下公式计算增益调整因子:

其中,h(n)表示冲激响应,g表示增益调整因子,·表示卷积运算,l表示冲激响应的长度。

可选的,所述采用所述冲激响应对所述待处理音频进行音效处理,具体包括:

采用以下公式对所述待处理音频进行音效处理:

y(n)=x(n)*h(n);

其中,y(n)表示输出音频,x(n)表示待处理音频,h(n)表示冲激响应,*表示卷积运算。

本申请实施例提供的一种音频处理装置,包括:

处理音频获取模块,用于获取待处理音频;

处理音效确定模块,用于确定针对所述待处理音频的处理音效;

冲激响应调取模块,用于调取所述处理音效对应的冲激响应;

待处理音频处理模块,用于采用所述冲激响应对所述待处理音频进行音效处理。

本申请实施例提供的一种音频处理设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述音频处理方法。

本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述音频处理方法的步骤。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

本说明书实施例采用的技术方案将不同的处理音效仅体现在冲激响应上,当要得到不同处理音效的音频时,只需调用该处理音效对应的冲激响应对待处理音频进行处理即可。本说明书实施例提供的方法,统一了音效算法的表现形式,无论音效算法有多少种,都可以采用音效算法的冲激响应来表示,因此,在对音频进行处理时,只需执行一种相同的运算,即采用冲激响应对待处理音频进行处理,这一处理所产生的工作量对于不同的音效算法来说是相同的,因此,消除了不同的音频算法需要实施不同的运算程序造成的复杂性,提高了音频处理的通用性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种音频处理方法的流程示意图;

图2为本申请实施例提供的一种音频处理方法装置的结构示意图;

图3为本申请实施例提供的一种音频处理方法设备的结构示意图。

具体实施方式

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

图1为本申请实施例提供的一种音频处理方法的流程示意图,具体包括以下步骤:

s101:获取待处理音频。

以k歌应用程序为例,在一些移动端k歌app中,用户录制完一首歌曲或者其它音频以后,往往会根据需要对录制好的音频进行一些音效处理,用户可以在app提供的多种音效中选择一种或者若干种,进行回放试听,然后选择满意的音效结果保存为文件。这些录制好的音频就是待处理音频,当然,用户还可以导入其他已录制好的音频文件。

需要注意的是,这里的待处理音频是以数字形式进行存储的,即待处理音频的数字音频。

s102:确定针对所述待处理音频的处理音效。

在本说明书实施例中,处理音效可以是eq,混响,滤波,还可以是古典、流行、爵士、电音、美声、民族和重金属等。用户可以根据自己的喜好自动选择一种或者多种处理音效。在具体的场景中,可以在显示界面呈现多种处理音效供用户来进行选择。

s103:调取所述处理音效对应的冲激响应。

在现有技术中,处理音效与音效算法一一对应,想要得到某种处理音效的声音,需要根据处理音效来选择对应的音效算法来对输入的声音进行处理。如果处理音效不同,就需要执行不同的音效算法,占用cpu资源很大。

在声学和音频应用中,脉冲响应能够捕获各种对应于各种音效的声学特性。各种各样的包裹可以包含不同音效效果的脉冲响应,如混响、滤波、古典、流行、爵士、电音、美声、民族和重金属等。然后,这些脉冲响应可以用于卷积混响应用,以使特定效果的音频特性能够应用于目标音频。本说明书实施例代替传统的方法,只存储处理音效对应的冲激响应,当用户需要得到某种处理音效时,只需调取该处理音效对应的冲激响应即可,例如,处理音效时混响,只需调取混响对应的冲激响应即可。

系统在单位冲激函数激励下引起的零状态响应被称之为该系统的“冲激响应”,冲激响应”完全由系统本身的特性所决定,与系统的激励源无关,是用时间函数表示系统特性的一种常用方式。本说明书实施例中的冲激响应就是音效算法对单位冲激函数的响应,完全代表音效算法本身的特性。

s104:采用所述冲激响应对所述待处理音频进行音效处理。

在本说明书实施例中,当获取了处理音效对应的冲激响应之后,只需采用所述冲激响应对所述待处理音频进行音效处理即可。这里的处理方式可以有多种,例如,可以采用卷积对冲激响应和待处理音频进行处理,也可以将冲激响应和待处理音频做频域的乘法运算,然后再转成时域信号。这里并不做具体限定,其重点在于冲激响应在音频处理方法上的应用。

通过上述方法,统一了音效算法的表现形式,无论音效算法有多少种,都可以采用音效算法的冲激响应来表示,因此,在对音频进行处理时,只需执行一种相同的运算,即采用冲激响应对待处理音频进行处理,这一处理所产生的工作量对于不同的音效算法来说是相同的,因此,消除了不同的音频算法需要实施不同的运算程序造成的复杂性。

在本说明书实施例中,冲激序列的定义如下:

其中attenu是一个0到1之间的实数,引入该值的目的,我们后面会介绍。

δ(n)是单位冲激序列,满足下式:

这样,输入信号x(n)就可以写成:

如果把我们要表示的线性时不变音效算法表示为t系统,输入是x,输出是y,则有以下关系:

将冲激序列经过t后获得的序列称为冲激响应,表示为:

h(n)=t[δ′(n)]=attenu·t[δ(n)](5)

考虑到t系统的时不变性,我们有:

h(n-m)=attenu·t[δ(n-m)](6)

代入后可得:

也就是说,可以用冲激序列经过音效算法t获取的h(n)来表示音效算法。任何输入,只要与h(n)进行卷积,再乘上一个固定的常数,就能获得音效算法t的输出。

根据上述理论依据,在所述预先将各种处理音效对应的冲激响应存储至冲激响应库之前,还包括:

确定所述处理音效对应的音效算法;

根据所述音效算法与冲激序列生成所述冲激响应。

在本说明书实施例中,处理音效对应的音效算法均为线性时不变系统。比如eq,混响,滤波等等。

满足叠加原理的系统具有线性特性。即若对两个激励x1(n)和x2(n),有t[ax1(n)+bx2(n)]=at[x1(n)]+bt[x2(n)],式中a、b为任意常数。不满足上述关系的为非线性系统。

时不变系统:就是系统的参数不随时间而变化,即不管输入信号作用的时间先后,输出信号响应的形状均相同,仅是从出现的时间不同。用数学表示为t[x(n)]=y[n],则t[x(n-n0)]=y[n-n0],这说明序列x(n)先移位后进行变换与它先进行变换后再移位是等效的。

本说明书实施例中,具体的音效算法中需要调整的参数种类是确定好的,但是针对一参数,其参数值往往是不确定的。调音师一般会使用自己熟悉的调音文件,音效进行调音。这一过程也许会根据用户反馈多次迭代。需要说明,调音并不仅限于调一种音效的参数,可以是多个音效级联,比如eq+混响。多个音效可以在同一个冲激响应序列中得到体现。根据调音师在音效调音中确定的参数来确定音效算法。

针对不同的音效算法,调音师需要确定参数值的参数可以包括:分贝,频率,高音、低音、滤波和混响。

当把冲激序列输入到表示音效算法的t系统以后,就可以得到表征t系统的冲激响应。

可选的,所述根据所述音效算法与冲激序列生成所述冲激响应,具体包括:

将单位冲激序列进行降幅处理;

采用所述音效算法对经过降幅后的单位冲激序列进行处理,得到冲激响应。

在通常情况上,对于音效算法t系统输入的冲激函数一般为单位冲击序列,单位冲激信号:是指在t≠0的时候,信号量恒为0,在t=0的时候,信号量为无穷大,但是信号在时间上的积分为1。

但是在特殊情况下,还需要对单位冲击序列进行调整。这是因为通常对音效算法输出有一定的限制,即输出y∈[-1,1],如果输入x比较大,经过t时有可能超出上述范围,这时音效算法会进行限幅操作。而限幅是非线性的,不能用冲激响应表示,为了避免这种情况发生,我们引入了attenu这个量,对单位冲击序列进行处理,先将输入降到较低水平,保证音效算法能工作在线性区。即,δ(n)是单位冲激序列,δ′(n)为冲激序列,

其中,attenu是一个0到1之间的实数。对于attenu的数值大于可以根据音效算法具体确定。如果音效算法中,连续多个增益均为正的话,则可能导致输出的音频超过范围,因此需要在单位冲击序列的基础上乘以一个小于零的数,线性降低冲激响应的幅度。

可选的,在所述采用所述冲激响应对所述待处理音频进行音效处理之前,所述方法还包括:

对所述冲激响应进行有效长度截取,所述截取后的冲激响应满足如下条件:

其中,l表示冲激响应的长度,ε1与ε2为可调的阈值,h(n)表示冲激响应,h(l-1)表示冲激响应的第l个点的数值,h(l-2)表示冲激响应的第(l-1)个点的数值。

在本说明书实施中,由于实际系统产生的冲激响应可能无限长,不具有实际操作性,为了减少计算的工作量,需要从冲激响应序列中截取一部分有效长度。

冲激响应是逐渐衰减的,首先要保证截取后的序列的最后一位要小于阈值ε1,同时保证最后两位两位的数值查也是小于阈值ε2。通常情况下,ε1<ε2,而

在本说明书实施例中,l的取值与实际的音效算法有关系,如混响往往需要1s-2s甚至更长时间的音频才可以实现,而均衡器需要比较短的声音就可以实现,比如100ms,因此,混响的冲激响应的长度要大于均衡器的冲激响应的长度。

可选的,在所述采用所述冲激响应对所述待处理音频进行音效处理之前,所述方法还包括:

对所述冲激响应进行归一化处理。

在本说明书实施例中,不同的音效算法会对输出声音的音量产生影响,为了保证输入与输出的音量一致,需要对冲激响应进行归一化处理。

可选的,所述对所述冲激响应进行归一化处理,具体包括:

根据所述冲激响应确定增益调整因子,采用如下公式计算增益调整因子:

其中,h(n)表示冲激响应,g表示增益调整因子,·表示乘积运算,l表示冲激响应的长度。

将所述冲激响应与所述增益调整因子进行乘法运算。

在本说明实施例中,采用增益调整因子对冲激响应进行修正,以保证在对音频进行处理以后,输入与输出的音量一致。

可选的,在步骤103之前还包括:

预先将各种处理音效对应的冲激响应存储至冲激响应库,所述冲激响应库中的各个冲激响应与处理音效一一对应。

在本说明书实施例中,冲激响应是预先计算好的,并存储在存储器中冲激响应库的。冲激响应与处理音效一一对应,如混响对应冲激响应1,美声对应冲激响应2,古典对应冲激响应3,等等。当需要对待处理声音进行混响处理时,只需要调取冲激响应1即可。当然。对于冲激响应的存储形式还有很多种,本说明书实施例中只要限定处理音效与冲激响应一一对应就可以。

在本说明书实施例中,冲激响应是线下获得,没有实时性要求,也不会影响最终合成的性能。而且,冲激响应占用的cpu空间小于音效算法,因此,减小了音效软件的cpu占用空间。

进一步的,步骤103具体包括:从所述冲激响应库中调取所述处理音效对应的冲激响应。

可选的,所述采用所述冲激响应对所述待处理音频进行音效处理,具体包括:

采用以下公式对所述待处理音频进行音效处理:

y(n)=x(n)*h(n)(10);

其中,y(n)表示输出音频,x(n)表示待处理音频,h(n)表示冲激响应,*表示卷积运算。

通过上述方法,如果音频工程师想要在产品中提供某种音效,采用传统的方法则需要以下五个环节:算法设计、软件开发、软件测试、性能优化和测试。一个产品中若包含多种音效,就要重复这个环节。而采用本说明书提供的方法,将所有的音效用统一的形式表示,则只需要两个环节:获取冲激响应和测试,这样就可以消除复杂性,加快开发速度,缩短了音效开发到上线的时间。

需要说明的是,应用冲激响应获得输出仍然要一定的工作量,但是这个工作量对于不同的音效来说是一样的,在第一种音效上测试通过后,后续其他音效可以复用,使得音效优化工作更高效。

以上为本申请实施例提供的音频处理方法,基于同样的思路,本申请实施例还提供一种音频处理装置。

如图2所示,本申请实施例提供的一种音频处理装置包括:

处理音频获取模块201,用于获取待处理音频;

处理音效确定模块202,用于确定针对所述待处理音频的处理音效;

冲激响应调取模块203,用于调取所述处理音效对应的冲激响应;

待处理音频处理模块204,用于采用所述冲激响应对所述待处理音频进行音效处理。

可选的,所述装置还包括:

预存储模块,用于预先将各种处理音效对应的冲激响应存储至冲激响应库,所述冲激响应库中的各个冲激响应与处理音效一一对应;

冲激响应调取模块203,具体用于从所述冲激响应库中调取所述处理音效对应的冲激响应。

可选的,所述装置还包括:

音效算法确定模块,用于确定所述处理音效对应的音效算法;

冲激响应生成模块,用于根据所述音效算法与冲激序列生成所述冲激响应。

可选的,冲激响应生成模块,具体包括:

降幅处理单元,用于将单位冲激序列进行降幅处理;

冲激响应得到模块,用于采用所述音效算法对经过降幅后的单位冲激序列进行处理,得到冲激响应。

可选的,所述装置还包括:

截取模块,用于对所述冲激响应进行有效长度截取,所述截取后的冲激响应满足如下条件:

其中,l表示冲激响应的长度,ε1与ε2为可调的阈值,h(n)表示冲激响应,h(l-1)表示冲激响应的第l个点的数值,h(l-2)表示冲激响应的第(l-1)个点的数值。

可选的,所述装置还包括:

归一化模块,用于对所述冲激响应进行归一化处理。

可选的,所述归一化模块,具体包括:

增益调整因子确定单元,用于根据所述冲激响应确定增益调整因子;

乘法运算单元,用于将所述冲激响应与所述增益调整因子进行乘法运算。

可选的,所述增益调整因子确定单元,具体用于:

采用如下公式计算增益调整因子:

其中,h(n)表示冲激响应,g表示增益调整因子,·表示乘积运算,l表示冲激响应的长度。

可选的,所述待处理音频处理模块204,具体用于:

采用以下公式对所述待处理音频进行音效处理:

y(n)=x(n)*h(n);(10)

其中,y(n)表示输出音频,x(n)表示待处理音频,h(n)表示冲激响应,*表示卷积运算。

基于同样的思路,本说明书实施例还提供了上述方法对应的设备。

图3为本说明书实施例提供的对应于图1的一种音频处理设备的结构示意图。如图3所示,设备300可以包括:

至少一个处理器310;以及,

与所述至少一个处理器通信连接的存储器330;其中,

所述存储器330存储有可被所述至少一个处理器310执行的指令320,所述指令被所述至少一个处理器310执行,以使所述至少一个处理器310能够实现上述音频处理方法的实施例,其功能实现请参见方法实施例中的说明,在此不再赘述。

基于同样的思路,本说明书实施例还提供了一种计算机可读存储介质,所述所述计算机可读存储介质上存储有指令,所述指令被处理器执行时可以实现上述音频处理方法的实施例。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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