技术领域
[0001]本申请涉及音频数据处理技术领域,更具体地说,涉及一种音频数据处理方法、装置、设备及存储介质。
背景技术
[0002]音乐信号为时间序列,通常为不定长信号。在AI(Artificial Intelligence,人工智能)模型训练及预测中为了批量运算,会通过补零或裁剪等方式为音频统一长度,而这一方式无可避免地改变了音频携带的信息大小和内容,为模型训练及预测引入了一定的偏差。
[0003]目前,Keras框架中的循环神经层内嵌有前向MASK(掩模)机制,可以在模型训练及预测时忽略补零操作带来的影响。但是,该方式仅能实现循环神经层的前向MASK,模型中的其他层均不支持前向MASK,如:模型中的CNN(Convolutional Neural Networks,卷积神经网络)层便不支持前向mask,使用十分有限,导致模型在批量运算过程,不能完全消除因补零操作带来的影响。因此,如何解决模型对音频数据的处理过程中,消除因补零操作带来的影响,是本领域技术人员需要解决的问题。
发明内容
[0004]本申请的目的在于提供一种音频数据处理方法、装置、设备及存储介质,以解决模型对音频数据的处理过程中,因补零操作带来的影响。
[0005]为实现上述目的,本申请第一方面提供了一种音频数据处理方法,包括:
[0006]获取待处理的原音频数据;
[0007]将原音频数据输入模型的当前网络层,并获取原掩模矩阵;
[0008]通过当前网络层对原音频数据进行处理得到第一音频;
[0009]若当前网络层需要执行掩模处理操作,则利用所述第一音频及原掩模矩阵确定目标掩模矩阵,并通过所述目标掩模矩阵对所述第一音频进行掩模处理,得到第二音频;
[0010]将所述第二音频作为原音频数据、将所述目标掩模矩阵作为原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行所述通过当前网络层对原音频数据进行处理得到第一音频的步骤,直至当前网络层为输出层为止,输出最终音频处理结果。
[0011]为实现上述目的,本申请第二方面提供了一种电子设备,包括:
[0012]存储器,用于存储计算机程序;
[0013]处理器,用于执行所述计算机程序时实现上述任意方法实施例所述的音频数据处理方法的步骤。
[0014]为实现上述目的,本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的音频数据处理方法的步骤。
[0015]通过以上方案可知,本申请提供了一种音频数据处理方法、装置、设备及存储介质;在本方案中,为了消除音频数据因执行补零操作带来的影响,模型在前向传播处理过程中,每个网络层均需要根据确定的目标掩模矩阵对音频处理结果进行掩模处理,从而使得模型中的每个网络层均可通过对应的目标掩模矩阵消除补零引入的误差,提高音频数据处理效果。
[0016]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
[0017]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0018]图1为现有方案中的MASK机制示意图;
[0019]图2为本申请实施例提供的一种音频数据处理方法流程示意图;
[0020]图3为本申请实施例提供的单样本的掩模矩阵示意图;
[0021]图4为本申请实施例提供的另一种音频数据处理方法流程示意图;
[0022]图5a为本申请实施例提供的真实有效信息的降采样获取过程示意图;
[0023]图5b为本申请实施例提供的无效噪声信息的降采样获取过程示意图;
[0024]图6为本申请实施例提供的降采样输出结果示意图;
[0025]图7为本申请实施例提供的待传递至下一层的掩模矩阵示意图;
[0026]图8为本申请实施例提供的第一实数类型矩阵示意图;
[0027]图9为本申请实施例提供的第二实数类型矩阵示意图;
[0028]图10为本申请实施例提供的另一种音频数据处理方法流程示意图;
[0029]图11a为本申请实施例提供的前向传播示意图;
[0030]图11b为本申请实施例提供的反向传播示意图;
[0031]图12为本申请实施例提供的经Mask遮掩后的反向传播示意图;
[0032]图13为本申请实施例提供的一种基于翻唱识别模型的掩模更新流程图;
[0033]图14为本申请实施例提供的一种音频数据处理装置结构示意图;
[0034]图15为本申请实施例提供的一种电子设备结构图。
具体实施方式
[0035]由于音频数据不定长,导致模型对音乐数据进行批量处理时,需要统一音频数据的长度。目前统一音频数据长度的方法具有两种:裁剪及补零,其中,对音频数据执行裁剪操作,虽然可以统一不同音频数据的长度,但是由于对音频数据执行了裁剪操作,会丢失音频数据的原始真实信息,因此本申请在对音频数据进行处理时,不会对音频数据执行裁剪操作,而是对音频数据执行补零处理,通过该方式,使得本申请能以最大限度在批量处理音频数据的基础上同时保留各音频的原始真实信息。
[0036]进一步,虽然对音频数据执行补零操作可以避免丢失音频数据的原始真实信息,但是,由于在音频数据中补充了零,因此模型在处理过程中仍然存在补零引入的偏差。目前Keras框架中的循环神经层内嵌有前向MASK机制,可以在模型预测时忽略补零操作带来的影响。参见
图1,为现有技术中的MASK机制示意图,通过
图1可知,
图1中的每行为一个音频数据样本,如:Audio1、Audio2、Audio3和Audio4,每列代表一个时间片,如T1、T2、T3、T4、T5,灰色部分为原始真实信息,白色部分为补零部分,如:Audio1的T1、T2、T3均为原始真实信息,而Audio1的T4为补零部分;前向MASK机制需要对输入中的补零部分加上掩膜,并在计算中忽略遮掩部分,以解决预测时补零操作带来的影响。
[0037]但是,Keras框架内置层中仅提供了循环神经层的前向MASK,其他层则不支持前向MASK,使用十分有限。因此在本申请中,提供了一种音频数据处理方法、装置、设备及存储介质,以解决模型对音频数据的处理过程中,在每个网络层中均消除因补零操作带来的影响,提高提高音频数据处理效果。
[0038]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0039]参见
图2,为本申请实施例提供的一种音频数据处理方法流程示意图;参见
图2,该音频数据处理方法包括:
[0040]S101、获取待处理的原音频数据;
[0041]S102、将原音频数据输入模型的当前网络层,并获取原掩模矩阵;
[0042]在本实施例中,原音频数据为未处理的音频数据,是通过补零处理后的音频数据;本实施例中的模型可以为深度学习模型、机器学习模型等等,只要其处理的数据为进行补零操作后的音频数据即可。并且,在本实施例对音频的处理过程是前向传播处理过程,也即:原音频数据在模型的首个网络层输入后,依次经过该模型的各个网络层后到达输出层的过程,该过程可以为模型在训练时的前向传播处理过程,也可以为模型在预测时的前向传播处理过程,在此并不具体限定。
[0043]需要说明的是,本方案将原音频数据输入模型的当前网络层后,还需要获取与原音频数据对应的原掩模矩阵。在本实施例中,可利用Keras内置的Masking层(掩蔽层)获得输入网络层的原Mask矩阵,如:将原音频数据输入模型的掩蔽层,通过掩蔽层确定与原音频数据对应的原掩模矩阵,然后将该原音频数据及原掩模矩阵发送至下一网络层,将下一网络层作为当前网络层,继续执行S103。其中,本实施例中的原音频数据为对至少两个音频频谱特征数据执行补零操作后的数据,该音频频谱特征数据为对音乐信号执行CQT(ConstantQ transform,恒Q时频变换算法)处理后得到的数据。参见
图3,为本实施例提供的单样本的掩模矩阵示意图,为了对本方案进行清楚说明,本实施例仅以单样本的掩模矩阵进行说明,参见
图3,
图3中的列指示时间维,行指示特征维,可以看出,T1-T3时间片的矩阵值为True,T4-T5时间片的矩阵值为False,因此对于该样本来说,T1-T3时间片是真实有效的信息,而T4和T5时间片是补零部分。
[0044]S103、通过当前网络层对原音频数据进行处理得到第一音频;
[0045]在本实施例中,在模型的前向传播处理过程中,每个当前网络层获取到原音频数据及原掩模矩阵后,首先会对原音频数据进行处理得到第一音频,该第一音频并非是当前网络层的最终处理结果,若当前网络层需要执行掩模处理操作,则需要根据S104确定的目标掩模矩阵对第一音频进行掩模处理,从而消除因执行补零操作带来的影响。
[0046]S104、判断当前网络层是否需要执行掩模处理操作;若否,则执行S105,若是,则执行S106;
[0047]S105、将第一音频作为原音频数据发送至下一网络层,将原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行S103;
[0048]S106、利用第一音频及原掩模矩阵确定目标掩模矩阵,并通过目标掩模矩阵对第一音频进行掩模处理,得到第二音频,并执行S107;
[0049]需要说明的是,模型中并非所有网络层均需要执行掩模处理,例如:Flatten(压平层)及输出层便不需要对音频进行掩模处理。因此,若当前网络层不需要执行掩模处理操作,则将第一音频作为原音频数据发送至下一网络层,将原掩模矩阵直接发送至下一网络层,并将下一网络层作为当前网络层,继续执行S103。对于需要执行掩模处理操作的当前网络层,则需要确定目标掩模矩阵后通过目标掩模矩阵对第一音频进行掩模处理,得到第二音频。并且,由于每个网络层处理音频数据的逻辑均不相同,得出的音频处理结果也不同,因此在本实施例中,获取到原掩模矩阵后,需要利用该原掩模矩阵确定与当前网络层相适应的目标掩模矩阵,并通过目标掩模矩阵对第一音频进行掩模处理,得到当前网络层的第二音频。
[0050]具体来说,执行掩模处理时,需要通过时间维度和特征维度均与音频数据相同的掩模矩阵进行掩模处理,因此本方案确定目标掩模矩阵时,可根据音频数据的时间维度或者特征维度的变化情况来确定目标掩模矩阵。例如:当前网络层对音频数据处理后,音频数据的时间维度或者特征维度未发生改变,则可直接将原掩模矩阵作为目标掩模矩阵,否则,需要对原掩模矩阵适应性调整后得到目标掩模矩阵。如:原音频数据的时间维度为5,原掩模矩阵的时间维度也为5,经过当前网络层处理后,第一音频的时间维度变为4,如果此时依然通过原掩模矩阵对第一音频进行掩模处理,则会产生偏差,因此在本方案中,需要根据原掩模矩阵确定时间维度为4的目标掩模矩阵,从而通过该时间维度为4目标掩模矩阵对时间维度为4的第一音频进行掩模处理,通过该方式,可保证每个网络层均通过合适的掩模矩阵对音频进行掩模处理。
[0051]在本实施例中,通过目标掩模矩阵对第一音频进行掩模处理,是为了抹除噪声信息,例如:参见
图3,T1-T3时间片的矩阵值为True,T4-T5时间片的矩阵值为False,因此通过
图3所述的掩模矩阵对第一音频进行掩模处理时,需要将第一音频中的T1-T3时间片的数值保留,将T4-T5时间片的数值清零,实现对噪音信息的清除。
[0052]S107、将第二音频作为原音频数据、将目标掩模矩阵作为原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行S103,直至当前网络层为输出层为止,输出最终音频处理结果。
[0053]在本实施例中,每个网络层在处理音频数据时,均为当前网络层。当前网络层对获取的原音频数据及原掩模矩阵处理后,会将处理后的第二音频及目标掩模矩阵重新作为原音频数据及原掩模矩阵发送至下一网络层,下一网络层获取上述数据后,下一网络层会重新作为当前网络层继续执行S103~S104的步骤,直至当前网络层为输出层为止,输出最终音频处理结果。如:模型除了掩蔽层之外,具有五个网络层:第一网络层、第二网络层、第三网络层、第四网络层、第五网络层,若第二网络层从第一网络层获取了原音频数据及原掩模矩阵,则此时的当前网络层即为第二网络层,上一网络层即为第一网络层,第二网络层对获取的原音频数据及原掩模矩阵处理后,会将处理后的音频数据及掩模矩阵重新作为原音频数据及原掩模矩阵发送至第三网络层,第三网络层会作为当前网络层通过本申请所述的音频数据处理方法继续处理数据,依次类推,直至第五网络层处理完为止。
[0054]综上可见,本方案为了消除音频数据因执行补零操作带来的影响,在前向传播处理过程中,每个网络层均需要根据确定的目标掩模矩阵对音频处理结果进行掩模处理,从而使得模型中的每个网络层均可通过对应的目标掩模矩阵消除补零引入的误差,提高音频数据处理效果。
[0055]参见
图4,为本申请实施例提供的另一种音频数据处理方法流程示意图;参见
图4,该音频数据处理方法包括:
[0056]S201、获取待处理的原音频数据;
[0057]S202、将原音频数据输入模型的当前网络层,并获取原掩模矩阵;
[0058]S203、通过当前网络层对原音频数据进行处理得到第一音频;
[0059]S204、判断当前网络层是否需要执行掩模处理操作;若否,则执行S205,若是,则执行S206;
[0060]S205、将第一音频作为原音频数据发送至下一网络层,将原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行S203。
[0061]S206、判断第一音频与原音频数据的时间维度是否相同;若是,则执行S207;若否,则执行S208;
[0062]S207、将原掩模矩阵作为目标掩模矩阵,并执行S209;
[0063]S208、利用与当前网络层对应的更新方式对原掩模矩阵进行更新,得到目标掩模矩阵,并执行S209;
[0064]S209、通过目标掩模矩阵对第一音频进行掩模处理,得到第二音频;
[0065]S210、将第二音频作为原音频数据、将目标掩模矩阵作为原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行S203,直至当前网络层为输出层为止,输出最终音频处理结果。
[0066]在本实施例中,根据第一音频及原掩模矩阵确定与当前网络层对应的目标掩模矩阵时,具体是根据时间维度的变化程度来确定。若原掩模矩阵与第一音频的时间维度相同,则不需要对原掩模矩阵进行改变,直接将原掩模矩阵作为目标掩模矩阵;若原掩模矩阵与第一音频的时间维度不同,则需要对原掩模矩阵进行更新,得到与第一音频时间维度相同的目标掩模矩阵,以便对音频准确的进行掩模处理。
[0067]在本实施例中,以maxpooling2d(二维最大池化层)为例对本方案进行说明。在本实施例中,原掩模矩阵为
图3所示的掩模矩阵,原音频数据为与
图3的原掩模矩阵时间维度相同的数据,该二维最大池化层需要对原音频数据进行降采样处理,并且处理后,得到的信息分为两种,即真实有效信息和补零引入的无效噪声信息。在降采样处理时,以池化大小参数pool_size为2,步长参数stride为1为例进行说明。
[0068]参见
图5a,为本发明实施例提供的真实有效信息的降采样获取过程示意图,
图5a中的四个窗口均作用于真实时间片(T1-T3),降采样得到的信息亦为真实有效值。参见
图5b,为本发明实施例提供的无效噪声信息的降采样获取过程示意图,
图5b中的四个窗口的作用域,内部均含有False指示的补零部分信息,故而降采样得到的信息为补零引入的无效噪声信息。在不补零的情况下,该网络层的运算仅包含
图5a中的四个窗口,而补零后,该网络层的运算则多出了
图5b中的四个窗口。参见
图6,为本实施例提供的降采样输出结果示意图,参见
图7,为本实施例提供的待传递至下一层的掩模矩阵示意图,也就是说:若忽略补零引入的噪声信息,将由
图5b中四个窗口得到的信息置零,则得到第一音频原则上应该为
图6所示,
图6中的a、b、c、d为降采样处理后的真实有效值;同样的,向下传递的掩模矩阵也需要根据新输出结果调整,按照有效信息和无效信息所在位置,该网络层传递给下一层网络的掩模矩阵应该如
图7所示。通过
图7可以看出,
图5a中的四个窗口在原Mask中包含的内容均为True,
图5b中的四个窗口在原Mask中至少覆盖有1个False,只要窗口中存在1个False内容,得出的时间片即为无效噪声时间片。
[0069]因此,在本实施例中,提出了一种更新原掩模矩阵的方法,包括:确定与原掩模矩阵对应的第一实数类型矩阵,对第一实数类型矩阵进行降采样,获得第二实数类型矩阵,对第二实数类型矩阵执行向下取整操作,得到第三实数类型矩阵,通过第三实数类型矩阵确定目标掩模矩阵;其中,对第一实数类型矩阵进行降采样的过程为:利用池化大小参数及步长参数对第一实数类型矩阵执行平均值操作,获得第二实数类型矩阵。该更新原掩模矩阵的方法不仅仅适用与二维最大池化层,还适用于二维卷积层等网络层,在此并不具体限定。
[0070]具体来说,参见
图8,为本发明实施例提供的第一实数类型矩阵示意图,本实施例在确定与
图3中原掩模矩阵对应的第一实数类型矩阵时,需要将原掩模矩阵中的True变为1,将False变为0;对于转化后的第一实数类型矩阵,需要使用二维最大池化层所使用的池化大小参数(pool_size=2)及步长参数(stride=1)对实数类型矩阵执行averagepool平均值操作,得到第二实数类型矩阵,参见
图9,即为本发明实施例提供的第二实数类型矩阵示意图。
[0071]通过
图9可以看出,有效时间片降采样得到的有效信息部分会得到1,有效时间片和填充时间片联合部分会得到0-1之间的值,而纯填充时间片将会计算得0。因此本申请对得到的第二实数类型矩阵向下取整,得到第三实数类型矩阵,即可消除联合部分的小数值,进一步,再根据第三实数类型矩阵确定目标掩模矩阵,确定方法为:将矩阵中的1变为True,将0变为False,最终得到的目标掩模矩阵即为与
图7所述的相同的掩模矩阵。并且,计算得到目标掩模矩阵后,可以使用该目标掩模矩阵对原始降采样得到的第一音频做mask处理得到第二音频,以抹除噪声信息,最终得到第二音频输出结果与
图6相同。
[0072]综上可见,在本实施例中,可以根据每个网络层的处理方式,确定与每个网络层对应的更新原掩模矩阵的方法,从而使得模型中的每个网络层均可得到与之相对应的目标掩模矩阵,使得模型中的每个网络层均可通过对应的目标掩模矩阵消除补零引入的误差,提高音频数据处理效果。
[0073]参见
图10,为本申请实施例提供的另一种音频数据处理方法流程示意图;参见
图10,该音频数据处理方法包括:
[0074]S301、获取待处理的原音频数据;
[0075]S302、将原音频数据输入模型的当前网络层,并获取原掩模矩阵;
[0076]S303、通过当前网络层对原音频数据进行处理得到第一音频;
[0077]S304、判断当前网络层是否需要执行掩模处理操作;若否,则执行S305,若是,则执行S306;
[0078]S305、将第一音频作为原音频数据发送至下一网络层,将原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行S303。
[0079]S306、判断第一音频与原音频数据的时间维度是否相同;若是,则执行S307;若否,则执行S308;
[0080]S307、将原掩模矩阵作为目标掩模矩阵,便执行S309;
[0081]S308、利用与当前网络层对应的更新方式对原掩模矩阵进行更新,得到目标掩模矩阵,便执行S309;
[0082]S309、通过目标掩模矩阵对第一音频进行掩模处理,得到第二音频;
[0083]S310、将第二音频作为原音频数据、将目标掩模矩阵作为原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续执行通过当前网络层对原音频数据进行处理得到第一音频的步骤,直至当前网络层为输出层为止,输出最终音频处理结果;
[0084]S311、在模型的反向传播处理过程中,通过当前网络层接收上一网络层发送的目标数据;利用与当前网络层在前向传播处理过程中确定的目标掩模矩阵,对目标数据进行掩模处理,并利用掩模处理结果进行反向处理。
[0085]需要说明的是,在本实施例中,前向传播处理过程具体为模型训练过程中的前向传播过程,而模型在返向传播处理过程,同样会出现因补零引入的偏差,如在batchnormalization层(批量标准化层)中,更新权值时需要计算输入的平均值和方差,对于
图1所示的输入样例,灰色有效单元个数为10,但经过补零操作后单元个数变成了16,这将影响均值和方差的计算。尤其在短音频和长音频的统一长度过程,如将长度为20的短音频填补到1000长度,会带来980的多余单元数,极大地影响了计算,给模型的梯度带来了大量偏差。在权值更新的偏差影响之下,训练得到的模型性能效果降低。
[0086]因此在本方案中,在引入前向传播Mask的基础上,同时引入对反向传播的Mask功能,实现双向Mask机制,以免除音频补零部分对权值更新的影响,实现更准确的变长训练,提高模型性能。在本实施例中,同样以二维最大池化层为例对该双向Mask机制进行说明。参见
图11a,为本申请实施例提供的前向传播示意图,
图11a左侧的原音频数据经过降采样处理后,得到的输出结果为
图11a右侧所示,参见
图11b,为本申请实施例提供的反向传播示意图,
图11b右侧的梯度值为当前网络层接收的目标数据,利用该目标数据正常执行反向处理过程时,会将目标数据映射到降采样前对应的窗口内最大元素位上,窗口内其他元素位取0,处理结果参见
图11b左侧。
[0087]在本实施例中,在进行反向Mask时,每个当前网络层接收到上一网络层发送的目标数据后,会通过当前网络层在前向传播处理过程中确定的目标掩模矩阵,接收到的目标数据进行掩模处理,然后再利用掩模处理结果进行反向处理。该目标掩模矩阵即为当前网络层在前向传播时确定的目标掩模矩阵。参见
图12,为本发明实施例提供的经Mask遮掩后的反向传播示意图,
图12右侧的数据为通过
图7所示的目标掩模矩阵对
图11b右侧的目标数据执行掩模处理后得到的,其经过反向处理后得到的处理结果参见
图12右侧数据。
[0088]具体来说,本申请中的目标数据为当前网络层从上一网络层接收到的数据,如:反向梯度值;需要说明的是,本实施例中的上一网络层是根据数据传输顺序确定的,例如:模型具有五个网络层:第一网络层、第二网络层、第三网络层、第四网络层、第五网络层,在前向传播处理过程中,第一网络层会将数据发送至第二网络层,因此,若第二网络层为当前网络层,则第一网络层即为第二网络层的上一网络层;而在返向传播处理过程,第二网络层会将数据发送至第一网络层,因此,若第一网络层为当前网络层时,则第二网络层即为第一网络层的上一网络层。
[0089]综上可见,本方案在对音频数据处理时,可增加对音频的扩充机制而减少裁剪机制以统一批量音频的长度,使得本方案能以最大限度在批量处理的基础上同时保留各音频的原始真实信息。并且,本方案通过传递掩模矩阵的方式,可以使得模型免除因执行补零操作引入的噪声信息影响,在训练过程中,免除噪声信息的干扰能使得训练精度提升,进而提升模型性能。在预测过程中,能在保证预测结果不变的基础上,统一多个音频的长度,进而批量运算,加快预测速度。
[0090]为了对本方案进行清楚描述,在此以翻唱识别模型为例对本方案进行说明。参见
图13,为本发明实施例提供的一种基于翻唱识别模型的掩模更新流程图,通过
图13可以看出,在本实施例中,在模型的前向传播处理过程中,均对Mask矩阵发生变化的层进行了标注,其余层默认不变。通过Mask矩阵的编号也可以看出每个层之间的Mask传递关系。在该翻唱识别模型中,输入CQT音频输入数据后,通过Masking层引入Mask矩阵,Mask矩阵经过各个MaxPool2D处理时发生变化,如:Masking层输出Mask矩阵1,经过第一个MaxPool2D时,从Mask矩阵1变为Mask矩阵2继续向下传输,经过第二个MaxPool2D时,从Mask矩阵2变为Mask矩阵3继续向下传输,经过第三个MaxPool2D时,从Mask矩阵3变为Mask矩阵4继续向下传输,最后在ReduceMean(还原层)之后不再进行掩模处理,因此ReduceMean层之后不需要维护。Mask矩阵在经过BN(BatchNormalization,批量标准化)、IN(InstanceNormalization,瞬时归一化)和Attention(MultiHeadAttention,多头注意机制)处理的信息的时间维不变,故Mask矩阵也保持不变;
[0091]需要说明的是,若当前网络层存在至少两个下一网络层,则将第二音频作为原音频数据、将目标掩模矩阵作为原掩模矩阵发送至每个下一网络层,并将每个下一网络层均作为当前网络层,继续执行后续处理步骤。参见
图13中的ChannelSplit(信道分裂层),其在通道维上将信息等分成两份,不影响时间维上的信息,故将传入的Mask矩阵拷贝成两份即可向下传递。在该翻唱识别模型中,ReduceMean针对时间维取均值,由于时间维已经通过取均值的方式被压缩,不再需要维护时间维信息,输出Mask为None。并且,MaxPool2D的Mask矩阵更新方式以在前文所述的实施例中进行说明,在此并不具体赘述。进一步,在该模型中,Conv2D(convolution 2D,二维卷积层)采用了模式为SAME的Padding,即时间维不发生变化,故Mask矩阵也不变。但在其他的一些应用中,当Conv2D不做Padding时,时间维会发生变化,此时Mask的变化方式同MaxPool2D,即使用同等大小的pool_size和stride做averagepool计算新Mask矩阵。
[0092]需要说明的是,
图13仅仅为翻唱识别模型的简单示意图,图中的“……”用来表示省略的网络层,省略的网络层内未Mask矩阵未发生变化;
图13中的Masking、Concatenate(连接层)、Flatten(压平层)、Add(叠加层)和ReLU(激励层)使用Keras自带的,Masking用于生成输入的Mask矩阵,Concatenate实现矩阵拼接,内嵌功能可以正确传递Mask矩阵,Add和ReLU同样也是支持Mask的正确传递,而计算到Flatten层时已不需要再使用Mask,故可以不必理会Mask的维护机制。
[0093]将本申请所述的音频处理方法应用于翻唱识别模型后,可以提升翻唱识别模型的训练性能;并且,训练得到的模型可用于翻唱全文件匹配,应用场景主要为同歌组筛选,该模型通过本申请所述的音频处理方法进行筛选时,可统一多个音频的长度,进而批量运算,加快预测速度。
[0094]下面对本申请实施例提供的音频数据处理装置进行介绍,下文描述的音频数据处理装置与上文描述的音频数据处理方法可以相互参照。
[0095]参见
图14,本申请实施例提供的一种音频数据处理装置结构示意图,如
图14所示,该装置包括:
[0096]获取模块11,用于获取待处理的原音频数据;
[0097]数据输入模块12,用于将原音频数据输入模型的当前网络层;
[0098]矩阵获取模块13,用于获取原掩模矩阵;
[0099]第一处理模块14,用于通过当前网络层对原音频数据进行处理得到第一音频;
[0100]矩阵确定模块15,用于在当前网络层需要执行掩模处理操作时,利用所述第一音频及原掩模矩阵确定目标掩模矩阵;
[0101]第二处理模块16,用于通过所述目标掩模矩阵对所述第一音频进行掩模处理,得到第二音频;
[0102]第一发送模块17,用于将所述第二音频作为原音频数据、将所述目标掩模矩阵作为原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,继续触发所述第一处理模块14,直至当前网络层为输出层为止;
[0103]输出模块18,用于在当前网络层为输出层时,输出最终音频处理结果。
[0104]在上述实施例的基础上,作为一种优选实施方式,矩阵确定模块15包括:
[0105]判断单元,用于判断所述第一音频与所述原音频数据的时间维度是否相同;若相同,则将所述原掩模矩阵作为所述目标掩模矩阵;
[0106]更新单元,用于在所述第一音频与所述原音频数据的时间维度不相同时,利用与所述当前网络层对应的更新方式对所述原掩模矩阵进行更新,得到所述目标掩模矩阵。
[0107]在上述实施例的基础上,作为一种优选实施方式,更新单元包括:
[0108]第一确定子单元,用于确定与所述原掩模矩阵对应的第一实数类型矩阵;
[0109]降采样子单元,用于对所述第一实数类型矩阵进行降采样,获得第二实数类型矩阵;
[0110]处理子单元,用于对所述第二实数类型矩阵执行向下取整操作,得到第三实数类型矩阵;
[0111]第二确定子单元,用于通过所述第三实数类型矩阵确定所述目标掩模矩阵。
[0112]在上述实施例的基础上,作为一种优选实施方式,所述降采样子单元具体用于:利用池化大小参数及步长参数对所述第一实数类型矩阵执行平均值操作,获得第二实数类型矩阵。
[0113]在上述实施例的基础上,作为一种优选实施方式,所述数据输入模块12具体用于:将原音频数据输入模型的掩蔽层;
[0114]矩阵获取模块13具体用于:通过所述掩蔽层确定与所述原音频数据对应的原掩模矩阵;将原音频数据及原掩模矩阵发送至下一网络层,将下一网络层作为当前网络层,触发第一处理模块14,该原音频数据为对至少两个音频频谱特征数据执行补零操作后的数据。
[0115]在上述实施例的基础上,作为一种优选实施方式,发送模块17具体用于:在当前网络层存在至少两个下一网络层时,将所述第二音频作为原音频数据、将所述目标掩模矩阵作为原掩模矩阵发送至每个下一网络层,并将每个下一网络层均作为当前网络层,并触发第一处理模块14。
[0116]在上述实施例的基础上,作为一种优选实施方式,该装置还包括:
[0117]第二发送模块,用于在当前网络层不需要执行掩模处理操作时,将第一音频作为原音频数据发送至下一网络层,将原掩模矩阵发送至下一网络层,并将下一网络层作为当前网络层,并触发第一处理模块14。
[0118]在上述实施例的基础上,作为一种优选实施方式,该装置还包括:
[0119]数据接收模块,用于通过当前网络层接收上一网络层发送的目标数据;
[0120]第二处理模块,用于利用与当前网络层在前向传播处理过程中确定的目标掩模矩阵,对所述目标数据进行掩模处理,并利用掩模处理结果进行反向处理。
[0121]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0122]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成。本申请还提供了一种电子设备,参见
图15,本申请实施例提供的一种电子设备20的结构图,如
图15所示,可以包括处理器21和存储器22。
[0123]其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
[0124]存储器22可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器22还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的音频数据处理方法中的相关步骤。另外,存储器22所存储的资源还可以包括操作系统222和数据223等,存储方式可以是短暂存储或者永久存储。其中,操作系统222可以包括Windows、Unix、Linux等。
[0125]在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
[0126]当然,
图15所示的电子设备的结构并不构成对本申请实施例中电子设备的限定,在实际应用中电子设备可以包括比
图15所示的更多或更少的部件,或者组合某些部件。
[0127]在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述任一方法实施例所述的音频数据处理方法的步骤。其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0128]说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0129]还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。