一种乐谱智能翻页方法及装置、电子设备、存储介质

文档序号:32057623发布日期:2022-11-04 22:07阅读:175来源:国知局
一种乐谱智能翻页方法及装置、电子设备、存储介质

1.本发明属于计算机视觉领域和音频信号处理领域,尤其涉及一种乐谱智能翻页方法及装置、电子设备、存储介质。


背景技术:

2.演奏乐器过程中不得不腾出手进行乐谱翻页是打破演奏者演奏的专注性和连贯性的突兀因素,影响视听享受和乐感培养。音乐演奏表演中不乏专业翻谱员的身影,视谱能力、共情能力、专业素质要求其必须是眼明手快的音乐高手,培训成本高,并且在人工翻谱情况下,多翻、忘翻、碰倒乐谱现象仍然时有发生,因此,市场上需要一种自动翻乐谱的装置来解决上述问题。
3.市面上现有乐谱辅助翻页装置普遍依赖脚踩踏板发送信号指示翻页,但钢琴、架子鼓、管风琴等诸多乐器演奏本就需要用脚控制,脚踏翻页方法仍然部分注意力的分散,人性化考虑上有待提升。另一个尚在研究阶段的方案为眼控翻页系统(tabone a,bonnici a,cristina s.automated page turner for musicians[j].frontiers in artificial intelligence,2020,3.),通过分析音乐家注视乐谱和乐器的方式,创建注视预测模型,该模型使用卡尔曼滤波来预测音乐家注视部分在乐谱上的位置,从而在演奏到当前页的结尾部分时,由系统判断并自动给出一个翻页信号。但该系统存在探测器跟踪眼睛注视位置时的固有噪声,并且精度受限于刚性的头部和眼睛运动。一方面,眼睛的监控对摄像头的分辨率提出了高要求,势必带来高造价。另一方面,对于演奏者而言,观看乐谱的需求和眼球的运动存在极大的随机性,包括注视时间和注视方式及方位的未知性,因此该方案仍然存在漏翻、错翻的可能性,智能性上仍有不足。
[0004]
现有专利技术已经存在针对于乐谱自动翻页的一些方法,其中接近我们的方法的现有专利技术之一是申请号为cn202010797697.5的中国发明,公开了一种音乐乐谱自动翻页方法,该方法通过手动输入演奏音乐乐谱上下页衔接处的音符,通过声音传感器接收到的音调顺序与设置的一串音符一致时进行翻页。该方法存在的缺陷是:1)仅将上下页衔接处的音符音调作为判断条件,实际情况中稍复杂一点的乐谱均有大量重复段落,一串音符可能出现在乐谱的任何地方,因此该方法设置的翻页条件容易出现错翻、漏翻和多翻的情况,准确性不足;2)实际乐器演奏和练习中演奏者难免会出现弹奏错误的情况,简单的声音传感器不一定能完全识别弹奏音频,一旦有一个音符弹错或没有识别出来,该方法设置的翻页条件便无法被触发,容错性低;3)翻页条件里要设置的一串音符需要手动输入,实际情况中手动输入音符是一件很费时费力的工作,并且可能存在输入错误的情况,自动性仍然不足。
[0005]
还有一种专利技术是申请号为cn201910837944.7的发明,公开了一种电子谱翻页方法,通过机器学习将弹奏的录制音频转换为电子乐谱片段,与在总的电子乐谱里进行比对,判断到达末尾时进行翻页,该方法存在的不足是:仅仅适用于包含了乐谱完整信息的电子谱,而无法适用于没有包含midi等计算机可读格式的电子乐谱图片和纸质乐谱图片,不
具有通用性,实际使用中仍然需要手动输入乐谱完整的信息,并生成源音频作为参照标准,会耗费巨大的人力物力,缺少自动将所有乐谱转换为计算机可读格式的通用方法。
[0006]
综上所述,目前尚缺乏一种电子乐谱与纸质乐谱通用的,具有高准确度和高容错性的全自动乐谱智能翻页方法。


技术实现要素:

[0007]
针对现有技术的不足,本技术实施例的目的是提供一种乐谱智能翻页方法及装置、电子设备、存储介质,以实现电子乐谱与纸质乐谱通用且具有高准确度和高容错性。
[0008]
根据本技术实施例的第一方面,提供一种乐谱智能翻页方法,包括:
[0009]
(1)乐谱识别:对目标乐谱进行完整识别,转换为相应的电子音频,并得到每一页乐谱的翻页位置;
[0010]
(2)乐音识别:实时提取音乐的第一时频信息特征,时频信息用于音频之间的匹配;
[0011]
(3)乐音乐谱匹配:将所述第一时频信息特征和步骤(1)中生成的电子音频提取的第二时频信息特征进行匹配,识别所述第一时频信息特征对应的音频在所述目标乐谱中的位置,从而确定演奏者的演奏进度;
[0012]
(4)驱动翻页:根据所述每一页乐谱的翻页位置,若步骤(3)中乐音乐谱未匹配到达乐谱页末尾,则返回步骤(2);若步骤(3)中乐音乐谱匹配到达乐谱页末尾,则翻页信号,以实现智能翻页。
[0013]
进一步地,所述步骤(1)包括如下子步骤:
[0014]
(1.1)利用霍夫直线检测算法对乐谱页rgb图像进行倾斜校正;
[0015]
(1.2)采用谱线追踪方法对步骤(1.1)倾斜校正后的图像进行弯曲矫正;
[0016]
(1.3)利用中值滤波方法对步骤(1.2)进行弯曲矫正后的图像进行噪声过滤和二值化处理,得到二值化图像;
[0017]
(1.4)对步骤(1.3)得到的二值化图像进行黑白反转,通过依次对黑白反转后的图像二维数组中的每一行求和得到每根谱线的起始行坐标与垂直宽度,将所有相邻谱线起始行坐标间距的中位数作为整体谱线间距,依次对图像每一列数据中对应谱线行坐标的点进行检测,若存在某个点的值为1且所在的值为1的一维连通区域长度小于等于该点所在的谱线的垂直宽度,则将该点所在的值为1的一维连通区域赋值为0,以达到去除谱线的效果;
[0018]
(1.5)通过步骤(1.4)中得到的每根谱线的起始行位置和垂直宽度,依次将每10根谱线所在区域作为一个子部分,将一页五线谱分割为若干个分别只含有一个高音区和一个低音区的子部分,利用基于卷积神经网络的乐符分类器依次对每一子部分所有的连通区域进行识别,得到每一个连通区域最可能属于的音符类别;
[0019]
(1.6)合成电子音频:根据步骤(1.5)的音符类别识别结果,通过高音谱号与低音谱号的位置与谱线的起始行位置确定音符所在区域边界,获取图像内各音符的顺序、时长和音高特征信息,并根据先验知识对根据各音符的顺序得到的音符序列进行误差校正,以使得高音区和低音区音符时长之和相同,根据音符的顺序、时长和音高信息合成电子音频,在每一页乐谱识别完毕后,将这一页乐谱末尾在整个音频中所处的时间节点添加进翻页位置数组里。
[0020]
进一步地,步骤(1.5)中的基于卷积神经网络的乐符分类器包含一个卷积层、一个池化层和两个全连接层,其中relu层作为激活函数层,训练时选择adam梯度下降算法,所述卷积神经网络的输入为步骤(1.5)中每一子部分里每个连通区域的最小矩形边界框里的乐符图像,输出为每个乐符图像相应的乐符所属类别。
[0021]
进一步地,在步骤(1.6)中,获取图像内各音符的顺序、时长和音高特征信息,包括:对于单音音符,直接得到音符时长,并根据音符边界框与谱线的相对位置得到音符音高;对于和弦,直接得到音符时长,分别提取每一个音符头的位置,通过每个音符头与谱线的相对位置得到和弦对应的一串音符的音高;对于休止符,可以直接得到音符时长,并直接将音高设置为0;对于连音,通过检测连音上方或下方存在的横线数量确定音符时长,通过检测音符头的位置确定对应音符的音高;对于符点,如果符点位置位于某个已知时长的音符边界框一个整体谱线间距范围内,这个音符时长变为原来的1.5倍;对于重升号、升号、重降号、降号和复原号,如果它们位于某个已知音高的音符的边界框一个整体谱线间距范围内,根据它们代表的音乐含义对这个音符的音高进行修正;对于其它音乐符号暂不做处理。
[0022]
进一步地,在步骤(1.6)对音符序列进行误差校正中,如果检测到某个子部分高音区时长之和与低音区时长之和不一致,则通过步骤(1.5)检测到的小节线将这一子部分内高音区和低音区分割成各个小节,将各个小节时长之和的众数定义为正确小节时长,如果检测到其中一个小节对应音符时长不等于正确小节时长,对这个小节里最后一个音符的时长进行加减,直到这个小节音符的时长之和与正确小节时长相同。
[0023]
进一步地,所述步骤(2)包括如下子步骤:
[0024]
(2.1)将所述电子音频按照预定时间长度分段,其中所述预定时间长度的选取方法包括根据音乐的节奏手动输入、由乐谱识别结果给出或使用第一预定数值0.2秒;
[0025]
(2.2)对步骤(2.1)得到的每个音频段做傅里叶变换后取幅值,得到该段时间内音乐的频率强度特性,结合不同时间的音频段提供的时间维度的信息,得到所述电子音频的时频信息;
[0026]
(2.3)以步骤(2.1)中的预定时间长度获取实时录制音频片段,录制音频乘上相同的比例因子进行音量的放大或缩小后保存,其中所述比例因子的确定方法包括人工输入和程序预先录制,选取(2,2)中各音频段的平均强度和录制音频的平均强度的比值作为比例因子或者使用第二预定数值1;
[0027]
(2.4)对步骤(2.3)中录制的音频片段做傅里叶变换提取频率特征并保存,按时间保存记录的方式提供了时间维度的信息,两者结合得到实时弹奏乐曲的时频信息。
[0028]
进一步地,所述步骤(3)包括如下子步骤:
[0029]
(3.1)选取时频信息中250hz至500hz频率范围内的频率信息作为匹配用特征向量;
[0030]
(3.2)计算乐谱转录音频的第i帧和实时录制音频的第j帧之间的差异,差异定义为前者和后者的特征向量的差的模长,该大小即差异矩阵的[i,j]位置的值;
[0031]
(3.3)采用递归的方法计算累计差异矩阵——从[0,0]到达[i,j]位置的路径的最小差异和,定义[0,0]处累计差异大小为差异矩阵[0,0]的值,累计差异矩阵[i,j]处数值用差异矩阵[i,j]的数值加上已计算出的累计差异矩阵[i-1,j-1]、[i,j-1]、[i-1,j]中的最小值;
[0032]
(3.4)根据累计误差矩阵确定坐标变化的方向,即增加i或j或同时增加i、j,使得坐标向累计误差矩阵中数值最小的方向变化,具体包括:初始化阶段的方向判断,即在初始c步内,每录制完一帧音频行列坐标加1,同时计算新增的差异矩阵和累计差异矩阵的单元的数值,初始化阶段完成时,得到[0,0]到[c,c]正方形区域内差异矩阵和累计差异矩阵的全部单元的数值,同时位置指针指向[c,c]处,c的取值反比于步骤(2.1)中的切片时间;正常阶段的方向判断,即每录制完一帧音频,计算从[i-c+1,j]到[i,j]和[i,j-c+1]到[i,j]的一个直角形状范围内差异矩阵和累计差异矩阵的全部单元,其中[i,j]为当前指针位置,在新计算的累计误差矩阵的单元内,若最小单元为[i,j],则指针行列坐标i、j同时加1,同时继续下一帧音频录制;若最小单元在[i-c+1,j]到[i-1,j],则指针列坐标j加1,同时继续下一帧音频录制;若最小单元在[i,j-c+1]到[i,j-1],则指针行坐标i加1,同时重复该步骤,其中,当指针连续沿非对角线方向前进若干步后,将切换前进方向至相垂直的另一方向。
[0033]
根据本技术实施例的第二方面,提供一种乐谱智能翻页装置,包括:
[0034]
乐谱识别模块,用于对目标乐谱进行完整识别,转换为相应的电子音频;
[0035]
乐音识别模块,用于实时提取音乐的第一时频信息特征,时频信息用于音频之间的匹配;
[0036]
乐音乐谱匹配模块,用于将所述第一时频信息特征和乐谱识别模块中生成的电子音频提取的第二时频信息特征进行匹配,识别乐音识别模块中的所述第一时频信息对应的音频在所述目标乐谱中的位置,从而确定演奏者的演奏进度;
[0037]
驱动翻页模块,用于根据所述每一页乐谱的翻页位置,若乐音乐谱匹配模块中乐音乐谱未匹配到达乐谱页末尾,则返回乐音识别模块;若乐音乐谱匹配模块中乐音乐谱匹配到达乐谱页末尾,则发送翻页信号,以实现智能翻页。
[0038]
根据本技术实施例的第三方面,提供一种电子设备,包括:
[0039]
一个或多个处理器;
[0040]
存储器,用于存储一个或多个程序;
[0041]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
[0042]
根据本技术实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
[0043]
本技术的实施例提供的技术方案可以包括以下有益效果:
[0044]
由上述实施例可知,本技术对纸质乐谱或者电子乐谱进行完整识别,生成相应的电子音频,通过提取弹奏音乐的时频信息特征并与乐谱的电子音频的视频信息特征进行匹配,以乐谱对应的电子音频作为乐音乐谱匹配的标准参照,确定当前的演奏进度,从而实现纸质乐谱或电子乐谱的智能翻页。将乐谱识别技术和与乐音识别技术、乐音乐谱匹配技术相结合,实现了全自动的智能乐谱翻页。单独使用乐音乐谱匹配技术,需要使用者提前手动输入整首曲子里的每个音符的音高和持续时间等信息来生成电子音频,极其费时费力,一首完整曲子手动输入乐谱信息可能需要数个小时。但本技术加入了乐谱识别技术自动识别乐谱图像,仅需要数秒,就可以将图像转换为计算机可读的数据格式,然后合成电子音频作为乐音乐谱匹配的标准参照。
[0045]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
[0046]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
[0047]
图1是根据一示例性实施例示出的一种乐谱智能翻页方法的流程图。
[0048]
图2是根据一示例性实施例示出的乐谱识别部分流程示意图。
[0049]
图3是根据一示例性实施例示出的乐音识别部分流程示意图。
[0050]
图4是根据一示例性实施例示出的乐音乐谱匹配部分流程示意图。
[0051]
图5是根据一示例性实施例示出的一种为用于纸质谱翻页机械翻页装置结构图,其中(a)为该装置正面图,(b)为该装置背面图。
[0052]
图6是本技术实施例1中对乐谱片段图像处理得到的二值化图像。
[0053]
图7是对图6进行谱线检测与去除后的结果示意图。
[0054]
图8是对图7进行连通区域提取后识别结果示意图。
[0055]
图9是本技术实施例1中实时录制音频和乐谱转录生成的音乐时频匹配的效果示意图,其中(a)为乐谱转录音频的时频图,(b)为实时录制音频的时频图。
[0056]
图10是根据一示例性实施例示出的一种乐谱智能翻页装置的框图。
[0057]
图中:1、信号接收和驱动结构;11、单片机;12、舵机;2、抓手;21、转动杆;22、磁铁;3、固定架。
具体实施方式
[0058]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。
[0059]
在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0060]
应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0061]
图1是根据一示例性实施例示出的一种乐谱智能翻页方法的流程图,如图1所示,该方法可以包括以下步骤:
[0062]
(1)乐谱识别:对目标乐谱进行完整识别,转换为相应的电子音频,并得到每一页乐谱的翻页位置;
[0063]
(2)乐音识别:实时提取音乐的时频信息特征,时频信息用于音频之间的匹配;
[0064]
(3)乐音乐谱匹配:将步骤(2)中实时录制音频提取的第一时频信息特征和步骤(1)中生成的电子音频提取的第二时频信息特征进行匹配,识别步骤(2)中的时频信息对应的音频在乐谱中的位置,从而确定演奏者的演奏进度;
[0065]
(4)驱动翻页:根据所述每一页乐谱的翻页位置,若步骤(3)中乐音乐谱未匹配到达乐谱页末尾,则返回步骤(2);若步骤(3)中乐音乐谱匹配到达乐谱页末尾,则发送翻页信号,以实现智能翻页。
[0066]
由上述实施例可知,本技术对纸质乐谱或者电子乐谱进行完整识别,生成相应的电子音频,通过提取弹奏音乐的时频信息特征并与乐谱的电子音频的视频信息特征进行匹配,以乐谱对应的电子音频作为乐音乐谱匹配的标准参照,确定当前的演奏进度,从而实现纸质乐谱或电子乐谱的智能翻页。将乐谱识别技术和与乐音识别技术、乐音乐谱匹配技术相结合,实现了全自动的智能乐谱翻页。单独使用乐音乐谱匹配技术,需要使用者提前手动输入整首曲子里的每个音符的音高和持续时间等信息来生成电子音频,极其费时费力,一首完整曲子手动输入乐谱信息可能需要数个小时。但本技术加入了乐谱识别技术自动识别乐谱图像,仅需要数秒,就可以将图像转换为计算机可读的数据格式,然后合成电子音频作为乐音乐谱匹配的标准参照。
[0067]
具体地,如图2所示,本技术将传统的乐谱图像处理技术与基于卷积神经网络的音乐符号识别技术相结合,对电子乐谱和纸质乐谱识别均有较高的准确度和鲁棒性,乐谱的转录音频供后续乐音乐谱匹配使用,步骤(1)可以包括如下子步骤:
[0068]
(1.1)利用霍夫直线检测算法对乐谱页rgb图像进行倾斜校正;
[0069]
具体地,利用霍夫直线检测算法检测图像中对应的离垂直方向30
°
以内的直线,基于直线的角度分布提取出直线角度分布最密集的区域,求得该区域内角度的平均值得到乐谱倾斜角度,进而旋转校正。利用五线谱图像内直线数量较多并且倾斜角度保持一致的特点,利用霍夫变换能获取图像倾斜的正确角度,经过旋转校正后才能保证步骤(1.4)中水平谱线检测的准确性。
[0070]
(1.2)采用谱线追踪方法对步骤(1.1)倾斜校正后的图像进行弯曲矫正;
[0071]
具体地,检测到水平谱线的具体位置,将水平谱线简化为四次函数曲线,根据得到的四次函数表达式对乐谱图像进行二维投影处理。实际拍照中得到的乐谱图像会存在少许弯曲畸变,导致谱线弯曲,通过检测谱线的弯曲程度,能比较准确地提取到整张图像的弯曲特征,从而能进行弯曲校正,将弯曲谱线纠正为水平方向,保证后续水平谱线检测的准确性。
[0072]
(1.3)利用中值滤波方法对步骤(1.2)进行弯曲矫正后的图像进行噪声过滤和二值化处理,得到二值化图像;
[0073]
具体地,利用中值滤波方法对步骤(1.2)进行二维投影处理后的图像进行噪声过滤,去除噪声,放缩使其水平宽度固定在2000像素及以上,并通过全局二值化方法进行二值化处理,得到二值化图像。进行噪声过滤能减小后续图像处理的误差,将水平宽度固定在2000像素以上,防止图像过小,谱线过细,影响识别效果,最后进行二值化处理,才能进行后续的水平谱线检测和其它二值化图像形态学操作。
[0074]
(1.4)对步骤(1.3)得到的二值化图像进行黑白反转,通过依次对黑白反转后的图像二维数组中的每一行求和得到每根谱线的起始行坐标与垂直宽度,将所有相邻谱线起始
行坐标间距的中位数作为整体谱线间距,依次对图像每一列数据中对应谱线行坐标的点进行检测,若存在某个点的值为1且所在的值为1的一维连通区域长度小于等于该点所在的谱线的垂直宽度,则将该点所在的值为1的一维连通区域赋值为0,以达到去除谱线的效果;
[0075]
具体地,对步骤(1.3)得到的二值化图像进行黑白反转,依次对黑白反转后的图像二维数组中的每一行求和,将求和值大于等于0.6倍图像宽度的行坐标定义为谱线的行坐标,通过检测到的谱线行坐标得到每根谱线的起始行坐标与这根谱线的垂直宽度,将所有相邻谱线起始行坐标间距的中位数定义为整体谱线间距,依次对图像每一列数据中对应谱线行坐标的点进行检测,如果某点值为1,并且这个值为1的点所在的值为1的一维连通区域长度小于等于这个点所在的谱线行位置上对应的谱线垂直宽度,将该点所在的值为1的一维连通区域赋值为0,达到去除谱线的效果,以便后续提取乐符连通区域。水平谱线在每一列上的位置和宽度是基本固定的,所以可以对图像每一列进行相同操作,为了防止删除谱线的时候误删掉谱线和其它音乐符号相交的区域,利用谱线与其它音乐符号相交时,相交区域的垂直宽度会变大的特点,只删掉垂直宽度小于等于已知的谱线宽度的区域,从而可以大大降低误删的可能性。将谱线删除后,才可以在步骤(1.5)里提取到每个音符的连通区域。
[0076]
(1.5)通过步骤(1.4)中得到的每根谱线的起始行位置和垂直宽度,依次将每10根谱线所在区域作为一个子部分,将一页五线谱分割为若干个分别只含有一个高音区和一个低音区的子部分,利用基于卷积神经网络的乐符分类器依次对每一子部分所有的连通区域进行识别,得到每一个连通区域最可能属于的音符类别;
[0077]
其中,本技术实施例中将音符分为31类:全音符、全休止符、二分单音符、二分休止符、二分和弦、四分单音符、四分和弦、四分休止符、八分音符、八分和弦、八分休止符、十六分音符、十六分和弦、十六分休止符、三十二分音符、三十二分和弦、三十二分休止符、六十四分音符、六十四分休止符、六十四分和弦、连音、高音谱号、中音谱号、低音谱号、升号、重升号、降号、重降号、复原号、符点、小节线;
[0078]
具体地,将一张完整乐谱图像进行分割后若干子部分再分别单独处理,可以在对每个子部分处理时不会收到其它子部分的影响,提高识别精度,利用卷积神经网络分类器强大的图像分类性能,完全可以胜任形式比较固定的乐符识别,在保证训练数据量的情况下,识别准确率大大高于传统的模板匹配识别准确率,可以达到99.92%以上。
[0079]
具体地,步骤(1.5)中的基于卷积神经网络的乐符分类器可以包含一个卷积层、一个池化层和两个全连接层,其中relu层作为激活函数层,训练时选择adam梯度下降算法,所述卷积神经网络的输入为步骤(1.5)中每一子部分里每个连通区域的最小矩形边界框里的乐符图像,输出为相应的乐符所属类别。设计的轻量化卷积神经网络对算力需求小,运行速度快,同时能满足对音符的识别需求,是合适的选择。
[0080]
(1.6)合成电子音频:根据步骤(1.5)的音符类别识别结果,通过高音谱号与低音谱号的位置与谱线的起始行位置确定音符所在区域边界,获取图像内各音符的顺序、时长和音高特征信息,并根据先验知识对根据各音符的顺序得到的音符序列进行误差校正,以使得高音区和低音区音符时长之和相同,根据音符的顺序、时长和音高信息合成电子音频,在每一页乐谱识别完毕后,将这一页乐谱末尾在整个音频中所处的时间节点添加进翻页位置数组里;
[0081]
具体地,根据步骤(1.5)识别结果,通过高音谱号与低音谱号的位置与谱线的位置确定音符所在区域边界,从而排除掉乐符区域以外等没有用的符号的干扰,比如能排除掉乐谱图像的页码区域的干扰,避免程序将其误识别为音符。对不同音符类别设置不同判断条件,判断图像内各音符的顺序、时长和音高特征信息,并根据先验知识对根据各音符的顺序得到的音符序列进行误差校正,以使得高音区和低音区音符时长之和相同,将音符的顺序、时长和音高信息转化为计算机可读的矩阵文件,将所述矩阵文件转为midi格式,合成为电子音频,作为乐音乐谱匹配的标准参照,在每一页乐谱识别完毕后,将乐谱末尾所在位置代表的音频时间位置添加进翻页位置数组里,作为翻谱时间节点,供后面乐音乐谱匹配使用。
[0082]
需要说明的是,在具体实施中谱线的位置可以根据谱线的起始行位置或结束行位置进行确认,本实施例中选取起始行位置,另一实施例中也可以选取结束行位置,结束行位置的获取过程可参考本实施例中起始行位置的获取过程,此处不作赘述。
[0083]
具体地,在步骤(1.6)的具体实施中,获取图像内各音符的顺序、时长和音高特征信息,包括:对于单音音符,直接得到音符时长,因为只有一个音符头,所以根据音符边界框与谱线的相对位置得到音符音高;对于和弦,因为有多个音符头且每个音符时长相同,所以直接得到音符时长,分别提取每一个音符头的位置,通过每个音符头与谱线的相对位置得到和弦对应的一串音符的音高;对于休止符,可以直接得到音符时长,休止符代表这段时间没有声音,所以直接将音高设置为0;对于连音,因为多个音符头且每个音符时长不同,通过检测连音上方或下方存在的横线数量确定音符时长,通过检测音符头的位置确定对应音符的音高;对于符点,如果符点位置位于某个已知时长的音符边界框一个整体谱线间距范围内,即判断为附点音符,这个音符时长变为原来的1.5倍;对于重升号、升号、重降号、降号和复原号,如果它们位于某个已知音高的音符的边界框一个整体谱线间距范围内,根据它们代表的音乐含义对这个音符的音高进行修正;对于其它不影响最后合成电子音频的音乐符号暂不做处理。
[0084]
具体地,在步骤(1.6)对音符序列进行误差校正中,如果检测到某个子部分高音区时长之和与低音区时长之和不一致,则通过步骤(1.5)检测到的小节线将这一子部分内高音区和低音区分割成各个小节,将各个小节时长之和的众数定义为正确小节时长,如果检测到其中一个小节对应音符时长不等于正确小节时长,对这个小节里最后一个音符的时长进行加减,直到这个小节音符的时长之和与正确小节时长相同,这样可以将高音区和低音区的时长强制对齐,缩小合成的电子音频的误差。
[0085]
具体地,如图3所示,采用了一种实时提取演奏音频特征并与乐谱转录音频特征进行匹配的算法。采用短时傅里叶变换(stft)算法进行设计,对当前演奏的音乐进行实时采样,提取音频的时频特征,进行乐音识别,所述步骤(2)可以包括如下子步骤:
[0086]
(2.1)将所述电子音频按照预定时间长度分段,其中所述预定时间长度的选取方法包括根据音乐的节奏手动输入、由乐谱识别结果给出或使用第一预定数值0.2秒;
[0087]
具体地,获取步骤(1.6)中合成的电子音频,将所述电子音频按照预定时间长度分段,该时间的设定反映了算法对音频的时间分辨率,数值越小代表时间分辨率越高。但由于时频之间的联系,提高时间分辨率的会造成频谱的展宽,降低频率分辨率。另外,同时增大时间分辨率会使后续处理过程的计算量增加,对算法实时性造成影响。因而,根据音乐的节
奏,选择合适的预设时间长度,在时间分辨率、频率分辨率、算法实时性中进行平衡十分重要。根据前期实验结果,对大多数音乐音频,在该数值取0.2秒时,匹配效果整体较佳,因而设置为默认取值。对于某些节奏非常快的音乐音频,适当缩小该数值会有更好的匹配效果,因而保留了手动输入,手动输入的预定时间通常在0.02-0.2秒之间。
[0088]
(2.2)对步骤(2.1)得到的每个音频段做傅里叶变换后取幅值,得到该段时间内音乐的频率强度特性,结合不同时间的音频段提供的时间维度的信息,得到所述电子音频的时频信息;
[0089]
具体地,傅里叶变换将音频信号从时域转换为频域,频域上的幅值代表信号在不同频率上的强度。从音乐的角度理解,这相当于提取出每个时间片段中所有的音高及其强度,不同时间片段中频率信息的变化反映了节奏等时间特性。
[0090]
(2.3)以步骤(2.1)中的预定时间长度获取实时录制音频片段,录制音频乘上相同的比例因子进行音量的放大或缩小后保存,其中所述比例因子的确定方法包括人工输入和程序预先录制,选取(2,2)中各音频段的平均强度和录制音频的平均强度的比值作为比例因子或者使用第二预定数值1;
[0091]
具体地,因为在后续步骤(3.2)中需要通过做差取模的方式比较两频率特征向量的差异,若两待匹配音频本身音量差异巨大,则两频率特征向量即使在对应频率和相对强度完全相同的情况下也会存在巨大差异,从而影响匹配结果。通过在正式匹配前提前进行程序调试,确定合适的比例因子对强度进行修正,可以有效解决上述问题。一般而言,在两待匹配音频本身声音相差不大的情况下,使用默认数值1即可获得较好的匹配效果。其中所述比例因子的确定方法如下:如果使用者有手动输入比例因子,优先采用这个值作为比例因子;如果没有手动输入,由程序来判定,如果录制音频的平均强度为零,比例因子默认为1,如果录制音频平均强度不为零,选取(2.2)中各音频段的平均强度和录制音频的平均强度的比值作为比例因子。
[0092]
(2.4)对步骤(2.3)中录制的音频片段做傅里叶变换提取频率特征并保存,按时间保存记录的方式提供了时间维度的信息,两者结合得到实时弹奏乐曲的时频信息。
[0093]
具体地,如图4所示,所述步骤(3)采取在线动态时间归整(odtw)算法进行实时音频匹配,可以包括如下子步骤:
[0094]
(3.1)选取时频信息中250hz至500hz频率范围内的频率信息作为匹配用特征向量;
[0095]
具体地,对于一般钢琴曲而言,该频率范围的选择保留了最常见的钢琴乐音的基频,同时去除了高频和低频的环境、设备等产生的噪音干扰,有利于提高匹配的准确性和鲁棒性。
[0096]
(3.2)计算乐谱转录音频的第i帧和实时录制音频的第j帧之间的差异,差异定义为前者和后者的特征向量的差的模长,该大小即差异矩阵的[i,j]位置的值;
[0097]
具体地,在经过(2.3)步骤的音量修正后,通过做差取模的方式可以有效地比较两音频片段的频率上得差异性,若差异很小,则算得结果亦很小,反之则结果很大。
[0098]
(3.3)采用递归的方法计算累计差异矩阵——从[0,0]到达[i,j]位置的路径的最小差异和,定义[0,0]处累计差异大小为差异矩阵[0,0]的值,累计差异矩阵[i,j]处数值用差异矩阵[i,j]的数值加上已计算出的累计差异矩阵[i-1,j-1]、[i,j-1]、[i-1,j]中的最
小值;
[0099]
具体地,累计差异矩阵计算了从开始到当前位置的路径上差异矩阵对应单元的和,其值越小,则该路径为真实路径的可能性越高。递归通过运用先前的计算结果提高了计算效率。
[0100]
(3.4)根据累计误差矩阵确定坐标变化的方向,即增加i或j或同时增加i、j,使得坐标向累计误差矩阵中数值最小的方向变化,具体包括:初始化阶段的方向判断,即在初始c步内,每录制完一帧音频行列坐标加1,同时计算新增的差异矩阵和累计差异矩阵的单元的数值,初始化阶段完成时,得到[0,0]到[c,c]正方形区域内差异矩阵和累计差异矩阵的全部单元的数值,同时位置指针指向[c,c]处,c的取值反比于步骤(2.1)中的切片时间;正常阶段的方向判断,即每录制完一帧音频,计算从[i-c+1,j]到[i,j]和[i,j-c+1]到[i,j]的一个直角形状范围内差异矩阵和累计差异矩阵的全部单元,其中[i,j]为当前指针位置,在新计算的累计误差矩阵的单元内,若最小单元为[i,j],则指针行列坐标i、j同时加1,同时继续下一帧音频录制;若最小单元在[i-c+1,j]到[i-1,j],则指针列坐标j加1,同时继续下一帧音频录制;若最小单元在[i,j-c+1]到[i,j-1],则指针行坐标i加1,同时重复该步骤;其中,当指针连续沿非对角线方向前进若干步后,将切换前进方向至相垂直的另一方向;
[0101]
具体地,c的选取决定了算法的搜索空间大小,仅计算当前位置附近一定范围内的误差矩阵单元和累计误差矩阵单元,使得算法随时间复杂度保持常数,从而确保了实时的可能性。该数值由切片时间决定,是准确性和算法效率相平衡的结果。当指针连续沿非对角线方向前进d步后将会切换前进方向,d的取值可输入,默认取值为10,d的选取可以减轻算法因为某些局部错误从而陷入完全错误的路径的可能性。
[0102]
在步骤(4)的具体实施中,当指针行坐标i到达步骤(1.6)中的翻页位置数组中的翻页位置k时,若步骤(3)中乐音乐谱未匹配到达乐谱页末尾,则返回步骤(2),再次进行实时的乐音识别和乐音乐谱匹配;若步骤(3)中乐音乐谱匹配到达乐谱页末尾,则可以通过电脑软件或手机app的形式向装有纸质乐谱的机械装置或显示电子乐谱图像的电子设备如平板发送翻页信号,实现智能翻页。
[0103]
本技术实施例提供了一种纸质谱机械翻页装置,如图5所示,包括信号接收和驱动结构、抓手和固定架,其中信号接收和驱动结构包括单片机、舵机,抓手包括转动杆及设置在所述转动杆末端的磁铁,固定架为含有铁片的纸质谱夹层,抓手的转轴与固定架的中轴采用离轴设计。在具体实施中,单片机接收翻页信号,并通过舵机控制转动杆进行转动,在转动杆的转动过程中,磁铁与含有纸片的纸质谱夹层通过磁力作用相互吸附,通过磁力“抓取”纸质乐谱,从而实现纸质乐谱的翻页。该纸质谱机械翻页装置的控制方法为本领域的常规技术操作,此处不作赘述。
[0104]
实施例1
[0105]
在一台配置intel core i7-11800h中央处理器,nvidia gtx3060图形处理器及512gb内存的机器上实现本发明的实施实例。以钢琴曲《卡农》的纸质乐谱实现本发明的实施实例。对乐谱页进行拍照导入获得了rgb图像,然后运行程序,弹奏者演奏《卡农》钢琴曲。
[0106]
如图6、7、8是对乐谱预处理和识别的效果,能够准确去除谱线,实现版面分割与乐符识别。如图9是钢琴演奏进程中实时录制音频和乐谱转录生成的音乐时频匹配的效果,匹
配准确。图9是对《卡农》钢琴演奏进程中实时录制音频和乐谱转录生成的音乐时频匹配的效果,图(a)(b)中横轴代表时间,纵轴代表频率,亮暗代表强度,用于表现音乐最重要的三个特征:音高、持续时间和对应能量。(a)为乐谱转录音频时频图,图上三条纵向白线标出了200步、400步、600步的时间位置,(b)为实时录制音频时频图,图上三条纵向白线对应图(a)三条纵向白线位置上对应的相应时间位置。
[0107]
在演奏进程到达乐谱页末尾时,由matlab程序向单片机发送蓝牙翻页信号,驱动机械翻页装置完成自动翻页,翻页时机正确。
[0108]
与前述的乐谱智能翻页方法的实施例相对应,本技术还提供了乐谱智能翻页装置的实施例。
[0109]
图10是根据一示例性实施例示出的一种乐谱智能翻页装置框图。参照图10,该装置可以包括:
[0110]
乐谱识别模块21,用于对目标乐谱进行完整识别,转换为相应的电子音频;
[0111]
乐音识别模块22,用于实时提取音乐的第一时频信息特征,时频信息用于音频之间的匹配;
[0112]
乐音乐谱匹配模块23,用于将所述第一时频信息特征和乐谱识别模块中生成的电子音频提取的第二时频信息特征进行匹配,识别乐音识别模块中的所述第一时频信息对应的音频在所述目标乐谱中的位置,从而确定演奏者的演奏进度;
[0113]
驱动翻页模块24,用于根据所述每一页乐谱的翻页位置,若乐音乐谱匹配模块中乐音乐谱未匹配到达乐谱页末尾,则返回乐音识别模块;若乐音乐谱匹配模块中乐音乐谱匹配到达乐谱页末尾,则发送翻页信号,以实现智能翻页。
[0114]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0115]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0116]
相应的,本技术还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的乐谱智能翻页方法。
[0117]
相应的,本技术还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的乐谱智能翻页方法。
[0118]
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。
[0119]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1