CN109448683A - 基于神经网络的音乐生成方法及装置 - Google Patents
基于神经网络的音乐生成方法及装置 Download PDFInfo
- Publication number
- CN109448683A CN109448683A CN201811338694.4A CN201811338694A CN109448683A CN 109448683 A CN109448683 A CN 109448683A CN 201811338694 A CN201811338694 A CN 201811338694A CN 109448683 A CN109448683 A CN 109448683A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- music
- note
- sequence
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 57
- 239000002131 composite material Substances 0.000 claims abstract description 38
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 21
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 21
- 230000006403 short-term memory Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 abstract description 2
- 238000003475 lamination Methods 0.000 description 17
- 238000012549 training Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000033764 rhythmic process Effects 0.000 description 13
- 230000000644 propagated effect Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 6
- 239000000203 mixture Substances 0.000 description 5
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 239000012141 concentrate Substances 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- METKIMKYRPQLGS-UHFFFAOYSA-N atenolol Chemical compound CC(C)NCC(O)COC1=CC=C(CC(N)=O)C=C1 METKIMKYRPQLGS-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/131—Mathematical functions for musical analysis, processing, synthesis or composition
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/311—Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/471—General musical sound synthesis principles, i.e. sound category-independent synthesis methods
Abstract
本发明实施例公开了一种基于神经网络的音乐生成方法及装置,该方法包括:获取目标音乐数据,对目标音乐数据进行聚类处理得到全局音乐序列;获取第一音乐序列,将全局音乐序列与第一音乐序列输入长短时记忆LSTM网络模型,基于LSTM网络模型的第一网络层确认第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;将目标音符输入上述LSTM网络模型的第二网络层,通过第二网络层获得目标音符的输入持续时长信息;根据目标音符的输入持续时长信息与目标音符,生成第二音乐序列,基于第二音乐序列得到合成音乐。采用本发明实施例,可以有效提高音乐合成的效率,增强合成音乐的趣味性,适用性更强。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种基于神经网络的音乐生成方法及装置。
背景技术
在现代社会,流行音乐已经深入渗透到群众的生活当中,越来越多热爱音乐的人群走上音乐创作之路。
目前,音乐创作通常采取的方式为利用特征提取算法从特定音乐流派中提取音乐特征,并以此来创作相似的音乐作品,或者根据音乐的特殊语法构造简单的音乐片段,或者通过一个模型将已有的一些非音乐媒介信息(如图像、文字等)翻译成声音进行音乐合成的方法等。这些音乐创作方法尽管能够获得简单的、易于理解的音乐曲段和整个音乐结构,但在生成音乐的过程中比较容易出错,且每一种音乐创作方法生成的音乐旋律比较单一、简单,同时采取上述方法进行音乐创作的效率较低。
发明内容
本发明实施例提供一种基于神经网络的音乐生成方法及装置,可以提高音乐合成的效率,增强音乐合成的趣味性,适用性更强。
第一方面,本发明实施例提供了一种基于神经网络的音乐生成方法,该方法包括:
获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;
获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;
将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;
根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。
其中,上述对上述目标音乐数据进行聚类处理得到全局音乐序列,包括:
获取上述目标音乐数据中的多个连续音符,并计算上述多个连续音符对应的音符直方图;
基于聚类分析对上述音符直方图进行分类,得到目标聚类集合,上述目标聚类集合包括至少两个聚类,且各个聚类均由至少一个音符直方图组成;
选择上述目标聚类集合中的任一聚类,根据上述任一聚类得到全局音乐序列。
其中,上述第一音乐序列中包括至少7个连续的音符;上述第一网络层包括KeyLayer,上述Key Layer由第一循环神经网络RNN构成;
上述基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符,包括:
获取上述全局音乐序列与上述第一音乐序列对应的音符表示信息,基于上述第一RNN中的LSTM单元根据上述全局音乐序列与上述第一音乐序列,以及上述音符表示信息确定上述第一音乐序列对应的序列上下文信息;
根据上述序列上下文信息确定上述第一音乐序列的最后一个音符的下一个音符,输出上述下一个音符以得到上述序列上下文信息对应的目标音符。
其中,上述第二音乐序列中包括旋律,上述第二网络层包括Press Layer,上述Press Layer由第二RNN构成;
上述将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息,包括:
将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第二RNN,获得上述目标音符的输入持续时长信息;
其中,上述目标音符的输入持续时长信息用于与上述目标音符生成旋律。
其中,上述方法还包括:
判断上述旋律中相邻音符之间是否具有连续性;
若上述旋律中相邻音符之间不具有连续性,则对上述旋律中的音符进行音符位置调整或对上述旋律中的音符进行删除,以对上述旋律进行连续性优化。
其中,上述第二音乐序列中还包括和弦,上述第二网络层还包括Chord Layer,上述Chord Layer由第三RNN构成;上述方法还包括:
获取上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第三RNN生成上述多个连续的目标音符对应的和弦;
其中,上述和弦用于结合上述旋律得到合成音乐。
其中,上述第二音乐序列中还包括节拍,上述第二网络层还包括Drum Layer,上述Drum Layer由第四RNN构成;上述方法还包括:
获取上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第四RNN生成上述多个连续的目标音符对应的节拍;
其中,上述节拍用于结合上述旋律和/或上述和弦得到合成音乐。
第二方面,本发明实施例提供了一种基于神经网络的音乐生成装置,该装置包括:
数据获取模块,用于获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;
第一处理模块,用于获取第一音乐序列,将上述数据获取模块得到的上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;
第二处理模块,用于将上述第一处理模块输出的上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;
合成模块,用于根据上述第二处理模块获得的上述目标音符的输入持续时长信息与上述第一处理模块输出的上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。
其中,上述数据获取模块包括:
计算子单元,用于获取上述目标音乐数据中的多个连续音符,并计算上述多个连续音符对应的音符直方图;
聚类子单元,用于基于聚类分析对上述计算子单元得到的上述音符直方图进行分类,得到目标聚类集合,上述目标聚类集合包括至少两个聚类,且各个聚类均由至少一个音符直方图组成;
生成子单元,用于选择上述聚类子单元得到的目标聚类集合中的任一聚类,根据上述任一聚类得到全局音乐序列。
其中,上述第一音乐序列中包括至少7个连续的音符;上述第一网络层包括KeyLayer,上述Key Layer由第一循环神经网络RNN构成;
上述第一处理模块用于:
获取上述全局音乐序列与上述第一音乐序列对应的音符表示信息,基于上述第一RNN中的LSTM单元根据上述全局音乐序列与上述第一音乐序列,以及上述音符表示信息确定上述第一音乐序列对应的序列上下文信息;
根据上述序列上下文信息确定上述第一音乐序列的最后一个音符的下一个音符,输出上述下一个音符以得到上述序列上下文信息对应的目标音符。
其中,上述第二音乐序列中包括旋律,上述第二网络层包括Press Layer,上述Press Layer由第二RNN构成;
上述第二处理模块用于:
将上述第一处理模块输出的上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第二RNN,获得上述目标音符的输入持续时长信息;
其中,上述目标音符的输入持续时长信息用于与上述第一处理模块输出的上述目标音符生成旋律。
上述第二处理模块还用于:
判断上述旋律中相邻音符之间是否具有连续性;
若上述旋律中相邻音符之间不具有连续性,则对上述旋律中的音符进行音符位置调整或对上述旋律中的音符进行删除,以对上述旋律进行连续性优化。
其中,上述第二音乐序列中还包括和弦,上述第二网络层还包括Chord Layer,上述Chord Layer由第三RNN构成;该装置还包括:
第三处理模块,用于:
获取上述第一处理模块中的上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第三RNN生成上述多个连续的目标音符对应的和弦;
其中,上述和弦用于结合上述第二处理模块获得的上述旋律得到合成音乐。
其中,上述第二音乐序列中还包括节拍,上述第二网络层还包括Drum Layer,上述Drum Layer由第四RNN构成;该装置还包括:
第四处理模块,用于:
获取上述第一处理模块中的上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第四RNN生成上述多个连续的目标音符对应的节拍;
其中,上述节拍用于结合上述第二处理模块得到的上述旋律和/或上述第三处理模块得到的上述和弦得到合成音乐。
第三方面,本发明实施例提供了一种终端设备,该终端设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行如本发明实施例中第一方面提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行如本发明实施例中第一方面所提供的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行如本发明实施例中第一方面所提供的方法。
实施本发明实施例,具有如下有益效果:
本发明实施例通过获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。由此可见,在整首音乐合成的过程中,可以通过LSTM网络模型自动学习和收集目标音乐数据中的信息,并行生成第二音乐序列,进而基于第二音乐序列得到合成音乐,可以有效提高音乐合成的效率,增强合成音乐的趣味性,适用性更强。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于神经网络的音乐生成方法的场景示意图;
图2是本发明实施例提供的LSTM网络模型结构示意图;
图3是本发明实施例提供的基于神经网络的音乐生成方法的流程示意图;
图4是本发明实施例提供的基于神经网络的音乐生成装置的结构示意图;
图5是本发明实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种基于神经网络的音乐生成方法的场景示意图。在该场景下,可以包括一个终端设备,在上述终端设备上可以实施上述基于神经网络的音乐生成方法,上述终端设备可以包括但不限于智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或其他具有存储音乐数据功能的终端设备。为方便描述,下面将结合图1对本发明实施例提供的音乐生成方法的数据处理流程进行说明。如图1所示,上述数据处理流程可包括步骤S101至S104:
S101,选择目标音乐数据。
在一些可行的实施例中,用户可以从终端设备中打开播放音乐的应用100a(如音乐播放器等),从应用100a中随机选择音乐作为目标音乐数据,当然用户也可以打开存储音乐数据的应用100a,从存储的音乐数据中选择音乐作为目标音乐数据。
S102,获取全局音乐序列及第一音乐序列。
在一些可行的实施例中,可通过计算目标音乐数据中每两个bar(一个bar代表八个连续的音符)范围内的音符直方图,基于聚类分析对计算得到的局部音符直方图进行分类,获得多个聚类ID,并选择一个聚类ID在一段持续时间内可生成全局音乐序列,同时,可以从目标音乐数据中随机选择一个音阶作为第一音乐序列。其中,一个音阶可以包含7个连续的音符。
S103,通过LSTM网络模型获得第二音乐序列。
在一些可行的实施例中,可以将上述获取的全局音乐序列及第一音乐序列输入已构建完成的长短时记忆(Long Short-Term Memory,LSTM)网络模型中,利用LSTM网络模型的记忆功能获取上述第一音乐序列的序列上下文信息,从而预测得到第二音乐序列,第二音乐序列可以包括音乐的旋律、和弦以及节拍,上述旋律、和弦、节拍可以分别通过上述LSTM网络模型的网络层生成。
S104,合成音乐。
在一些可行的实施例中,可以对上述得到的第二音乐序列在音符级别上进行调整,得到调整优化后的音乐旋律、和弦及节拍,将上述旋律、和弦及节拍进行结合,可以合成一首完整的乐曲。
在音乐合成完成后,在终端设备中可以用MP3的格式对上述合成的音乐数据进行缓存,并在终端设备的屏幕上显示上述合成音乐数据的图标,用户可以通过点击上述合成音乐数据的图标进行播放试听,若用户满意上述合成音乐数据,可以通过点击“确定”按钮将上述合成音乐数据保存在终端设备本地文件夹中或者直接上传至社交平台进行分享;若用户不满意上述合成音乐数据,可以通过点击“取消”按钮,删除该合成音乐数据(包括合成音乐数据的图标与缓存)。
进一步的,下面可结合图2对本发明实施例提供的LSTM网络模型的网络结构进行简要说明。这里,可以理解,上述LSTM网络模型可以包括多个网络层,每个网络层均可以由一个独立的网络构成,为方便描述,下面将以叠层LSTM网络模型表示上述LSTM网络模型,以下不再赘述。
请参见图2,图2是本发明实施例提供的一种LSTM网络模型结构示意图。如图2所示,上述叠层LSTM网络模型结构包括第一网络层201和第二网络层202,其中:
在一些可行的实施方式中,上述第一网络层201可包括Key Layer 2011,KeyLayer 2011可以由一个具有LSTM单元的循环神经网络(Recurrent Neural Network,RNN)构成,用于生成哪一个琴键被按下的状态,一个琴键代表一个音符,也就表示可以用于输出音符,RNN可以通过LSTM单元的遗忘门(forget gate)、输入门(input gate)以及输出门(output gate)实现网络的记忆功能。对于上述Key Layer 2011的RNN,输入层可以输入全局音乐序列和第一音乐序列(如一个音阶),上述全局音乐序列可以表示音乐的整体结构,第一音乐序列可以是一个包含7个连续音符的序列,隐含层可以包含512维隐含状态,输出层可以是一个37维的独热(one-hot)编码,上述Key Layer 2011的RNN可以在每个时刻t中输出一个音符,且使得生成的音符均可以处于C3和C6之间。为了让上述Key Layer2011的RNN模型可以更容易地记住生成的音符,以便之后再次使用,在网络结构中采用了一种跳跃的连接(skip connection),上述跳跃的连接可以使前一个或两个bar输入到当前时刻t,即可以将之前时刻(例如t-8时刻,t-9时刻)输出的音符输入到LSTM单元的当前时刻t,而不仅仅只是输入了前一时刻t-1的输出,例如可以连接到至其中,分别表示上述Key Layer 2011的RNN网络在t时刻,t-16时刻,t-8时刻的输出,另外,特征和可以用来表示最近生成的一个音符是否是从前一个或者前两个bar的音符拷贝过来的。
在一些可行的实施例中,上述第二网络层202可包括Press Layer 2021,PressLayer 2021可以由一个具有LSTM单元的RNN构成,可以用于生成琴键被按下的时长,即音符的持续时长。上述Press Layer 2021的RNN可以将上述Key Layer2011输出的37维one-hot编码作为输入,隐含层可以包含512维隐含状态,输出层可以是一个8维的one-hot编码,用于表示音符的持续时长。具体的,上述Key Layer 2011在每个时刻t中输出一个音符,可用一个37维的one-hot编码表示该音符,并将该音符输入到上述Press Layer 2021中,通过上述Press Layer 2021的RNN中的LSTM单元,得到上述音符的持续时长。在上述Press Layer2021的RNN网络中,可以使用一个正向计数的序列来表示音符的持续时长,若网络输出1的时候,表示琴键被按下,若网络继续输出2,3,…,表示琴键一直被按下,直至网络输出恢复成1时,表示琴键被抬起。上述Key Layer 2011生成的音符与上述Press Layer 2021生成的对应音符的持续时长可以表示音乐的旋律。
可选的,上述第二网络层202还可以包括Chord Layer 2022,Chord Layer 2022可以由一个具有LSTM单元的RNN构成,可以用于生成和弦,上述Chord Layer 2022的RNN以上述Key Layer 2011的输出作为输入,隐含层可以包含512维隐含状态,输出层可以是一个72维的one-hot编码,用于表示生成和弦的种类有72类。对于上述Chord Layer 2022的RNN而言,每半个bar的时间可以生成一个和弦,也就表示上述Chord Layer 2022在当前时刻t的输入包括了上述Key Layer 2011在t时刻、t-1时刻、t-3时刻以及t-4时刻的输出,例如的输入可以包括其中,表示上述Chord Layer2022的RNN在t-4时刻的输出,表示上述Key Layer 2011在t-5,t-6,t-7时刻的输出。
可选的,上述第二网络层202还可以包括Drum Layer 2023,Drum Layer 2023可以由一个具有LSTM单元的RNN构成,可以用于生成节拍,上述Drum Layer 2023的RNN以上述Key Layer 2011的输出作为输入,隐含层可以包含512维隐含状态,输出层可以是一个one-hot编码,可以将100种不同的、一个bar长的节拍编码进去。对于上述Drum Layer 2023的RNN而言,每半个bar的时间可以生成一个节拍,也就表示上述Drum Layer 2023在当前时刻t的输入包括了上述Key Layer 2011在t时刻、t-1时刻、t-3时刻以及t-4时刻的输出,例如的输入可以包括其中,表示所述Drum Layer2023的RNN网络在t-4时刻的输出,表示上述Key Layer 2011在t-5,t-6,t-7时刻的输出。
基于上述对叠层LSTM网络模型的网络结构的描述,可理解上述叠层LSTM网络模型可以将音乐旋律、和弦及节拍分开的方式构建网络,上述叠层LSTM网络模型的构建所采用的实现方式包括:
获取用于叠层LSTM网络模型训练的样本音乐数据集,上述样本音乐数据集可以包括从音乐播放应用上随机选取的在线音乐数据(例如选取音乐播放应用上音乐排行榜前100首音乐),或者从终端设备的本地存储文件夹中选择的音乐数据(例如选择本地音乐存储文件夹中的全部音乐),或者公开常用的音乐数据库(如Million Song数据集等)。
在一些可行的实施例中,上述样本音乐数据集中的音乐数据在用于训练上述叠层LSTM网络模型之前,还包括对上述样本音乐数据集中的音乐数据进行简单的预处理,上述预处理可包括获取上述音乐数据集中每一首音乐对应的音阶,以及得到分别用于表示上述每一首音乐旋律整体结构的全局音乐序列(可以称为Melody profile),上述目标音阶可以从样本音乐数据集中的音乐数据中随机选取,全局音乐序列则可通过获取上述样本音乐数据集中的每首音乐两个bar范围内的音符,并分别计算上述每首音乐对应的两个bar范围内的音符直方图。对于上述每首音乐对应的两个bar范围内的音符直方图,均采用K-means聚类算法对上述获得的两个bar范围内的音符直方图进行分类。具体的步骤可以包括:随机选择10个局部音符直方图并计算它们的平均值作为初始质心;计算余下每个音符直方图到10个初始质心的距离,这样余下的每个音符直方图都可以得到10个距离,选取最近的那个距离,将该音符直方图归到该类别,得到10个簇;重新计算每个簇的质心,重复执行上述第二步之后的所有步骤,直到满足迭代条件,使得同一个簇中的音符直方图相似度较高,不同簇中的音符直方图相似度较小。最终得到的10个簇即为10个聚类,计算上述10个聚类的平均值,根据平均值的大小对上述10个聚类从1到10进行排序,同时,可以对每一个聚类使用移动均值以使局部音乐的过渡更加平滑。每一个聚类均可以用一个10维的one-hot编码来表示,对应每一个时间片的聚类ID。通过随机选择一个经过聚类的聚类ID和一个随机的持续时间,可以得到一个足够长的音乐序列,即为全局音乐序列。基于上述聚类处理,可获得的上述样本音乐数据集中每首音乐对应的音阶和全局音乐序列,上述音阶与上述全局音乐序列均可作为上述叠层LSTM网络模型的输入用于训练该网络模型。
基于上述获得的全局音乐序列与音阶,可以采用反向传播算法(Back-propagation algorithm,BP)进行上述叠层LSTM网络模型的训练,在训练过程中,可以对网络模型的各层(如Key Layer2011、Press Layer2021、Chord Layer2022以及DrumLayer2023)进行并行训练,每一层均可采用交叉熵损失值作为网络模型学习能力的评价标准。其中,交叉熵损失函数有如下公式:
其中,表示输出的概率向量代表的是目标音符targeti的概率,loss的值越小越好,可以通过softmax函数计算求得。
需要说明的是,上述叠层LSTM网络模型中的每一层均可以由一个具有LSTM单元的RNN模型构成,上述RNN可以由输入层、隐含层、输出层组成,其中,隐含层之间的节点互相连接,上述隐含层的输入不仅包括输入层的输出还包括上一时刻上述隐含层的输出。上述叠层LSTM网络模型的每一层采用的训练方式可以是相同的,可以包括以下三个步骤:
前向计算网络中每个神经元的输出值,对于上述具有LSTM单元的RNN来说,需要计算出遗忘门ft、输入门it、单元状态ct、输出门ot、隐含状态ht五个向量的值;
反向计算网络中每个神经元的误差项值,可以表示为误差函数对神经元的加权输入的偏导数,对于误差项的反向传播过程,可以包括两个方向:一个是沿时间的反向传播,计算从当前时刻t开始,每个时刻的误差项;另一个是将误差项向上一层传播(比如输出层神经元的误差项向其前面的隐含层传播);
最后根据相应的误差项,计算每个权重的梯度。
其中,上述叠层LSTM网络模型每一层的训练步骤还包括网络模型参数的初始化,初始化的方式可以选择随机初始化,或者也可以根据先验知识选择一些声学参数初始化。
可选的,上述具有LSTM单元的RNN的输出层可以是softmax层,对应的误差函数可以选择交叉熵损失函数。
可选的,对于计算每个权重的梯度,可以使用Adam优化算法,上述Adam优化算法可以根据误差的大小和方向迭代地更新RNN权重,以使网络的误差逐渐减小。其中,上述Adam优化算法的部分参数可以设置为:初始学习速率为2*e-3,在前10个epochs中,每次都做了0.99的学习率衰减(learning rate decay),即每过一个epoch将学习速率乘以0.99。其中,学习速率可以控制RNN权重的更新速度,当学习速率较小时,会大大降低网络权重的更新速度,当学习速率较大时,会使网络权重在极优值附近徘徊,无法收敛到最优值,因此在训练过程中引入了学习率衰减,使学习速率随着训练的进行逐渐衰减。也就表示学习率在初始设置时可以略大一点,使得网络权重的更新速度较快,随着训练的进行,网络权重越来越接近极优值,此时的学习率也逐渐衰减,使得网络权重可以更好地收敛到极优值。epoch表示将全部的样本音乐数据训练一次。这里,上述Adam优化算法相比传统的随机梯度下降算法(Stochastic Gradient Descent,SGD),可以通过计算梯度的一阶矩估计和二阶矩估计为不同的参数设计独立的自适应性学习率,且比较容易实现,具有很高的计算效率和较低的内存。
基于上述训练过程,并行训练上述叠层LSTM网络模型的各层RNN,直至训练结束,将训练得到的各层RNN的最优权重保存,以备后续生成音乐序列。
请参见图3,图3是本发明实施例提供的一种基于神经网络的音乐生成方法的流程示意图。本发明实施例提供的方法可结合步骤S301至S304进行具体说明。
S301,获取目标音乐数据,并对上述目标音乐数据进行聚类处理,得到第一音乐序列。
在一些可行的实施例中,终端设备可以通过用户从音乐播放应用中或者本地存储文件夹中或者公开的图像数据库中选择音乐数据作为目标音乐数据,上述目标音乐数据可以是一首完整的音乐,或者是从一首完整的音乐中截取的音乐片段。从上述目标音乐数据中获取两个bar范围内的音符,计算上述两个bar范围内的音符分别对应的音符直方图,并采用K-means聚类算法对上述获得的音符直方图进行分类,可以获得目标聚类集合,该目标聚类集合可以包括10个聚类。计算上述10个聚类的平均值,可以根据平均值的大小对上述10个聚类从1到10进行排序,得到10个聚类ID,可以对上述聚类ID使用移动均值以使局部音乐的过渡更加平滑。每一个聚类ID均可以用一个10维的one-hot编码表示,对应每一个时间片的聚类ID。随后,随机选择一个经过聚类的聚类ID和一个随机的持续时间,该聚类ID在一个持续的时间段内可以得到一组由连续音符组成的参数序列,也就是全局音乐序列。其中,终端设备可以包括手机、平板电脑、笔记本电脑、掌上电脑、台式电脑、移动互联网设备(mobile internet device,MID)或其他具有存储音乐数据功能的终端设备。
具体的,K-means聚类算法对上述获得的局部音符直方图进行聚类的过程可以包括:随机选择10个局部音符直方图并计算它们的平均值作为初始质心;计算余下每个音符直方图到10个初始质心的距离,这样余下的每个音符直方图都可以得到10个距离,选取最近的那个距离,将该音符直方图归到该类别,得到10个簇;重新计算每个簇的质心,重复执行上述第二步之后的所有步骤,直到满足迭代条件,使得同一个簇中的音符直方图相似度较高,不同簇中的音符直方图相似度较小。最终得到的10个簇即为10个聚类。
S302,获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符。
在一些可行的实施例中,可以从上述目标音乐数据中获取第一音乐序列,上述第一音乐序列可以是从上述目标音乐序列中随机选取的一个音阶,为方便描述,下面将以目标音阶表示第一音乐序列,以下不再赘述。将上述确定的全局音乐序列与目标音阶输入叠层LSTM网络模型中,叠层LSTM网络模型可以包括第一网络层201和第二网络层202,第一网络层201可包括Key Layer2011,因此全局音乐序列与目标音阶首先输入至叠层LSTM网络模型的Key Layer2011,上述叠层LSTM网络模型是通过音乐序列数据建立预测模型能够对音乐序列数据的下一个音符进行预测的神经网络,其中音乐序列数据是由一些连续的音符构成。上述全局音乐序列与目标音阶输入至叠层LSTM网络模型中的KeyLayer2011,上述KeyLayer2011由一个具有LSTM单元的第一RNN构成,由于该叠层LSTM网络模型已经通过样本音乐数据集训练完成,也就是已具备音乐序列的预测功能。因此可利用上述第一RNN,根据输入的全局音乐序列与目标音阶的音符信息,获得目标音阶的预测结果,也就是通过输入的目标音阶中已有的音符,预测之后的音符,网络在每一时刻均可以输出一个目标音符。例如,假设上述第一RNN在t时刻输入的目标音乐序列和目标音阶可以用输入矩阵At=[X0,X1,…,Xn]表示,每经过该第一RNN模型中的一次前向传播,可以得到矩阵At的第n+1维向量Xn+1,并输出Xn+1;随后将Xn+1添加到矩阵At的末尾,得到更新后的At+1=[X0,X1,…,Xn,Xn+1],作为该第一RNN在t+1时刻的输入,再经过一次前向传播,可以得到n+2维向量Xn+2,并输出Xn+2;将Xn+2添加到A的末尾,重复上述过程,直至完成设置的前向计算次数,其中,Xn+1可以表示为上述第一RNN输出的第一个目标音符的one-hot编码,Xn+2可以表示为上述RNN输出的第二个目标音符的one-hot编码,......,Xn+i可以表示为上述第一RNN输出的第i个目标音符。上述第一RNN采用了softmax层,通过softmax函数计算每个音符被使用的概率,概率最大的那个音符即为上述第一RNN在当前时刻t输出的目标音符,例如,在上述第一RNN模型中经过一次前向传播的某时刻,可以通过softmax函数计算得到的音符概率分别为{0.01,0.12,0.95,0.05,0,...,0,0.01},其中,0.95为最大概率,则概率为0.95对应的音符为上述第一RNN在该时刻输出的目标音符,即网络在该时刻的预测结果。
S303,将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息。
在一些可行的实施例中,上述第二网络层202可包括Press Layer2021,上述PressLayer2021可以由一个具有LSTM单元的第二RNN构成,可以包括输入层、隐含层、输出层,将上述Key Layer2011输出的每个目标音符分别输入上述Press Layer2021的第二RNN,每经过上述第二RNN模型中的一次前向传播,可以输出上述每个目标音符对应的输入持续时长信息。例如,上述Key Layer2011输出目标音符的one-hot编码向量Xn+1,将该向量Xn+1输入至上述第二RNN的输入层,经过上述第二RNN模型中的一次前向传播,可以得到该目标音符Xn+1的输入持续时长信息。在上述Press Layer2021中,可以通过一个正向计数的序列表示目标音符的输入持续时长信息,也就是琴键被按下的时间。例如,若上述第二RNN持续输出1,2,3,4,1,则可以使用一个长度为8的one-hot编码分别表示上述第二RNN的输出结果,分别表示为:{1,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0},{0,0,1,0,0,0,0,0},{0,0,0,1,0,0,0,0},{1,0,0,0,0,0,0,0}。
S304,根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。
在一些可行的实施例中,可以根据上述Key Layer2011输出的每个目标音符与上述Press Layer2021输出的上述每个目标音符对应的输入持续时长信息,生成第二音乐序列,也就是生成音乐旋律,基于生成的音乐旋律得到合成音乐。其中,对于生成的音乐旋律,可以在bar级别上进行音符调整,可以检查旋律中的每一个bar,查看每个bar中第一个音符是否与前面的音符具有连续性,若具有连续性,则不需要进行调整,若不具有连续性,则确认该bar中的第一个音符是否为一个休止符(silence)。若确认为休止符,则可以将该休止符与该休止符之后的音符进行位置调整,也就是将该休止符之后的音符移动到这个bar的开头,或者可以选择删除该休止符。在音乐旋律bar级别上的调整还可以包括在不同大小的窗口范围内(例如两个half-bars、四个quarter-bars)进行与上述同样的调整,减少休止符的使用,可以使音乐的旋律更加合拍,听起来更加优美。基于调整过后的音乐旋律可以得到合成音乐。
在一些可行的实施例中,上述第二网络层202还可以包括Chord Layer2022,上述Chord Layer2022可以由一个具有LSTM单元的第三RNN构成,可以包括输入层、隐含层、输出层,将上述Key Layer2011输出的多个连续的目标音符输入上述Chord Layer2022的第三RNN,每经过上述第三RNN模型中的一次前向传播,可以输出上述多个连续的目标音符对应的一个和弦,生成的和弦可以表示为一个长度为72的one-hot编码。例如,上述KeyLayer2011输出的4个连续的目标音符可用one-hot编码表示为Xn+1、Xn+2、Xn+3、Xn+4,将上述4个连续的目标音符输入所述第三RNN的输入层,经过上述第三RNN模型中的一次前向传播,可以生成一个和弦,该和弦是上述4个连续的目标音符对应的和弦,也就是每4个连续的目标音符可以生成一个和弦,将生成的每一个和弦组合起来,可以得到第二音乐序列中的和弦。
在一些可行的实施例中,将上述第二音乐序列中的和弦与上述生成的音乐旋律相结合,可以得到合成音乐。对于上述第二音乐序列中的和弦,每半个bar的时间内可以生成一个和弦,可以结合五度音环(circle of fifths)的规则,并将上述五度音环的规则作为各个和弦之间的平滑项,可以增强和弦之间的连接性,合成音乐最终的和弦可以通过动态编程(dynamic programming)进行优化,可以加快合成音乐生成的效率。
在一些可行的实施例中,上述第二网络层202还可以包括Drum Layer2023,上述Drum Layer2023可以由一个具有LSTM单元的第四RNN构成,可以包括输入层、隐含层、输出层,将上述Key Layer2011输出的多个连续的目标音符输入上述Drum Layer2023的第四RNN,每经过上述第四RNN模型中的一次前向传播,可以输出上述多个连续的目标音符对应的一个节拍,生成的节拍可以表示为一个长度为100的one-hot编码。例如,上述KeyLayer2011输出的4个连续的目标音符可用one-hot编码表示为Xn+1、Xn+2、Xn+3、Xn+4,将上述4个连续的目标音符输入所述第四RNN的输入层,经过上述第四RNN模型中的一次前向传播,可以生成一个节拍,该节拍是上述4个连续的目标音符对应的节拍,也就是每4个连续的目标音符可以生成一个节拍,将生成的每一个节拍组合起来,可以得到第二音乐序列中的节拍。
在一些可行的实施例中,将上述第二音乐序列中的节拍与上述生成的音乐旋律和/或上述二音乐序列中的和弦相结合,可以得到合成音乐。对于上述第二音乐序列中的节拍,每半个bar的时间内可以生成一个节拍。
本发明实施例通过获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。由此可见,在整首音乐合成的过程中,可以通过LSTM网络模型自动学习和收集目标音乐数据中的信息,并行生成第二音乐序列,进而基于第二音乐序列得到合成音乐,不仅可以提高音乐旋律的多样化,还可以有效提高音乐合成的效率,增强合成音乐的趣味性,适用性更强。
请参见图4,图4是本发明实施例提供的一种基于神经网络的音乐生成装置的结构示意图。如图4所示,上述基于神经网络的音乐生成装置1可以对应于上述图2所对应实施例中的终端设备,上述基于神经网络的音乐生成装置1可以包括:数据获取模块10,第一处理模块20,第二处理模块30和合成模块40,其中:
数据获取模块10,用于获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列。
第一处理模块20,用于获取第一音乐序列,将上述数据获取模块10得到的上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符。
第二处理模块30,用于将上述第一处理模块20输出的上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息。
合成模块40,用于根据上述第二处理模块30获得的上述目标音符的输入持续时长信息与上述第一处理模块20输出的上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。
其中,所述数据获取模块10,第一处理模块20,第二处理模块30和合成模块40的具体功能实现方式可以参见上述图3对应实施例中的步骤S301-步骤S304,这里不再进行赘述。
其中,上述基于神经网络的音乐生成装置1还可以包括:样本数据获取模块50,构建模块60,第三处理模块70,第四处理模块80。其中:
样本数据获取模块50,用于获取用于LSTM网络模型训练的样本音乐数据集,从上述样本音乐数据集中获取目标音阶与全局音乐序列。
构建模块60,用于基于上述样本数据获取模块50得到的上述目标音阶与上述全局音乐序列构建上述LSTM网络模型。
第三处理模块70,用于将上述第一处理模块20输出的多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第三RNN生成上述多个连续的目标音符对应的和弦。
第四处理模块80,用于将上述第一处理模块20输出的多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第四RNN生成上述多个连续的目标音符对应的节拍。
其中,样本数据获取模块50,构建模块60的具体功能实现方式可以参见上述图2所对应的实施例,这里不再进行赘述。
其中,若上述第二网络层202还可以包括Chord Layer2022,上述ChordLayer2022可以由一个具有LSTM单元的第三RNN构成,可以包括输入层、隐含层、输出层;上述第三处理模块70的具体功能实现方式可包括将上述KeyLayer2011输出的多个连续的目标音符输入上述Chord Layer2022的第三RNN,每经过上述第三RNN模型中的一次前向传播,可以输出上述多个连续的目标音符对应的一个和弦,生成的和弦可以表示为一个长度为72的one-hot编码。
其中,若上述第二网络层202还可以包括Drum Layer2023,上述DrumLayer2023可以由一个具有LSTM单元的第四RNN构成,可以包括输入层、隐含层、输出层;上述第四处理模块80的具体功能实现方式可包括将上述KeyLayer2011输出的多个连续的目标音符输入上述Drum Layer2023的第四RNN,每经过上述第四RNN模型中的一次前向传播,可以输出上述多个连续的目标音符对应的一个节拍,生成的节拍可以表示为一个长度为100的one-hot编码。
本发明实施例通过获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入构建完成的长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。由此可见,在整首音乐合成的过程中,可以通过LSTM网络模型自动学习和收集目标音乐数据中的信息,并行生成第二音乐序列,进而基于第二音乐序列得到合成音乐,不仅可以提高音乐旋律的多样化,还可以有效提高音乐合成的效率,增强合成音乐的趣味性,适用性更强。
请参见图5,图5是本发明实施例提供的一种终端设备的结构示意图。如图5所示,本实施例中的终端设备可以包括:一个或多个处理器501和存储器502。上述处理器501和存储器502通过总线503连接。存储器502用于存储计算机程序,该计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令,执行如下操作:
获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;
获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;
将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;
根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。
在一些可行的实施例中,上述处理器501在执行上述对上述目标音乐数据进行聚类处理得到全局音乐序列时,具体用于:
获取上述目标音乐数据中的多个连续音符,并计算上述多个连续音符对应的音符直方图;
基于聚类分析对上述音符直方图进行分类,得到目标聚类集合,上述目标聚类集合包括至少两个聚类,且各个聚类均由至少一个音符直方图组成;
选择上述目标聚类集合中的任一聚类,根据上述任一聚类得到全局音乐序列。
在一些可行的实施例中,上述第一音乐序列中包括至少7个连续的音符;上述第一网络层包括Key Layer,上述Key Layer由第一循环神经网络RNN构成;上述处理器501在执行上述基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符时,具体用于:
获取上述全局音乐序列与上述第一音乐序列对应的音符表示信息,基于上述第一RNN中的LSTM单元根据上述全局音乐序列与上述第一音乐序列,以及上述音符表示信息确定上述第一音乐序列对应的序列上下文信息;
根据上述序列上下文信息确定上述第一音乐序列的最后一个音符的下一个音符,输出上述下一个音符以得到上述序列上下文信息对应的目标音符。
在一些可行的实施例中,上述第二音乐序列中包括旋律,上述第二网络层包括Press Layer,上述Press Layer由第二RNN构成;上述处理器501在执行上述将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息时,具体用于:
将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第二RNN,获得上述目标音符的输入持续时长信息;
其中,上述目标音符的输入持续时长信息用于与上述目标音符生成旋律。
在一些可行的实施例中,上述处理器501还用于:
判断上述旋律中相邻音符之间是否具有连续性;
若上述旋律中相邻音符之间不具有连续性,则对上述旋律中的音符进行音符位置调整或对上述旋律中的音符进行删除,以对上述旋律进行连续性优化。
在一些可行的实施例中,上述第二音乐序列中还包括和弦,上述第二网络层还包括Chord Layer,上述Chord Layer由第三RNN构成;上述处理器501还用于:
获取上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第三RNN生成上述多个连续的目标音符对应的和弦;
其中,上述和弦用于结合上述旋律得到合成音乐。
在一些可行的实施例中,上述第二音乐序列中还包括节拍,上述第二网络层还包括Drum Layer,上述Drum Layer由第四RNN构成;上述处理器501还用于:
获取上述第一网络层输出的多个连续的目标音符;
将上述多个连续的目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层中的上述第四RNN生成上述多个连续的目标音符对应的节拍;
其中,上述节拍用于结合上述旋律和/或上述和弦得到合成音乐。
在一些可行的实施方式中,上述处理器501可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。
应当理解,上述终端设备可执行前文图2或图3所对应实施例中对基于神经网络的音乐生成方法的描述,也可执行图4所对应实施例中对基于神经网络的音乐生成装置的描述,在此不再赘述。
在本发明实施例中,终端设备可通过获取目标音乐数据,对上述目标音乐数据进行聚类处理得到全局音乐序列;获取第一音乐序列,将上述全局音乐序列与上述第一音乐序列输入构建完成的长短时记忆LSTM网络模型,基于上述LSTM网络模型的第一网络层确认上述第一音乐序列对应的序列上下文信息并输出上述序列上下文信息对应的目标音符;将上述目标音符输入上述LSTM网络模型的第二网络层,通过上述第二网络层获得上述目标音符的输入持续时长信息;根据上述目标音符的输入持续时长信息与上述目标音符,生成第二音乐序列,基于上述第二音乐序列得到合成音乐。由此可见,在整首音乐合成的过程中,可以通过LSTM网络模型自动学习和收集目标音乐数据中的信息,并行生成第二音乐序列,进而基于第二音乐序列得到合成音乐,不仅可以提高音乐旋律的多样性,还可以有效提高音乐合成的效率,增强合成音乐的趣味性,适用性更强。
此外,这里需要指出的是:本发明实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的基于神经网络的音乐生成装置1所执行的计算机程序,且上述计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文图3所对应实施例中对上述基于神经网络的音乐生成方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种基于神经网络的音乐生成方法,其特征在于,包括:
获取目标音乐数据,对所述目标音乐数据进行聚类处理得到全局音乐序列;
获取第一音乐序列,将所述全局音乐序列与所述第一音乐序列输入长短时记忆LSTM网络模型,基于所述LSTM网络模型的第一网络层确认所述第一音乐序列对应的序列上下文信息并输出所述序列上下文信息对应的目标音符;
将所述目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层获得所述目标音符的输入持续时长信息;
根据所述目标音符的输入持续时长信息与所述目标音符,生成第二音乐序列,基于所述第二音乐序列得到合成音乐。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标音乐数据进行聚类处理得到全局音乐序列,包括:
获取所述目标音乐数据中的多个连续音符,并计算所述多个连续音符对应的音符直方图;
基于聚类分析对所述音符直方图进行分类,得到目标聚类集合,所述目标聚类集合包括至少两个聚类,且各个聚类均由至少一个音符直方图组成;
选择所述目标聚类集合中的任一聚类,根据所述任一聚类得到全局音乐序列。
3.根据权利要求1所述的方法,其特征在于,所述第一音乐序列中包括至少7个连续的音符;所述第一网络层包括Key Layer,所述Key Layer由第一循环神经网络RNN构成;
所述基于所述LSTM网络模型的第一网络层确认所述第一音乐序列对应的序列上下文信息并输出所述序列上下文信息对应的目标音符,包括:
获取所述全局音乐序列与所述第一音乐序列对应的音符表示信息,基于所述第一RNN中的LSTM单元根据所述全局音乐序列与所述第一音乐序列,以及所述音符表示信息确定所述第一音乐序列对应的序列上下文信息;
根据所述序列上下文信息确定所述第一音乐序列的最后一个音符的下一个音符,输出所述下一个音符以得到所述序列上下文信息对应的目标音符。
4.根据权利要求1或3所述的方法,其特征在于,所述第二音乐序列中包括旋律,所述第二网络层包括Press Layer,所述Press Layer由第二RNN构成;
所述将所述目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层获得所述目标音符的输入持续时长信息,包括:
将所述目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层中的所述第二RNN,获得所述目标音符的输入持续时长信息;
其中,所述目标音符的输入持续时长信息用于与所述目标音符生成旋律。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断所述旋律中相邻音符之间是否具有连续性;
若所述旋律中相邻音符之间不具有连续性,则对所述旋律中的音符进行音符位置调整或对所述旋律中的音符进行删除,以对所述旋律进行连续性优化。
6.根据权利要求4所述的方法,其特征在于,所述第二音乐序列中还包括和弦,所述第二网络层还包括Chord Layer,所述Chord Layer由第三RNN构成;所述方法还包括:
获取所述第一网络层输出的多个连续的目标音符;
将所述多个连续的目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层中的所述第三RNN生成所述多个连续的目标音符对应的和弦;
其中,所述和弦用于结合所述旋律得到合成音乐。
7.根据权利要求4或6所述的方法,其特征在于,所述第二音乐序列中还包括节拍,所述第二网络层还包括Drum Layer,所述Drum Layer由第四RNN构成;所述方法还包括:
获取所述第一网络层输出的多个连续的目标音符;
将所述多个连续的目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层中的所述第四RNN生成所述多个连续的目标音符对应的节拍;
其中,所述节拍用于结合所述旋律和/或所述和弦得到合成音乐。
8.一种基于神经网络的音乐生成装置,其特征在于,包括:
数据获取模块,用于获取目标音乐数据,对所述目标音乐数据进行聚类处理得到全局音乐序列;
第一处理模块,用于获取第一音乐序列,将所述数据获取模块得到的所述全局音乐序列与所述第一音乐序列输入长短时记忆LSTM网络模型,基于所述LSTM网络模型的第一网络层确认所述第一音乐序列对应的序列上下文信息并输出所述序列上下文信息对应的目标音符;
第二处理模块,用于将所述第一处理模块输出的所述目标音符输入所述LSTM网络模型的第二网络层,通过所述第二网络层获得所述目标音符的输入持续时长信息;
合成模块,用于根据所述第二处理模块获得的所述目标音符的输入持续时长信息与所述第一处理模块输出的所述目标音符,生成第二音乐序列,基于所述第二音乐序列得到合成音乐。
9.一种终端设备,其特征在于,包括:处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811338694.4A CN109448683A (zh) | 2018-11-12 | 2018-11-12 | 基于神经网络的音乐生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811338694.4A CN109448683A (zh) | 2018-11-12 | 2018-11-12 | 基于神经网络的音乐生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109448683A true CN109448683A (zh) | 2019-03-08 |
Family
ID=65552575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811338694.4A Pending CN109448683A (zh) | 2018-11-12 | 2018-11-12 | 基于神经网络的音乐生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109448683A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110085263A (zh) * | 2019-04-28 | 2019-08-02 | 东华大学 | 一种音乐情感分类和机器作曲方法 |
CN110120212A (zh) * | 2019-04-08 | 2019-08-13 | 华南理工大学 | 基于用户示范音频风格的钢琴辅助作曲系统及方法 |
CN110120211A (zh) * | 2019-03-28 | 2019-08-13 | 北京灵动音科技有限公司 | 基于旋律结构的旋律生成方法及装置 |
CN110136730A (zh) * | 2019-04-08 | 2019-08-16 | 华南理工大学 | 一种基于深度学习的钢琴和声自动编配系统及方法 |
CN110264984A (zh) * | 2019-05-13 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 模型训练方法、音乐生成方法、装置和电子设备 |
CN110808019A (zh) * | 2019-10-31 | 2020-02-18 | 维沃移动通信有限公司 | 一种歌曲生成方法及电子设备 |
CN111583891A (zh) * | 2020-04-21 | 2020-08-25 | 华南理工大学 | 基于上下文信息的音符向量的自动作曲系统及方法 |
CN112863465A (zh) * | 2021-01-27 | 2021-05-28 | 中山大学 | 基于上下文信息的音乐生成方法、装置及存储介质 |
CN113035162A (zh) * | 2021-03-22 | 2021-06-25 | 平安科技(深圳)有限公司 | 民族音乐生成方法、装置、设备及存储介质 |
CN113066457A (zh) * | 2021-03-17 | 2021-07-02 | 平安科技(深圳)有限公司 | 梵叹音乐生成方法、装置、设备及存储介质 |
US20210241734A1 (en) * | 2020-01-31 | 2021-08-05 | Obeebo Labs Ltd. | Systems, devices, and methods for computer-generated musical note sequences |
CN113223482A (zh) * | 2021-04-07 | 2021-08-06 | 北京脑陆科技有限公司 | 一种基于神经网络的音乐生成方法、系统 |
CN113516961A (zh) * | 2021-09-15 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 一种音符生成方法、相关设备、存储介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1448914A (zh) * | 2002-04-04 | 2003-10-15 | 得理电子(上海)有限公司 | 数码乐器的简谱输入法 |
CN103903628A (zh) * | 2012-12-21 | 2014-07-02 | 哈曼国际工业有限公司 | 基于音频输入的动态调适音调校正 |
CN107644630A (zh) * | 2017-09-28 | 2018-01-30 | 清华大学 | 基于神经网络的旋律生成方法及装置 |
WO2018194456A1 (en) * | 2017-04-20 | 2018-10-25 | Universiteit Van Amsterdam | Optical music recognition omr : converting sheet music to a digital format |
-
2018
- 2018-11-12 CN CN201811338694.4A patent/CN109448683A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1448914A (zh) * | 2002-04-04 | 2003-10-15 | 得理电子(上海)有限公司 | 数码乐器的简谱输入法 |
CN103903628A (zh) * | 2012-12-21 | 2014-07-02 | 哈曼国际工业有限公司 | 基于音频输入的动态调适音调校正 |
WO2018194456A1 (en) * | 2017-04-20 | 2018-10-25 | Universiteit Van Amsterdam | Optical music recognition omr : converting sheet music to a digital format |
CN107644630A (zh) * | 2017-09-28 | 2018-01-30 | 清华大学 | 基于神经网络的旋律生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
HANG CHU等: ""SONG FROM PI:A MUSICALLY PLAUSIBLE NETWORK FOR POP MUSIC GENERATION"", ARXIV, pages 1 - 9 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110120211A (zh) * | 2019-03-28 | 2019-08-13 | 北京灵动音科技有限公司 | 基于旋律结构的旋律生成方法及装置 |
CN110120212A (zh) * | 2019-04-08 | 2019-08-13 | 华南理工大学 | 基于用户示范音频风格的钢琴辅助作曲系统及方法 |
CN110136730A (zh) * | 2019-04-08 | 2019-08-16 | 华南理工大学 | 一种基于深度学习的钢琴和声自动编配系统及方法 |
CN110120212B (zh) * | 2019-04-08 | 2023-05-23 | 华南理工大学 | 基于用户示范音频风格的钢琴辅助作曲系统及方法 |
CN110136730B (zh) * | 2019-04-08 | 2021-07-20 | 华南理工大学 | 一种基于深度学习的钢琴和声自动编配系统及方法 |
CN110085263A (zh) * | 2019-04-28 | 2019-08-02 | 东华大学 | 一种音乐情感分类和机器作曲方法 |
CN110085263B (zh) * | 2019-04-28 | 2021-08-06 | 东华大学 | 一种音乐情感分类和机器作曲方法 |
CN110264984B (zh) * | 2019-05-13 | 2021-07-06 | 北京奇艺世纪科技有限公司 | 模型训练方法、音乐生成方法、装置和电子设备 |
CN110264984A (zh) * | 2019-05-13 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 模型训练方法、音乐生成方法、装置和电子设备 |
CN110808019A (zh) * | 2019-10-31 | 2020-02-18 | 维沃移动通信有限公司 | 一种歌曲生成方法及电子设备 |
US20210241734A1 (en) * | 2020-01-31 | 2021-08-05 | Obeebo Labs Ltd. | Systems, devices, and methods for computer-generated musical note sequences |
US11948542B2 (en) * | 2020-01-31 | 2024-04-02 | Obeebo Labs Ltd. | Systems, devices, and methods for computer-generated musical note sequences |
CN111583891B (zh) * | 2020-04-21 | 2023-02-14 | 华南理工大学 | 基于上下文信息的音符向量的自动作曲系统及方法 |
CN111583891A (zh) * | 2020-04-21 | 2020-08-25 | 华南理工大学 | 基于上下文信息的音符向量的自动作曲系统及方法 |
CN112863465A (zh) * | 2021-01-27 | 2021-05-28 | 中山大学 | 基于上下文信息的音乐生成方法、装置及存储介质 |
CN112863465B (zh) * | 2021-01-27 | 2023-05-23 | 中山大学 | 基于上下文信息的音乐生成方法、装置及存储介质 |
CN113066457A (zh) * | 2021-03-17 | 2021-07-02 | 平安科技(深圳)有限公司 | 梵叹音乐生成方法、装置、设备及存储介质 |
CN113066457B (zh) * | 2021-03-17 | 2023-11-03 | 平安科技(深圳)有限公司 | 梵叹音乐生成方法、装置、设备及存储介质 |
CN113035162A (zh) * | 2021-03-22 | 2021-06-25 | 平安科技(深圳)有限公司 | 民族音乐生成方法、装置、设备及存储介质 |
CN113223482A (zh) * | 2021-04-07 | 2021-08-06 | 北京脑陆科技有限公司 | 一种基于神经网络的音乐生成方法、系统 |
CN113516961A (zh) * | 2021-09-15 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 一种音符生成方法、相关设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109448683A (zh) | 基于神经网络的音乐生成方法及装置 | |
Yang et al. | MidiNet: A convolutional generative adversarial network for symbolic-domain music generation | |
Mangal et al. | LSTM based music generation system | |
Ycart et al. | A study on LSTM networks for polyphonic music sequence modelling | |
Jin et al. | A style-specific music composition neural network | |
CN109657051A (zh) | 文本摘要生成方法、装置、计算机设备及存储介质 | |
CN108269569A (zh) | 语音识别方法和设备 | |
CN108962238A (zh) | 基于结构化神经网络的对话方法、系统、设备及存储介质 | |
CN106328122A (zh) | 一种利用长短期记忆模型递归神经网络的语音识别方法 | |
CN109346045A (zh) | 基于长短时神经网络的多声部音乐生成方法及装置 | |
KR102224070B1 (ko) | 리듬 게임 제작 방법 | |
Kotecha et al. | Generating music using an LSTM network | |
CN110136689A (zh) | 基于迁移学习的歌声合成方法、装置及存储介质 | |
Vogl et al. | An intelligent drum machine for electronic dance music production and performance. | |
CN110223712A (zh) | 一种基于双向卷积循环稀疏网络的音乐情感识别方法 | |
CN104392716B (zh) | 高表现力的语音合成方法和装置 | |
Shi et al. | Symmetry in computer-aided music composition system with social network analysis and artificial neural network methods | |
Chen et al. | Automatic composition of Guzheng (Chinese Zither) music using long short-term memory network (LSTM) and reinforcement learning (RL) | |
CN111754962A (zh) | 基于升降采样的民歌智能辅助作曲系统及方法 | |
CN116229922A (zh) | 基于Bi-LSTM深度强化学习网络的鼓乐生成方法 | |
Kumar et al. | Mellis AI-an AI-generated music composer using RNN-LSTMs | |
Jagannathan et al. | Original music generation using recurrent neural networks with self-attention | |
Li et al. | Novel LSTM-gan based music generation | |
Pons Puig | Deep neural networks for music and audio tagging | |
Yin et al. | Context-uncertainty-aware chatbot action selection via parameterized auxiliary reinforcement learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |