700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 模型训练方法 音乐生成方法 装置和电子设备与流程

模型训练方法 音乐生成方法 装置和电子设备与流程

时间:2020-01-13 03:37:15

相关推荐

模型训练方法 音乐生成方法 装置和电子设备与流程

本申请实施例涉及计算机技术领域,具体涉及模型训练方法、音乐生成方法、装置和电子设备。

背景技术:

随着文化产业的迅速发展,数字音乐业务一直保持着较大的需求量,每年需要新增的音乐数量较大。

现有的方式,通常是通过音乐艺术家进行音乐创作。但是,由于音乐艺术家数量较少,每年创作的作品较少,因而,利用这种方式进行音乐创作,无法满足市场的需求量,且对于娱乐公司而言,音乐创作成本较高,创作效率比较低。

技术实现要素:

本申请实施例提出了模型训练方法、音乐生成方法、装置和电子设备,以解决现有技术中通过音乐艺术家进行音乐创作所导致的无法满足需求量以及音乐创作成本较高、创作效率较低的技术问题。

第一方面,本申请实施例提供了一种模型训练方法,该方法包括:对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;对于音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将第一拼接矩阵输入至第一长短期记忆循环神经网络,将第二拼接矩阵输入至第二循环神经网络;将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将第三拼接矩阵输入至第三循环神经网络,得到第三循环神经网络输出的预测矩阵;基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在一些实施例中,音乐片段文件记录有音乐片段中各时刻的音符信息,音乐片段包括第一预设数量的小节,每一小节包括第二预设数量的节拍,每个节拍对应有第三预设数量的音符信息。

在一些实施例中,对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵,包括:将音乐片段中各时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列;对于音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵;对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置矩阵。

在一些实施例中,对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置矩阵,包括:对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置向量,其中,音符位置向量为独热编码向量;将音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵,其中,目标行数与该音符矩阵的列数相同。

在一些实施例中,基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型,包括:对于音乐片段中的每一个时刻,将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数,得到损失值;将各时刻对应的损失值进行相加,得到目标损失值;基于目标损失值,对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在一些实施例中,各循环神经网络为长短期记忆LSTM网络。

第二方面,本申请实施例提供了一种模型训练装置,该装置包括:预处理单元,被配置成对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;输入单元,被配置成对于音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将第一拼接矩阵输入至第一长短期记忆循环神经网络,将第二拼接矩阵输入至第二循环神经网络;将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将第三拼接矩阵输入至第三循环神经网络,得到第三循环神经网络输出的预测矩阵;训练单元,被配置成基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在一些实施例中,音乐片段文件记录有音乐片段中各时刻的音符信息,音乐片段包括第一预设数量的小节,每一小节包括第二预设数量的节拍,每个节拍对应有第三预设数量的音符信息。

在一些实施例中,预处理单元,包括:转换模块,被配置成将音乐片段中各时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列;第一生成模块,被配置成对于音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵;第二生成模块,被配置成对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置矩阵。

在一些实施例中,第二生成模块,包括:第一生成子模块,被配置成对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置向量,其中,音符位置向量为独热编码向量;第二生成子模块,被配置成将音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵,其中,目标行数与该音符矩阵的列数相同。

在一些实施例中,训练单元,包括:输入模块,被配置成对于音乐片段中的每一个时刻,将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数,得到损失值;相加模块,被配置成将各时刻对应的损失值进行相加,得到目标损失值;训练模块,被配置成基于目标损失值,对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在一些实施例中,各循环神经网络为长短期记忆LSTM网络。

第三方面,本申请实施例提供了一种音乐生成方法,该方法包括:获取目标音符矩阵,将目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵;执行如下音乐生成步骤:将目标音符矩阵输入至采用如上述第一方面中的实施例所描述的方法生成的音乐生成模型,将音乐生成模型所输出的预测矩阵作为目标音符矩阵的下一个音符矩阵,添加至目标音符矩阵时序序列中;确定目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值;若是,将目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。

在一些实施例中,该方法还包括:响应于确定目标音符矩阵时序序列中的音符矩阵的数量小于预设值,将预测矩阵作为目标音符矩阵,继续执行生成步骤。

第四方面,本申请实施例提供了一种音乐生成装置,该装置包括:获取单元,被配置成获取目标音符矩阵,将目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵;第一执行单元,被配置成执行如下音乐生成步骤:将目标音符矩阵输入至采用如上述第一方面中的实施例所描述的方法生成的音乐生成模型,将音乐生成模型所输出的预测矩阵作为目标音符矩阵的下一个音符矩阵,添加至目标音符矩阵时序序列中;确定目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值;若是,将目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。

在一些实施例中,该装置还包括:第二执行单元,被配置成响应于确定目标音符矩阵时序序列中的音符矩阵的数量小于预设值,将预测矩阵作为目标音符矩阵,继续执行生成步骤。

第五方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面和第三方面中任一实施例的方法。

第六方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面和第三方面中任一实施例的方法。

本申请实施例提供的模型训练方法、音乐生成方法、装置和电子设备,通过对音乐片段文件进行预处理,以便确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。而后对于音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将第一拼接矩阵输入至第一长短期记忆循环神经网络,将第二拼接矩阵输入至第二循环神经网络;将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将第三拼接矩阵输入至第三循环神经网络,得到第三循环神经网络输出的预测矩阵。最后基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。由于该模型训练过程中结合了音符矩阵、音符上下文矩阵和音符位置矩阵,因此,该模型能够充分学习到现有音乐的乐理特征,从而支持了音乐的生成。利用该模型生成音乐,能够减少人工创作音乐的时间,因而,能够满足需求量,降低了音乐创作成本,提高了音乐创作效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的模型训练方法的一个实施例的流程图;

图2是根据本申请的模型训练方法的一个音乐生成模型的结构示意图;

图3是根据本申请的模型训练方法的又一个实施例的流程图;

图4是根据本申请的模型训练装置的一个实施例的结构示意图;

图5是根据本申请的音乐生成方法的又一个实施例的流程图;

图6是根据本申请的音乐生成装置的一个实施例的结构示意图;

图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,其示出了根据本申请的模型训练方法的一个实施例的流程100。该模型训练方法,包括以下步骤:

步骤101,对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。

在本实施例中,模型训练方法的执行主体(例如服务器等电子设备)可以对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。其中,上述音乐片段文件可以为用于训练音乐生成模型的样本文件。上述音乐片段文件可以是从音乐文件(例如MID(数字化乐器接口)文件)中所截取的文件片段。

上述音乐片段文件可以存储有音乐片段中的各时刻的音符信息。例如,可以包括音符的强度、各音符的状态等信息。其中,音符的状态可以包括按下状态和释放状态。当某个音符在某个时刻处于按下状态时,则表示该音符在该时刻被弹奏;当某个音符在某个时刻处于释放状态时,则表示该音符在该时刻未被弹奏。

在本实施例中,由于上述音乐片段文件存储有音乐片段中的各时刻的音符信息,因而,可以将音符信息进行提取,并以矩阵的形式来表示。用于表征音符信息的矩阵,即为音符矩阵。

作为示例,上述执行主体可以将音符矩阵设置为α×3的矩阵。其中,α为可弹奏的音符的总数,也为音符矩阵的行数。音符矩阵的每一行可以对应一个可弹奏的音符。实践中,可以预先设定音乐的音域,并预先确定出该音域所包含的音符的总数,从而进行α的设定。上述音符矩阵可以包括三列。其中,第一列可以用于表征音符是否处于按下状态。例如,当某个音符处于按下状态时,该音符所在行的第一列的数值可以为1;当某个音符处于释放状态时,该音符所在行的第一列的数值可以为0。上述音符矩阵的第二列可以用于表征音符是否被再次按下。对于某个音符,在第一列为1的情况下,若该音符被再次按下,则该音符所在行的第二列可以为数值1;若该音符未被再次按下,则该音符所在行的第二列可以为数值0。上述音符矩阵的第三列可以是用于表征音符的强度的数值。需要说明的是,上述音符矩阵的行数、列数可以根据需要而设定,此处不作限定。

在本实施例中,上述执行主体可以基于各时刻对应的音符矩阵,确定各时刻的音符上下文矩阵。其中,音符上下文矩阵为用于表征音符的上下文信息的矩阵。对于某个时刻,上述执行主体可以利用多种方式确定出该时刻的音符上下文矩阵。

作为示例,可以将该时刻的前一个或多个时刻的音符矩阵、该时刻的音符矩阵、该时刻的后一个或多个时刻的音符矩阵进行相加,得到该时刻对应的音符矩阵。

作为又一示例,可以首先将该时刻的前一个或多个时刻的音符矩阵、该时刻的音符矩阵、该时刻的后一个或多个时刻的音符矩阵汇总音符矩阵时序序列。而后,对该音符矩阵时序序列进行处理(例如卷积计算),得到该时刻对应的音符上下文特征矩阵。

在本实施例中,某个时刻对应的音符位置矩阵可以是用于表征该时刻的音符位于音乐片段中的位置的矩阵。需要说明的是,由于音乐片段通常由多个小节构成,因而,也可以将音乐片段按照小节划分。此时,上述音符位置矩阵也可以是用于表征音符在所属小节中的位置的矩阵。实践中,由于已得到各时刻对应的音符矩阵,因而,可以将所得到的音符矩阵汇总为音符矩阵时序序列。而后,对于某一个音符矩阵,可以确定出该音符矩阵位于上述音符矩阵时序序列中的位置,或者确定出该音符矩阵位于所属小节对应的子序列中的位置,从而利用独热(One-Hot)编码方式,生成用于表征该位置的音符位置矩阵。实践中,独热编码也可称为一位有效编码。

步骤102,对于音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵,将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵。

在本实施例中,对于音乐片段的每个时刻,上述执行主体可以利用各种矩阵拼接方式(例如横向拼接、或者纵向拼接等),将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵,以及,将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵。

作为示例,可以预先将音符矩阵、音符上下文矩阵和音符位置矩阵设置为行数或者列数相同(例如均为三列)的矩阵。此时,可以将音符矩阵与音符位置矩阵纵向拼接,得到列数为三列的第一拼接矩阵,以及,可以将音符上下文矩阵与音符位置矩阵纵向拼接,得到列数为三列的第二拼接矩阵。此时,上述第一拼接矩阵的行数即为音符矩阵与音符位置矩阵的行数之和,上述第二拼接矩阵的行数即为音符上下文矩阵与音符位置矩阵的行数之和。

通过分别将音符矩阵、音符上下文矩阵与音符位置矩阵进行拼接,能够使模型学习过程中得知当前输入的信息对应到音乐片段中位置,有助于使模型学习到音符的上下文关系。

步骤103,将第一拼接矩阵输入至第一循环神经网络,将第二拼接矩阵输入至第二循环神经网络,将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵。

在本实施例中,上述执行主体可以将第一拼接矩阵输入至第一循环神经)网络,将第二拼接矩阵输入至第二循环神经网络,将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵。实践中,循环神经是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件,因此,可以利用循环神经进行音乐场景中的信息处理。

可选的,上述各循环神经网络可以采用LSTM(Long Short-Term Memory,长短期记忆)网络、GRU(Gated Recurrent Unit,门控循环单元)等网络结构。

通过将上述第一输出矩阵与上述第二拼接矩阵进行拼接,可以将音符矩阵所表征的音符信息与音符上下文矩阵所表征的音符上下文信息进行融合,有助于更加充分的学习到音乐片段的乐理特征。此处,将上述第一输出矩阵与上述第二拼接矩阵进行拼接的方式,与步骤102所描述的拼接方式基本相同,因此不作赘述。

步骤104,将第三拼接矩阵输入至第三循环神经网络,得到第三循环神经网络输出的预测矩阵。

在本实施例中,上述执行主体可以将上述第三拼接矩阵输入至上述第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵。此处,上述预测矩阵可以表示第三循环神经所预测出的下一个时刻的音符矩阵。

作为示例,进一步参见图2。图2是该模型训练方法的一个音乐生成模型的结构示意图。在图2中,可以采用LSTM网络(分别为第一LSTM网络、第二LSTM网络、第三LSTM网络)进行模型训练。在得到音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵后,可以将第n个时刻的音符矩阵与第n个位置的音符位置矩阵进行拼接(即图中符号),将拼接后所得到的第一拼接矩阵(图中未示出)输入至第一LSTM网络。同时,可以将第n个位置的音符上下文矩阵与第n个位置的音符位置矩阵进行拼接,将拼接后所得到的第二拼接矩阵(图中未示出)输入至第二LSTM网络。之后,可以将第一LSTM网络输出的第一输出矩阵(图中未示出)与第二LSTM网络输出的第二输出矩阵(图中未示出)进行拼接,将拼接后得到的第三拼接矩阵(图中未示出)输入至第三LSTM网络,得到第三LSTM网络输出的第n+1个时刻的预测矩阵。该预测矩阵为第三LSTM所预测数的第n+1个时刻对应的音符矩阵。

步骤105,基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在本实施例中,上述执行主体可以基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。具体地,可以采用无监督学习方式,基于各时刻的预测矩阵与对应的音符矩阵的差异,逐渐对各循环神经的参数进行修正,使模型最终输出的预测矩阵与所对应的音符矩阵接近或相同。

在本实施例的一些可选的实现方式中,对于上述音乐片段中的每一个时刻,上述执行主体可以将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数(例如CTC(Connectionist Temporal Classification)损失函数),得到损失值。而后,可以将各时刻对应的损失值进行相加,得到目标损失值。最后,可以基于上述目标损失值,对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在上述实现方式中,在训练过程中,可以利用反向传播算法求得上述目标损失值相对于模型参数的梯度,而后利用梯度下降算法基于梯度更新模型参数。实践中,反向传播算法(Backpropagation algorithm,BP)是适合于多层神经元网络的一种学习算法。在反向传播过程中,可以逐层求出损失函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,作为修改权值的依据。梯度下降(Gradient Descent)算法是机器学习领域中常用的求解模型参数的方法。在求解损失函数的最小值时,可以通过梯度下降算法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

本申请的上述实施例提供的方法,通过对音乐片段文件进行预处理,以便确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。而后对于上述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将上述第一拼接矩阵输入至第一长短期记忆循环神经网络,将上述第二拼接矩阵输入至第二循环神经网络;将上述第一循环神经网络输出的第一输出矩阵与上述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将上述第三拼接矩阵输入至第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵。最后基于上述各时刻对应的音符矩阵和上述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。由于该模型训练过程中结合了音符矩阵、音符上下文矩阵和音符位置矩阵,因此,该模型能够充分学习到现有音乐的乐理特征,从而支持了音乐的生成。利用该模型生成音乐,能够减少人工创作音乐的时间,因而,能够满足需求量,降低了音乐创作成本,提高了音乐创作效率。

进一步参考图3,其示出了模型训练方法的又一个实施例的流程300。该模型训练方法的流程300,包括以下步骤:

步骤301,将音乐片段中时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列。

在本实施例中,模型训练方法的执行主体(例如服务器等电子设备)中可以存储有音乐片段文件。其中,上述音乐片段文件可以为用于训练音乐生成模型的样本文件。上述音乐片段文件可以存储有音乐片段中的各时刻的音符信息。例如,可以包括音符的强度、各音符的状态等信息。其中,音符的状态可以包括按下状态和释放状态。当某个音符在某个时刻处于按下状态时,则表示该音符在该时刻被弹奏;当某个音符在某个时刻处于释放状态时,则表示该音符在该时刻未被弹奏。

在本实施例中,上述音乐片段文件记录有音乐片段中各时刻的音符信息,上述音乐片段包括第一预设数量(此处用η表示,η为正整数)的小节,每一小节包括第二预设数量(此处用ζ表示,ζ为正整数)的节拍,每个节拍对应有第三预设数量(此处用ε表示,ε为正整数)的音符信息。以4/4拍的音乐片段为例,该音乐片段可以包含16个小节,每个小节可以包含4个节拍,每一个节拍可以对应有4个音符信息。由此,该音乐片段所包含的音符信息的数量为ε×ζ×η。

在本实施例中,由于上述音乐片段文件存储有音乐片段中的各时刻的音符信息,因而,可以将音符信息转换为矩阵的形式来表示。用于表征音符信息的矩阵,即为音符矩阵。作为示例,上述执行主体可以将音符矩阵设置为α×3的矩阵。其中,α为可弹奏的音符的总数,也为音符矩阵的行数。音符矩阵的每一行可以对应一个可弹奏的音符。实践中,可以预先设定音乐的音域,并预先确定出该音域所包含的音符的总数,从而进行α的设定。上述音符矩阵可以包括三列。其中,第一列可以用于表征音符是否处于按下状态。例如,当某个音符处于按下状态时,该音符所在行的第一列的数值可以为1;当某个音符处于释放状态时,该音符所在行的第一列的数值可以为0。上述音符矩阵的第二列可以用于表征音符是否被再次按下。对于某个音符,在第一列为1的情况下,若该音符被再次按下,则该音符所在行的第二列可以为数值1;若该音符未被再次按下,则该音符所在行的第二列可以为数值0。上述音符矩阵的第三列可以是用于表征音符的强度的数值。需要说明的是,上述音符矩阵的行数、列数可以根据需要而设定,此处不作限定。

需要说明的是,由于该音乐片段所包含的音符信息的数量为ε×ζ×η,且每个音符信息对应一个音符矩阵,因此,该音乐片段可以对应有ε×ζ×η个音符矩阵。

步骤302,对于音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵。

在本实施例中,对于上述音符矩阵时序序列中的每一个音符矩阵,上述执行主体可以首先将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列。此处,上述连续多个音符矩阵的数量可以是ε+1。而后,可以对上述音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵。此处,上述音符上下文矩阵也可以是尺寸为α×3的矩阵。

作为示例,若ε为4,则对于音符矩阵时序序列中的第n个音符矩阵,可以将第n-2个音符矩阵、第n-1个音符矩阵、该第n个音符矩阵、第n+1个音符矩阵及第n+2个音符矩阵作为该第n个音符矩阵对应的音符矩阵子序列。而后,可以将该音符矩阵子序列输入至3×3×(ε+1)的卷积核,进而输出α×3的音符上下文矩阵。

需要说明的是,上述音符矩阵子序列的确定方式不限于上述示例,还可以根据需要按照其他方式确定,此处不作限定。

步骤303,对于音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示位置的音符位置向量,其中,音符位置向量为独热编码向量。

在本实施例中,由于每一小节包括ζ个节拍,每个节拍对应有ε个音符矩阵,因而该音乐片段中,每ε×ζ=γ个音符矩阵构成一个小节。由此,对于上述音符矩阵时序序列中的每一个音符矩阵,上述执行主体可以确定该音符矩阵在所属小节中的位置,生成用于指示上述位置的音符位置向量。此处,上述音符位置向量为独热编码向量,此时,音符位置向量的维数为γ(即ε×ζ)。

作为示例,若ε和ζ均为4,则音符位置向量则为16维向量。对于某一个音符矩阵,若该音符矩阵在其所属小节中的位置处于第m个,可以将该16维向量中第m维的数值设置为1,其余各维数值设置为0。以m=5为例,此时音符位置向量为[0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0]。

步骤304,将音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵。

在本实施例中,上述执行主体可以将上述音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵。而后,可以将上述目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵。其中,上述目标行数与该音符矩阵的列数相同。作为示例,音符矩阵为α×3的矩阵,则目标行数即为3。此时,目标矩阵为3×γ的矩阵。由于音符位置矩阵为目标矩阵的转置,因此,音符位置矩阵的列数与目标行数相同(即为3),音符位置矩阵为γ×3的矩阵。

步骤305,对于音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵,将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵。

在本实施例中,对于音乐片段的每个时刻,上述执行主体可以将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵,以及,将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵。

以音乐片段的某个时刻为例。该时刻对应的音符矩阵和音符上下文矩阵均为α×3的矩阵,音符位置矩阵为γ×3的矩阵。此时,可以将音符位置矩阵拼接在音符矩阵的最后一行的下方,得到尺寸为(α+γ)×3的第一拼接矩阵。同时,可以将音符位置矩阵拼接在音符上下文矩阵的最后一行的下方,得到尺寸为(α+γ)×3的第二拼接矩阵。

由此,通过分别将音符矩阵、音符上下文矩阵与音符位置矩阵进行拼接,能够使模型学习过程中得知当前输入的信息对应到音乐片段中位置,有助于使模型学习到音符的上下文关系。

步骤306,将第一拼接矩阵输入至第一循环神经网络,将第二拼接矩阵输入至第二循环神经网络,将第一循环神经网络输出的第一输出矩阵与第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵。

在本实施例中,上述执行主体可以将第一拼接矩阵输入至第一循环神经网络,将第二拼接矩阵输入至第二循环神经网络,将第一循环神经网络输出的第一输出矩阵(例如尺寸为α×3的矩阵)与第二循环神经网络输出的第二输出矩阵(例如尺寸为α×3的矩阵)进行拼接,生成第三拼接矩阵(例如尺寸为2α×3的矩阵)。此处,上述各循环神经网络可以采用LSTM网络结构。

通过将上述第一输出矩阵与上述第二拼接矩阵进行拼接,可以将音符矩阵所表征的音符信息与音符上下文矩阵所表征的音符上下文信息进行融合,有助于更加充分的学习到音乐片段的乐理特征。

步骤307,将第三拼接矩阵输入至第三循环神经网络,得到第三循环神经网络输出的预测矩阵。

在本实施例中,上述执行主体可以将上述第三拼接矩阵输入至上述第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵(例如尺寸为α×3的矩阵)。此处,上述预测矩阵可以表示第三循环神经所预测出的下一个时刻的音符矩阵。

步骤308,基于各时刻对应的音符矩阵和第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在本实施例中,对于上述音乐片段中的每一个时刻,上述执行主体可以将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数(例如CTC损失函数),得到损失值。而后,可以将各时刻对应的损失值进行相加,得到目标损失值。最后,可以基于上述目标损失值,对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。具体地,在训练过程中,可以利用反向传播算法求得上述目标损失值相对于模型参数的梯度,而后利用梯度下降算法基于梯度更新模型参数。实践中,反向传播算法(Backpropagation algorithm,BP)是适合于多层神经元网络的一种学习算法。在反向传播过程中,可以逐层求出损失函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,作为修改权值的依据。梯度下降(Gradient Descent)算法是机器学习领域中常用的求解模型参数的方法。在求解损失函数的最小值时,可以通过梯度下降算法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

本申请的上述实施例提供的方法,通过对音乐片段文件进行预处理,以便确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。而后对于上述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将上述第一拼接矩阵输入至第一长短期记忆循环神经网络,将上述第二拼接矩阵输入至第二循环神经网络;将上述第一循环神经网络输出的第一输出矩阵与上述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将上述第三拼接矩阵输入至第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵。最后基于上述各时刻对应的音符矩阵和上述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。由于该模型训练过程中结合了音符矩阵、音符上下文矩阵和音符位置矩阵,因此,该模型能够充分学习到现有音乐的乐理特征,从而支持了音乐的生成。利用该模型生成音乐,能够减少人工创作音乐的时间,因而,能够满足需求量,降低了音乐创作成本,提高了音乐创作效率。

进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种模型训练装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图4所示,本实施例所述的模型训练装置400包括:预处理单元401,被配置成对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;输入单元402,被配置成对于上述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将上述第一拼接矩阵输入至第一长短期记忆循环神经网络,将上述第二拼接矩阵输入至第二循环神经网络;将上述第一循环神经网络输出的第一输出矩阵与上述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将上述第三拼接矩阵输入至第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵;训练单元403,被配置成基于上述各时刻对应的音符矩阵和上述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在本实施例的一些可选的实现方式中,上述音乐片段文件记录有音乐片段中各时刻的音符信息,上述音乐片段包括第一预设数量的小节,每一小节包括第二预设数量的节拍,每个节拍对应有第三预设数量的音符信息。

在本实施例的一些可选的实现方式中,上述预处理单元401,包括:转换模块4011,被配置成将音乐片段中各时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列;第一生成模块4012,被配置成对于上述音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对上述音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵;第二生成模块4013,被配置成对于上述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示上述位置的音符位置矩阵。

在本实施例的一些可选的实现方式中,上述第二生成模块4013,包括:第一生成子模块40131,被配置成上述对于上述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示上述位置的音符位置向量,其中,上述音符位置向量为独热编码向量;第二生成子模块40132,被配置成将上述音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将上述目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵,其中,上述目标行数与该音符矩阵的列数相同。

在本实施例的一些可选的实现方式中,上述训练单元403,包括:输入模块4031,被配置成对于上述音乐片段中的每一个时刻,将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数,得到损失值;相加模块4032,被配置成将各时刻对应的损失值进行相加,得到目标损失值;训练模块4033,被配置成基于上述目标损失值,对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

在本实施例的一些可选的实现方式中,上述各循环神经网络为长短期记忆LSTM网络。

本申请的上述实施例提供的装置,通过预处理单元401对音乐片段文件进行预处理,以便确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵。而后输入单元402对于上述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将上述第一拼接矩阵输入至第一长短期记忆循环神经网络,将上述第二拼接矩阵输入至第二循环神经网络;将上述第一循环神经网络输出的第一输出矩阵与上述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将上述第三拼接矩阵输入至第三循环神经网络,得到上述第三循环神经网络输出的预测矩阵。最后训练单元403基于上述各时刻对应的音符矩阵和上述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对上述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。由于该模型训练过程中结合了音符矩阵、音符上下文矩阵和音符位置矩阵,因此,该模型能够充分学习到现有音乐的乐理特征,从而支持了音乐的生成。利用该模型生成音乐,能够减少人工创作音乐的时间,因而,能够满足需求量,降低了音乐创作成本。

请参见图5,其示出了本申请提供的音乐生成方法的一个实施例的流程500。该音乐生成方法可以包括以下步骤:

步骤501,获取目标音符矩阵,将目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵。

在本实施例中,音乐生成方法的执行主体(例如服务器、终端设备等电子设备)可以首先获取目标音符矩阵。此处,上述目标音符矩阵可以是随机生成的任意一个音符矩阵。

步骤502,将目标音符矩阵输入至音乐生成模型,将音乐生成模型所输出的预测矩阵作为目标音符矩阵的下一个音符矩阵,添加至目标音符矩阵时序序列中,提高了音乐创作效率。

在本实施例中,上述执行主体可以将上述目标音符矩阵输入至预先训练的音乐生成模型,将音乐生成模型所输出的预测矩阵作为目标音符矩阵的下一个音符矩阵,添加至目标音符矩阵时序序列中。上述音乐生成模型可以是采用如上述图1实施例或图3实施例所描述的模型训练方法所训练生成的。具体生成过程可以参见图1实施例或图2实施例的相关描述,此处不再赘述。

步骤503,确定目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值。

在本实施例中,上述执行主体可以确定目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值(例如256)。

步骤504,响应于确定目标音符矩阵时序序列中的音符矩阵的数量等于预设值,将目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。

在本实施例中,响应于确定目标音符矩阵时序序列中的音符矩阵的数量等于上述预设值,上述执行主体可以将目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。若小于该预设值,可以执行步骤505。

此处,响应于确定目标音符矩阵时序序列中的音符矩阵的数量小于预设值,上述执行主体可以将预测矩阵作为目标音符矩阵,继续执行上述生成步骤,直至生成音乐文件。

需要说明的是,本实施例的音乐生成方法可以用于测试上述各实施例所生成的音乐生成模型。进而根据测试结果可以不断地优化音乐生成模型。该方法也可以是上述各实施例所生成的音乐生成模型的实际应用方法。采用上述各实施例所生成的音乐生成模型,来进行音乐生成,有助于提高音乐生成模型的性能。同时,利用上述音乐生成模型进行音乐生成,满足音乐的需求量,降低了音乐创作成本,提高了音乐创作效率。

继续参见图6,作为对上述图5所示方法的实现,本申请提供了一种音乐生成装置的一个实施例。该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图6所示,本实施例所述的音乐生成装置600包括:获取单元601,被配置成获取目标音符矩阵,将上述目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵;第一执行单元602,被配置成执行如下音乐生成步骤:将上述目标音符矩阵输入至音乐生成模型,将上述音乐生成模型所输出的预测矩阵作为上述目标音符矩阵的下一个音符矩阵,添加至上述目标音符矩阵时序序列中;确定上述目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值;若是,将上述目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。其中,上述音乐生成模型可以是采用如上述图1实施例或图3实施例所描述的模型训练方法所训练生成的。

在本实施例的一些可选的实现方式中,上述装置还可以包括:第二执行单元603,被配置成响应于确定上述目标音符矩阵时序序列中的音符矩阵的数量小于上述预设值,将上述预测矩阵作为目标音符矩阵,继续执行上述生成步骤。

可以理解的是,该装置600中记载的诸单元与参考图5描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置600及其中包含的单元,在此不再赘述。

下面参考图7,其示出了适于用来实现本申请实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;对于该音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将该第一拼接矩阵输入至第一长短期记忆循环神经网络,将该第二拼接矩阵输入至第二循环神经网络;将该第一循环神经网络输出的第一输出矩阵与该第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将该第三拼接矩阵输入至第三循环神经网络,得到该第三循环神经网络输出的预测矩阵;基于该各时刻对应的音符矩阵和该第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对该各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:

1.一种模型训练方法,其特征在于,所述方法包括:

对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;

对于所述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将所述第一拼接矩阵输入至第一循环神经网络,将所述第二拼接矩阵输入至第二循环神经网络;将所述第一循环神经网络输出的第一输出矩阵与所述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将所述第三拼接矩阵输入至第三循环神经网络,得到所述第三循环神经网络输出的预测矩阵;

基于所述各时刻对应的音符矩阵和所述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对所述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

2.根据权利要求1所述的模型训练方法,其特征在于,所述音乐片段文件记录有音乐片段中各时刻的音符信息,所述音乐片段包括第一预设数量的小节,每一小节包括第二预设数量的节拍,每个节拍对应有第三预设数量的音符信息。

3.根据权利要求2所述的模型训练方法,其特征在于,所述对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵,包括:

将音乐片段中各时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列;

对于所述音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对所述音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵;

对于所述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示所述位置的音符位置矩阵。

4.根据权利要求3所述的模型训练方法,其特征在于,所述对于所述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示所述位置的音符位置矩阵,包括:

对于所述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示所述位置的音符位置向量,其中,所述音符位置向量为独热编码向量;

将所述音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将所述目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵,其中,所述目标行数与该音符矩阵的列数相同。

5.根据权利要求1所述的模型训练方法,其特征在于,所述基于所述各时刻对应的音符矩阵和所述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对所述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型,包括:

对于所述音乐片段中的每一个时刻,将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数,得到损失值;

将各时刻对应的损失值进行相加,得到目标损失值;

基于所述目标损失值,对所述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

6.根据权利要求1-5之一所述的模型训练方法,其特征在于,所述各循环神经网络为长短期记忆LSTM网络。

7.一种模型训练装置,其特征在于,所述装置包括:

预处理单元,被配置成对音乐片段文件进行预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;

输入单元,被配置成对于所述音乐片段的每个时刻,将该时刻对应的音符矩阵和音符位置矩阵进行拼接,生成第一拼接矩阵;将该时刻对应的音符上下文矩阵和音符位置矩阵进行拼接,生成第二拼接矩阵;将所述第一拼接矩阵输入至第一长短期记忆循环神经网络,将所述第二拼接矩阵输入至第二循环神经网络;将所述第一循环神经网络输出的第一输出矩阵与所述第二循环神经网络输出的第二输出矩阵进行拼接,生成第三拼接矩阵;将所述第三拼接矩阵输入至第三循环神经网络,得到所述第三循环神经网络输出的预测矩阵;

训练单元,被配置成基于所述各时刻对应的音符矩阵和所述第三循环神经网络所依次输出的预测矩阵,利用机器学习方法对所述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

8.根据权利要求7所述的模型训练装置,其特征在于,所述音乐片段文件记录有音乐片段中各时刻的音符信息,所述音乐片段包括第一预设数量的小节,每一小节包括第二预设数量的节拍,每个节拍对应有第三预设数量的音符信息。

9.根据权利要求8所述的模型训练装置,其特征在于,所述预处理单元,包括:

转换模块,被配置成将音乐片段中各时刻的音符信息转换为音符矩阵,并汇总为音符矩阵时序序列;

第一生成模块,被配置成对于所述音符矩阵时序序列中的每一个音符矩阵,将包含该音符矩阵的连续多个音符矩阵作为音符矩阵子序列,对所述音符矩阵子序列进行卷积操作,生成该音符矩阵对应的音符上下文矩阵;

第二生成模块,被配置成对于所述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示所述位置的音符位置矩阵。

10.根据权利要求9所述的模型训练装置,其特征在于,所述第二生成模块,包括:

第一生成子模块,被配置成对于所述音符矩阵时序序列中的每一个音符矩阵,确定该音符矩阵在所属小节中的位置,生成用于指示所述位置的音符位置向量,其中,所述音符位置向量为独热编码向量;

第二生成子模块,被配置成将所述音符位置向量作为目标矩阵的行,生成目标行数的目标矩阵,将所述目标矩阵的转置矩阵作为该音符矩阵对应的音符位置矩阵,其中,所述目标行数与该音符矩阵的列数相同。

11.根据权利要求7所述的模型训练装置,其特征在于,所述训练单元,包括:

输入模块,被配置成对于所述音乐片段中的每一个时刻,将该时刻对应的音符矩阵和预测矩阵输入至预先建立的损失函数,得到损失值;

相加模块,被配置成将各时刻对应的损失值进行相加,得到目标损失值;

训练模块,被配置成基于所述目标损失值,对所述各循环神经网络进行训练,生成包含训练后的各循环神经网络的音乐生成模型。

12.根据权利要求7-11之一所述的模型训练装置,其特征在于,所述各循环神经网络为长短期记忆LSTM网络。

13.一种音乐生成方法,其特征在于,所述方法包括:

获取目标音符矩阵,将所述目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵;

执行如下音乐生成步骤:将所述目标音符矩阵输入至采用如权利要求1-6之一所述的方法生成的音乐生成模型,将所述音乐生成模型所输出的预测矩阵作为所述目标音符矩阵的下一个音符矩阵,添加至所述目标音符矩阵时序序列中;确定所述目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值;若是,将所述目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。

14.根据权利要求13所述的音乐生成方法,其特征在于,所述方法还包括:

响应于确定所述目标音符矩阵时序序列中的音符矩阵的数量小于所述预设值,将所述预测矩阵作为目标音符矩阵,继续执行所述生成步骤。

15.一种音乐生成装置,其特征在于,所述方法包括:

获取单元,被配置成获取目标音符矩阵,将所述目标音符矩阵作为目标音符矩阵时序序列的起始音符矩阵;

第一执行单元,被配置成执行如下音乐生成步骤:将所述目标音符矩阵输入至采用如权利要求1-6之一所述的方法生成的音乐生成模型,将所述音乐生成模型所输出的预测矩阵作为所述目标音符矩阵的下一个音符矩阵,添加至所述目标音符矩阵时序序列中;确定所述目标音符矩阵时序序列中的音符矩阵的数量是否等于预设值;若是,将所述目标音符矩阵时序序列中的各音符矩阵转换为音符信息,生成包含各音符信息的音乐文件。

16.根据权利要求15所述的音乐生成装置,其特征在于,所述装置还包括:

第二执行单元,被配置成响应于确定所述目标音符矩阵时序序列中的音符矩阵的数量小于所述预设值,将所述预测矩阵作为目标音符矩阵,继续执行所述生成步骤。

17.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,其上存储有一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6、11-12中任一所述的方法。

18.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6、11-12中任一所述的方法。

技术总结

本申请实施例公开了模型训练方法、音乐生成方法、装置和电子设备。该方法的实施例包括:对音乐片段文件预处理,确定音乐片段中各时刻对应的音符矩阵、音符上下文矩阵和音符位置矩阵;将音乐片段的每个时刻对应的音符矩阵和音符位置矩阵拼接,输入至第一循环神经网络;将各时刻对应的音符上下文矩阵和音符位置矩阵,拼接并输入至第二循环神经网络;将第一循环神经网络的输出与第二循环神经网络的输出拼接,并输入至第三循环神经网络;基于音符矩阵和第三循环神经网络所依次输出的预测矩阵,对各循环神经网络训练,生成音乐生成模型。该实施方式提供了一种能够进行音乐生成的模型,利用该模型生成音乐,降低了音乐创作成本,提高了音乐创作效率。

技术研发人员:刘思阳

受保护的技术使用者:北京奇艺世纪科技有限公司

技术研发日:.05.13

技术公布日:.09.20

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。