多音轨音乐生成方法及装置与流程



1.本发明涉及人工智能技术领域,尤其涉及一种多音轨音乐生成方法及装置。


背景技术:



2.音乐人工智能领域进入深度学习时代,其中最引人注目的主题之一就是自动作曲。随着深度学习的大潮,自动作曲技术取得了很大的进展,但也存在着问题。
3.如rnn(recurrent neural network,循环神经网络)、lstm(long short term memory,长短期记忆)、gru(gate recurrent unit,门循环单元)和transformer的序列模型用于nlp(natural language processing,自然语言处理)任务时只能处理单轨,但是音乐(特别是多乐器音乐)通常是多音轨的序列。之前的很多作品都忽略了这个问题,只是用一种乐器来创作音乐。
4.对于生成多音轨音乐,有两种解决方案。第一种是设计一种新的网络架构,允许模型处理多个序列之间的相关信息,比如musegan(multi-track sequential generative adversarial networks,多轨序列生成对抗网络)模型,但是musegan模型生成的作品乐器种类很少且固定,长序列生成效果差;第二种是设计合并策略组合成一个单一的序列,如musicbert(music bidirectional encoder representations from transformers,基于transformers的音乐双向编码器表示)和popmag(pop music accompaniment generation,流行音乐伴奏生成),musicbert或popmag选择的当前合并方法没有适合音乐生成任务,大多缺乏对音乐理论的考虑。


技术实现要素:



5.针对现有技术存在的问题,本发明提供一种多音轨音乐生成方法及装置。
6.本发明提供一种多音轨音乐生成方法,包括:
7.对复合词结构进行修改;
8.利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;
9.将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
10.可选地,所述对复合词结构进行修改,包括:
11.采用不均匀分割方式和预设编码方式对所述复合词结构中节拍的位置信息进行修改。
12.可选地,所述对复合词结构进行修改,包括:
13.采用十二平均律对所述复合词结构中音高的表示进行修改。
14.可选地,所述生成复合词序列之后,还包括:
15.将每一小节内的单乐器序列进行合并,获取每一小节的多乐器表示。
16.可选地,所述训练好的改进transformer神经网络模型是通过以下训练步骤获取
的:
17.对所述改进transformer神经网络模型进行预训练,获取预训练好的改进transformer神经网络模型;
18.利用筛选出的midi文件数据对所述预训练好的改进transformer神经网络模型进行微调,获取训练好的改进transformer神经网络模型。
19.可选地,所述改进transformer神经网络模型是在transformer神经网络模型的基础上引入时间偏移机制、旋转位置编码和r-drop策略获取的。
20.本发明还提供一种多音轨音乐生成装置,包括:
21.修改模块,用于对复合词结构进行修改;
22.生成模块,用于利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;
23.获取模块,用于将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
24.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述中的任一项所述多音轨音乐生成方法。
25.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述中的任一项所述多音轨音乐生成方法。
26.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述中的任一项所述多音轨音乐生成方法。
27.本发明提供的多音轨音乐生成方法及装置,通过对复合词结构的修改,将乐器属性加入复合词序列,有利于多音轨音乐的生成,利用改进的transformer神经网络模型生成效果性更好的多音轨音乐。
附图说明
28.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1是本发明提供的多音轨音乐生成方法的流程示意图之一;
30.图2是本发明提供的多音轨音乐生成方法的流程示意图之二;
31.图3是本发明提供的多音轨音乐生成装置的结构示意图;
32.图4是本发明提供的电子设备的结构示意图。
具体实施方式
33.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.图1是本发明提供的多音轨音乐生成方法的流程示意图之一,如图1所示,本发明提供一种多音轨音乐生成方法,该方法包括:
35.步骤101,对复合词结构进行修改。
36.具体地,由于现有技术中的复合词(compound word)结构存在不支持三连音、生成的音符之间数理关系不强和只能生成单音轨音乐等问题,因此,需要对复合词结构进行修改,以便更好地利于多音轨音乐的生成。
37.为了支持三连音的表示,以及缓解数据量不足和分布不均衡,需要对节拍的位置信息进行修改。
38.可选地,所述对复合词结构进行修改,包括:
39.采用不均匀分割方式和预设编码方式对所述复合词结构中节拍的位置信息进行修改。
40.具体地,采用不均匀分割方式,例如1/2,1/3,2/3,1/4等分割方式对每一小节进行节拍分割,从而获取每一小节中多个不均匀节拍。不均匀分割方式可以根据常用词元的出现位置进行选取。
41.预设编码方式可以是按顺序编号,例如,将小节中的第一个节拍编码为1,将小节中第一个节拍编码为2,依次类推,完成小节中的每一个节拍的编码。
42.根据分割情况和编码情况,获取节拍在每一小节的位置信息。
43.通过不均匀切割可以使节拍时长达到32分音符和24分音符,而不是16分音符,从而提高了复合词结构的泛化性和鲁棒性。
44.为了防止音高出现长尾分布,增强音符与音符之间的数理关系,需要对音高表示方法进行修改。
45.可选地,所述对复合词结构进行修改,包括:
46.采用十二平均律对所述复合词结构中音高的表示进行修改。
47.具体地,十二平均律是将一组音分成十二个半音音程的律制,采用十二平均律来进行音高的表示。
48.在音高的表示中引入十二个平均律,比起简单地嵌入音高,这有助于更好地理解音高之间的关系。
49.步骤102,利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列。
50.具体地,midi(musical instrument digital interface,音乐设备数字接口)是电子乐器之间以及电子乐器与电脑之间的统一交流协议。midi文件是一种描述性的音乐语言,将所要演奏的乐曲信息用字节进行描述。
51.利用python第三方库miditooklit库对midi文件数据进行处理,分别映射至节拍ticks_per_beat(每拍微拍数),max_tick(整曲微拍数),拍速tempo_changes(节奏变化),time_signature_changes(拍号变化),音高key_signature_changes(调号变化),lyrics(歌词),乐器种类instruments(乐器)几个列表中,并将其转换为二维张量的形式。
52.根据上述列表中的二维张量获取不同的词元(token),不同的词元属于不同的类型,不同类型的词元有着不同的属性。获取不同类型的词元之后,根据修改后的复合词结构,生成复合词序列。复合词序列包括复合词类型(type)、和弦(chord)、节拍(bar-beat)、
音高(pitch)、时长(duration)和乐器(instrument)的词元。
53.考虑实际情况,拍速的变化序列对音乐来说并没有多大影响,全局序列就足够了,而且随意速度也会干扰模型。另外,从音乐创作过程的角度来看,拍速是演奏者控制的责任。因此,只需在复合词序列开始时添加全局平均标记。复合词序列不会学习生成速度词元(tempo token),但全局速度(tempo)仍然会帮助生成整个作品的生成。
54.相比于传统的复合词序列,在复合词序列中加入了instrument属性,用于提示多音轨音乐的生成,也就是多乐器音乐的生成。将乐器分为不同的类型,促成生成音乐的稳定性。
55.为了适配复合词序列中加入的instrument属性以及多音轨音乐的生成,需要进行小节级别的合并操作。
56.可选地,所述生成复合词序列之后,还包括:
57.将每一小节内的单乐器序列进行合并,获取每一小节的多乐器表示。
58.具体地,以x为乐曲,以s为乐曲x对应的符号序列。
59.对于x的第i小节xi,可以得到一组单乐器的符号序列,即{s(1,i),s(2,i)、、、s(i,i)},其中,i表示乐器的数量。
60.在每个单乐器序列的前面添加“乐器类型”标记,“乐器类型”标记只包含乐器信息,而其他信息元素则填充“[mask]”。对于单乐器序列的其他note(音符),乐器类型将填写“[continue]”。
[0061]
将单乐器序列进行合并之后,小节内有多个合并后的单乐器序列,将属于这一小节的所有单乐器序列进行拼接,从而得到了第i小节的一个多乐器表示。
[0062]
继承compound word的工作,将《bar》标记放在每个小节序列的前面,表示这个小节的开始。然后简单地按时间顺序拼接一个小节内的所有单乐器序列。
[0063]
通过将每一个小节内的单乐器序列进行合并,适配了复合词序列中加入的instrument属性,有利于多音轨音乐的生成。
[0064]
步骤103,将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
[0065]
具体地,图2是本发明提供的多音轨音乐生成方法的流程示意图之二,如图2所示,将利用midi文件数据生成的复合词序列输入训练好的改进transformer神经网络模型,按照复合词序列中词元的类型,迭代地生成下一个复合词序列中的复合词类型、和弦、节拍、音高、时长和乐器。
[0066]
利用线性变换(linear transformation)将复合词序列对应的向量映射到改进的transformer神经网络模型的输入维度上。将该向量和此前迭代过程中的语境信息,一起输入到基于改进的transformer神经网络中后,会得到一个维度与输入一致的特征向量,然后将该特征向量输入分类部分。
[0067]
分类部分可理解为检索下一个最优的生成结果并将其作为输出。这里由多个线性层(linear&softmax)组成,首先根据特征向量判断下一个音符的复合词类型,然后将复合词类型信息映射为对应的向量与输入分类部分的特征向量进行拼接,并使用一个线性变换,使拼接向量变回输入的维度。然后,利用这个整合了复合词类型信息的特征向量,使用五个线性变换,分别预测乐器、时长、音高、节拍、和弦等信息,从而生成下一个音符。
block中,使用了残差链接和正则化机制,来提高模型梯度传播的稳定性,和特征向量数值的稳定性。
[0082]
通过将时间偏移机制、旋转位置编码和r-drop策略引入transformer神经网络模型构成改进transformer神经网络模型,提高了模型的性能,有利于多音轨音乐的生成。
[0083]
本发明提供的多音轨音乐生成方法,通过对复合词结构的修改,将乐器属性加入复合词序列,有利于多音轨音乐的生成,利用改进的transformer神经网络模型生成效果性更好的多音轨音乐。
[0084]
本发明的音乐生成结果具有可解释性,模型能够分析音乐的大段落特征如结构和重复等,也能提取并利用具有相似特征的小段落音乐特征如材料和动机等。传统的模型在rtx3080上需要30-60s才可生成一首约180s左右的曲子,失败率在90%以上。利用本发明的方法可以在一台普通的家用电脑上仅需3s便可生成同样长度的曲子,失败率仅10%以下。
[0085]
表1是消融实验的数据表,表1中通过困惑度和准度两个指标对所有的改进的有效性进行验证,困惑度越低代表音乐流畅度越高,准度越高代表语义更丰富,通过消融实验也验证了本发明的方法中每个设计的有效性。
[0086]
表1消融实验的数据表
[0087][0088]
下面对本发明提供的多音轨音乐生成方法装置进行描述,下文描述的多音轨音乐生成方法装置与上文描述的多音轨音乐生成方法可相互对应参照。
[0089]
图3是本发明提供的多音轨音乐生成装置的结构示意图,如图3所示,本发明还提供一种多音轨音乐生成装置,包括:修改模块301、生成模块302和获取模块303,其中:
[0090]
修改模块301,用于对复合词结构进行修改;
[0091]
生成模块302,用于利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;
[0092]
获取模块303,用于将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
[0093]
可选地,所述修改模块还用于采用不均匀分割方式和预设编码方式对所述复合词结构中节拍的位置信息进行修改。
[0094]
可选地,所述修改模块还用于采用十二平均律对所述复合词结构中音高的表示进行修改。
[0095]
可选地,所述装置还包括合并模块,所述合并模块用于将每一小节内的单乐器序列进行合并,获取每一小节的多乐器表示。
[0096]
可选地,所述装置还包括训练模块,用于对所述改进transformer神经网络模型进行预训练,获取预训练好的改进transformer神经网络模型;
[0097]
利用筛选出的midi文件数据对所述预训练好的改进transformer神经网络模型进行微调,获取训练好的改进transformer神经网络模型。
[0098]
可选地,所述改进transformer神经网络模型是在transformer神经网络模型的基础上引入时间偏移机制、旋转位置编码和r-drop策略获取的。
[0099]
具体来说,本技术实施例提供的多音轨音乐生成装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
[0100]
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行多音轨音乐生成方法,该方法包括:对复合词结构进行修改;利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
[0101]
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0102]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的多音轨音乐生成方法,该方法包括:对复合词结构进行修改;利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包
括乐器属性的词元序列;将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
[0103]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的多音轨音乐生成方法,该方法包括:对复合词结构进行修改;利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。
[0104]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0105]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0106]
本技术实施例中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
[0107]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:


1.一种多音轨音乐生成方法,其特征在于,包括:对复合词结构进行修改;利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。2.根据权利要求1所述的多音轨音乐生成方法,其特征在于,所述对复合词结构进行修改,包括:采用不均匀分割方式和预设编码方式对所述复合词结构中节拍的位置信息进行修改。3.根据权利要求1所述的多音轨音乐生成方法,其特征在于,所述对复合词结构进行修改,包括:采用十二平均律对所述复合词结构中音高的表示进行修改。4.根据权利要求1所述的多音轨音乐生成方法,其特征在于,所述生成复合词序列之后,还包括:将每一小节内的单乐器序列进行合并,获取每一小节的多乐器表示。5.根据权利要求1所述的多音轨音乐生成方法,其特征在于,所述训练好的改进transformer神经网络模型是通过以下训练步骤获取的:对所述改进transformer神经网络模型进行预训练,获取预训练好的改进transformer神经网络模型;利用筛选出的midi文件数据对所述预训练好的改进transformer神经网络模型进行微调,获取训练好的改进transformer神经网络模型。6.根据权利要求1所述的多音轨音乐生成方法,其特征在于,所述改进transformer神经网络模型是在transformer神经网络模型的基础上引入时间偏移机制、旋转位置编码和r-drop策略获取的。7.一种多音轨音乐生成装置,其特征在于,包括:修改模块,用于对复合词结构进行修改;生成模块,用于利用midi文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;获取模块,用于将所述复合词序列输入训练好的改进transformer神经网络模型,获取多音轨音乐。8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中的任一项所述多音轨音乐生成方法。9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中的任一项所述多音轨音乐生成方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中的任一项所述多音轨音乐生成方法。

技术总结


本发明提供一种多音轨音乐生成方法及装置,所述方法包括:对复合词结构进行修改;利用MIDI文件数据和修改后的复合词结构,生成复合词序列;所述复合词序列包括乐器属性的词元序列;将所述复合词序列输入训练好的改进Transformer神经网络模型,获取多音轨音乐。本发明通过对复合词结构的修改,将乐器属性加入复合词序列,有利于多音轨音乐的生成,利用改进的Transformer神经网络模型生成效果性更好的多音轨音乐。的多音轨音乐。的多音轨音乐。


技术研发人员:

殷渝杰 廖奕凯 王越 简宇卿

受保护的技术使用者:

南京期音科技有限公司

技术研发日:

2022.07.04

技术公布日:

2022/11/11

本文发布于:2024-09-20 21:38:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/8652.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:复合词   序列   所述   神经网络
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议