一种基于LSTM的钢琴演奏自动评分方法与流程

文档序号:22392501发布日期:2020-09-29 17:59阅读:800来源:国知局
一种基于LSTM的钢琴演奏自动评分方法与流程

本发明涉及一种钢琴演奏自动评分方法,具体涉及一种基于lstm(longshort-termmemory,长短期记忆神经网络)的钢琴演奏自动评分方法。



背景技术:

随着人们物质生活水平不断提升,钢琴教师已经逐渐成为了稀缺资源,钢琴学习辅助类软件的研发市场需求量逐年增加。传统的钢琴演奏水平的评价采用人工评分方式进行,尤其是钢琴演奏的现场考核。现场钢琴演奏完成后,利用表格的形式,把考试曲目的演奏内容拆分成各个具体细节要求,每位评分者根据演奏者现场发挥的水平各自进行评分。

对于钢琴初学者而言,在音乐教师或音乐专业人士不在场的情况下其仍然需要自行练习。然而,没有专业人士的评分,初学者并不真正清楚自己钢琴演奏的好坏,使得自学效果大打折扣。因此,利用钢琴评分系统可直观地反映练习者的练习水平。目前市场上现有的钢琴评分系统的原理,大多数为直接对比法:即通过采集练习者弹奏待评价样本的音符信息与标准样本音符信息进行机械的对比,通过正确率直接给出评分。这样的评分原理过于机械,难以体现出练习者的真实水平。因此,近来也出现了一种钢琴评分系统,其是在第一种方法的基础上,通过对待评价信息进行样本数据进行加工,提取信息特征后与标准样本进行对比。但是目前样本特征的提取过于简单,往往忽视演奏的流畅性,情感表达,曲目的难易程度等等因素对评价的合理性影响。



技术实现要素:

为克服现有技术的不足及存在的问题,本发明提供一种基于lstm的钢琴演奏自动评分方法,以对钢琴练习者的钢琴演奏水平的评分作出更为客观合理的评价。

本发明是通过以下技术方案实现的:一种基于lstm的钢琴演奏自动评分方法,所述方法步骤包括:

步骤s1、建立音乐数据库,以对midi文件信息进行存储与管理;

步骤s2、提取钢琴音乐文件的midi音乐物理特征;

步骤s3、将需要评分的钢琴音乐文件的所有音符文件的特征信息向量化,以将音符信息与其对应的时间相结合;

步骤s4、将相关音符信息编码为对应的one-hot向量;

步骤s5、通过二元向量的表达方式对音调状态进行加密;

步骤s6、输入矩阵,其中,矩阵的纵坐标为时间序列,横坐标为音调值;

步骤s7、建立基于lstm的评分模型,并对评分模型进行训练,以获得模型参数;

步骤s8、利用已训练好的评分模型对待评价的钢琴音乐文件进行评分处理,并输出评分结果。

作为优选,步骤s5中所述通过二元向量的表达方式对音调状态进行加密,具体加密方式为:用[0,0]表示钢琴琴键当前未被压下的状态;用[1,0]表示钢琴琴键当前被压下的状态;用[1,1]表示钢琴琴键当前时刻被压下且前一时刻也被压下的状态。

作为优选,所述步骤s7中,在利用所述评分模型训练时,采用小批量梯度下降法,并采用对数极大自然函数作为损失函数进行训练。

作为优选,所述步骤s7中,在利用所述评分模型训练时,采用对数极大自然函数作为损失函数时,其中mini-batch=10,迭代次数为6000,学习率为0.0001,优化器为rmsprop优化器。

作为优选,所述步骤s1中,所述音乐数据库为ysql建立数据库。

作为优选,所述midi音乐物理特征包括音调、音强。

作为优选,所述步骤s4中,将音符信息编码为对应的one-hot向量时,采用one-hot编码。

作为优选,所述步骤s8中,所述评分结果包括优、良、中、较差以及差五个评分等级。

与现有技术比较,本发明通过建立基于lstm的评分模型来对音乐文件进行评价,其评分时既考虑正确率,还将风格表达和情感表达等因素进行考虑,因此其评分方法更具科学性和客观性。

附图说明

图1是本发明所述评分方法的步骤流程示意图。

具体实施方式

为了便于本领域技术人员的理解,以下结合附图和具体实施例对本发明作进一步详细描述。

如附图1所示,一种基于lstm的钢琴演奏自动评分方法,所述方法步骤包括:

本发明是通过以下技术方案实现的:一种基于lstm的钢琴演奏自动评分方法,所述方法步骤包括:

步骤s1、建立音乐数据库,以对midi文件信息进行存储与管理;

步骤s2、提取钢琴音乐文件的midi音乐物理特征;

步骤s3、将需要评分的钢琴音乐文件的所有音符文件的特征信息向量化,以将音符信息与其对应的时间相结合;

步骤s4、将相关音符信息编码为对应的one-hot向量;

步骤s5、通过二元向量的表达方式对音调状态进行加密;

步骤s6、输入矩阵,其中,矩阵的纵坐标为时间序列,横坐标为音调值;

步骤s7、建立基于lstm的评分模型,并对评分模型进行训练,以获得模型参数;

步骤s8、利用已训练好的评分模型对待评价的钢琴音乐文件进行评分处理,并输出评分结果。具体地,对于对待评价的钢琴音乐文件进行所述步骤步骤s2-步骤s6的处理,再利用步骤s7中已经训练好的评分模型进行评分处理,即可得出评分结果,本发明实施例中,所述评分结果包括优、良、中、较差以及差等五个评分等级。

在应用所述评分方法时,由于所述音乐数据库中的数据表中大多包含了日期、字符、数字等常见格式的数据且音乐文件都为midi格式。因此,在进行钢琴演奏自动评分的数据库库建设时,所述音乐数据库优选为mysql建立数据库。

在其中一个优选的实施例中,步骤s5中所述通过二元向量的表达方式对音调状态进行加密,具体加密方式为:用[0,0]表示钢琴琴键当前未被压下的状态;用[1,0]表示钢琴琴键当前被压下的状态;用[1,1]表示钢琴琴键当前时刻被压下且前一时刻也被压下的状态。

在所述步骤s6中,所述矩阵是一个长时间序列矩阵,其中包含了音乐的音高、音、音长以及旋律等特征信息;而步骤s7中的基于lstm的评分模型中,lstm(longshort-termmemory,长短期记忆网络)是一种处理时间序列数据的神经网络,这里的矩阵可作为lstm的输入参数。另外,由于钢琴键盘为88键,并采用二元向量,所以横坐标为176维。

在本实施例中,由于输入为176维矩阵,因此在基于lstm的评分模型中,可确定输入层的神经节点个数为176;根据多次实验后的优选数据,本实施例将隐藏层优选为三层双向lstm层,神经节点个数分别为:704、352、176。输出层为softmax输出层(本实施例中,softmax输出层选用softmax函数作为激活函数),神经节点个数为5,其中输出层与第三层隐藏层之间为全连接。为了防止过拟合,采用dropout算法优化。

在其中一个具体的实施例中,所述步骤s7中,在利用所述评分模型训练时,采用小批量梯度下降法,并采用对数极大自然函数作为损失函数进行训练;其中,在利用所述评分模型训练时,采用对数极大自然函数作为损失函数时,其中mini-batch=10,迭代次数优选为6000,学习率优选为0.0001,优化器为rmsprop优化器。另外,所述步骤s4中,将音符信息编码为对应的one-hot向量时,采用one-hot编码。

为了便于理解,以下以一具体的实施例进行说明:

将所述基于lstm的钢琴演奏自动评分方法应用于钢琴演奏自动评分系统中,该钢琴演奏自动评分系统主要包括pc端和midi钢琴两部分组成,pc端和midi钢琴由传输数据线进行信息传递。其中。本实施例中,pc端为window系统,带安卓app软件。因为高效性和强移植性的优点采用keras开发环境,midi钢琴为市面上常用品牌,本实施例中选择雅马哈(yamaha)mx88,在数据传输中采用ch345t芯片,能把电子钢琴的midi信号转换为usb标准串口信号,实现midi信号的双向传输。

应用所述基于lstm的钢琴演奏自动评分方法时,其具体步骤为:

步骤一:在钢琴演奏自动评分系统中的pc端,直接使用mysql建立音乐数据库;

步骤二:提取音乐数据库中的音乐文件的midi音乐物理特征提取midi音乐物理特征:音调、音强、音色以及音长。本发明实施例中仅对钢琴音乐进行评价音乐,由于输入矩阵是一个时间序列矩阵,其中包含了音长信息;而音色与发声体的材料、结构有关,因为该钢琴演奏自动评分方法是对钢琴曲目进行评价,因此其只有一种音色。所以音色和音长特征不需要提取。而音调和音强,两者可直接在midi信号delta-time中提取。

步骤三:将需要评分的钢琴音乐文件的所有音符文件的特征信息向量化,以将音符信息与其对应的时间相结合。由于在midi音乐的delta-time中音乐特征信息是离散的,因此需要把时间增量转化成绝对时间。修改时间戳近似到第1/16个音符,即每个音轨信息的分母从4变成16,目的是为了使音符信息与相对应的时间结合起来,避免部分音符信息无法获取。

步骤四:将相关音符信息编码为对应的one-hot向量;由于音乐特征信息不是连续的,而是离散的,因此在向量化的时候,本发明实施例采取one-hot编码,将离散的音乐特征映射到欧式空间。

步骤五:通过二元向量的表达方式对音调状态进行加密;本发明实施例中,用二元向量对音调状态进行加密的方式如下表1所示:

表1二元向量的表达法

按常理可知,在某一时刻,有可能会同时播放几个音调,而通常一个音调有三种状态,本发明实施例通过二元向量的表达方式对音调状态进行加密,目的是为了区分当前音调在哪种状态。

与传统使用两种状态描述钢琴琴键状态相比,本实施例中通过采用所述二元向量的表达方式对音调状态进行加密,使得加密信息能够更好的表达音乐的时间,减少了参数冗余,提高后续训练准确性。

步骤六:输入矩阵,该矩阵的纵坐标为时间序列,横坐标为音调值,由于这里的钢琴键盘为88键,由于采用二元向量表示音调的状态,所以横坐标为176维。

步骤七:建立基于lstm的评分模型,并对评分模型进行训练,以获得模型参数;其中,在利用所述评分模型训练时,采用小批量梯度下降法,并采用对数极大自然函数作为损失函数进行训练;另外,在利用所述评分模型训练时,采用对数极大自然函数作为损失函数时,其中mini-batch=10,迭代次数优选为6000,学习率优选为0.0001,优化器为rmsprop优化器。为了防止过拟合,采用dropout算法进行优化。本实施例中,通过将已知的分类结果的、大量的钢琴音乐文件作为所述评分模型训练的训练集进行训练,可获得各模型参数。

其中,双向lstm是一种拥有记忆功能的神经网络,它拥有前向和反向传播层,当模型对某一时刻音符进行分析时,会将过去音符信息与未来音符信息考虑进去,类似于人类对音乐旋律的欣赏过程。换句话说,音乐风格表达与情感表达是音符在时间上的表现过程,而双向lstm模型能够很好的捕获这种信息。因此,本实施例中的评分方法中,将风格表达和情感表达等因素进行考虑,因此其评分方法更具科学性和客观性。

步骤八:利用已训练好的评分模型对待评价的钢琴音乐文件进行评分处理,并输出评分结果。具体为,对于对待评价的钢琴音乐文件进行所述步骤步骤s2-步骤s6的处理,再利用步骤s7中已经训练好的评分模型进行评分处理,即可得出评分结果,评分结果分为:优、良、中、较差以及差等五个评分等级。

本发明实施例提供的基于lstm的钢琴演奏自动评分方法,其首次提出基于lstm模型来对钢琴音乐文件进行评价,而lstm非常适合用于处理与时间序列高度相关的问题,在音乐文件评价方面效果优于现有的bp模型算法,其不仅正确率高,而且通过利用人工神经网络的方法更好地考虑到了将风格表达和情感表达等因素作为评价因素,因此其相较于传统的音乐文件评价方法,其评分更全面、合理,也更更具科学性和客观性。

上述实施例为本发明的较佳的实现方式,并非是对本发明的限定,在不脱离本发明的发明构思的前提下,任何显而易见的替换均在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1