1.一种基于深度学习的音乐自动生成并评价的方法,其特征在于,包括以下步骤:S1、采集MIDI数据,并对MIDI数据进行预处理;
S2、使用预处理后的MIDI数据对GPT‑2模型进行训练,并输入若干音符至训练后的GPT‑
2模型中,得到音乐旋律;
S3、对音乐旋律进行数理统计评价、乐理评价以及调试检验评价,完成音乐评价;
所述数理统计评价具体包括符号秩检验、曼‑惠特尼U检验和克氏检验;
所述符号秩检验具体为:
A1、获取预处理后的MIDI数据中所有音符位置的中心点为XM0,并计算生成的音乐旋律中每个音符Xj到中心点XM0的距离为|Xj‑XM0|,j=1,2,...,n,n表示生成的音乐旋律中音符总数;
A2、将n个距离按升序排序,并根据n个距离获取n个秩;
A3、令W+为Xj‑XM0>0对应秩的和,令W‑为Xj‑XM0<0对应秩的和;
A4、获取检验统计量W为:
W=min(W+,W‑)
A5、根据检验统计量W,查寻Wilcoxon符号秩检验的分布表获取零假设条件下的p值;
A6、判断p值是否小于设定的阈值,若是,则判定生成的音乐旋律不符合真实音乐旋律并结束,否则判定生成的音乐旋律符合真实音乐旋律并结束;
所述曼‑惠特尼U检验具体为:
B1、取出一组MIDI数据并与生成的音乐旋律组成样本数据;
B2、将两组样本数据的音符混合,并按照音符高低进行升序排序,并以1为开始序号进行顺序标号;
B3、分别求取第一组和第二组样本数据的等级和为R1和R2;
B4、根据R1和R2,求取第一中间系数U1和第二中间系数U2为:U1=R1‑n1*(n1+1)/2
U2=R2‑n2*(n2+1)/2
其中,n1和n2分别表示第一组和第二组样本数据的项数;
B5、设定N=n1+n2,并通过N获得R1、R2与N之间的关系式为:R1+R2=N(N+1)/2
B6、根据第一中间系数U1、第二中间系数U2和步骤B5中关系式整理得到:U1+U2=n1*n2
B7、判断min(U1,U2)是否小于设定的临界值Ua,若是,则判定生成的音乐旋律不符合真实音乐旋律并结束,否则判定生成的音乐旋律符合真实音乐旋律并结束;
所述克氏检验具体为:
C1、取出若干组MIDI数据并与生成的音乐旋律组成样本数据;
C2、获取样本数据中每个音符的秩,将秩按升序排序,并以1位起始序号依次分配序号;
C3、将结合在一起的音符的秩取平均值,并将平均值作为其新秩;
C4、分别获取生成音乐旋律和每组MIDI数据的平均秩,获取样本数据中音符的平均秩,并根据平均秩获取检验统计量H为:其中, 表示第k组音乐旋律数据的平均秩,k=1,2,...,K,K表示MIDI数据和生成音乐旋律的总数, 表示样本数据中音符的平均秩,G表示样本数据中音符总数,nk表示第k组音乐旋律数据中音符的个数;
C5、根据检验统计量H求取判断值P为:
其中,CDF(*)表示累计分布函数, df表示自由度为df的卡方分布C6、判断判断值P是否大于预先设定的阈值,若是,则判定生成的音乐旋律符合真实音乐旋律并结束,否则判定生成的音乐旋律不符合真实音乐旋律并结束;
所述乐理评价包括级进跳进对比、波浪形检验以及重复性检验;
所述级进跳进对比具体为:
D1、将生成的音乐旋律数字化,得到音符序列为{a1,a2,...,an};
D2、获取音符序列{a1,a2,...,an}的差分序列D(an)为:D(an)=an+1‑an
D3、获取差分序列D(an)中绝对值大于4的值的个数为S1,获取差分序列D(an)中绝对值小于等于4的值的个数为S2;
D4、根据个数S1和个数S2,获取级进跳进比为:所述波浪形检验具体为:
E1、设定波浪检测条件为:一个数后的3个数与其同符号且下一个相反符号的数后3个数符号与其符号相反;
E2、以差分序列D(an)的第一个数为起点,获取生成音乐旋律的波浪数;
E3、对比生成音乐旋律与MIDI数据的波浪数,完成波浪性检验;
所述重复性检验具体为:
F1、获取生成音乐旋律中存在连续三个^符号的位置为隔断位,并通过隔断位将生成音乐旋律划分为若干小节;
F2、将任意两个小节进行匹配,若对应位置的音符重合率大于70%,则判定对应小节具备重复性;
F3、获取具备重复性的小节个数,并将其与MIDI数据中具备重复性的小节个数进行对比,若两者个数差异小于设定阈值,则判定生成音乐具备重复性;
所述调试检验评价具体为:判断生成的音乐旋律中音符是否均在预先设定的C大调中,若是,则调试检验合格,否则,调试检验不合格。
2.根据权利要求1所述的基于深度学习的音乐自动生成并评价的方法,其特征在于,所述步骤S1具体为:S1.1、采集MIDI数据,对MIDI数据进行移调处理,得到初级数据;
S1.2、提取初级数据中的音符时长信息,得到次级数据;
S1.3、以次级数据为基础,提取初级数据中的高音与节奏信息,完成MIDI数据的预处理。
3.根据权利要求2所述的基于深度学习的音乐自动生成并评价的方法,其特征在于,所述步骤S1.1中对MIDI数据进行移调处理的具体方法为:获取MIDI数据与C调之间的距离,根据距离对MIDI数据中音符进行调性转换,将MIDI数据中音符转换为C调,完成对MIDI数据的移调处理;
所述步骤S1.2中提取初级数据中的音符时长信息的具体方法为:S1.2.1、提取MIDI数据中的旋律音轨Track1;
S1.2.2、提取旋律音轨Track1中所有音符的时长,得到时长列表L1;
S1.2.3、取出时长列表L1中最小时长T0,并使用每个音符的时长除以最小时长T0,得到MIDI数据中每个音符的音符倍数Ni,完成音符时长信息提取;
其中,Ni表示MIDI数据中第i个音符的音符倍数,i=1,2,...,I,I表示MIDI数据中音符总数;
所述步骤S1.3中提取初级数据中的高音与节奏信息的具体方法为:S1.3.1、设定计数器Y=1,提取旋律音轨Track1中所有高音音符;
S1.3.2、判断第Y个高音音符的时长是否为单位长度,若是,则进入步骤S1.3.3,否则在第Y个高音音符后添加NY个–符号,并进入步骤S1.3.3;
S1.3.3、判断第Y+1个音符是否为停顿,若是,则使用停顿时长SY+1除以最小时长T0,获取停顿倍数MY+1,并在第Y+1个音符的位置处添加MY+1个^符号,令Y的计数值加2,返回步骤S1.3.2,否则令Y的计数值加1,并返回步骤S1.3.2;
S1.3.4、根据步骤S1.3.1‑1.3.3所述方法,遍历旋律音轨Track1中所有音符,提取初级数据中的高音与节奏信息。
4.根据权利要求2所述的基于深度学习的音乐自动生成并评价的方法,其特征在于,所述步骤S2具体为:S2.1、将GPT‑2模型的维数修改为60维;
S2.2、使用词嵌入方法将预处理后的MIDI数据映射为一个矩阵,构建音符词典;
S2.3、以音符词典为基础,使用Adam算法对GPT‑2模型进行训练,得到训练后的GPT‑2模型;
S2.4、输入若干音符至训练后的GPT‑2模型中,得到音乐旋律。