CN114842819A - 基于深度强化学习的单音轨midi音乐生成方法 - Google Patents

基于深度强化学习的单音轨midi音乐生成方法 Download PDF

Info

Publication number
CN114842819A
CN114842819A CN202210511149.0A CN202210511149A CN114842819A CN 114842819 A CN114842819 A CN 114842819A CN 202210511149 A CN202210511149 A CN 202210511149A CN 114842819 A CN114842819 A CN 114842819A
Authority
CN
China
Prior art keywords
network
note
data
rhythm
value
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.)
Granted
Application number
CN202210511149.0A
Other languages
English (en)
Other versions
CN114842819B (zh
Inventor
屈鸿
刘永胜
杨智友
李虹伶
张帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202210511149.0A priority Critical patent/CN114842819B/zh
Publication of CN114842819A publication Critical patent/CN114842819A/zh
Application granted granted Critical
Publication of CN114842819B publication Critical patent/CN114842819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • G10H1/08Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by combining tones

Abstract

本发明公开了一种基于深度强化学习的单音轨MIDI音乐生成方法,包括:S1、基于LSTM网络构建节奏生成网络,并基于强化学习Actor‑Critic算法构建音符生成网络;S2、获取原始MIDI音乐数据,并提取节奏数据和音符数据转换为网络训练数据;S3、采用步骤S2中转换后的网络训练数据训练节奏生成网络和音符生成网络;S4、采用训练后的节奏生成网络生成节奏数据,并采用训练后的音符生成网络生成音符数据;S5、将生成的节奏和音符数据组合并转换为完整的单音轨MIDI音乐作品。本发明应用时能使生成音乐的节奏与音符之间搭配更为合理,进而能提升生成音乐的和谐性。

Description

基于深度强化学习的单音轨MIDI音乐生成方法
技术领域
本发明涉及音乐生成技术,具体是基于深度强化学习的单音轨MIDI音乐生成方法。
背景技术
目前人们时常通过计算机算法生成音乐数据,但基本单纯基于乐理规则生成音乐,生成的音乐过于刻板,缺乏多样性。随着深度学习技术的发展,深度神经网络被应用到音乐生成中,利用深度神经网络的学习能力,能够从大量的真实音乐数据集中学习到相关的音乐知识,其生成的音乐数据更加丰富多彩。然而,现有基于深度学习的音乐生成模型没有考虑乐理规则,或者只是考虑了一些和弦等比较简单的乐理元素,容易生成不和谐的和声和旋律。此外,实际生活中,一首歌曲可以改编为多种节奏,节奏和音符是没有强相关性的,现有模型普遍将音符和节奏作为关联因素同时进行处理,这进一步会影响生成音乐的和谐性。
发明内容
本发明的目的在于解决现有技术生成的音乐的和声和旋律不和谐的问题,提供了一种基于深度强化学习的单音轨MIDI音乐生成方法,其应用时能使生成音乐的节奏与音符之间搭配更为合理,进而能提升生成音乐的和谐性。
本发明的目的主要通过以下技术方案实现:
基于深度强化学习的单音轨MIDI音乐生成方法,包括:
S1、基于LSTM网络构建节奏生成网络,并基于强化学习Actor-Critic算法构建音符生成网络;
S2、获取原始MIDI音乐数据,并提取节奏数据和音符数据转换为网络训练数据;
S3、采用步骤S2中转换后的网络训练数据训练节奏生成网络和音符生成网络;
S4、采用训练后的节奏生成网络生成节奏数据,并采用训练后的音符生成网络生成音符数据;
S5、将生成的节奏和音符数据组合并转换为完整的单音轨MIDI音乐作品。本发明在具体实施时,步骤S1和步骤S2可同步进行,步骤S2中转换的网络训练数据为可用于训练节奏生成网络的节奏数据、以及为可用于训练音符生成网络的音符数据。本发明通过独立的节奏生成网络生成节奏数据,并通过独立的音符生成网络生成音符数据,最后将生成的节奏数据和音符数据转化为MIDI音乐数据作为最终结果。
进一步的,所述节奏生成网络包括依次设置的单向双层LSTM网络、全连接层及softmax层,所述节奏生成网络通过其softmax层输出的概率分布来随机选择生成的节奏时值;
所述音符生成网络还包括依次设置的回报网络、Actor网络及Critic网络,所述回报网络和Actor网络均包括依次设置的单向双层LSTM网络、注意力层、全连接层及sigmoid层,所述回报网络用于获取音符对应的回报值,并基于获取的回报值叠加上乐理规则对应的乐理回报作为强化学习算法中音符对应的总回报值,所述Actor网络根据其sigmoid层的输出确定生成的音符值;所述Critic网络包括依次设置的单向双层LSTM网络、注意力层及两个全连接层,所述Critic网络通过其最后一个全连接层输出为Actor网络输出的动作对应的状态动作值。本发明利用LSTM网络构建回报网络以获取强化学习中的价值回报。本发明的回报网络设置有注意力层,能增加对音符序列中重要音符的重点关注并充分学习。
进一步的,所述Actor网络根据其sigmoid层的输出确定生成的音符值时,Actor网络根据其sigmoid层的输出进行四舍五入转换为mutli-hot形式的数据来确定生成的音符值;所述音符生成网络采用多标签分类方式以使音符生成网络支持复音序列的生成。其中,multi-hot编码本身为一种多标签编码方式,同时音符生成网络的输出为multi-hot编码,即输出为多标签编码方式,自然就能支持同时生成多个音符,如此,本发明通过引入多标签分类技术使音符生成网络支持复音序列的生成。
进一步的,所述步骤S2将提取的节奏数据和音符数据转换为网络训练数据基于MagentA框架实现,将音符数据进行multi-hot编码,将节奏数据进行one-hot编码。
进一步的,所述步骤S2中提取节奏数据和音符数据转换为网络训练数据具体包括如下步骤:
S21、将获取的原始MIDI音乐数据切分成多个乐段,并将切割好的乐段储存为TFRecord格式的文件;
S22、对音符时长进行量化,将其映射到整数范围,设定音符最小时长,并将节奏数据映射到设定音符最小时长为基本单位的整数空间上;
S23、从量化后的乐段数据中抽取出音符和节奏信息,并校验是否符合需求标准;
S24、将节奏数据编码为设定音符最小时长的one-hot形式数据,将音符数据映射到设定音符取值范围的整数空间并编码为与设定音符取值范围一致长度的multi-hot形式数据;
S25、将编码后的节奏数据和音符储存为结构化的TFRecord格式文件。
进一步的,所述步骤S3具体包括以下步骤:
所述节奏生成网络使用softmax交叉熵作为网络损失函数,并使用转换后网络训练数据中的节奏数据对网络进行训练;
所述音符生成网络中的回报网络使用sigmoid交叉熵作为网络损失函数,并使用转换后网络训练数据中的音符数据对网络进行训练;
所述音符生成网络中的Actor网络通过状态动作值来训练,所述音符生成网络中的Critic网络通过最小化TD-error来训练。
进一步的,所述节奏生成网络使用的softmax交叉熵作为网络损失函数的公式为:
Figure BDA0003637993340000031
其中,xi为经过one-hot编码的节奏数据,yi为输入xi对应的标签,Dr为节奏的种类数;
采用softmax交叉熵作为网络损失函数来训练节奏生成网络时,当训练准确率达到设定数值或者训练达到指定步长时停止训练。
进一步的,所述音符生成网络中的回报网络使用的sigmoid交叉熵作为网络损失函数的公式为:
Figure BDA0003637993340000032
其中,x为模型未经激活函数前的输出,y为对应的标签;
当x<0时,将上述公式转换为以下等价形式:
loss=max(0,x)-x*y+log(1+exp(-abs(x)));
采用sigmoid交叉熵作为网络损失函数来训练音符生成网络中的回报网络时,当训练准确率达到设定数值或者训练达到指定步长时停止训练;
所述音符生成网络中的Actor网络训练所采用的状态动作值、以及所述音符生成网络中的Critic网络训练所采用的最小化TD-error获取包括以下步骤:
设置初始音符值或随机选取初始音符值,并将初始音符值输入所述音符生成网络中;
音符生成网络将初始音符值转换为强化学习中的状态s,再将状态s输入Actor网络获取下一步需要采取的动作a;
通过回报网络获取Actor网络输出的动作a对应的网络回报值rn,根据乐理规则获取动作a对应的乐理回报值rm,动作a对应的回报值为rmix=km*rm+kn*rn,其中km和kn为超参数,用于调节乐理回报值和网络回报值的比例;
将动作a转换到下一个状态s′,并将状态s、动作a、回报值rmix及状态s′四元组数据储存;
当储存的四元组数据达到设定数量后,对储存的四元组数据进行采样,并将状态s和动作a输入到回报网络中获取状态动作值Q(s,a);
将状态s′输入Actor网络中获取下一步动作a′,接着将状态s′和动作a′输入到Critic网络中获取状态动作值Q(s′,a′),通过所述回报值rmix以及状态动作值Q(s,a)和Q(s′,a′)计算TD-error。
进一步的,所述步骤S4中采用训练后的节奏生成网络生成节奏数据包括以下步骤:
设置初始节奏时值或者随机选取初始节奏时值、以及设置生成节奏数据的长度L1
将初始节奏时值转换为one-hot形式的数据并输入所述节奏生成网络中;
节奏生成网络在其最后一个网络层softmax输出节奏时值的概率分布;
根据概率分布随机选取并生成节奏数据;
依次执行L1次生成长度为L1的节奏序列。
进一步的,所述步骤S4中采用训练后的音符生成网络生成音符数据包括以下步骤:
设置初始音符值或随机选取初始音符值、以及设置生成音符数据的长度L2
将初始音符值输入所述音符生成网络中,音符生成网络将音符值转换为强化学习中的状态s;
将状态s输入Actor网络获取下一步需要采取的动作a,通过动作a转换到下一个状态s′,再将s′输入到Actor网络中依次执行L2次生成状态序列,状态以multi-hot格式编码,最后将multi-hot格式的状态序列转换为音符序列得到音符数据。
综上所述,本发明与现有技术相比具有以下有益效果:(1)本发明通过独立的节奏生成网络和音符生成网络实现单音轨音乐的生成,同时支持一条旋律与不同节奏的组合,使生成音乐的节奏与音符之间搭配更为合理,进而能提升生成音乐的和谐性。
(2)本发明借助多标签分类技术解决了复音旋律的生成问题。
(3)本发明采用基于深度强化学习方式,根据对动作所反馈的价值回报来指导网络训练,既能通过深度神经网络从音乐数据集中学习到相关的音乐知识,又可以通过添加基于乐理规则的价值回报,使生成的音乐遵循一定的乐理规则。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明一个具体实施例的流程图;
图2为本发明一个具体实施例的节奏生成网络的结构图;
图3为本发明一个具体实施例的回报网络结构图;
图4为本发明一个具体实施例的Critic网络结构图;
图5为本发明一个具体实施例的音乐数据处理步骤流程图;
图6为本发明一个具体实施例的音符数据生成步骤流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例:
如图1所示,基于深度强化学习的单音轨MIDI音乐生成方法,包括:S1、基于LSTM网络构建节奏生成网络用于生成节奏数据,并基于强化学习Actor-Critic算法构建音符生成网络用于生成音符数据;S2、获取原始MIDI音乐数据,并提取节奏数据和音符数据转换为网络训练数据;S3、采用步骤S2中转换后的网络训练数据训练节奏生成网络和音符生成网络;S4、采用训练后的节奏生成网络生成节奏数据,并采用训练后的音符生成网络生成音符数据;S5、将生成的节奏和音符数据组合并转换为完整的单音轨MIDI音乐作品。其中,原始MIDI音乐数据可以理解为已发行的音乐对应的MIDI格式数据,比如某位歌手的一首歌曲就是一首原始音乐数据,本实施例应用时,可以理解为从已发行的音乐学习知识并以此为基础创作歌曲。本实施例在具体实施时,最终输出的MIDI音乐节拍可设置为默认为4/4拍,速度可设置为默认为120BPM。
如图2所示,本实施例的节奏生成网络包括依次设置的单向双层LSTM网络、全连接层及softmax层,LSTM网络每层包含64个神经元,节奏生成网络通过其softmax层输出的概率分布来随机选择生成的节奏时值。本实施例的音符生成网络还包括依次设置的回报网络、Actor网络及Critic网络,如图3所示,本实施例的回报网络和Actor网络均包括依次设置的单向双层LSTM网络、注意力层、全连接层及sigmoid层,LSTM网络每层包含64个神经元,回报网络用于获取音符对应的回报值,并基于获取的回报值叠加上乐理规则对应的乐理回报作为强化学习算法中音符对应的总回报值。本实施例的Actor网络的网络结构与回报网络结构一致,音符最终通过Actor网络生成,具体的,Actor网络根据其sigmoid层的输出确定生成的音符值。如图4所示,本实施例的Critic网络包括依次设置的单向双层LSTM网络、注意力层及两个全连接层,Critic网络通过其最后一个全连接层输出为Actor网络输出的动作对应的状态动作值。
强化学习Actor-Critic算法主要包含环境、Actor和Critic,其中,环境主要是在智能体采取动作后,给智能体反馈其需要转移到的下一个状态以及其所采取的动作对应的奖励,本发明提出的回报网络对应于环境;Actor可以理解为智能体,主要用于动作的决策等,本发明提出的Actor网络对应于智能体;Critic可以理解为评价者,主要用于计算强化学习中的价值函数以及评价智能体所采取的动作的好坏,本发明提出的Critic网络对应于评价者。因此,回报网络、Actor网络和Critic网络构成了一个完整的Actor-Critic算法。乐理规则的乐理回报是基于基本的乐理知识和作曲方法,根据已经生成的音符和当前生成音符之间的关系计算出一个回报值作为当前音符的乐理回报,其计算方法为现有技术,本实施例不再赘述。叠加方式是将乐理回报和网络回报分别乘以一个超参数然后直接相加,超参数的值是人为设置并调整的,主要用于调节乐理回报和网络回报在总回报值中的比例。本发明的总回报值对应强化学习算法中智能体采取动作后环境所反馈的回报值,即环境给智能体的奖励值,主要用于指导智能体进行学习。因此,总回报值就为本发明所采取的强化学习算法中的回报值,其由乐理回报和网络回报按比例加和组成。
本实施例在具体实施时,Actor网络根据其sigmoid层的输出确定生成的音符值时,Actor网络根据其sigmoid层的输出进行四舍五入转换为mutli-hot形式的数据来确定生成的音符值;本实施例的音符生成网络采用多标签分类方式以使音符生成网络支持复音序列的生成。其中,值为1的位置表示生成音符中包含该音符,值为0则代表不包含该音符,从而使音符生成网络支持复音序列的生成。
本实施例的步骤S2将提取的节奏数据和音符数据转换为网络训练数据基于MagentA框架实现,将音符数据进行multi-hot编码,将节奏数据进行one-hot编码。如图5所示,本实施例步骤S2中提取节奏数据和音符数据转换为网络训练数据包含乐谱切割、量化、节奏和音符提取、编码和储存为文件5个处理流程。具体包括如下步骤:S21、将获取的原始MIDI音乐数据切分成多个乐段,并将切割好的乐段储存为TFRecord格式的文件以备后续进一步处理;S22、对音符时长进行量化,将其映射到整数范围,设定音符最小时长,并将节奏数据映射到设定音符最小时长为基本单位的整数空间上;S23、从量化后的乐段数据中抽取出音符和节奏信息,并校验是否符合需求标准;S24、将节奏数据编码为设定音符最小时长的one-hot形式数据,将音符数据映射到设定音符取值范围的整数空间并编码为与设定音符取值范围一致长度的multi-hot形式数据;S25、将编码后的节奏数据和音符储存为结构化的TFRecord格式文件,作为后续对网络进行训练的数据集。本实施例的步骤S21中乐谱切割可在拍子发生变化的地方对MIDI数据进行切割。本实施例的步骤S22的量化流程主要对音符时长进行量化,由于原始的节奏数据为以秒为单位的浮点数,需要将其映射到整数范围以便后续进行one-hot编码,本实施例设定最小时长为32分音符,并将节奏数据都映射到以32分音符为基本单位的整数空间上。本实施例的步骤S23校验是否符合需求标准可省略掉音高过高或者过低的音符,将时长过长的节奏数据进行截断。本实施例将设定音符取值范围限定为50种,并将其映射到[0,49]的整数空间中,超出范围的音符将被省略,节奏数据将最小时长限定为32分音符,最长时长限定为一个小节,所以节奏的取值范围为[1,32],过短的时长将会被省略,过长的时长将会被截断为一个小节长度。本实施例的步骤S24编码流程基于Python语言实现,由于Python语言中数组下标从0开始,为了方便数据处理以及数据的编码,因此,本实施例将节奏数据由[1,32]的整数空间映射到[0,31]的整数空间并编码为长度为32的one-hot形式数据,接着将音符数据映射到[0,49]的整数空间并编码为长度为50的multi-hot形式数据,作为可输入网络的数据格式。
本实施例对音符进行multi-hot编码,即音乐数据集中一个时刻的音符通过一个list数据来表征,list中的元素与音符取值范围一一对应。list数据中的元素取值为0或者1,取值为1时表示包含该元素所对应的音符,取值为0表示不包含该元素对应的音符。本实施例对原始音乐数据进行数据处理的过程中,增加对节奏信息的抽取功能。具体的,MIDI格式的音乐数据中,每个音符都自带时间信息,音乐的开头为0时刻,然后音符的时值依次往后增加,时间信息以秒为单位。本专利通过计算音符间的时间差来获取每一个音符对应的音符时值,并将其映射到以32分音符为基本单位的整数空间上,便于处理。因此,本实施例对MagentA的音乐数据处理模块进行功能扩展,增加了对音符进行multi-hot编码的机制,同时扩展了节奏数据处理功能。
本实施例的步骤S3具体包括以下步骤:节奏生成网络使用softmax交叉熵作为网络损失函数,并使用转换后网络训练数据中的节奏数据对网络进行训练;音符生成网络中的回报网络使用sigmoid交叉熵作为网络损失函数,并使用转换后网络训练数据中的音符数据对网络进行训练;音符生成网络中的Actor网络通过状态动作值来训练,所述音符生成网络中的Critic网络通过最小化TD-error来训练。其中,节奏生成网络训练所采用的数据为one-hot编码的节奏数据,音符生成网络训练所采用的数据为multi-hot编码的音符数据。
本实施例的节奏生成网络使用的softmax交叉熵作为网络损失函数的公式为:
Figure BDA0003637993340000071
其中,xi为经过one-hot编码的节奏数据,yi为输入xi对应的标签,Dr为节奏的种类数即32;采用softmax交叉熵作为网络损失函数来训练节奏生成网络时,当训练准确率达到设定数值或者训练达到指定步长时停止训练,最后将模型参数保存为本地文件,以备后续生成节奏数据。上式中i、j两个参数均为取值0、1、…、Dr的整数,同时设置i和j是为了区别开来避免参数混淆。因为公式里面分母里的j用于先对exp(x)求和,若只使用一个参数i来表示,则分母里的i与分子里的i以及外面的i会混淆,会导致公式不严谨。
本实施例的音符生成网络中的回报网络使用的sigmoid交叉熵作为网络损失函数的公式为:
Figure BDA0003637993340000081
其中,x为模型未经激活函数前的输出,y为对应的标签;
当x<0时,为了避免x过小导致exp(-x)溢出,将上述公式转换为以下等价形式:
loss=x-x*y+log(1+exp(-x))
=-x*y+log(1+exp(x))
为了保证训练的稳定性和避免溢出,使用上式的等价公式:
loss=max(0,x)-x*y+log(1+exp(-abs(x)));
音符生成网络的输入为经过multi-hot编码的音符数据,通过最小化sigmoid交叉熵损失函数来训练回报网络,当训练准确率达到设定数值或者训练达到指定步长时停止训练,最后将模型参数保存为本地文件,以备后续对音符生成网络中的Actor网络和Critic网络进行训练。
本实施例的音符生成网络中的Actor网络训练所采用的状态动作值、以及所述音符生成网络中的Critic网络训练所采用的最小化TD-error获取包括以下步骤:设置初始音符值或随机选取初始音符值,并将初始音符值输入所述音符生成网络中;音符生成网络将初始音符值转换为强化学习中的状态s,再将状态s输入Actor网络获取下一步需要采取的动作a;通过回报网络获取Actor网络输出的动作a对应的网络回报值rn,根据乐理规则获取动作a对应的乐理回报值rm,动作a对应的回报值为rmix=km*rm+kn*rn,其中km和kn为超参数,用于调节乐理回报值和网络回报值的比例;将动作a转换到下一个状态s′,并将状态s、动作a、回报值rmix及状态s′四元组数据储存,以便后续采样四元组数据对Actor网络和Critic网络进行训练;当储存的四元组数据达到设定数量后,对储存的四元组数据进行采样,并将状态s和动作a输入到回报网络中获取状态动作值Q(s,a);将状态s′输入Actor网络中获取下一步动作a′,接着将状态s′和动作a′输入到Critic网络中获取状态动作值Q(s′,a′),通过所述回报值rmix以及状态动作值Q(s,a)和Q(s′,a′)计算TD-error。本实施例还根据损失函数,通过反向传播计算模型参数梯度,基于带动量的随机梯度下降算法更新网络参数。
本实施例的步骤S4中采用训练后的节奏生成网络生成节奏数据包括以下步骤:设置初始节奏时值或者随机选取初始节奏时值、以及设置生成节奏数据的长度L1;将初始节奏时值转换为one-hot形式的数据并输入所述节奏生成网络中;节奏生成网络在其最后一个网络层softmax输出节奏时值的概率分布;根据概率分布随机选取并生成节奏数据;依次执行L1次生成长度为L1的节奏序列。其中,随机选取初始节奏时值根据均匀分布来随机选择。
如图6所示,本实施例步骤S4中采用训练后的音符生成网络生成音符数据包括以下步骤:设置初始音符值或随机选取初始音符值、以及设置生成音符数据的长度L2;将初始音符值输入所述音符生成网络中,音符生成网络将音符值转换为强化学习中的状态s;将状态s输入Actor网络获取下一步需要采取的动作a,通过动作a转换到下一个状态s′,再将s′输入到Actor网络中依次执行L2次生成状态序列,状态以multi-hot格式编码,最后将multi-hot格式的状态序列转换为音符序列得到音符数据。
本实施例提出的一种基于深度强化学习的单音轨MIDI音乐生成方法,通过独立的节奏生成网络和音符生成网络实现了单音轨音乐的生成,同时支持一条旋律与不同节奏的组合,并通过引入多标签分类技术解决了复音旋律的生成问题。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,包括:
S1、基于LSTM网络构建节奏生成网络,并基于强化学习Actor-Critic算法构建音符生成网络;
S2、获取原始MIDI音乐数据,并提取节奏数据和音符数据转换为网络训练数据;
S3、采用步骤S2中转换后的网络训练数据训练节奏生成网络和音符生成网络;
S4、采用训练后的节奏生成网络生成节奏数据,并采用训练后的音符生成网络生成音符数据;
S5、将生成的节奏和音符数据组合并转换为完整的单音轨MIDI音乐作品。
2.根据权利要求1所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述节奏生成网络包括依次设置的单向双层LSTM网络、全连接层及softmax层,所述节奏生成网络通过其softmax层输出的概率分布来随机选择生成的节奏时值;
所述音符生成网络包括依次设置的回报网络、Actor网络及Critic网络,所述回报网络和Actor网络均包括依次设置的单向双层LSTM网络、注意力层、全连接层及sigmoid层,所述回报网络用于获取音符对应的回报值,并基于获取的回报值叠加上乐理规则对应的乐理回报作为强化学习算法中音符对应的总回报值,所述Actor网络根据其sigmoid层的输出确定生成的音符值;所述Critic网络包括依次设置的单向双层LSTM网络、注意力层及两个全连接层,所述Critic网络通过其最后一个全连接层输出为Actor网络输出的动作对应的状态动作值。
3.根据权利要求2所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述Actor网络根据其sigmoid层的输出确定生成的音符值时,Actor网络根据其sigmoid层的输出进行四舍五入转换为mutli-hot形式的数据来确定生成的音符值;所述音符生成网络采用多标签分类方式以使音符生成网络支持复音序列的生成。
4.根据权利要求3所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述步骤S2将提取的节奏数据和音符数据转换为网络训练数据基于MagentA框架实现,将音符数据进行multi-hot编码,将节奏数据进行one-hot编码。
5.根据权利要求4所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述步骤S2中提取节奏数据和音符数据转换为网络训练数据具体包括如下步骤:
S21、将获取的原始MIDI音乐数据切分成多个乐段,并将切割好的乐段储存为TFRecord格式的文件;
S22、对音符时长进行量化,将其映射到整数范围,设定音符最小时长,并将节奏数据映射到设定音符最小时长为基本单位的整数空间上;
S23、从量化后的乐段数据中抽取出音符和节奏信息,并校验是否符合需求标准;
S24、将节奏数据编码为设定音符最小时长的one-hot形式数据,将音符数据映射到设定音符取值范围的整数空间并编码为与设定音符取值范围一致长度的multi-hot形式数据;
S25、将编码后的节奏数据和音符储存为结构化的TFRecord格式文件。
6.根据权利要求3所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述步骤S3具体包括以下步骤:
所述节奏生成网络使用softmax交叉熵作为网络损失函数,并使用转换后网络训练数据中的节奏数据对网络进行训练;
所述音符生成网络中的回报网络使用sigmoid交叉熵作为网络损失函数,并使用转换后网络训练数据中的音符数据对网络进行训练;
所述音符生成网络中的Actor网络通过状态动作值来训练,所述音符生成网络中的Critic网络通过最小化TD-error来训练。
7.根据权利要求6所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述节奏生成网络使用的softmax交叉熵作为网络损失函数的公式为:
Figure FDA0003637993330000021
其中,xi为经过one-hot编码的节奏数据,yi为输入xi对应的标签,Dr为节奏的种类数;
采用softmax交叉熵作为网络损失函数来训练节奏生成网络时,当训练准确率达到设定数值或者训练达到指定步长时停止训练。
8.根据权利要求6所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述音符生成网络中的回报网络使用的sigmoid交叉熵作为网络损失函数的公式为:
Figure FDA0003637993330000022
其中,x为模型未经激活函数前的输出,y为对应的标签;
当x<0时,将上述公式转换为以下等价形式:
loss=max(0,x)-x*y+log(1+exp(-abs(x)));
采用sigmoid交叉熵作为网络损失函数来训练音符生成网络中的回报网络时,当训练准确率达到设定数值或者训练达到指定步长时停止训练;
所述音符生成网络中的Actor网络训练所采用的状态动作值、以及所述音符生成网络中的Critic网络训练所采用的最小化TD-error获取包括以下步骤:
设置初始音符值或随机选取初始音符值,并将初始音符值输入所述音符生成网络中;
音符生成网络将初始音符值转换为强化学习中的状态s,再将状态s输入Actor网络获取下一步需要采取的动作a;
通过回报网络获取Actor网络输出的动作a对应的网络回报值rn,根据乐理规则获取动作a对应的乐理回报值rm,动作a对应的回报值为rmix=km*rm+kn*rn,其中km和kn为超参数,用于调节乐理回报值和网络回报值的比例;
将动作a转换到下一个状态s′,并将状态s、动作a、回报值rmix及状态s′四元组数据储存;
当储存的四元组数据达到设定数量后,对储存的四元组数据进行采样,并将状态s和动作a输入到回报网络中获取状态动作值Q(s,a);
将状态s′输入Actor网络中获取下一步动作a′,接着将状态s′和动作a′输入到Critic网络中获取状态动作值Q(s′,a′),通过所述回报值rmix以及状态动作值Q(s,a)和Q(s′,a′)计算TD-error。
9.根据权利要求3~8中任意一项所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述步骤S4中采用训练后的节奏生成网络生成节奏数据包括以下步骤:
设置初始节奏时值或者随机选取初始节奏时值、以及设置生成节奏数据的长度L1
将初始节奏时值转换为one-hot形式的数据并输入所述节奏生成网络中;
节奏生成网络在其最后一个网络层softmax输出节奏时值的概率分布;
根据概率分布随机选取并生成节奏数据;
依次执行L1次生成长度为L1的节奏序列。
10.根据权利要求3~8中任意一项所述的基于深度强化学习的单音轨MIDI音乐生成方法,其特征在于,所述步骤S4中采用训练后的音符生成网络生成音符数据包括以下步骤:
设置初始音符值或随机选取初始音符值、以及设置生成音符数据的长度L2
将初始音符值输入所述音符生成网络中,音符生成网络将音符值转换为强化学习中的状态s;
将状态s输入Actor网络获取下一步需要采取的动作a,通过动作a转换到下一个状态s′,再将s′输入到Actor网络中依次执行L2次生成状态序列,状态以multi-hot格式编码,最后将multi-hot格式的状态序列转换为音符序列得到音符数据。
CN202210511149.0A 2022-05-11 2022-05-11 基于深度强化学习的单音轨midi音乐生成方法 Active CN114842819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210511149.0A CN114842819B (zh) 2022-05-11 2022-05-11 基于深度强化学习的单音轨midi音乐生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210511149.0A CN114842819B (zh) 2022-05-11 2022-05-11 基于深度强化学习的单音轨midi音乐生成方法

Publications (2)

Publication Number Publication Date
CN114842819A true CN114842819A (zh) 2022-08-02
CN114842819B CN114842819B (zh) 2023-06-23

Family

ID=82570957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210511149.0A Active CN114842819B (zh) 2022-05-11 2022-05-11 基于深度强化学习的单音轨midi音乐生成方法

Country Status (1)

Country Link
CN (1) CN114842819B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117045930A (zh) * 2023-10-12 2023-11-14 北京动亮健康科技有限公司 睡眠改善模型的训练方法、系统、改善方法、设备、介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP547898A0 (en) * 1998-08-26 1998-09-17 Canon Kabushiki Kaisha System and method for automatic music generation
CN107154023A (zh) * 2017-05-17 2017-09-12 电子科技大学 基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法
KR101854706B1 (ko) * 2017-01-20 2018-05-08 한성대학교 산학협력단 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체
CN109727590A (zh) * 2018-12-24 2019-05-07 成都嗨翻屋科技有限公司 基于循环神经网络的音乐生成方法及装置
CN112951183A (zh) * 2021-02-25 2021-06-11 西华大学 一种基于深度学习的音乐自动生成并评价的方法
CN113192471A (zh) * 2021-04-16 2021-07-30 南京航空航天大学 一种基于神经网络的乐曲主旋律音轨识别方法
CN113423005A (zh) * 2021-05-18 2021-09-21 电子科技大学 一种运动驱动的智能音乐生成方法及系统
CN113707112A (zh) * 2021-08-13 2021-11-26 陕西师范大学 基于层标准化的递归跳跃连接深度学习音乐自动生成方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP547898A0 (en) * 1998-08-26 1998-09-17 Canon Kabushiki Kaisha System and method for automatic music generation
KR101854706B1 (ko) * 2017-01-20 2018-05-08 한성대학교 산학협력단 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체
CN107154023A (zh) * 2017-05-17 2017-09-12 电子科技大学 基于生成对抗网络和亚像素卷积的人脸超分辨率重建方法
CN109727590A (zh) * 2018-12-24 2019-05-07 成都嗨翻屋科技有限公司 基于循环神经网络的音乐生成方法及装置
CN112951183A (zh) * 2021-02-25 2021-06-11 西华大学 一种基于深度学习的音乐自动生成并评价的方法
CN113192471A (zh) * 2021-04-16 2021-07-30 南京航空航天大学 一种基于神经网络的乐曲主旋律音轨识别方法
CN113423005A (zh) * 2021-05-18 2021-09-21 电子科技大学 一种运动驱动的智能音乐生成方法及系统
CN113707112A (zh) * 2021-08-13 2021-11-26 陕西师范大学 基于层标准化的递归跳跃连接深度学习音乐自动生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱洪渊: "基于深度学习的自动作曲编曲研究", 中国优秀硕士/博士学位论文全文数据库 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117045930A (zh) * 2023-10-12 2023-11-14 北京动亮健康科技有限公司 睡眠改善模型的训练方法、系统、改善方法、设备、介质
CN117045930B (zh) * 2023-10-12 2024-01-02 北京动亮健康科技有限公司 睡眠改善模型的训练方法、系统、改善方法、设备、介质

Also Published As

Publication number Publication date
CN114842819B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
Bretan et al. A unit selection methodology for music generation using deep neural networks
Hadjeres et al. Deepbach: a steerable model for bach chorales generation
Chen et al. The effect of explicit structure encoding of deep neural networks for symbolic music generation
CN109727590B (zh) 基于循环神经网络的音乐生成方法及装置
CN111554255B (zh) 基于循环神经网络的midi演奏风格自动转换系统
CN111583891B (zh) 基于上下文信息的音符向量的自动作曲系统及方法
CN109448683A (zh) 基于神经网络的音乐生成方法及装置
CN108197123A (zh) 一种基于智能手表的云翻译系统和方法
CN114492407B (zh) 一种新闻评论生成方法、系统、设备及存储介质
Jin et al. A transformer generative adversarial network for multi‐track music generation
Chen et al. Continuous melody generation via disentangled short-term representations and structural conditions
CN114842819A (zh) 基于深度强化学习的单音轨midi音乐生成方法
CN111754962B (zh) 基于升降采样的民歌智能辅助作曲系统及方法
CN113035161A (zh) 基于和弦的歌曲旋律生成方法、装置、设备及存储介质
Sun et al. Composing music with grammar argumented neural networks and note-level encoding
Bhardwaj et al. Automated Music Generation using Deep Learning
CN115762449A (zh) 基于Transformer的条件音乐主题旋律自动生成方法及系统
CN116052621A (zh) 一种基于语言模型的音乐创作辅助方法
CN115602139A (zh) 一种基于两阶段生成模型的自动音乐生成方法及装置
CN111627410B (zh) 一种midi多轨序列表示方法和应用
CN112863465A (zh) 基于上下文信息的音乐生成方法、装置及存储介质
Wang et al. Motif transformer: Generating music with motifs
Qin et al. Bar transformer: a hierarchical model for learning long-term structure and generating impressive pop music
TW200935399A (en) Chinese-speech phonologic transformation system and method thereof
Han et al. Symbolic music loop generation with vq-vae

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
GR01 Patent grant
GR01 Patent grant