APP下载

基于深度学习的吉他谱识别

2022-02-25陈超艺陈新度

软件导刊 2022年1期
关键词:时值乐谱谱线

陈超艺,陈新度,吴 磊

(1.广东工业大学广东省计算机集成制造重点实验室;2.广东工业大学省部共建精密电子制造技术与装备国家重点实验室,广东 广州 510006)

0 引言

光学乐谱识别[1](Optical Music Recognition,OMR)技术是光学字符识别(Optical Character Recognition,OCR)的一个分支,可以提取乐谱图像中的音符信息。该技术广泛应用于乐谱检索、播放及编辑分析中,有利于音乐的数字化和智能化发展,在音乐教学、创作等领域具有重要作用。

国内外常用的乐谱包括五线谱、简谱和奏法谱(Tablature),相较于五线谱和简谱,奏法谱用文字、数字或其他记号表示演奏者的手指位置,更加适合吉他等带有品格的拨弦乐器[2],国内外普遍使用奏法谱作为吉他谱。吉他具有独特的音色和宽广的音域,可以演奏多种不同风格的音乐,是世界上最多人学习与演奏的乐器之一[3]。随着吉他谱使用人群的日益增多,对其进行识别的需求也愈发迫切。五线谱是大部分乐器的通用乐谱,国内外对于光学乐谱识别的研究主要集中在五线谱的谱线检测删除[4-7]和音符识别[8-13]等方面。吉他使用的记谱方法与五线谱在音符和时值的表示方式上有本质区别,五线谱的识别方法不能有效应用于吉他谱中。此外,现有的吉他谱识别方法需对图像进行大量分割识别,存在识别步骤繁琐、识别速度慢和识别精度低等问题[14-15]。

针对上述问题,本文提出一种基于深度学习的吉他谱识别方法,该方法无需删除谱线,识别步骤简单,可准确识别多声部吉他谱的音符和时值。

1 吉他谱数据集

1.1 吉他谱

吉他谱可分为弹唱谱和独奏谱,其中弹唱谱中有用于表示手指按压位置的和弦图,在谱线上用“X”或其他符号表示手指弹拨的位置,而独奏谱一般不带有和弦图,在谱线上用数字或其他符号代表手指要按压和弹拨的位置,具体如图1 所示。弹唱谱只表示乐曲的伴奏,而独奏谱同时带有乐曲的伴奏和主旋律,音符和时值相对复杂,本文以吉他独奏谱为例进行识别研究。

Fig.1 Guitar solo tablature图1 吉他独奏谱

吉他谱有6 条固定谱线,由上到下依次为第一谱线到第六谱线,分别与吉他的六弦对应。谱线上的数字为品格音符,表示该弦需要按压的品格,同时需要弹奏该谱线对应的弦。吉他谱的水平方向为乐曲演奏的方向,代表乐曲的不同时刻,垂直方向为某一时刻需要同时弹奏的音符。第六谱线下方有用于表示该时刻音符时值的减时线,音符时值与减时线数的关系为:

式中,N 表示N 分音符,n 为减时线数。例如当减时线数为2 时,由式(1)可算出N 为16,即该音符为十六分音符。

减时线可以表达的音符时值有限,因此在吉他谱中有附点符号和增时线用于丰富音符时值。附点符号表示延长音符时值的一半,增时线表示增加一个四分音符的时值。此外,吉他谱中还有各种样式的休止符,用于记录不同长短音的间断时值,可丰富乐曲的情感表达。若以十六分音符为单位时间值,各音符对应的时值如图2 所示。

1.2 吉他谱数据集制作

Muse 是由国人研发,支持多种乐谱混排和脚本输入的打谱软件[16],在国内,人们普遍使用Muse 进行吉他谱的编制。支持脚本输入是Muse 的强大之处,通过编写程序随机生成标签和脚本,再将脚本输入到Muse 中,便可随机生成大量吉他谱。图3 为吉他谱数据集制作流程图,图4 为各符号对应标签。

Fig.2 Note duration图2 音符时值

Fig.3 Production process of guitar score data set图3 吉他谱数据集制作流程

Fig.4 Note label图4 音符标签

生成的吉他谱每行4 小节,每小节4 拍,包含多种常用时值和休止符号,如图5 所示。

Fig.5 Randomly generated guitar tablature图5 随机生成的吉他谱

2 吉他谱识别方法建立

识别方法基于CRNN 模型[17]建立,无需进行谱线去除,原理如图6 所示。第一步是将乐谱图像水平分割为品格音符图像、减时线图像、增时线图像和休止符图像。第二步是将减时线图像分别与各谱线的品格音符图像叠加,输入到CRNN_1 模型中,输出6 条谱线各时刻的品格音符;将减时线图像、增时线图像、休止符图像叠加,输入到CRNN_2 模型中,输出乐谱各时刻的时值音符。第三步是将输出的音符全局关联,获取乐谱语义,如弹拨位置、品格音符的时值等。

Fig.6 Principle diagram of guitar tablature recognition method based on deep learning图6 基于深度学习的吉他谱识别方法原理示意

2.1 吉他谱投影分割

吉他谱具有两个维度上的信息,需利用垂直投影或水平投影[18]将乐谱分割成多个仅带有一维信息的图像,然后逐一识别。垂直投影分割符合读谱顺序,但随着音符数量的增多,乐谱分割和识别的次数也会变多,会造成识别速率慢和识别步骤繁琐等问题,且通过垂直投影不能很好地分割出增时线、休止符等音符,容易与减时线混淆,具体如图7 所示。因此,本文采用水平投影的方法对乐谱图像进行分割。

Fig.7 Guitar tablature vertical projection图7 吉他谱垂直投影

6 条横向谱的线是吉他谱的一大特点。减时线位于第六谱线下方固定位置,增时线位于第三谱线与第四谱线之间,休止符位于第四谱线与第五谱线之间。将吉他谱进行水平投影,通过分析6 条谱线的影像,可以准确分割出品格音符、减时线、增时线和休止符图像,具体如图8 所示。水平投影分割将吉他谱分为9 个部分进行识别,与垂直投影分割相比,水平投影分割与识别的次数大大减少,具有更高的效率。

Fig.8 Guitar tablature horizontal projection图8 吉他谱水平投影

2.2 CRNN 模型

CRNN 是一种用于序列符号识别的模型,由卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)和链式时序分类(Connectionist Temporal Classification,CTC)函数组成,结构如图9所示。

Fig.9 CRNN model structure图9 CRNN 模型结构

CNN 部分对符号序列图像进行特征提取,采用VGG 结构[19]。RNN 部分对序列特征进行识别,采用深层双向长短期记忆网络(Bi-directional Long Short-Term Memory,BiL-STM),BiLSTM 具有“门机制”,可以防止训练时梯度消失,且双向网络可以根据序列的前向信息和后向信息进行更准确的预测。CTC 函数位于转录层,用于实现音符分类,即将BiLSTM 输出的序列转化为标签,可以解决不定长序列的对齐问题。

对于BiLSTM 给定输入y的情况下,输出序列标签l的概率为:

式中,B表示删除路径中的重复标签和非字符标签,π为所有经过B变换后为l的路径。损失函数的定义为:

式中,X为数据集,Ii为输入图片,li为真实标签序列,yi为输入图片Ii经过卷积网络层和循环网络层的输出序列。

若将分割后的吉他谱图像直接输入到CRNN 模型中,则只能识别出图像各个音符的类型,不能识别出音符位于哪个时刻,会导致音符之间无法进行关联。在吉他谱中,每个时刻对应的减时线上都会有一条竖线,利用此特点,可将减时线图像与其他图像结合起来进行识别。在识别品格音符时,将品格音符图像与减时线图像等比例叠加,再作为输入图像输入到CRNN 模型中,可输出所有时刻的音符和非音符,从而推断出品格音符所在时刻。在识别时值音符时,由于各个时值音符不会位于同一时刻,故将分割出的3 个时值音符图像等比例叠加输入到CRNN 模型中,即可输出所有时值音符的分类。因此,需要训练两个CRNN 模型,一个用于识别谱线上的品格音符,另一个用于识别时值音符。

2.3 音符全局关联

乐谱中的每个符号都不是绝对独立的,需将每个识别提取的符号信息在逻辑或语义上进行全局关联[20]。在本文建立的方法中,时值音符的识别都是独立的,但各个符号并不能独立存在,附点符号必须与减时线或休止符关联,增时线必须与减时线关联,减时线必须与品格音符关联。

吉他谱具有两个维度的信息,在进行音符全局关联时,先将各个时值符号关联,得到各个时刻的完整时值,然后依次将同时刻的品格音符关联到各个时刻的非休止符时值上。

3 实验方法与结果分析

3.1 实验环境

实验环境为Intel Core i5-8500 CPU,Nvidia GTX 1080Ti GPU,16GB 运行内存,Ubuntu 20.04 操作系统,TensorFlow2.0 深度学习框架。

3.2 模型训练与测试

随机生成416 张吉他谱,经过水平投影分割后,得到品格音符图像13 980 张,时值音符图像2 330 张。训练批量大小为32,学习速率为0.001,品格音符图像和时值音符图像的识别模型各经过约25 000 次迭代后,识别准确率趋于稳定,如图10 所示。

以序列准确率作为评价标准,计算方式为:

式中,预测正确的序列数为预测序列与标签序列完全一致的数量。训练结果表明,品格音符在测试集的识别准确率约为98.3%,时值音符在测试集的识别准确率约为99.1%,均具有较高的识别精度。

Fig.10 Change of note recognition accuracy图10 音符识别准确律变化

3.3 算法性能对比与分析

为测试本文方法的性能,将其与传统的吉他谱识别方法进行对比,包括识别速度测试与识别精度测试。使用两种识别方法分别对音符较少和较多的吉他谱进行识别,计算识别时间。测试结果如表1 所示,其中吉他谱一音符数量69 个,吉他谱二音符数量125 个。

Table 1 Recognition speed comparison表1 识别速度对比 单位:s

传统识别方法通过对乐谱进行多次投影分割,将各个音符单独分割出来再逐一识别。从表1 可以看出,本文识别方法比传统吉他谱识别方法具有更快的识别速度,且随着乐谱符号的增多,传统吉他谱识别方法由于投影分割和音符识别次数增多,识别时间大大增加,而本文方法的识别时间几乎不变。

分别对10 张采用Muse 编制的吉他谱进行识别,评价指标为符号错误率,即误检、漏检和错误识别的音符数量与总音符数量的比例,分为品格音符错误率和时值音符错误率两种。表2 为两种方法的识别精度对比。

Table 2 Recognition accuracy comparison表2 识别精度对比 单位:%

传统的识别方法需对吉他谱进行水平投影分割和垂直投影分割。吉他谱具有固定的6 条谱线,水平投影分割具有较高精度,但由于吉他谱音符的复杂性与多样性,垂直投影分割的精度不高,不能准确分割出音符图像,导致传统方法的识别错误率较高。本文方法仅需对吉他谱进行水平投影分割,分割后各部分的识别完全端到端,无需进行垂直投影分割,具有更高的识别精度和更好的鲁棒性。

4 结语

本文针对吉他谱的特点,提出一种基于深度学习的吉他谱识别方法,并与传统的吉他谱识别方法进行了比较。实验结果表明,传统识别方法过于依赖图像分割,能否准确地分割出音符图像对于吉他谱的识别精度有较大影响。相比之下,本文方法具有更快的识别速度和更高的识别精度,品格音符识别精度达98.3%,时值音符识别精度达

99.1%。

本文方法虽然可以有效识别吉他谱,但仍需对吉他谱进行多次投影分割识别,且目前仅对吉他谱中的品格音符与时值音符进行了识别研究,而在吉他谱中可能还包含其他音符,如扫弦、滑弦符号等。因此,今后研究的重点将主要集中在完善吉他谱的识别与实现吉他谱的完全端到端识别方面。

猜你喜欢

时值乐谱谱线
山之高
是你一直想着我
国内外冠军选手桑巴舞竞技组合动作时值搭配发展动态的研究
论亨利·考威尔的新时值划分
基于HITRAN光谱数据库的合并谱线测温仿真研究
栽橘(新韵)
乐谱:放飞梦想
铁合金光谱谱线分离实验研究
锶原子光钟钟跃迁谱线探测中的程序控制
药芯焊丝GMAW电弧光谱的研究