1.一种基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于由下述步骤组成:(1)获取音乐数据集
获取乐器数字接口类型的音乐文件作为训练音乐自动生成网络的数据集;
(2)对数据集进行预处理
用音高、音强、音长、和弦事件的形式表示乐器数字接口文件中的音乐,其中音高事件包含128个事件,对应0‑127的数字作为索引;音强事件包含32个事件,对应0‑31的数字作为索引;音长事件包含100个事件,对应0‑99的数字作为索引;和弦事件包含60个事件,对应0‑
59的数字作为索引,对音乐数据进行音高调整、添加和删除音符、拆分和移动音符的数据增强操作,将音乐事件序列切分成预设长度为30秒的音乐片段,根据音乐事件对应的数字索引将音乐事件序列转换为对应的数字序列;
(3)划分训练集和测试集
将数据集划分为训练集和测试集,训练集与测试集的比为8:2;
(4)构建音乐自动生成网络
音乐自动生成网络模型由输入层(1)与激活层(2)、密集网络层(3)、长短期记忆网络层(4)、多头注意力层(5)、输出层(6)依次串联构成;
(5)训练音乐自动生成网络
将训练集输入到音乐自动生成网络进行训练,使用Adam优化器动态调整音乐自动生成网络的学习率,按照下式的交叉熵损失函数L(a,b)作为损失函数比较输出音符序列和原始音符序列,获取损失值L(a,b):L(a,b)=alnb+(1‑a)ln(1‑b)
其中,a表示原始音符序列,b表示输出音符序列;训练时数据的批次大小为采样率的1~8倍,迭代至交叉熵损失函数收敛,得到训练好的音乐自动生成网络;
(6)自动生成音乐文件
将测试集输入到训练好的音乐自动生成网络中,用训练好的模型在指定路径下生成对应的乐器数字接口类型音乐文件。
2.根据权利要求1所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:在(4)构建音乐自动生成网络中,所述的密集网络层(3)由第一批归一化层a1与第一激活层b1、第一卷积层c1、第二批归一化层a2、第二激活层b2、第二卷积层c2、密集网络随机失活层d依次串联构成。
3.根据权利要求1所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:在(4)构建音乐自动生成网络中,所述的长短期记忆网络层(4)由第一长短期记忆层f1与长短期记忆网络第一随机失活层d1、第二长短期记忆层f2、长短期记忆网络第二随机失活层d2、第三长短期记忆层f3、全连接层m依次串联构成。
4.根据权利要求2所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:所述的第一激活层b1和第二激活层b2的激活函数R(x)如下式:其中,x表示输入数据,α为系数、α∈(0,1)。
5.根据权利要求2所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:所述的第一卷积层c1和第二卷积层c2的卷积核大小为3×3。
6.根据权利要求2所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:所述的密集网络随机失活层d的丢弃率为0.3~0.5。
7.根据权利要求3所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:所述的第一长短期记忆层f1、第二长短期记忆层f2、第三长短期记忆层f3中引入二元贝塔分布函数替换其中输入门与遗忘门的Sigmoid函数,按下式确定第t时刻输入门输出值it,确定第t时刻遗忘门输出值ft:其中, 表示服从伽马分布函数的随机变量, 表示参数为 速率参
数设置为常数1的伽马分布函数,j表示随机变量的序号,j取值为1、2、3, 表示伽马分布函数的形状参数,gj表示当前输入xt与上一时刻的隐藏状态ht‑1的多层感知机函数。
8.根据权利要求3所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:所述的全连接层m按照下式的激活函数S(zi)确定:其中,zi表示全连接层第i个节点的输出值,C表示输出节点的个数,zc表示第c个节点的输出值。
9.根据权利要求1所述的基于密集网络和多头注意力机制的音乐自动生成方法,其特征在于:在(4)构建音乐自动生成网络步骤中,所述的多头注意力层(5)有N个自注意力头,N取值为2~8的整数。