一种基于DCGAN的音乐生成方法及装置与流程

文档序号:17899022发布日期:2019-06-13 16:12阅读:278来源:国知局
一种基于DCGAN的音乐生成方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种基于dcgan的音乐生成方法及装置。



背景技术:

目前,现有的音乐生成方式通常是给定一段旋律,由专业的音乐人士为给定的旋律配和弦,以此得到具有和弦匹配的音乐文件。但具体来说,要实现对一段旋律的配和弦,需要配乐者有强大的乐理、操作知识等方面的硬件技术支持,同时在软技术方面还要求配乐者有强烈、敏感的乐感体验。因此,要想生成一段优质的音乐文件必然受配乐者水平的限制。



技术实现要素:

本申请实施例提供一种基于dcgan的音乐生成方法,可以自动生成带有和弦匹配的音乐文件,减少人工处理环节。

第一方面,本申请实施例提供了一种基于dcgan的音乐生成方法,该方法包括:

构造深度卷积生成式对抗网络dcgan模型;

获取训练数据集,该训练数据集中包括n个旋律矩阵以及对应的n个和弦矩阵,其中旋律矩阵以及和弦矩阵均为二元矩阵;

将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,得到训练好的dcgan模型;

将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵,输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

结合第一方面,在一些可行的实施方式中,上述dcgan模型中包括生成器、辨别器以及调节器,该生成器、该辨别器以及该调节器均为卷积神经网络cnn。将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,得到训练好的dcgan模型,包括:

针对该训练数据集中的任一旋律矩阵i,将该旋律矩阵i输入该dcgan模型的生成器中生成与该旋律矩阵i匹配的第一和弦矩阵j;将该第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该第一和弦矩阵j与该和弦矩阵k相同的概率;判断该辨别器针对该第一和弦矩阵j输出的概率是否均在预设范围内,若否则将该概率输入该dcgan模型的调节器中对该生成器的转置卷积层上的参数进行调整,将该旋律矩阵i重新输入经过调整后的生成器中重新生成与该旋律矩阵i匹配的第一和弦矩阵j,并将重新生成的第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该重新生成的第一和弦矩阵j与该和弦矩阵k相同的概率。当该辨别器针对该生成器生成的各个第一和弦矩阵输出的概率均在预设范围内时,得到训练好的dcgan模型。

结合第一方面,在一些可行的实施方式中,获取训练数据集,包括:

获取包括多个双音轨音乐文件的双音轨数据集,该双音轨音乐文件用于表示包含旋律音轨以及和弦音轨的音乐文件;从该双音轨数据集确定出n个目标双音轨音乐文件,该目标双音轨音乐文件中的和弦属于预设的基本和弦集合,该基本和弦集合中包括12个大和弦和12个小和弦,该目标双音轨音乐文件的每小节采用一个和弦;获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵;

获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵。

结合第一方面,在一些可行的实施方式中,获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵,包括:

将该n个目标双音轨音乐文件中各个目标双音轨音乐文件的旋律调整至预设音高范围内;获取调整后各个目标双音轨音乐文件中的旋律音符;根据该调整后各个目标双音轨音乐文件中的旋律音符,生成该调整后各个目标双音轨音乐文件的旋律矩阵,该旋律矩阵为h*w的二元矩阵,该h用于表示预设的音符数,该w用于表示目标双音轨音乐文件的小节数。

结合第一方面,在一些可行的实施方式中,获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵,包括:

获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别;根据该各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别,生成该各个目标双音轨音乐文件的和弦矩阵,该和弦矩阵为w*m的二元矩阵,该w用于表示目标双音轨音乐文件的小节数,该m用于表示各小节的和弦参数。

结合第一方面,在一些可行的实施方式中,在将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理之前,该方法还包括:获取包括旋律音轨的单音轨音乐文件;将该单音轨音乐文件的旋律调整至预设音高范围内;获取调整后单音轨音乐文件中的旋律音符;根据该调整后单音轨音乐文件中的旋律音符,生成该调整后单音轨音乐文件目标旋律矩阵。

结合第一方面,在一些可行的实施方式中,该生成器包括至少一个全连接层和至少一个转置卷积层,该辨别器包括至少一个卷积层和至少一个全连接层,该调节器包括至少一个卷积层和至少一个全连接层,该调节器为反向的生成器。

第二方面,本申请实施例提供了一种音乐生成装置,该装置包括:

构造模块,用于构造深度卷积生成式对抗网络dcgan模型;

第一获取模块,用于获取训练数据集,该训练数据集中包括n个旋律矩阵以及对应的n个和弦矩阵,其中旋律矩阵以及和弦矩阵均为二元矩阵;

训练模块,用于将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,得到训练好的dcgan模型;

输入模块,用于将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵;

输出模块,用于输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

结合第二方面,在一些可行的实施方式中,上述dcgan模型中包括生成器、辨别器以及调节器,该生成器、该辨别器以及该调节器均为卷积神经网络cnn。上述训练模块具体用于:针对该训练数据集中的任一旋律矩阵i,将该旋律矩阵i输入该dcgan模型的生成器中生成与该旋律矩阵i匹配的第一和弦矩阵j;将该第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该第一和弦矩阵j与该和弦矩阵k相同的概率;判断该辨别器针对该第一和弦矩阵j输出的概率是否均在预设范围内,若否则将该概率输入该dcgan模型的调节器中对该生成器的转置卷积层上的参数进行调整,将该旋律矩阵i重新输入经过调整后的生成器中重新生成与该旋律矩阵i匹配的第一和弦矩阵j,并将重新生成的第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该重新生成的第一和弦矩阵j与该和弦矩阵k相同的概率。当该辨别器针对该生成器生成的各个第一和弦矩阵输出的概率均在预设范围内时,得到训练好的dcgan模型。

结合第二方面,在一些可行的实施方式中,上述第一获取模块包括:第一获取单元,用于获取包括多个双音轨音乐文件的双音轨数据集,该双音轨音乐文件用于表示包含旋律音轨以及和弦音轨的音乐文件;确定单元,用于从该双音轨数据集确定出n个目标双音轨音乐文件;第二获取单元,用于获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵;第三获取单元,用于获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵。其中,该目标双音轨音乐文件中的和弦属于预设的基本和弦集合,该基本和弦集合中包括12个大和弦和12个小和弦,该目标双音轨音乐文件的每小节采用一个和弦。

结合第二方面,在一些可行的实施方式中,上述第二获取单元具体用于:将该n个目标双音轨音乐文件中各个目标双音轨音乐文件的旋律调整至预设音高范围内;获取调整后各个目标双音轨音乐文件中的旋律音符;根据该调整后各个目标双音轨音乐文件中的旋律音符,生成该调整后各个目标双音轨音乐文件的旋律矩阵,该旋律矩阵为h*w的二元矩阵,该h用于表示预设的音符数,该w用于表示目标双音轨音乐文件的小节数。

结合第二方面,在一些可行的实施方式中,上述第三获取单元具体用于:获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别;根据该各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别,生成该各个目标双音轨音乐文件的和弦矩阵,该和弦矩阵为w*m的二元矩阵,该w用于表示目标双音轨音乐文件的小节数,该m用于表示各小节的和弦参数。

结合第二方面,在一些可行的实施方式中,该装置还包括:第二获取模块,用于获取包括旋律音轨的单音轨音乐文件;将该单音轨音乐文件的旋律调整至预设音高范围内;获取调整后单音轨音乐文件中的旋律音符;根据该调整后单音轨音乐文件中的旋律音符,生成该调整后单音轨音乐文件的目标旋律矩阵。

结合第二方面,在一些可行的实施方式中,该生成器包括至少一个全连接层和至少一个转置卷积层,该辨别器包括至少一个卷积层和至少一个全连接层,该调节器包括至少一个卷积层和至少一个全连接层,该调节器为反向的生成器。

第三方面,本申请实施例提供了一种终端,包括处理器、输入设备、输出设备和存储器,该处理器、输入设备、输出设备和存储器相互连接,其中,该存储器用于存储支持终端执行上述方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用该程序指令,执行上述第一方面的基于dcgan的音乐生成方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面的基于dcgan的音乐生成方法。

本申请实施例通过构造深度卷积生成式对抗网络dcgan模型,再获取训练数据集,接着将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,从而得到训练好的dcgan模型,然后将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵,最后输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。可以自动生成带有和弦匹配的音乐文件,减少人工处理环节。

附图说明

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

图1是本申请实施例提供的基于dcgan的音乐生成方法的一示意流程图;

图2是本申请实施例提供的dcgan模型的网络结构示意图;

图3是本申请实施例提供的基于dcgan的音乐生成方法的另一示意流程图;

图4a是本申请实施例提供的midi音符的示意图;

图4b是本申请实施例提供的旋律矩阵的示意图;

图5a是本申请实施例提供的24个和弦的示意图;

图5b是本申请实施例提供的和弦矩阵的示意图;

图6是本申请实施例提供的音乐生成装置的一示意性框图;

图7是本申请实施例提供的一种终端的一示意性框图。

具体实施方式

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

应当理解,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

还应当理解,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

下面将结合图1至图7,对本申请实施例提供的基于dcgan的音乐生成方法及装置进行说明。

参见图1,是本申请实施例提供的基于dcgan的音乐生成方法的一示意流程图。如图1所示,该基于dcgan的音乐生成方法可包括步骤:

s101,构造深度卷积生成式对抗网络dcgan模型。

在一些可行的实施方式中,终端可以构造一个深度卷积生成式对抗网络(deepconvolutiongenerativeadversarialnetworks,dcgan)模型。其中,dcgan模型中可以包括一个生成器、一个辨别器以及一个调节器。生成器、辨别器以及调节器均为卷积神经网络(convolutionalneuralnetwork,cnn),生成器中可以包括至少一个全连接层和至少一个转置卷积层;辨别器中可以包括至少一个卷积层和至少一个全连接层;调节器可以为反向的生成器,包括至少一个卷积层和至少一个全连接层。生成器可以用于根据给定的随机序列生成一段尽量真实的音乐去欺骗辨别器,辨别器可以用于将生成器生成的音乐与真实的音乐尽量区分开来,这样,生成器和辨别器就构成了一个动态的“博弈过程”,而调节器可以用于调节生成器的转置卷积层上的参数,以使生成器生成的音乐能更好地欺骗辨别器。

如图2所示,是本申请实施例提供的dcgan模型的网络结构示意图。其中,condititonercnn表示dcgan模型中的调节器,generatorcnn表示dcgan模型中的生成器,discriminatorcnn表示dcgan模型中的辨别器。由于调节器本质上是一个反向的生成器,所以调节器与生成器有相同的卷积核形状,调节器和生成器的输出也具有相同的形状,故将调节器各个卷积层的输出给到生成器相应的转置卷积层上,以便于对生成器转置卷积层上的参数进行调整,同时将生成器的输出作为辨别器的一个输入。noisez表示输入生成器的随机序列,x或g(z)表示生成器的输出,2dconditions表示真实的数据(这里指非生成器生成的数据)。

s102,获取训练数据集。

在一些可行的实施方式中,终端可以从预设的训练数据库中获取用于训练上述dcgan模型的n个训练样本,每个训练样本中可以包括1个旋律矩阵以及对应的1个和弦矩阵。终端可以将该n个训练样本确定为上述dcgan模型的训练样本集,那么该训练样本集中就包括n个训练样本,即该训练样本集中可以包括n个旋律矩阵以及对应的n个和弦矩阵。其中,n可以为大于或等于2的整数。旋律矩阵可以为128*16的二元矩阵,和弦矩阵可以为16*13的二元矩阵。

s103,将训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入dcgan模型中进行训练,得到训练好的dcgan模型。

在一些可行的实施方式中,上述dcgan模型包括一个生成器、一个辨别器以及一个调节器。生成器、辨别器以及调节器均为cnn。终端可以采用单独交替训练方法来对该dcgan模型中的生成器和辨别器进行训练。具体地,以训练过程的一轮迭代为例。终端可以固定辨别器卷积层上的参数不变,训练生成器,终端可以将上述训练数据集中的任一旋律矩阵i输入该dcgan模型的生成器中生成与该旋律矩阵i匹配的第一和弦矩阵j。固定生成器转置卷积层上的参数不变、训练辨别器,终端可以将该第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k共同输入该dcgan模型的辨别器中辨别该第一和弦矩阵j与该和弦矩阵k相同的概率(即第一和弦矩阵j与和弦矩阵k之间的相似度)。判断该辨别器针对该第一和弦矩阵j输出的概率是否均在预设范围内(如0.85到1之间,包括0.85和1)。若该辨别器针对该第一和弦矩阵j输出的概率不在该预设范围内,终端可以将该辨别器输出的概率输入该dcgan模型的调节器中对该生成器的转置卷积层上的参数进行调整。终端可以将该旋律矩阵i重新输入调整后的生成器中重新生成与该旋律矩阵i匹配的第一和弦矩阵j,并可以将重新生成的第一和弦矩阵j以及该和弦矩阵k合并输入该dcgan模型的辨别器中辨别该第一和弦矩阵j与该和弦矩阵k相同的概率。若该辨别器针对该第一和弦矩阵j输出的概率在该预设范围内,则终端可以从上述训练数据集中选取另一旋律矩阵,进行训练过程的一轮迭代。针对上述训练数据集中的每个旋律矩阵,在训练过程中均需进行一轮迭代,即训练数据集中有n个旋律矩阵,训练过程至少有n轮迭代。当辨别器针对生成器生成的各个第一和弦矩阵输出的概率均在预设范围内时,得到训练好的dcgan模型。

在一些可行的实施方式中,上述dcgan模型的训练过程可以用以下函数1-1表示:

其中,函数1-1中的pdata表示上述训练数据集中的n个和弦矩阵,pz表示上述训练数据集中的n个旋律矩阵。d表示辨别器、g表示生成器。g(z)表示生成器的输出,d(x)表示辨别器的输出(d(x)的值在0到1之内,包括0和1)。训练d使得logd(x)最大化,训练g使得log(1-d(g(z)))最小化,即最大化d的损失。训练过程通常是先固定一方(如辨别器d),更新另一个网络(如生成器g)的参数,交替迭代,使得对方的错误最大化。最终,当g收敛时,则g和d训练完成,得到训练好的dcgan模型。

在一些可行的实施方式中,dcgan模型的生成器在学习过程中加入了特征匹配。特征匹配可以用以下函数1-2表示:

其中,函数1-2中的e表示平均值,x表示上述训练数据集中的和弦矩阵,z表示上述训练数据集中的旋律矩阵,g(z)表示生成器的输出。f辨别器的第一个卷积层,λ1,λ2表示生成器的调节参数。调节参数的范围在系统不失真的范围内均可。

s104,将获取到的目标旋律矩阵输入训练好的dcgan模型中进行处理,并获取训练好的dcgan模型生成的与目标旋律矩阵匹配的目标和弦矩阵,输出目标旋律矩阵映射出的旋律音轨与目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

在一些可行的实施方式中,终端在得到训练好的dcgan模型之后,可以获取一个目标旋律矩阵。该目标旋律矩阵可以为用户直接输入的一个二元矩阵,还可以为终端随机生成的一个二元矩阵。比如,先获取一个随机噪声(高斯噪声、均匀噪声等),再将获取到的随机噪声处理为与上述训练数据集中旋律矩阵的数据格式相同的矩阵,再将该随机噪声经过处理后得到的矩阵确定为目标旋律矩阵。终端在获取到目标旋律矩阵之后,可以将该目标旋律矩阵输入上述训练好的dcgan模型中生成与该目标旋律矩阵匹配的目标和弦矩阵。终端可以获取该训练好的dcgan模型生成的目标和弦矩阵,并可以将该目标旋律矩阵映射为旋律音轨,将该目标和弦矩阵映射为和弦音轨。终端可以合并该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨,得到合并后的音乐文件,并可以将该合并后的音乐文件以乐器数字接口(musicalinstrumentdigitalinterface,midi)格式输出。其中,目标和弦矩阵的大小与上述训练数据集中和弦矩阵的大小相同。该合并后的音乐文件中包括旋律以及和弦。例如,在t时刻,该目标旋律矩阵映射出的旋律音轨以及该目标和弦矩阵映射出的和弦音轨同时发出各自在t时刻的音。本申请实施例通过构造dcgan模型并利用旋律矩阵以及和弦矩阵对其进行训练,得到训练好的dcgan模型,再在训练好的dcgan模型中输入目标旋律矩阵(可以为一个随机噪声),训练好的dcgan模型根据这个目标旋律矩阵生成与这个目标旋律矩阵匹配目标和弦矩阵,可以自动生成带有和弦匹配的音乐文件,从而节省了人力,减少了人工处理环节。

在本申请实施例中,终端通过构造深度卷积生成式对抗网络dcgan模型,再获取训练数据集,接着将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,从而得到训练好的dcgan模型,然后将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵,最后输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。可以自动生成带有和弦匹配的音乐文件,减少人工处理环节。

参见图3,是本申请实施例提供的基于dcgan的音乐生成方法的另一示意流程图。如图3所示,该基于dcgan的音乐生成方法可包括步骤:

s301,构造深度卷积生成式对抗网络dcgan模型。

在一些可行的实施方式中,本申请实施例中的步骤s301可参考图1所示实施例的步骤s101的实现方式,在此不再赘述。

s302,获取包括多个双音轨音乐文件的双音轨数据集。

s303,从双音轨数据集确定出n个目标双音轨音乐文件。

在一些可行的实施方式中,终端可以获取midi数据集,该midi数据集中可以包括多个midi格式的音乐文件。终端可以将该midi数据集中包括旋律音轨以及和弦音轨的音乐文件确定为双音轨音乐文件,并可以将该midi数据集中的多个双音轨音乐文件作为双音轨数据集。终端可以将该双音轨数据集中和弦属于预设的基本和弦集合且小节数等于目标阈值的双音轨音乐文件确定为目标双音轨音乐文件,得到n个目标双音轨音乐文件。其中,预设的基本和弦集合可以包括12个大和弦以及12个小和弦。这12个大和弦为:c、c#、d、d#、e、f、f#、g、g#、a、a#、b;这12个小和弦为:a、a#、b、c、c#、d、d#、e、f、f#、g、g#。每个目标双音轨音乐文件的每小节只采用一个和弦。目标阈值可以为16,即每个目标双音轨音乐文件包括16个小节。n可以为大于或等于2的整数。

在一些可行的实施方式中,为了满足上述dcgan模型的输入格式,终端可以将上述n个目标双音轨音乐文件中的每个目标双音轨音乐文件按照8小节为一组进行顺序分割。例如,某个目标双音轨音乐文件共有18小节,按照8小节为一组进行分割,第一组为前8小节,第二组为中间的8小节,第三组为最后2小节。

s304,获取n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵。

在一些可行的实施方式中,终端可以将上述n个目标双音轨音乐文件中的各个目标双音轨音乐文件的旋律调整至预设音高范围内。该预设的音高范围可以为c4到b5这两个八度之间。例如,终端将各个目标双音轨音乐文件中旋律音符的音高不在预设的两个八度之间的旋律音符去掉,只保留各个目标双音轨音乐文件中旋律音符的音高在c4到b5这两个八度之间的旋律音符。终端可以获取调整后的各个目标双音轨音乐文件中的旋律音符,并可以根据调整后各个目标双音轨音乐文件中的旋律音符生成该各个目标双音轨音乐文件的旋律矩阵。其中,旋律矩阵可以为h*w的二元矩阵,h可以用于表示midi音符数,h=128;w可以用于表示目标双音轨音乐文件的小节数,w=16。旋律矩阵中的元素0可以用于表示调整后的目标双音轨音乐文件在该0元素对应的位置上无midi音符,旋律矩阵中的元素1可以用于表示调整后的目标双音轨音乐文件在该1元素对应的位置上有对应的midi音符。

例如,以一个目标双音轨音乐文件生成一个旋律矩阵为例。如图4a所示,是本申请实施例提供的midi音符的示意图;如图4b所示,是本申请实施例提供的旋律矩阵的示意图。其中,m表示旋律矩阵,m的大小为128行16列。m中的每一行表示一个midi音符,如第一行表示128个midi音符中的第一个midi音符00(十六进制的音符代码),第二行表示128个midi音符中的第二个midi音符01,第十三行表示128个midi音符中的第十三个midi音符0c等。m中的每一列表示一个小节,如第一列表示目标双音轨音乐文件中的第一个小节,第十列表示目标双音轨音乐文件中的第十个小节等。如图4b所示,m的第2行第1列中的元素1表示目标双音轨音乐文件的第1个小节的第1个音符为midi音符01;m的第2行第3列中的元素1表示目标双音轨音乐文件的第3个小节的第2个音符为midi音符01。m的第1行第5列中的元素0表示目标双音轨音乐文件的第5个小节中没有midi音符00。

s305,获取n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵。

在一些可行的实施方式中,上述目标双音轨音乐文件的每小节只采用一个和弦。终端可以获取上述n个目标双音轨音乐文件中各个目标双音轨音乐文件的各小节所采用的和弦,并可以判断该各小节所采用和弦的和弦类别(即各小节的和弦属于大和弦或小和弦)。终端可以根据该各个目标双音轨音乐文件的各小节所采用的和弦以及各小节所采用和弦的和弦类别,生成该各个目标双音轨音乐文件的和弦矩阵。其中,和弦矩阵可以为w*m的二元矩阵,w可以用于表示目标双音轨音乐文件的小节数,w=16;m可以用于表示各小节的和弦参数,m=13,这13个和弦参数的前12个和弦参数分别表示12个和弦,第13个和弦参数表示和弦类别,即大和弦或小和弦。

例如,以一个目标双音轨音乐文件生成一个和弦矩阵为例。如图5a所示,是本申请实施例提供的24个和弦的示意图。其中,图5a中的major表示大和弦,minor表示小和弦;“13”表示第13个和弦参数,第13个和弦参数为0表示和弦类别为大和弦,第13个和弦参数为1表示和弦类别为小和弦。如图5b所示,是本申请实施例提供的和弦矩阵的示意图。其中,图5b中的y表示和弦矩阵,y共有16行13列。y中的每一行表示一个小节,如第一行表示目标双音轨音乐文件中的第一小节,第四行表示目标双音轨音乐文件中的第四小节等等。y中的每一列表示一个和弦参数,前12列中的0元素表示没有对应的和弦,前12列中的1元素表示有对应的和弦,且y每行的前12个元素中有且仅有一个1元素。y的第13列表示和弦类别,0表示大和弦,1表示小和弦。如图5b所示,第1行第13列元素为1,表示小和弦,那么第1行第2列中的元素1表示目标双音轨音乐文件的第1个小节采用小和弦a#。第2行第13列元素为0,表示大和弦,那么第2行第4列的元素1表示目标双音轨音乐文件的第2个小节采用大和弦d#。因为第16行第13列元素为0,表示大和弦,那么第16行第1列的元素1表示目标双音轨音乐文件的第16个小节采用大和弦c。

s306,将训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入dcgan模型中进行训练,得到训练好的dcgan模型。

在一些可行的实施方式中,本申请实施例中的步骤s306可参考图1所示实施例的步骤s103的实现方式,在此不再赘述。

s307,获取目标旋律矩阵。

在一些可行的实施方式中,终端可以从midi数据集中获取包括旋律音轨的任一单音轨音乐文件。终端可以去掉该单音轨音乐文件中旋律音符的音高在预设音高范围(c4到b5这两个八度)外的旋律音符,只保留该单音轨音乐文件中旋律音符的音高在预设音高范围内的旋律音符,得到调整后的单音轨音乐文件。终端可以获取调整后的单音轨音乐文件的旋律音符,并可以根据该调整后的单音轨音乐文件的旋律音符生成该调整后单音轨音乐文件的目标旋律矩阵。其中,目标旋律矩阵128*16的二元矩阵。目标旋律矩阵中的元素0可以用于表示调整后的单音轨音乐文件在该0元素对应的位置上无midi音符,目标旋律矩阵中的元素1可以用于表示调整后的单音轨音乐文件在该1元素对应的位置上有对应的midi音符。

s308,将获取到的目标旋律矩阵输入训练好的dcgan模型中进行处理,并获取训练好的dcgan模型生成的与目标旋律矩阵匹配的目标和弦矩阵,输出目标旋律矩阵映射出的旋律音轨与目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

在一些可行的实施方式中,本申请实施例中的步骤s308可参考图1所示实施例的步骤s104的实现方式,在此不再赘述。

在本申请实施例中,终端通过构造深度卷积生成式对抗网络dcgan模型,再获取包括多个双音轨音乐文件的双音轨数据集,从双音轨数据集确定出n个目标双音轨音乐文件,获取n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵,获取n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵。将训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入dcgan模型中进行训练,得到训练好的dcgan模型。再获取目标旋律矩阵,将目标旋律矩阵输入训练好的dcgan模型中进行处理,并获取训练好的dcgan模型生成的与目标旋律矩阵匹配的目标和弦矩阵,输出目标旋律矩阵映射出的旋律音轨与目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。可以自动生成带有和弦匹配的音乐文件,减少人工处理环节。

参见图6,是本申请实施例提供的音乐生成装置的一示意性框图。如图6所示,本申请实施例的音乐生成装置包括:

构造模块10,用于构造深度卷积生成式对抗网络dcgan模型;

第一获取模块20,用于获取训练数据集,该训练数据集中包括n个旋律矩阵以及对应的n个和弦矩阵,其中旋律矩阵以及和弦矩阵均为二元矩阵;

训练模块30,用于将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,得到训练好的dcgan模型;

输入模块40,用于将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵;

输出模块50,用于输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

在一些可行的实施方式中,上述dcgan模型中包括生成器、辨别器以及调节器,该生成器、该辨别器以及该调节器均为卷积神经网络cnn。上述训练模块30具体用于:针对该训练数据集中的任一旋律矩阵i,将该旋律矩阵i输入该dcgan模型的生成器中生成与该旋律矩阵i匹配的第一和弦矩阵j;将该第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该第一和弦矩阵j与该和弦矩阵k相同的概率;判断该辨别器针对该第一和弦矩阵j输出的概率是否均在预设范围内,若否则将该概率输入该dcgan模型的调节器中对该生成器的转置卷积层上的参数进行调整,将该旋律矩阵i重新输入经过调整后的生成器中重新生成与该旋律矩阵i匹配的第一和弦矩阵j,并将重新生成的第一和弦矩阵j以及该旋律矩阵i在该训练数据集中对应的和弦矩阵k输入该dcgan模型的辨别器中辨别该重新生成的第一和弦矩阵j与该和弦矩阵k相同的概率。当该辨别器针对该生成器生成的各个第一和弦矩阵输出的概率均在预设范围内时,得到训练好的dcgan模型。

在一些可行的实施方式中,上述第一获取模块20包括第一获取单元201、确定单元202、第二获取单元203以及第三获取单元204。

上述第一获取单元201,用于获取包括多个双音轨音乐文件的双音轨数据集,该双音轨音乐文件用于表示包含旋律音轨以及和弦音轨的音乐文件;上述确定单元202,用于从该双音轨数据集确定出n个目标双音轨音乐文件;上述第二获取单元203,用于获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在旋律音轨上的旋律矩阵,得到n个旋律矩阵;上述第三获取单元204,用于获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件在和弦音轨上的和弦矩阵,得到n个和弦矩阵。其中,该目标双音轨音乐文件中的和弦属于预设的基本和弦集合,该基本和弦集合中包括12个大和弦和12个小和弦,该目标双音轨音乐文件的每小节采用一个和弦。

在一些可行的实施方式中,上述第二获取单元203具体用于:将该n个目标双音轨音乐文件中各个目标双音轨音乐文件的旋律调整至预设音高范围内;获取调整后各个目标双音轨音乐文件中的旋律音符;根据该调整后各个目标双音轨音乐文件中的旋律音符,生成该调整后各个目标双音轨音乐文件的旋律矩阵,该旋律矩阵为h*w的二元矩阵,该h用于表示预设的音符数,该w用于表示目标双音轨音乐文件的小节数。

在一些可行的实施方式中,上述第三获取单元204具体用于:获取该n个目标双音轨音乐文件中各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别;根据该各个目标双音轨音乐文件的各小节所采用的和弦以及该各小节所采用和弦的和弦类别,生成该各个目标双音轨音乐文件的和弦矩阵,该和弦矩阵为w*m的二元矩阵,该w用于表示目标双音轨音乐文件的小节数,该m用于表示各小节的和弦参数。

在一些可行的实施方式中,该装置还包括第二获取模块60。该第二获取模块60,用于获取包括旋律音轨的单音轨音乐文件;将该单音轨音乐文件的旋律调整至预设音高范围内;获取调整后单音轨音乐文件中的旋律音符;根据该调整后单音轨音乐文件中的旋律音符,生成该调整后单音轨音乐文件的目标旋律矩阵。

在一些可行的实施方式中,该生成器包括至少一个全连接层和至少一个转置卷积层,该辨别器包括至少一个卷积层和至少一个全连接层,该调节器包括至少一个卷积层和至少一个全连接层,该调节器为反向的生成器。

具体实现中,上述音乐生成装置可通过上述各个模块执行上述图1或图3所提供的实现方式中各个步骤所提供的实现方式,实现上述各实施例中所实现的功能,具体可参见上述图1或图3所示的方法实施例中各个步骤提供的相应描述,在此不再赘述。

在本申请实施例中,音乐生成装置通过构造深度卷积生成式对抗网络dcgan模型,再获取训练数据集,接着将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,从而得到训练好的dcgan模型,然后将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵,最后输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。可以自动生成带有和弦匹配的音乐文件,减少人工处理环节。

参见图7,是本申请实施例提供的终端的一示意性框图。如图7所示,本申请实施例中的终端可以包括:一个或多个处理器701;一个或多个输入设备702,一个或多个输出设备703和存储器704。上述处理器701、输入设备702、输出设备703和存储器704通过总线705连接。存储器702用于存储计算机程序,所述计算机程序包括程序指令,处理器701用于执行存储器702存储的程序指令。

其中,处理器701被配置用于调用所述程序指令执行:构造深度卷积生成式对抗网络dcgan模型;获取训练数据集,该训练数据集中包括n个旋律矩阵以及对应的n个和弦矩阵,其中旋律矩阵以及和弦矩阵均为二元矩阵;将该训练数据集中的n个旋律矩阵以及对应的n个和弦矩阵输入该dcgan模型中进行训练,得到训练好的dcgan模型。输入设备702用于将获取到的目标旋律矩阵输入该训练好的dcgan模型中进行处理,并获取该训练好的dcgan模型生成的与该目标旋律矩阵匹配的目标和弦矩阵。输出设备703用于输出该目标旋律矩阵映射出的旋律音轨与该目标和弦矩阵映射出的和弦音轨进行合并后的音乐文件。

应当理解,在本申请实施例中,所称处理器701可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备702可以包括触控板、麦克风等,输出设备703可以包括显示器(lcd等)、扬声器等。

该存储器704可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器704的一部分还可以包括非易失性随机存取存储器。例如,存储器704还可以存储设备类型的信息。

具体实现中,本申请实施例中所描述的处理器701、输入设备702、输出设备703可执行本申请实施例提供的基于dcgan的音乐生成方法的中所描述的实现方式,也可执行本申请实施例所描述的音乐生成装置的实现方式,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图1或图3所示的基于dcgan的音乐生成方法,具体细节请参照图1或图3所示实施例的描述,在此不再赘述。

上述计算机可读存储介质可以是前述任一实施例所述的音乐生成装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请是参照本申请实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程诊疗数据的处理设备的处理器以产生一个机器,使得通过计算机或其他可编程诊疗数据的处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程诊疗数据的处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程诊疗数据的处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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