CN113611265B - 一种人工智能作曲方法和系统 - Google Patents
一种人工智能作曲方法和系统 Download PDFInfo
- Publication number
- CN113611265B CN113611265B CN202110764850.9A CN202110764850A CN113611265B CN 113611265 B CN113611265 B CN 113611265B CN 202110764850 A CN202110764850 A CN 202110764850A CN 113611265 B CN113611265 B CN 113611265B
- Authority
- CN
- China
- Prior art keywords
- music
- information
- module
- generation module
- potential
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000000203 mixture Substances 0.000 title claims abstract description 32
- 238000012549 training Methods 0.000 claims abstract description 26
- 239000011295 pitch Substances 0.000 claims abstract description 15
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 13
- 230000000694 effects Effects 0.000 claims abstract description 8
- 238000004140 cleaning Methods 0.000 claims abstract description 6
- 238000012216 screening Methods 0.000 claims abstract description 5
- 238000011156 evaluation Methods 0.000 claims description 39
- 238000013528 artificial neural network Methods 0.000 claims description 34
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 25
- 239000010410 layer Substances 0.000 claims description 20
- 239000002356 single layer Substances 0.000 claims description 18
- 238000007781 pre-processing Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 4
- 238000005520 cutting process Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 238000004883 computer application Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
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
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0008—Associated control or indicating means
- G10H1/0025—Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Theoretical Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
本发明公开一种人工智能作曲方法和系统。本发明涉及计算机应用技术领域。所述方法包括:获取训练集中的音乐信息,保存为钢琴卷帘格式,所述音乐信息包括音符、音高、起始时间以及音符的时值;对所述音乐信息进行清洗,切分为4小节乐句,删除超出音高范围的音符;将当下的音乐信息与上一个时间点输入的音乐信息,共同编码为其相应的潜在信息,并保存在潜在空间中;从潜在空间中提取低维音乐特征信息,产生新的音乐信息,将音乐信息进行筛分,并按照不同音轨进行输出,实现智能作曲;将生成的音乐与真实音乐进行对比,指导下一轮的音乐生成;在多轮训练后,输出效果趋于稳定时,音乐生成模块生成的音乐即为该实例的输出。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种人工智能作曲方 法和系统。
背景技术
音乐无疑对于当今社会具有十分特殊的意义,也是日常生活中必不 可少的一部分。随着计算机相关技术的发展和普及,计算机音乐领域应 运而生。而使用神经网络进行智能作曲作为计算机音乐领域中的新兴方 向,也得到了研究人员乃至商业公司的高度重视。
现有神经网络作曲方法,主要是基于循环神经网络(RNN,Recurrent NeuralNetwork),变分自动编码器(VAE,Variational Autoencoder)或 者生成对抗网络(GAN,Generative Adversarial Network)实现的。但是, 基于单一类型神经网络的计算机作曲方法只适合用于乐曲长度短的情 况,同时各类神经网络都着其典型缺点,其作曲效率随乐曲长度的增长 呈指数下降。递归神经网络存在着梯度消失和梯度爆炸的问题,生成的 音乐缺乏规则性和连贯性。生成对抗网络生成的音乐可听性较差,生成 质量不稳定。变分自动编码器在生成多音阶或者长序列音乐时,生成效 率低,生成音乐可听性差。
名词解释:
freezen机制:一种训练机制,在GAN网络中,当生成器或者鉴别 器被训练的异常强大以至于对方的梯度消失,无法正常进行训练时,对 过于强大的一方实施冻结。
KL散度:相对熵,如果对于同一个随机变量x有两个单独的概率 分布P(x)和Q(x),可以用KL散度(相对熵)来衡量这两个分布的差异。
tanh激活:在神经网络中,我们会对所有的输入进行加权求和,之 后我们会在对结果施加一个函数,这个函数就是我们所说的激活函数, 使用激活函数时为了让中间输出多样化,能够处理更复杂的问题。tanh 正是一种激活函数,为双切正切曲线,过(0,0)点。函数公式为:
softmax输出层:softmax是一种分类器,用于分类过程,用来实现 多分类的,它把一些输出的神经元映射到(0-1)之间的实数,并且归 一化保证和为1,从而使得多分类的概率之和也刚好为1。函数公式为:
其中,Vi是分类器前级输出单元的输出。i表示类别索引,总的类 别个数为C。Si表示的是当前元素的指数与所有元素指数和的比值。通 过Softmax函数就可以将多分类的输出数值转化为相对概率。
发明内容
本发明针对几种现有神经网络作曲方法的不足,提出了一种人工智 能作曲方法和系统,将循环神经网络、变分自动编码器、生成对抗网络 组合成混合神经网络,然后将训练生成的音符向量输入该作曲网络,可 以提高音符生成的准确性,长音乐的生成质量,且可以实现和声的生成。
一种人工智能作曲方法,包括如下步骤:
步骤一,构建预处理模块,将包含若干音乐文件的训练集输入预处理模 块得到训练集的音乐文件中的音乐信息并保存为钢琴卷帘格式;所述音 乐信息包括音符、音高、起始时间以及音符的时值;
步骤二,通过预处理模块,对所述音乐信息进行清洗,切分成预设长度 范围的音乐片段,删除超出超出预设音高范围的音符;
步骤三,构建数据转换模块,将当下的音乐信息与上一个时间点输入的 音乐信息,共同编码为其相应的潜在信息,并保存在潜在空间中;
步骤四,构建音乐生成模块,提取潜在空间中的低维信息,产生新的音 乐信息,将音乐信息进行筛分,并保存为不同音轨,不同乐器的音乐, 实现自动作曲;数据转换模块和音乐生成模块构成变分自编码器;数据 转换模块作为变分自编码器的编码器网络,音乐生成模块作为变分自编 码器的解码器网络;
步骤五,构建音乐评估模块,设置奖励函数,将音乐生成模块输出的音 乐与真实音乐进行对比,指导音乐生成模块下一轮的音乐生成;音乐生 成模块与音乐评估模块构成GAN神经网络,音乐生成模块作为GAN 神经网络的生成器,音乐评估模块作为GAN神经网的鉴别器;
步骤六,在音乐生成模块经多轮训练后,输出效果稳定时,音乐生成模 块生成的音乐即为智能作曲作品。
进一步的改进,所述数据转换模块由多个单层双向GRU网络组成, 每个时序片段的单层双向GRU网络同时向前一个时序和后一个时序的 传递参数,也接受前一个时序和后一个时序的参数;完成对所有音乐特 征信息的提取后,由第一个时序的单层双GRU网络和最后一个时序的 单层双GRU网络将所有音乐特征信息编码为相应的潜在信息,并保存 在潜在空间中;所述潜在信息为数据转换模块提出来的音乐特征信息, 所述潜在空间为所有保存潜在信息的变量的集合,为一个或多个一维数 组。
进一步的改进,GAN神经网络的目标函数为:
其中,D表示音乐评估函数,G表示音乐生成函数;x表示真实数据输 入,Ex~pdata(x)表示从分布pdata中采样x;data表示真实数据,pdata(x) 表示真实数据data的分布;z表示噪声数据,pz为噪声数据所服从的分 布,pg为生成数据所服从的分布;D(x)表示x在服从padata分布时x的 期望,输出为一个最大值为1,最小值为0的值;λ为惩罚项的参数。
进一步的改进,所述音乐生成模块由一种分层次的GRU网络构成, 其结构为一层U个GRU网络和一层U×n个GRU网络;所述GRU神 经网络,有两个门控制单元,一个更新门,和一个重置门;
构成函数如下
zt=σ(Wz·[ht-1,xt])
rt=σ(Wr·[ht-1,xt])
yt=σ(Wo·ht)
其中:zt表示t时刻的更新门,rt表示t时刻的重置门,表示t时刻的 候选激活状态,ht表示t时刻的激活状态,ht-1表示(t-1)时刻的隐层状态, xt表示t时刻的输入,σ表示激活函数,Wr、Wz、Wh、Wo均为要学习 的权重参数;更新门z由当前状态需要被遗忘的历史信息和接受的新信 息决定;重置门r由候选状态从历史信息中得到的信息决定;更新门控 制前一时刻有多少信息传递到当前状态,更新门的数值越大则传递的信 息越多;而重置门则控制前一状态有多少信息被输入进当前状态下,重 置门越大,则写入当前状态的信息越多。
进一步的改进,所述音乐评估模块模块,包括x个GRU网络,x 的大小取决于音乐生成模块输入的音乐信息序列长度,x大小为输入音 乐信息序列长度/a,a为设定的每小节时间分辨率宽度;在开始训练之 前指定好奖励函数,奖励函数的设置如下,若两个相邻的音符之间的音 程差大于预设音阶的话将被记为0,反之则记为1,g(x)则是每段音 乐的平均值;即:若一段音乐有n组相邻音符的音程差大于预设音阶, 剩余的m组小于等于预设音阶,则用如下公式表示:
所述音乐评估模块将音乐生成模块输出的音乐序列作为输入,通过比对 真实音乐序列判断它是真实的还是生成的音乐,并依据判断结果决定是 否对音乐评估模块施加惩罚。
进一步的改进,a=96。
进一步的改进,所述预设音阶设置为84。
一种人工智能作曲系统,包括预处理模块、数据转换模块、音乐生 成模块和音乐评估模块;
所述预处理模块用于提取音乐文件中的音乐信息并保存为钢琴卷帘格 式,还用于对音乐信息进行清洗,切分成预设长度范围的音乐片段,删 除超出超出预设音高范围的音符;
所述数据转换模块用于将当下的音乐信息与上一个时间点输入的音乐 信息,共同编码为其相应的潜在信息,并保存在潜在空间中;
所述音乐生成模块用于提取潜在空间中的低维信息,产生新的音乐信 息,将音乐信息进行筛分,并保存为不同音轨,不同乐器的音乐,实现 自动作曲;
所述音乐评估模块用于设置奖励函数,将音乐生成模块输出的音乐与真 实音乐进行对比,指导音乐生成模块下一轮的音乐生成;
其中,数据转换模块和音乐生成模块构成变分自编码器;数据转换模块 作为变分自编码器的编码器网络,音乐生成模块作为变分自编码器的解 码器网络;
音乐生成模块与音乐评估模块构成GAN神经网络,音乐生成模块 作为GAN神经网络的生成器,音乐评估模块作为GAN神经网的鉴别 器。
相对于现有技术,本发明有着生成音乐可听性强,可生成长音乐, 可生成多音轨音乐的技术效果。上述基于混合神经网络的智能作曲方 法,数据转换模块中单层双向GRU含有GRU区块,所述区块包含有 一个更新门,所述门判断音乐信息是否重要,是否能够参与下一轮训练。 用户可通过自行给音乐生成模块和音乐评估模块指定参数和奖励函数 来参与创作过程,通过不同输入来生成不同类型的音乐,控制灵活且生 成效果丰富。
附图说明
通过下文对本发明实施项目的详细阐述,能更好的描述本发明的各 项优点。附图仅用于对本发明做进一步说明,但附图中的内容不构成对 本发明的任何限制。
图1为一个实例中基于混合神经网络的智能作曲方法的流程示意 图。
图2为一个实例中混合神经网络的结构图。
图3为一个实例中预处理模块处理MIDI音乐的流程图。
图4为一个实例中单个GRU网络内部结构图。
图5为一个实例中数据转换模块单层双向GRU网络的组合结构图。
图6为一个实例中音乐生成模块双层单向GRU网络的组合结构图。
图7为一个实例中音乐评估模块模块单层双向GRU网络的组合结 构图。
图8为一个实例中单RNN网络生成的音乐的钢琴卷帘图。
图9为一个实例中GAN-RNN网络生成的音乐的钢琴卷帘图。
图10为一个实例中本发明所述方法生成的单乐器独奏音乐的钢琴 卷帘图。
图11为一个实例中本发明所述方法生成的三乐器合奏音乐的钢琴 卷帘图。
具体实施方式
为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实例,对本发明进行进一步的详细说明。
本发明是一种人工智能作曲方法和系统,如图1所示,包括如下步 骤:
步骤S1,通过预处理模块,获取训练集中MIDI音乐文件中的音乐 信息,所述音乐信息包括音符、音高、起始时间以及音符的时值,保存 为钢琴卷帘格式。所述训练集由三百首以上midi音乐组成,可以为特 定某一类型音乐,也可由任意类型音乐构成。
作为训练集的MIDI文件中最重要的信息包括三个方面,即音符音 高、起始时间以及音符的时值。通过对文件字段中与音符相关的信息进 行提取与过滤,从而得到神经网络的训练数据。被转换后的数据表示为 一个二维矩阵,矩阵的两个维度分别表示音高和时间。其中纵向的时间 维以MIDI格式中的tick(midi文件中的最小时间单位)作为时间单位进行量化,最小音符单位为十六分音符。横向的音高维度单位为半音音 程,其长度由MIDI数据中音符的最大范围决定,超出范围的音符将被 忽略。将预处理模块解析出的MIDI数据信息输出,通过分析对应的字 段,提取出音符触发与停止的控制消息,将音符停止信息与触发信息的 Delta-Time(时间差参数,它指前一个事件到该事件的时间间隔,单位 为tick)相减即可得到音符自身时值的Delta-Time,然后通过分辨率与 Delta-Time的转换关系即可将音符长度的Delta-Time转换为音符的实际 时值,其中音符均使用了含有音符结束标志的表示方式,该生成结果可 以直接作为神经网络的输入数据集进行训练。
步骤S2,通过预处理模块,对所述音乐信息进行清洗,切分成长 度合适的音乐片段,删除超出音高范围的音符。
预处理模块处理MIDI音乐的整体流程,如图3所示。在一个实例 中,通过预处理模块去掉不在C键或不使用四拍的歌曲。对于每个小节, 将宽度(时间分辨率)设置为96,用于建模常见的时间模式,如三连 音,十六音符等。将高度设置为84以覆盖从C1到C8的音高。因此, 每条数据张量的大小为96*84*5,并保存在二维矩阵中。矩阵的每个元 素的值是某个时间步的音符的速度(音量)。n条的音乐序列由 X={x0,...,xt-1,xt,...,xn}表示,其中xt-1和xt是两条连续的信息,n的大 小取决于音乐生成模块输入的音乐信息序列长度,n大小为输入音乐信 息序列长度/96,96为设定的每小节时间分辨率宽度。
步骤S3,通过数据转换模块,将当下的音乐信息与上一个时间点输 入的音乐信息,共同编码为其相应的潜在信息,并保存在潜在空间中, 所述潜在信息为数据转换模块提出来的音乐特征信息,为音符、音高、 起始时间以及音符的时值等信息的特殊一维表示,所述潜在空间为所有 保存潜在信息的变量的集合,为一个或多个一维数组。
循环神经网络(Recurrent Neural Network,RNN)是一种十分流行 的神经网络模型,通常用于处理序列数据,已在自然语言处理领域有了 卓越的效果。Xt:表示t时刻的输入,Yt:表示t时刻的输出,Mt:表 示t时刻的记忆,K、L均表示权重矩阵,根据公式1:
Mt=f(KXt+LMt-1) 公式(1)
其中f()为激活函数,使其做一个非线性映射,可以用来过滤信 息。RNN预测时利用当前时刻的记忆Mt去预测,然后利用softmax来 预测每种输出的概率,如公式:
Yt=soft max(HMt) 公式(2)
其中H表示权重矩阵,Yt就表示时刻t的输出;softmax()表示t 时刻下该输出的概率。
门控递归单元递归神经网络GRU(Gate Recurrent Unit Recurrent NeuralNetworks)是一种特殊的RNN网络结构,其网络更新方式与RNN 相同,不过GRU在设计上能够解决RNN网络中的长依赖问题。
如图4所示,相比RNN,GRU增加了两个门控制单元,一个更新 门,和一个重置门。进一步的改进,所述音乐生成模块由一种分层次的 GRU网络构成,其结构为一层U个GRU网络和一层U×n个GRU网络; 所述GRU神经网络,有两个门控制单元,一个更新门,和一个重置门;
构成函数如下
zt=σ(Wz·[ht-1,xt]) 公式(3)
rt=σ(Wr·[ht-1,xt]) 公式(4)
yt=σ(Wo·ht) 公式(5)
其中:zt表示t时刻的更新门,rt表示t时刻的重置门,表示t时 刻的候选激活状态,ht表示t时刻的激活状态,ht-1表示(t-1)时刻的隐层状 态,xt表示t时刻的输入,σ表示激活函数,Wr、Wz、Wh、Wo均为要 学习的权重参数;更新门z由当前状态需要被遗忘的历史信息和接受的 新信息决定;重置门r由候选状态从历史信息中得到的信息决定;更新 门控制前一时刻有多少信息传递到当前状态,更新门的数值越大则传递 的信息越多;而重置门则控制前一状态有多少信息被输入进当前状态 下,重置门越大,则写入当前状态的信息越多。
更新门控制前一时刻有多少信息传递到当前状态,更新门的数值越 大则传递的信息越多。而重置门则控制有前一状态有多少信息被输入进 当前状态下,重置门越大,则写入当前状态的信息越多。音乐是一种时 序序列,在本方法中使用GRU网络来实现音乐序列的生成。门控递归 单元递归神经网络GRU具有特殊的时序记忆功能。通过两个门的控制,可以将以前的信息连接到当前的任务中来,即通过之前的生成序列来预 测下一个序列动作。如图4所示数据转化模块由多个单层双向GRU网 络组成,编码每个时序片段的GRU网络同时向前一个时序和后一个时 序的传递参数,也接受这两者的参数。完成对所有音乐特征信息的提取 后,由第一个时序GRU网络和最后一个时序的GRU网络将其编码为 相应的潜在信息,并保存在潜在空间中。所述潜在信息为数据转换模块 提出来的音乐特征信息,所述潜在空间为所有保存潜在信息的变量的集 合,为一个或多个一维数组。
步骤S4,通过音乐生成模块,从潜在空间中提取低维音乐特征信息, 产生新的音乐信息,将音乐信息进行筛分,并按照不同音轨,不同乐器 的音乐进行输出,实现智能作曲;
生成式对抗网络(GAN,Generative AdversarialNetworks)是一种 深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。 模型通过框架中两个模块:生成器(Generative Model)和鉴别器 (Discriminative Model)的互相博弈学习产生输出。
在一个实例中,音乐生成模块承担生成器,音乐评估模块承担鉴别 器。音乐生成模块网络从潜在空间中提取低维信息并生成高维音乐信 息。音乐评估模块网络试图区分从训练数据抽取的样本和从音乐生成模 块生成的样本。音乐评估模块发出该样本由音乐生成模块给出的概率 值,指示该样本是真实训练样本而不是从模型抽取的伪造样本的概率。
音乐评估模块的训练目的就是最大化自己的判别准确率。当这个数 据被判别为来自于真实数据时,标注1,来自于生成数据时,标注0。 而与这个目的相反的是,音乐生成模块的训练目标,就是要最小化音乐 评估音乐评估模块的判别准确率。在训练过程中,音乐生成模块和音乐 评估模块的能力并不总是对等的,经常会出现音乐生成模块或音乐评估 模块被训练得异常强大以至于对方梯度消失,这也是GAN网络作曲质 量不稳定的主要原因之一。在一个实施例中,加入了freezen机制以对 这种问题加以改善。当出现某一方过于强大使得训练无法正常进行时, 便对过于强大的一方实施“冻结”。它的目标函数为:
其中,D表示音乐评估函数,G表示音乐生成函数;x表示真实数 据输入,Ex~pdata(x)表示从分布pdata中采样x;data表示真实数据,pdata (x)表示真实数据data的分布;z表示噪声数据,pz为噪声数据所服 从的分布,pg为生成数据所服从的分布;D(x)表示x在服从padata分布 时x的期望,输出为一个最大值为1,最小值为0的值;λ为惩罚项的参数。
音乐评估模块试图学习将样品正确的分类为真实的或者伪造的,同 时,在收敛时,音乐生成模块的样本与实际数据不可区分,并且音乐评 估模块准确判断几率约为50%,两者达到纳什均衡,则视为该网络达到 学习效果。
变分自编码器(VAE,variational auto-encoder)是一种使用近似推 断的有向模型,可以纯粹地使用基于梯度的方法进行训练。VAE首先从 编码分布P(z)中采样潜在向量并保存在潜在空间z中。然后使用样本 通过可微生成器网络g(z)。最后,从分布P(x;g(z))=P(x|z) 中采样x;其中x表示原始数据样本,P(x)即为原始数据样本的分布, z为潜在空间中的潜在变量,g(z)表示潜在变量的分布。VAE由一个 近似后验p(z|x)的编码器qλ(z|x)和一个参数化似然性p(x|z)的 解码器pθ(x|z)组成。在实践中,近似后验分布和似然分布编码器和 解码器,分别由参数λ和θ的神经网络参数化。遵循变分推理的框架, 通过最大化让下界来最小化KL散度,利用编码器和后验p(z|x)之间 的KL散度,来进行后验使其推理到z~qλ(z|x)和KL。
VAE中的编码器和解码器网络,如上文所述,编码器是一个单层双 向GRU网络。编码器使用采样的潜在空间z来设置解码器GRU(同时 在生成对抗网络中承担生成器)的初始状态,解码器GRU自动生成输 出序列。该模型被训练以重建输入序列并且学习接近先前的p(z)的近 似后验qλ(z|x)。
如图6所示,音乐生成模块由一种分层次的GRU网络构成,其结 构为一层U个GRU网络和一层U×n个GRU网络。所述模块同时在变 分自动编码器网络中承担解码器,将输入序列和目标输出序列S分割成 c个不重叠的子序列dc与端点ic,它们的关系为:
→s={d1,d2,...,dc} 公式(10)
在一个实例中定义了ic+1=T的特例,将潜在空间中的信息向量穿过 一个全连接层,然后进行激活,以获得第一层GRU网络的初始状态。 第一层GRU网络产生c个嵌入向量u={u1,u2,...,uc},uc表示第c各嵌入 向量;每个子序列一个。第一层GRU网络产生了嵌入向量u的序列后, 每个GRU网络将通过共享的全连接层,然后进行tanh激活,以产生最 终底层GRU的初始状态。然后,底层GRU通过softmax输出层,针对 每个子序列dc递归地生成一系列分布序列。在底层GRU网络的每个步 骤中,将当前第一层GRU网络的嵌入向量uc与先前的输出连接起来, 以用作输入。
步骤S5,通过音乐评估模块,将音乐生成模块输出的的音乐与真 实音乐进行对比,指导下一轮的音乐生成。
根据音乐理论规则来设置奖励函数。由于音乐的生成是随机的,所 以可能在连续的音符之间存在较大的间隔。可以指定音符间的最大音 程,当音程超过了指定的最大值时,降低奖励。当最强拍和次强拍是和 音或休止符时,赋予正的奖励。当它们不是和音,或者没有音阶音符时, 不赋予奖励。根据音乐理论中音程的约束条件,通过奖励函数约束减少 超过五度的音程变化,同时减少连续同方向的大音程变化;避免在生成 的音乐中出现连续重复的同一个音符。
奖励函数的设置如下,若两个相邻的音符之间的音程差如果大于八 度音阶的话将被记为0,反之则记为1,g(x)则是每段音乐的平均值。 即:若一段音乐有n组相邻音符的音程差大于八度音阶,剩余的m组 小于等于八度音阶。可用如下公式表示:
在一个实施例中,如图6所示,音乐评估模块模块由多个单层双向 GRU网络组成,在开始训练之前指定好奖励函数。音乐评估模块网络 将二维矩阵xt和x’t作为输入,并预测它们是真实的还是生成的音乐, 并依据判断结果影响下一轮的训练。xt和x’t分别表示原始音乐序列和 生成音乐序列;
所述矩阵的每个元素的值是某个时间步的音符的速度。n条的音乐 序列由X={x0,...,xt-1,xt,...,xn}表示,其中xt-1和xt是两条连续的信息。
步骤S6,在多轮训练后,输出效果趋于稳定时,音乐生成模块生 成的音乐即为该实例的输出。
综上,本发明展示了一种人工智能作曲方法和系统。经过步骤1至 步骤6多轮循环后便可以得到所述模型的输出。在训练过程中,用户可 通过指定奖励函数和指定输入的MIDI音乐来调整所述模型的输出结 果。
具体的实验与结果分析:
为了说明本发明的有效性,我们将本发明方法与纯RNN框架作曲 方法和GAN-RNN框架作曲在用Lakh MIDI数据集上进行性能比较,生 成结果钢琴卷帘表示如图8~10所示,其顺序分别为纯RNN,GAN-RNN, 本发明所述方法和系统实现效果。本发明所述方法和系统能较好的符合 乐理规则且悦耳的音乐,经问卷调查人工评价的结果后,其音乐性和可 听性较其他两种方法更佳。且本发明所述方法还能较好的生成有多种乐 器混响的音乐,如图11所示。
以上实施例仅用于说明本发明的技术方案而非对本发明保护范围 的限制,尽管参照较佳实施例对本发明作了详细说明,本领域的普通技 术人员应当了解,可以对本发明的技术方案进行修改或者等同替换,而 不脱离本发明技术方案的实质和范围。
Claims (7)
1.一种人工智能作曲方法,其特征在于:包括如下步骤:
步骤一,构建预处理模块,将包含若干音乐文件的训练集输入预处理模块得到训练集的音乐文件中的音乐信息并保存为钢琴卷帘格式;所述音乐信息包括音符、音高、起始时间以及音符的时值;
步骤二,通过预处理模块,对所述音乐信息进行清洗,切分成预设长度范围的音乐片段,删除超出预设音高范围的音符;
步骤三,构建数据转换模块,将当下的音乐信息与上一个时间点输入的音乐信息,共同编码为其相应的潜在信息,并保存在潜在空间中;
所述数据转换模块由多个单层双向GRU网络组成,每个时序片段的单层双向GRU网络同时向前一个时序和后一个时序的传递参数,也接受前一个时序和后一个时序的参数;完成对所有音乐特征信息的提取后,由第一个时序的单层双GRU网络和最后一个时序的单层双GRU网络将所有音乐特征信息编码为相应的潜在信息,并保存在潜在空间中;所述潜在信息为数据转换模块提出来的音乐特征信息,所述潜在空间为所有保存潜在信息的变量的集合,为一个或多个一维数组;
步骤四,构建音乐生成模块,提取潜在空间中的低维信息,产生新的音乐信息,将音乐信息进行筛分,并保存为不同音轨,不同乐器的音乐,实现自动作曲;数据转换模块和音乐生成模块构成变分自编码器;数据转换模块作为变分自编码器的编码器网络,音乐生成模块作为变分自编码器的解码器网络;
步骤五,构建音乐评估模块,设置奖励函数,将音乐生成模块输出的音乐与真实音乐进行对比,指导音乐生成模块下一轮的音乐生成;音乐生成模块与音乐评估模块构成GAN神经网络,音乐生成模块作为GAN神经网络的生成器,音乐评估模块作为GAN神经网的鉴别器;
步骤六,在音乐生成模块经多轮训练后,输出效果稳定时,音乐生成模块生成的音乐即为智能作曲作品。
3.如权利要求1所述的人工智能作曲方法,其特征在于:所述音乐生成模块由一种分层次的GRU网络构成,其结构为一层U个GRU网络和一层U×n个GRU网络;所述GRU网络,有两个门控制单元,一个更新门,和一个重置门;
构成函数如下
zt=σ(Wz·[ht-1,xt])
rt=σ(Wr·[ht-1,xt])
yt=σ(Wo·ht)
4.如权利要求1所述的人工智能作曲方法,其特征在于:所述音乐评估模块,包括x个GRU网络,x的大小取决于音乐生成模块输入的音乐信息序列长度,x大小为输入音乐信息序列长度/a,a为设定的每小节时间分辨率宽度;在开始训练之前指定好奖励函数,奖励函数的设置如下,若两个相邻的音符之间的音程差大于预设音阶的话将被记为0,反之则记为1,g(x)则是每段音乐的平均值;即:若一段音乐有n组相邻音符的音程差大于预设音阶,剩余的m组小于等于预设音阶,则用如下公式表示:
所述音乐评估模块将音乐生成模块输出的音乐序列作为输入,通过比对真实音乐序列判断它是真实的还是生成的音乐,并依据判断结果决定是否对音乐评估模块施加惩罚。
5.如权利要求4所述的人工智能作曲方法,其特征在于:a=96。
6.如权利要求4所述的人工智能作曲方法,其特征在于:所述预设音阶设置为84。
7.一种人工智能作曲系统,其特征在于,包括预处理模块、数据转换模块、音乐生成模块和音乐评估模块;
所述预处理模块用于提取音乐文件中的音乐信息并保存为钢琴卷帘格式,还用于对音乐信息进行清洗,切分成预设长度范围的音乐片段,删除超出预设音高范围的音符;
所述数据转换模块用于将当下的音乐信息与上一个时间点输入的音乐信息,共同编码为其相应的潜在信息,并保存在潜在空间中;
所述数据转换模块由多个单层双向GRU网络组成,每个时序片段的单层双向GRU网络同时向前一个时序和后一个时序的传递参数,也接受前一个时序和后一个时序的参数;完成对所有音乐特征信息的提取后,由第一个时序的单层双GRU网络和最后一个时序的单层双GRU网络将所有音乐特征信息编码为相应的潜在信息,并保存在潜在空间中;所述潜在信息为数据转换模块提出来的音乐特征信息,所述潜在空间为所有保存潜在信息的变量的集合,为一个或多个一维数组;
所述音乐生成模块用于提取潜在空间中的低维信息,产生新的音乐信息,将音乐信息进行筛分,并保存为不同音轨,不同乐器的音乐,实现自动作曲;
所述音乐评估模块用于设置奖励函数,将音乐生成模块输出的音乐与真实音乐进行对比,指导音乐生成模块下一轮的音乐生成;
其中,数据转换模块和音乐生成模块构成变分自编码器;数据转换模块作为变分自编码器的编码器网络,音乐生成模块作为变分自编码器的解码器网络;
音乐生成模块与音乐评估模块构成GAN神经网络,音乐生成模块作为GAN神经网络的生成器,音乐评估模块作为GAN神经网的鉴别器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764850.9A CN113611265B (zh) | 2021-07-07 | 2021-07-07 | 一种人工智能作曲方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764850.9A CN113611265B (zh) | 2021-07-07 | 2021-07-07 | 一种人工智能作曲方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113611265A CN113611265A (zh) | 2021-11-05 |
CN113611265B true CN113611265B (zh) | 2022-09-23 |
Family
ID=78337355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110764850.9A Active CN113611265B (zh) | 2021-07-07 | 2021-07-07 | 一种人工智能作曲方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113611265B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264984A (zh) * | 2019-05-13 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 模型训练方法、音乐生成方法、装置和电子设备 |
CN110288965A (zh) * | 2019-05-21 | 2019-09-27 | 北京达佳互联信息技术有限公司 | 一种音乐合成方法、装置、电子设备及存储介质 |
CN110853604A (zh) * | 2019-10-30 | 2020-02-28 | 西安交通大学 | 基于变分自编码器的具有特定地域风格的中国民歌自动生成方法 |
CN111554255A (zh) * | 2020-04-21 | 2020-08-18 | 华南理工大学 | 基于循环神经网络的midi演奏风格自动转换系统 |
CN111583891A (zh) * | 2020-04-21 | 2020-08-25 | 华南理工大学 | 基于上下文信息的音符向量的自动作曲系统及方法 |
CN111754962A (zh) * | 2020-05-06 | 2020-10-09 | 华南理工大学 | 基于升降采样的民歌智能辅助作曲系统及方法 |
CN111933110A (zh) * | 2020-08-12 | 2020-11-13 | 北京字节跳动网络技术有限公司 | 视频生成方法、生成模型训练方法、装置、介质及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10380983B2 (en) * | 2016-12-30 | 2019-08-13 | Google Llc | Machine learning to generate music from text |
WO2020031544A1 (ja) * | 2018-08-10 | 2020-02-13 | ヤマハ株式会社 | 楽譜データの情報処理装置 |
-
2021
- 2021-07-07 CN CN202110764850.9A patent/CN113611265B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264984A (zh) * | 2019-05-13 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 模型训练方法、音乐生成方法、装置和电子设备 |
CN110288965A (zh) * | 2019-05-21 | 2019-09-27 | 北京达佳互联信息技术有限公司 | 一种音乐合成方法、装置、电子设备及存储介质 |
CN110853604A (zh) * | 2019-10-30 | 2020-02-28 | 西安交通大学 | 基于变分自编码器的具有特定地域风格的中国民歌自动生成方法 |
CN111554255A (zh) * | 2020-04-21 | 2020-08-18 | 华南理工大学 | 基于循环神经网络的midi演奏风格自动转换系统 |
CN111583891A (zh) * | 2020-04-21 | 2020-08-25 | 华南理工大学 | 基于上下文信息的音符向量的自动作曲系统及方法 |
CN111754962A (zh) * | 2020-05-06 | 2020-10-09 | 华南理工大学 | 基于升降采样的民歌智能辅助作曲系统及方法 |
CN111933110A (zh) * | 2020-08-12 | 2020-11-13 | 北京字节跳动网络技术有限公司 | 视频生成方法、生成模型训练方法、装置、介质及设备 |
Non-Patent Citations (1)
Title |
---|
Komposer V2: A Hybrid Approach to Intelligent Musical Composition Based on;Madhushi Devindi Welikala;《Preceedings of the Future Technologies Conference》;20201030;第413-424页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113611265A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026869B (zh) | 一种利用基于多层注意力的序列生成网络进行多罪名预测的方法 | |
CN110751108B (zh) | 一种地铁分布式振动信号相似度确定方法 | |
Shrestha et al. | Stable spike-timing dependent plasticity rule for multilayer unsupervised and supervised learning | |
CN106503654A (zh) | 一种基于深度稀疏自编码网络的人脸情感识别方法 | |
Toivianen | Symbolic AI versus connectionism in music research | |
WO2000016212A1 (en) | Method and apparatus for neural networking using semantic attractor architecture | |
CN114386324A (zh) | 一种基于转折性时段识别的超短期风电功率分段预测方法 | |
CN111160163B (zh) | 一种基于区域关系建模和信息融合建模的表情识别方法 | |
CN110766060B (zh) | 基于深度学习的时间序列相似度的计算方法、系统及介质 | |
CN116432697A (zh) | 一种融合长短期记忆网络与注意力机制的时间序列预测方法 | |
CN110956309A (zh) | 基于crf和lstm的流程活动预测方法 | |
CN111461455A (zh) | 一种基于关联周期注意力机制的行为预测方法 | |
CN111899766B (zh) | 基于深度特征与声学特征寻优融合的语音情感识别方法 | |
CN114580545A (zh) | 一种基于融合模型的风电机组齿轮箱故障预警方法 | |
CN115374903A (zh) | 一种基于高速公路传感网布设的长期路面监测数据增强方法 | |
Silva et al. | Evolving spiking neural networks for recognition of aged voices | |
CN111881299A (zh) | 基于复制神经网络的离群事件检测与识别方法 | |
Feng et al. | A dual-staged attention based conversion-gated long short term memory for multivariable time series prediction | |
CN109192187A (zh) | 基于人工智能的作曲方法、系统、计算机设备和存储介质 | |
CN113611265B (zh) | 一种人工智能作曲方法和系统 | |
Buzzanca | A supervised learning approach to musical style recognition | |
Prashant Krishnan et al. | Music generation using deep learning techniques | |
CN114707829A (zh) | 基于结构化数据线性展开的目标人员再犯风险预测方法 | |
Li | A Bayesian approach to temporal data clustering using the hidden Markov model methodology | |
Mohanty et al. | Temporally conditioning of generative adversarial networks with lstm for music generation |
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 |