掌桥专利:专业的专利平台
掌桥专利
首页

音乐生成方法及音乐生成模型的训练方法

文献发布时间:2023-06-19 11:32:36


音乐生成方法及音乐生成模型的训练方法

技术领域

本申请涉及多媒体内容处理的技术领域,具体地涉及一种音乐生成方法。本申请还涉及一种音乐生成模型的训练方法。

背景技术

音乐创作涉及诸多专业知识。当前,MIDI(Musical Instrument DigitalInterface)技术已成为音乐创作领域被广泛使用的技术。随着各类音乐类应用的普及,用户对音乐个性化的追求越来越高,有越来越多的用户想要自己创作音乐。然而,对于非专业的普通用户而言,由于缺乏专业音乐知识以及不熟悉MIDI技术相关的协议、标准或复杂的软硬件操作等原因,往往无法实现音乐创作。

并且,即使是专业用户,也很可能由于时间紧迫、创作过程中复杂的软硬件操作以及面对不理想的作品缺乏修改思路等原因,难以将创作思路呈现为所期望的音乐作品。

因此,希望提出一种利用神经网络自动生成音乐的方法以及相关的神经网络的训练方法。如此,能够通过对大量现成的乐曲、歌曲等音乐数据进行特征学习,从而向所有用户、无论是非专业人士或专业人士提供自动生成音乐的可能性。

上述描述仅作为了解本领域相关技术的背景,并非承认其属于现有技术。

发明内容

因此,本发明实施例意图提供一种音乐生成方法和装置、音乐生成模型的训练方法和系统以及相关的存储介质和电子设备。这些方案不仅能使用户根据自己的创作思路来生成音乐,而且能有效提升生成音乐的质量。

在本发明实施例中,提供一种音乐生成方法,包括:

获取包含多个和弦的和弦进行,其中,每个和弦具有指定时长并包括多个音符;

将所述和弦进行的所述多个和弦分别转换为多个第一MIDI消息,其中每个所述第一MIDI消息包含表征对应和弦的和弦特征和表征所述对应和弦的所述多个音符的音符特征;

确定所述和弦进行的所述多个和弦的和弦排列顺序;

将所述多个第一MIDI消息及所述和弦排列顺序输入基于自然语言神经网络的音乐生成模型,依次生成与所述多个第一MIDI消息相对应且映射所述和弦排列顺序的多个第二MIDI消息,其中每个所述第二MIDI消息包含表征多个生成音符的音符特征,所述多个生成音符总体具有所述指定时长;

按生成顺序将所述多个第二MIDI消息拼接成生成音乐MIDI消息。

在一些实施例中,所述将所述和弦进行的所述多个和弦分别转换为多个第一MIDI消息,包括:

将每个所述和弦分别编码为以所述和弦特征为起点的第一MIDI消息。

在一些实施例中,所述依次生成与所述多个第一MIDI消息相对应且映射所述和弦排列顺序的多个第二MIDI消息,包括:

判断当前生成的第二MIDI消息的音乐时长是否达到所述指定时长;

在达到所述指定时长时,生成下一个第二MIDI消息。

在一些实施例中,所述判断当前生成的第二MIDI消息的音乐时长是否达到所述指定时长,包括:

判断当前生成的第二MIDI消息中的多个生成音符的音长之和是否达到所述指定时长。

在一些实施例中,所述判断当前生成的第二MIDI消息的音乐时长是否达到所述指定时长,包括:

判断自当前生成的第二MIDI消息中的第一个生成音符的起始时间点经过的时间是否达到所述指定时长。

在一些实施例中,所述获取包含多个和弦的和弦进行,包括:

接收用户输入的所述和弦进行以及由用户指定的每个和弦的指定时长。

在一些实施例中,所述获取包含多个和弦的和弦进行,包括:

随机生成所述多个和弦中的至少一个和弦。

在一些实施例中,所述音乐生成方法还包括:

将所述生成音乐MIDI消息转换成生成音乐音频。

在一些实施例中,所述音符特征包括音高、音长、音强、跳音、临时升降号中的一种或多种。

在一些实施例中,所述自然语言神经网络是RNN、Transformer、GPT、BERT或它们的变型。

在本发明实施例中,提供一种基于自然语言神经网络的音乐生成模型的训练方法,包括:

获取多个训练MIDI文件;

将所述多个训练MIDI文件转换为多个训练MIDI消息,其中每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征;

将所述多个训练MIDI消息输入基于自然语言神经网络的音乐生成模型;

依次生成多个输出MIDI消息,其中,每个输出MIDI消息包含表征多个输出音符的输出音符特征;

基于损失函数确定所述输出音符特征与真实值之间的差异,其中将所述训练音符特征作为所述真实值;

基于所述差异,迭代更新所述音乐生成模型的参数;

当所述差异达到收敛条件时,完成所述音乐生成模型的训练。

在一些实施例中,所述将所述多个训练MIDI文件转换为多个训练MIDI消息,其中每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征,包括:

将所述多个训练MIDI文件编码为多个以所述和弦特征为起点的训练MIDI消息。

在一些实施例中,所述基于自然语言神经网络的音乐生成模型的训练方法包括:

获取多个训练MIDI文件;

将所述多个训练MIDI文件转换为多个训练MIDI消息,其中每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征;

将所述多个训练MIDI消息分批输入所述基于自然语言神经网络的音乐生成模型;

针对同批次的训练MIDI消息,生成批量输出MIDI消息;

基于损失函数确定所述批量输出MIDI消息的输出音符特征与真实值之间的差异,其中将所述同批次的训练MIDI消息的训练音符特征作为所述真实值;

基于所述差异,迭代更新所述音乐生成模型的参数;

当所述差异达到收敛条件时,完成所述音乐生成模型的训练。

根据本发明实施例的音乐生成方法,无论用户是非专业用户还是专业用户,均能基于和弦进行作为创作思路、利用本发明实施例的音乐生成方法生成既满足所述和弦进行、而且整体上非常和谐、连贯的音乐作品。

特别地,作为解释而非限制地,本发明实施例的一些方案还可以具有以下的部分或全部技术效果:

1、从模型训练的角度看,在进行所述基于自然语言神经网络的音乐生成模型的训练时,由于在训练数据中引入了和弦特征并且将所述和弦特征与音符特征一起训练,可以强化和弦特征和音符特征彼此之间的时序相依性,让模型更好地学习到在和弦特征的影响下,音符与音符应如何组合搭配,从而为提升音乐生成的质量奠定基础。

2、从模型应用的角度看,基于如上所述的引入和弦特征的训练方式,在利用训练好的模型进行音乐生成时,能生成符合或者说在一定程度上符合所获取的和弦的音符。在用户给定和弦进行的情况下,能够在一定程度上强制所述音乐生成模型依照用户给定的各和弦生成多个音符的组合,从而使所生成的音乐的整体走向与用户给定的和弦进行相符,并基于此实现用户的创作思路。

与本发明实施例提供的技术方案相比,某些发明人知悉的技术提供的利用机器学习实现音乐生成的技术方案只使用了音乐的音符信息或仅额外地使用了全局音乐标签,例如作曲家、歌手或乐器,而并未使用能体现整体的、连贯的创作思路的高阶音乐信息、例如和弦进行。因此,所生成的音乐缺乏连贯性,容易偏离所使用的音乐标签规定的主题。所述音乐存在下述问题,即演奏到某一时刻突然换成演奏其他音乐作品的感觉。

与现有技术相比,利用本发明实施例提供的技术方案生成的音乐不仅能实现用户的创作思路,而且具有明显提升的整体连贯性,从而提升生成音乐的质量。

本发明实施例的其他可选特征和技术效果一部分在下文描述,一部分可通过阅读本文而明白。

附图说明

以下,结合附图来详细说明本发明的实施例,所示出的元件不受附图所显示的比例限制,附图中相同或相似的附图标记表示相同或类似的元件,其中:

图1示出了根据本发明实施例的音乐生成方法的示例性流程图;

图2示出了根据本发明实施例的音乐生成模型的训练方法的示例性流程图;

图3示出了实施根据本发明实施例的音乐生成方法的示意图;

图4示出了实施根据本发明实施例的音乐生成模型的训练方法的示意图;

图5示出了根据本发明实施例的音乐生成模型的训练系统的结构示意图;

图6示出了根据本发明实施例的音乐生成装置的结构示意图;

图7示出了能实施根据本发明实施例的方法的电子设备的示例性结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

在本发明实施例中,“网络”具有机器学习领域中的常规含义,例如神经网络(NN)、深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)、其他的机器学习或深度学习网络或它们的组合或修改。

在本发明实施例中,“模型”具有机器学习领域中的常规含义,例如模型可以是机器学习或深度学习模型,例如为包括上述网络或者由上述网络构成的机器学习或深度学习模型。

在本发明实施例中,“自然语言神经网络”泛指以自然语言的相互关联的时序性信息为处理对象的神经网络。

在本发明实施例中,“自回归(auto regression)”、“自回归模型(autoregressivemodel)”或“自回归训练”等表述泛指用自身做回归变量的过程,即利用同一变量、例如x的之前各期,亦即x

在本发明实施例中,“无监督学习(unsupervised learning)”泛指输入数据或训练样本不具有人工标注的标签(label)的机器学习。

在本发明实施例中,“损失函数”和“损失值”具有机器学习领域中的常规含义。

在本发明实施例中,“音乐生成”泛指通过神经网络或模型学习自动生成音乐。

在本发明实施例中,“MIDI(Musical Instrument Digital Interface)”是使用非常广泛的音乐标准格式,可称作“计算机能理解的乐谱”,可以说是代表音乐参数的标准化代码。所述音乐参数被统一表示成MIDI消息。

在本发明实施例中,“MIDI消息(MIDI messages)”是一种时序性信息/指令,用以表达、控制音乐,例如音高(note pitch)、音强(note velocity)、音长(note duration)、跳音、临时升降号等信息/指令。

在本发明实施例中,“和弦进行(chord progression)”作为一种高阶音乐信息指的是按顺序排列的多个和弦(chord)。例如,C:major→G:major→A:minor→F:major为常见的一组和弦进行。

作为示例而非限制性地,其他高阶音乐信息可以为旋律,包含多个乐段旋律;可以为曲式,包含主部、副部、连接部、结束部等;可以为音区,包含高音区、中音区、低音区等;也可以为节拍强弱,包含强拍、弱拍、次强拍等。

在本发明实施例中,“和弦”泛指一段时间的多个音符的组合,而不限于同一时间发音的多个音符。

本发明实施例提供一种音乐生成方法和装置、相关的音乐生成模型的训练方法和系统、以及存储介质和电子设备。所述方法、系统、装置/模型可以借助于一个或多个计算机实施。在一些实施例中,所述系统、装置/模型可以由软件、硬件或软硬件结合实现。在一些实施例中,该电子设备或计算机可以由本文所记载的计算机或其他可实现相应功能的电子设备实现。

如图1所示,在一个示例性实施例中,提供一种音乐生成方法。

如图1所示,本发明实施例的音乐生成方法,包括:

S110:获取包含多个和弦的和弦进行。

在一些实施例中,每个和弦具有指定时长并包括多个音符。

在一些实施例中,所述步骤S110,可包括:

A1:接收用户输入的所述和弦进行以及由用户指定的所述每个和弦的指定时长。

在一些实施例中,各和弦分别被用作音乐生成时选择音符的参考依据,并且依据相应和弦所生成的音乐具有所述指定时长。

在一些实施例中,用户可以一次性输入多个和弦。这可类似于,在使用翻译软件或平台翻译语句时,输入完一整句话后进行翻译。

在另一些实施例中,用户可以非一次性、而是分次地输入多个和弦。例如,可以先输入两个和弦,接着又输入一个和弦。这可类似地理解为,在使用翻译软件或平台翻译语句时,在依次输入的字或词的同时进行翻译。

在一些实施例中,所述步骤S110,也可包括:

A2:随机生成所述多个和弦中的至少一个和弦。

在一些实施例中,所述和弦进行的所述多个和弦可以均为随机生成的。

在一些实施例中,所述随机生成能以下述方式实现:可以从所述音乐生成模型、即所述训练好的自然语言神经网络的词汇表(vocabulary)或查找表(lookup table)的字符(token)中随机选出和弦。

在一些实施例中,所述随机生成能以下述方式实现:当所述音乐生成模型的预测结果为对应于和弦的字符时,确定下一个和弦。

在一些实施例中,所述和弦进行的所述多个和弦可以部分地随机生成,并且部分地由用户输入。

在一些实施例中,所述随机生成所述多个和弦中的至少一个和弦,可以包括:

判断是否存在用户输入的和弦;

若存在,则接收所述用户输入的和弦;

若不存在,则通过所述音乐生成模型随机生成至少一个和弦。

例如,在一些实施例中,用户先输入了一个或多个和弦以及每个和弦的指定时长,当根据用户输入的最后一个和弦所生成的音乐的时长达到相应指定时长后,通过所述音乐生成模型继续随机生成至少一个和弦并随机指定相应的指定时长或者指定默认的指定时长,直至用户再次输入和弦或者在满足其他条件时停止生成。

在一些实施例中,所述其他条件可以是指定的或默认的要生成音乐的总时长。

在一些实施例中,用户可以仅指定所述多个和弦的指定时长,而所述多个和弦可以通过所述音乐生成模型随机生成。

在一些实施例中,用户可以进指定所述多个和弦,而所述指定时长可以由所述音乐生成模型指定或也可以是默认的。

如图3所示,在一个示例性实施例中,示出了获取用户输入的和弦进行310:

|chord(C:major)---|chord(F:major)-chord(G:major)-|

在本实施例中,所述和弦进行310包含三个和弦,所述三个和弦分布于两个小节,每个小节有四拍。具体地,第一个和弦chord(C:major)具有四拍的指定时长,其从第一小节的第一拍持续到第四拍,第一小节结束;然后换到第二个和弦chord(F:major),其具有两拍的指定时长,从第二小节的第一拍持续到第二拍;然后换到第三个和弦chord(G:major),其具有两拍的指定时长,从第二小节的第三拍持续到第四拍,第二小节结束。

在本实施例中,每个和弦所具有的指定时长以拍数(beat)来表示。在此要说明的是,在音乐作品中,通常以拍号来表示每个小节的拍数以及每拍的时值。例如,4/4拍表示以四分音符为一拍并且每小节有四拍,3/8拍表示以八分音符为一拍并且每小节有三拍。那么,在曲谱规定1分钟60拍的情况下,1拍的长度就是1秒;以4/4拍为例,每小节有四拍、亦即4秒;以四分音符为一拍,亦即四分音符的长度是1秒,八分音符就是半拍且长度为半秒,以此类推。因此,通过音符持续的拍数或以比例表示的音符的时值、即几分音符,就能得知音符的音长。

在本实施例中,通过每个和弦的指定时长,限定了根据每个和弦要生成的音乐的时长。也可以说,限定了根据每个和弦要生成的多个生成音符的总体时长。

S120:将所述和弦进行的所述多个和弦分别转换为多个第一MIDI消息。

在一些实施例中,每个所述第一MIDI消息包含表征对应和弦的和弦特征和表征所述对应和弦的所述多个音符的音符特征。

在一些实施例中,所述和弦特征能表征对应和弦。

在一些实施例中,所述音符特征可包括音高(note pitch)、音长(noteduration)。

在一些实施例中,所述音符特征还可包括音强(note velocity)、跳音、临时升降号中的一种或多种。

在一些实施例中,所述音高的取值范围可介于0-127之间,并且表明具体要演奏哪个音符。

在一些实施例中,如上文所述地,所述音长可以通过拍数(例如1/4拍、1/2拍、1拍、2拍等)、几分音符(例如8分音符、4分音符、2分音符、全音符等)表示,并且表明这个音符要持续发声多久。

在一些实施例中,所述音强的取值范围可介于0-127之间,并且表明要以多强的力度演奏这个音符。

在一些实施例中,所述和弦特征和所述音符特征可以是经过向量化处理得到的特征向量。

在一些实施例中,所述和弦特征和所述音符特征可通过使用不同的特征工程进行编码得到。

在一些实施例中,在自然语言神经网络中,所述和弦特征和音符特征通过在所述自然语言神经网络的词汇表(vocabulary)中查找相应的和弦和音符并对其进行嵌入(embedding)得到。

在一些实施例中,所述步骤S120,包括:

B1:将每个所述和弦分别编码为以所述和弦特征为起点的第一MIDI消息。

在一些实施例中,在每个第一MIDI消息中,将相应和弦的和弦特征安排在起点,在所述和弦特征之后安排与其相关的多个音符的音符特征。

在一些实施例中,通过这种编码方式,在生成音乐时,能够以每个和弦的和弦特征和相应的音符特征为历史参考信息,生成符合该和弦的多个生成音符。

如图3所示,在一个示例性实施例中,按顺序分别在t

在本实施例中,在所述每个第一MIDI消息中,所述和弦特征位于起点。

在如图3所示的实施例中,通过转换上述三个和弦得到三个第一MIDI消息:

第一MIDI消息320:chord(C:major),chord duration(4beats),note pitch(…),note duration(…),note velocity(…),……

第一MIDI消息321:chord(F:major),chord duration(2beats),note pitch(…),note duration(…),note velocity(…),……

第一MIDI消息322:chord(G:major),chord duration(2beats),note pitch(…),note duration(…),note velocity(…),……

其中,“chord duration”表示和弦时长,也就是所获取的各和弦的指定时长。

在如图3所示的实施例中,所述三个和弦的指定时长是由用户指定的。

S130:确定所述和弦进行的所述多个和弦的和弦排列顺序。

在一些实施例中,所述和弦排列顺序在获取所述多个和弦时即可获得。作为解释而非限制性地,所获取的多个和弦之间的前后关联关系即为所述和弦排列顺序。

在图3所示的实施例中,根据所获取的用户输入的和弦进行310,确定chord(C:major)为第一个和弦、chord(F:major)为第二个和弦、chord(G:major)为第三个和弦。

S140:将所述多个第一MIDI消息及所述和弦排列顺序输入基于自然语言神经网络的音乐生成模型,依次生成与所述多个第一MIDI消息相对应且映射所述和弦排列顺序的多个第二MIDI消息。

在一些实施例中,每个所述第二MIDI消息包含表征多个生成音符的音符特征。

在一些实施例中,所述音乐生成方法利用基于自然语言神经网络的音乐生成模型实现。如前所述,在本发明实施例中,自然语言神经网络泛指以自然语言的前后相互关联的时序性信息为处理对象的神经网络。例如,在以自然语言为处理对象的情况下,自然语言神经网络的任务之一是根据前文预测下一个可能出现的字词或者根据第一语言的字词翻译第二语言的字词。而在本发明实施例中,借助于自然语言神经网络对所述前后相互关联的时序性信息进行处理的特性,实现基于输入的第一MIDI消息生成或预测对应性的第二MIDI消息。在一些实施例中,利用所述自然语言神经网络能根据输入的一个或多个音符预测后续可能出现的音符。

在一些实施例中,所述音乐生成模型可以是以自回归方式训练好的自然语言神经网络。

在一些实施例中,所述自然语言神经网络可以是RNN、Transformer、GPT、BERT或它们的变型。在一些实施例中,所述自然语言神经网络为RNN,包含输入层、隐层和输出层。基于输入序列中当期输入的输出不仅依赖于所述当期输入及其权重,还依赖于上期输入的隐层状态及其权重。所述输入序列中每期输入的隐层状态包含了对之前各期输入的记忆。因此,基于每期输入的输出都与之前各期输入相互关联。

在一些实施例中,所述变型可以是Transformer-XL。

在一些实施例中,所述变型可以是GRU、LSTM、GPT-2或GPT-3。

在一些实施例中,所述自然语言神经网络可以是CNN或其变型。

如前述的本发明实施例中,借助于输入的第一MIDI消息对应预测或生成第二MIDI消息。如前所述地,借助于输入的第一MIDI消息、尤其是其中的音符特征,能对应地产生第二MIDI消息中相协调的生成音符。更进一步地,在本发明实施例中,借助于输入的第一MIDI消息中的和弦特征,尤其是借助于被编码在起点的和弦特征,产生了和弦层级的相对高阶的对应性。

在一些实施例中,所述和弦层级的对应性可以理解为,基于所述和弦特征、并且尤其基于将和弦特征安排在第一MIDI消息的起点的编码方式,在生成相对应的第二MIDI消息时,总能以该和弦特征作为输入特征来用于音乐生成模型处理预测或生成各生成音符,由此第二MIDI消息的和弦因此与所述第一MIDI消息的和弦特征所表征的和弦具有对应性。

在一些实施例中,第二MIDI消息的和弦对应于第一MIDI消息的和弦,并不意味着它们的和弦是相同的。由此,在一些实施例中,所述第二MIDI消息的和弦是与第一MIDI消息的和弦不同的和弦,而只是代表风格相似或匹配的多个音符的组合搭配的和弦。作为解释而非限制地,这如前所述可以是由所述相对高阶的和弦特征输入到所述自然语言神经网络中所带来的。

在一些实施例中,在正在生成当前的第二MIDI消息时,即使所述自然语言神经网络认为选择与所述对应和弦相关的音符特征的概率很低,但由于受到所述对应和弦的约束,依然选择所述音符特征,从而确保生成的音乐在一定程度上符合所述对应和弦。

在一些实施例中,各所述第二MIDI消息的多个生成音符的音符特征无需与相对应的第一MIDI消息的多个音符的音符特征完全相同。在此,在如前述的一些实施例中,各所述第二MIDI消息的多个生成音符的各音长可以与相对应的第一MIDI消息的多个音符的各音长相同。

然而,在进一步的实施例中,各所述第二MIDI消息的所述多个生成音符总体具有相对应的第一MIDI消息的和弦的指定时长。

在此,在如前述的一些实施例中,各所述第二MIDI消息的多个生成音符的数量可以与相对应的第一MIDI消息的多个音符的数量相同,也可以不同,只要其总时长相等。

在此,在如前述的一些实施例中,各所述第二MIDI消息的多个生成音符的各音长可以与相对应的第一MIDI消息的多个音符的各音长相同,也可以不同,只要其总时长相等。

如前所述,在本发明实施例中,生成的第二MIDI消息还映射和弦排列顺序。在一些实施例中,所述多个第二MIDI消息映射于所述和弦排列顺序可以理解为,当前正在生成的第二MIDI消息不仅依赖于当前的对应和弦,而且受到按所述和弦排列顺序排在该对应和弦之前的各前期和弦排序的约束。

在一些实施例中,所述映射和弦排列顺序可以呈现为,各所述第二MIDI消息的生成音符之间的跳变满足或基本上满足对应和弦的要求。进而,所生成的音乐整体走向与由各和弦按照所述和弦排列顺序组成的和弦进行的走向相符,从而确保所生成的音乐的整体风格连贯并且遵循用户的创作思路。作为解释而非限制地,所述和弦排列顺序作为输入、参数、影响或变量被用于所述自然语言神经网络的处理,由此产生了受和弦走向等更高阶信息约束的第二MIDI消息。在此,第二MIDI消息同时受高阶的对应和弦特征和更高阶的和弦走向特征的约束,相比于所知的一些基于仅仅是音符预测的音乐生成具有更吻合输入和弦进行风格的生成音乐。

在此,本领域技术人员将明白,在这些实施例中,所述第二MIDI消息映射的和弦排列顺序总体涉及由所述第二MIDI消息对应的第一MIDI消息(和弦)之前和弦排序,而不包括之后的和弦排序。

相比之下,作为解释而非限制性地,某些发明人所知的技术仅根据音符信息进行音乐生成。由于音符信息是零散的、彼此间缺乏关联性,因此所生成的各音符彼此间缺乏关联性,导致所生成的音乐缺乏整体风格、整体走向是混乱的。

相比之下,作为解释而非限制性地,某些发明人所知的技术在上述音符信息基础上加入全局音乐标签进行音乐生成,所述全局音乐标签例如为作曲家、歌手或乐器。由于所述全局音乐标签是非常概括性的音乐信息,这种信息对于音乐整体风格或整体走向的指向性非常弱。例如,一个作曲家很可能创作多种风格的音乐作品。又例如,一种乐器可以演奏各种风格的音乐作品。因此,根据这种全局音乐标签生成的各音符间的跳变很容易偏离期望,导致所生成的音乐整体风格不连贯、例如风格突变。

在如图3所示的实施例中,按照和弦进行310的三个和弦的排列顺序,首先在t

在如图3所示的实施例中,若所述基于自然语言神经网络的音乐生成模型330为RNN,那么在预测或生成第二个第二MIDI消息341的生成音符时,不仅受到所映射的第二个和弦chord(F:major)的约束,而且也受到在该和弦之前的第一个和弦chord(C:major)的约束。同理地,在预测或生成第三个第二MIDI消息342的生成音符时,不仅受到所映射的第三个和弦chord(G:major)的约束,而且也受到排在其之前的第一个和弦chord(C:major)和第二个和弦chord(F:major)所形成的和弦顺序的约束。因此,依次生成的三个第二MIDI消息340、341、342能够反映出所述三个和弦的走向,亦即这三个和弦的排列顺序。

在图3所示的实施例中,所述第二MIDI消息340的和弦chord(A:minor)与相对应的第一MIDI消息320的和弦chord(C:major)相近并包括相关的多个生成音符:

第二MIDI消息340:chord(A:minor),note pitch(…),note duration(…),notevelocity(…),……。

在图3所示的实施例中,所述第二MIDI消息341、342的和弦分别与相对应的第一MIDI消息321、322的和弦chord(F:major)、chord(G:major)相同并分别包括相关的多个生成音符:

第二MIDI消息341:chord(F:major),note pitch(…),note duration(…),notevelocity(…),……;

第二MIDI消息342:chord(G:major),note pitch(…),note duration(…),notevelocity(…),……。

如前所述,在本发明实施例中,每个第二MIDI消息的多个生成音符的总体时长等于对应第一MIDI消息的和弦的指定时长。由此,在这些实施例中,在当前第二MIDI消息生成的音符的时长达到所述指定时长时,则相应地生成下一个第二MIDI消息。

由此,在一些具体实施例中,所述依次生成与所述多个第一MIDI消息相对应且映射所述和弦排列顺序的多个第二MIDI消息,可包括:

C1:判断当前生成的第二MIDI消息的音乐时长是否达到所述指定时长;

C2:在达到所述指定时长时,生成下一个第二MIDI消息。

在一些实施例中,可以采用多种判断是否达到指定时长的手段。

例如,在一些实施例中,所述步骤C1,可包括:

D1:判断当前生成的第二MIDI消息中的多个生成音符的音长之和是否达到所述指定时长。

在一些实施例中,在MIDI消息中,所述生成音符的音长可以通过音符(note)的音长(note duration)来表示。

在一些实施例中,在MIDI消息中,所述生成音符的音长可以通过字符来表示。

或者,在一些实施例中,所述步骤C1,可包括:

D2:判断自当前生成的第二MIDI消息中的第一个生成音符的起始时间点经过的时间是否达到所述指定时长。

在该实施例中,通过确定两个时间点之间的时间间隔来判断是否达到所述指定时长。在这些实施例中,两个时间点之间经过的时间间隔可通过时间戳和计时器来获知。

S150:按生成顺序将所述多个第二MIDI消息拼接成生成音乐MIDI消息。

如图3所示,在一个示例性实施例中,将上述先后生成的三个第二MIDI消息340、341、342拼接为生成音乐MIDI消息350。

在一些实施例中,所述步骤S150还可包括:

E1:将所述生成音乐MIDI消息转换成生成音乐音频。

在一些实施例中,所述生成音乐音频可以是WAV格式。

在一些实施例中,所述生成音乐音频可以是MP3格式。

在一些实施例中,上述转换可通过现有的各种转换软件实现,例如SynthFont、DAW等。

在一些实施例中,所述步骤S150也可包括:

E2:将所述生成音乐MIDI消息转换为MIDI文件。

进而,可以通过现有的各种MIDI播放器、例如MIDI Player播放,从而使用户听到根据其给出的和弦进行生成的音乐作品。

接下来,介绍在上文中提到的基于自然语言神经网络的音乐生成模型的训练方法。

在一些实施例中,所述训练方法为自回归训练。关于自回归训练已在上文中介绍,在此不再赘述。

在一些实施例中,所述自然语言神经网络可以是RNN、Transformer、GPT、BERT或它们的变型。

在一些实施例中,所述变型可以是Transformer-XL。

在一些实施例中,所述变型可以是GRU、LSTM、GPT-2或GPT-3。

在一些实施例中,所述音乐生成模型可以是CNN或其变型。

在一些实施例中,在所述自然语言神经网络的训练过程中,和弦的和弦特征、音符的音符特征均作为所述自然语言神经网络的字符(token)一起训练。那么,经过训练能得到包含所述和弦特征和音符特征的词汇表(vocabulary),其能体现出所述和弦特征与音符特征之间的相关性。

在一些实施例中,所述音符特征可包括音高(note pitch)、音长(noteduration)。

如图2所示,本发明实施例的基于自然语言神经网络的音乐生成模型的训练方法,包括:

S210:获取多个训练MIDI文件。

如图4所示,在一个示例性实施例中,获取多个训练MIDI文件410。

在一些实施例中,所述多个训练MIDI文件可以是一次性获取的。

在一些实施例中,所述多个训练MIDI文件可以是分批获取的。

在一些实施例中,所述多个训练MIDI文件可涉及各种音乐作品,不受限于音乐流派、乐器、作曲家、歌手等。

作为解释而非限制性地,例如使用总长约50小时的训练MIDI文件。

S220:将所述多个训练MIDI文件转换为多个训练MIDI消息。

在一些实施例中,每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征。

如图4所示,在一个示例性实施例中,将所述训练MIDI文件410转换为多个训练MIDI消息420(在图中仅示出一个),每个训练MIDI消息420包含和弦特征421和表征多个训练音符的训练音符特征422。

在图4所示的实施例中,所述多个训练音符示意性地以五线谱的方式部分示出。

在一些实施例中,所述步骤S220可包括:

F1:将所述多个训练MIDI文件编码为多个以所述和弦特征为起点的训练MIDI消息。

在图4所示的实施例中,所述训练MIDI消息420以和弦特征421为起点,在所述和弦特征421之后安排表征所述多个训练音符的训练音符特征422。

在一些实施例中,所述和弦特征可以是人工辨识出的。

在一些实施例中,所述和弦特征可以使用其它方法得到,例如通过算法模型学习得到。

S230:将所述多个训练MIDI消息输入基于自然语言神经网络的音乐生成模型;

S240:依次生成多个输出MIDI消息。

在一些实施例中,每个输出MIDI消息包含表征多个输出音符的输出音符特征。

如图4所示,在一个示例性实施例中,将所述训练MIDI消息420输入所述基于自然语言神经网络的音乐生成模型430,获得输出MIDI消息440,其包含表征多个输出音符的输出音符特征。

在图4所示的实施例中,由于所述训练MIDI消息420以和弦特征421为起点,因此在预测每个所述输出音符特征时,都能够将位于起点的和弦特征421作为历史信息、参考所述和弦特征421来预测可能出现的音符特征作为输出音符特征。通过这种训练,可以强化和弦特征与音符特征之间的相依性。如此,使得所述音乐生成模型可以更好地学习到在相应和弦的影响下,音符与音符之间的组合搭配,让最终的音乐生成质量提升。

S250:基于损失函数确定所述输出音符特征与真实值之间的差异。

在一些实施例中,将所述训练音符特征作为真实值。

在一些实施例中,这种以输入作为真实值的训练或者说基于输入预测输入自身的训练为自回归训练。关于自回归训练的定义在上文中已描述,在此不再赘述。

在一些实施例中,由于以所述训练MIDI消息的训练音符特征作为真实值,因此所述训练MIDI消息不具有人工标注的标签,所述训练过程为无监督学习。

在一些实施例中,所述损失函数可以选自交叉熵损失函数、负对数似然损失函数和指数损失函数中任一种。

如图4所示,在一个示例性实施例中,将所述训练MIDI消息420的训练音符特征422作为真实值,基于损失函数450,确定所述输出MIDI消息440的输出音符特征与所述真实值之间的差异。

在图4所示的实施例中,所述损失函数450可以是交叉熵损失函数。

S260:基于所述差异,迭代更新所述音乐生成模型的参数。

在一些实施例中,所述步骤S260还可包括:

G1:更新所述音乐生成模型的包含所述和弦特征和音符特征的词汇表。

S270:当所述差异达到收敛条件时,完成所述音乐生成模型的训练。

在一些实施例中,可以设置预定的收敛条件。

在一些实施例中,所述收敛条件可以是,所述差异达到预设的最小差异。在另一些实施例中,也可设置其他终止或中断条件作为完成训练的迭代终止条件,如观察到波动变化。这不构成对发明的限制。

在一些实施例中,所述步骤S220、S230、S240可分别包括:

H1:将所述多个训练MIDI消息分批输入所述基于自然语言神经网络的音乐生成模型;

H2:针对同批次的训练MIDI消息,生成批量输出MIDI消息;

H3:基于损失函数确定所述批量输出MIDI消息的输出音符特征与真实值之间的差异,其中将所述同批次的训练MIDI消息的训练音符特征作为真实值。

在一些实施例中,所述损失函数可以选自交叉熵损失函数、负对数似然损失函数和指数损失函数中任一种。

在一些实施例中,可以设置预定的收敛条件。

在一些实施例中,所述收敛条件可以为所述差异达到预设的最小差异。在另一些实施例中,也可设置其他终止或中断条件作为完成训练的迭代终止条件,如预设的批次(batches)或遍历次数(epochs)或观察到波动变化等。这不构成对发明的限制。

在一些实施例中,提供一种音乐生成模型的训练系统,包括:获取单元,配置成获取多个训练MIDI文件;转换单元,配置成将所述多个训练MIDI文件转换为多个训练MIDI消息,其中每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征;输入单元,配置成将所述多个训练MIDI消息输入基于自然语言神经网络的音乐生成模型;输出单元,配置成依次生成多个输出MIDI消息,其中,每个输出MIDI消息包含表征多个输出音符的输出音符特征;确定单元,配置成基于损失函数确定所述输出音符特征与真实值之间的差异,其中将所述训练音符特征作为真实值;迭代单元,配置成基于所述差异,迭代更新所述音乐生成模型的参数;迭代终止单元,配置成当当所述差异达到收敛条件时,完成所述音乐生成模型的训练。

在本发明实施例中,如图5所示,示出一种音乐生成模型的训练系统500。

在一些实施例中,所述音乐生成模型的训练系统500包括获取单元510,配置成获取多个训练MIDI文件。

在一些实施例中,所述音乐生成模型的训练系统500包括转换单元520,配置成将所述多个训练MIDI文件转换为多个训练MIDI消息,其中每个训练MIDI消息包含和弦特征和表征多个训练音符的训练音符特征。

在一些实施例中,所述音乐生成模型的训练系统500包括输入单元530,配置成将所述多个训练MIDI消息输入基于自然语言神经网络的音乐生成模型。

在一些实施例中,所述音乐生成模型的训练系统500包括输出单元540,配置成依次生成多个输出MIDI消息,其中,每个输出MIDI消息包含表征多个输出音符的输出音符特征。

在一些实施例中,所述音乐生成模型的训练系统500包括确定单元550,配置成基于损失函数确定所述输出音符特征与真实值之间的差异,其中将所述训练音符特征作为真实值。

在一些实施例中,所述音乐生成模型的训练系统500包括迭代单元560,配置成基于所述差异,迭代更新所述音乐生成模型的参数。

在一些实施例中,所述音乐生成模型的训练系统500包括迭代终止单元570,配置成当所述差异达到收敛条件时,完成所述音乐生成模型的训练。

在一些实施例中,所述训练系统可以结合任一实施例的训练方法的特征,反之亦然,在此不赘述。

在一些实施例中,所述训练系统可以部分或全部地由各种机器学习平台/框架提供或实现。类似地,在一些实施例中,训练方法可以部分或全部地由各种机器学习平台实现。

在一些实施例中,所述机器学习平台/框架包括但不限于PyTorch、TensorFlow、Caffe、Keras、Amazon Machine Learning、Azure Machine Learning Studio等。

在本发明实施例中,如图6所示,示出一种音乐生成装置600,其包括获取模块610,配置成获取包含多个和弦的和弦进行,其中,每个和弦具有指定时长并包括多个音符;转换模块620,配置成将所述和弦进行的所述多个和弦分别转换为多个第一MIDI消息,其中每个所述第一MIDI消息包含表征对应和弦的和弦特征和表征所述对应和弦的所述多个音符的音符特征;确定模块630,配置成确定所述和弦进行的所述多个和弦的和弦排列顺序;输入模块640,配置成将所述多个第一MIDI消息及所述和弦排列顺序输入基于自然语言神经网络的音乐生成模型;音乐生成模型650,配置成依次生成与所述多个第一MIDI消息相对应且映射所述和弦排列顺序的多个第二MIDI消息,其中每个所述第二MIDI消息包含表征多个生成音符的音符特征,所述多个生成音符总体具有所述指定时长;拼接模块660,配置成按生成顺序将所述多个第二MIDI消息拼接成生成音乐MIDI消息。

在一些实施例中,所述音乐生成装置可以结合任一实施例的训练方法和系统以及音乐生成方法的特征,反之亦然,在此不赘述。

在本发明实施例中,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序配置成被运行时执行任一本发明实施例的音乐生成模型的训练方法。

在本发明实施例中,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序配置成被运行时执行任一本发明实施例的音乐生成方法。

在本发明实施例中,提供一种电子设备,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时执行任一本发明实施例的音乐生成模型的训练方法。

在本发明实施例中,提供一种电子设备,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时执行任一本发明实施例的音乐生成方法。

图7示出了一种可以实施本发明实施例的方法或实现本发明实施例的电子设备700的示意图,在一些实施例中可以包括比图示更多或更少的电子设备。在一些实施例中,可以利用单个或多个电子设备实施。在一些实施例中,可以利用云端或分布式的电子设备实施。

如图7所示,电子设备700包括中央处理器(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序和/或数据或者从存储部分708加载到随机访问存储器(RAM)703中的程序和/或数据而执行各种适当的操作和处理。CPU 701可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,CPU 701可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、神经网络处理器(NPU)、数字信号处理器(DSP)等等。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

上述处理器与存储器共同用于执行存储在存储器中的程序,所述程序被计算机执行时能够实现上述各实施例描述的音乐生成模型的训练方法、音乐生成方法的步骤或功能。

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

上述实施例阐明的系统、装置、模块或单元,可以由计算机或其关联部件实现。计算机例如可以为移动终端、智能电话、个人计算机、膝上型计算机、车载人机交互设备、个人数字助理、媒体播放器、导航设备、游戏控制台、平板电脑、可穿戴设备、智能电视、物联网系统、智能家居、工业计算机、服务器或者其组合。

在优选的实施例中,所述训练系统和方法可以至少部分或全部在云端的机器学习平台或者部分或全部地在自搭建的机器学习系统、如GPU阵列中实施或实现。

在优选的实施例中,所述音乐生成装置和方法可以在服务器、例如云端或分布式服务器中实施或实现。在优选实施例中,还可以借助服务器,基于生成结果向中断推送或发送数据或内容。

在本发明的实施例的存储介质包括永久性和非永久性、可移动和非可移动的可以由任何方法或技术来实现信息存储的物品。存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

在本发明的实施例的方法、程序、系统、装置等,可以在单个或多个连网的计算机中执行或实现,也可以在分布式计算环境中实践。在本说明书实施例中,在这些分布式计算环境中,可以由通过通信网络而被连接的远程处理设备来执行任务。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本领域技术人员可想到,上述实施例阐明的功能模块/单元或控制器以及相关方法步骤的实现,可以用软件、硬件和软/硬件结合的方式实现。

除非明确指出,根据本发明实施例记载的方法、程序的动作或步骤并不必须按照特定的顺序来执行并且仍然可以实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本文中,针对本发明的多个实施例进行了描述,但为简明起见,各实施例的描述并不是详尽的,各个实施例之间相同或相似的特征或部分可能会被省略。在本文中,“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”意指适用于根据本发明的至少一个实施例或示例中,而非所有实施例。上述术语并不必然意味着指代相同的实施例或示例。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

已参考上述实施例具体示出并描述了本发明的示例性系统及方法,其仅为实施本系统及方法的最佳模式的示例。本领域的技术人员可以理解的是可以在实施本系统及/或方法时对这里描述的系统及方法的实施例做各种改变而不脱离界定在所附权利要求中的本发明的精神及范围。

相关技术
  • 音乐生成方法及音乐生成模型的训练方法
  • 基于消息传递网络的音乐图结构信息提取与生成模型、构建方法及应用
技术分类

06120112963785