一种基于深度学习的实时音乐转录与曲谱匹配方法转让专利

申请号 : CN202010539625.0

文献号 : CN111429940B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁小龙

申请人 : 杭州贝哆蜂智能有限公司

摘要 :

本发明提供一种基于深度学习的实时音乐转录与曲谱匹配方法,包括以下步骤:S1:获取音频片段的音符时间标签数据及音高标签数据;S2:处理音频片段中的音频数据及噪音数据,得到音频的频域数据和噪音的频域数据;S3:将上述数据以一定规则输入至卷积神经网络并获得第一模型和第二模型;S4:将第一模型和第二模型的训练结果输入到隐式马尔科夫模型进行曲谱匹配,获得正确音符集合及初步错误区域;S5:针对初步错误区域采用Merged‑Output隐式马尔科夫模型进行重校准匹配,获得匹配结果。本发明在增加了噪音检测模块以及噪音处理功能,完成了实际复杂场景的音乐转录及弹奏纠错,能在实际场景中得到良好的效果。

权利要求 :

1.一种基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,包括以下步骤:

S1:获取音频片段的音符时间标签数据及音高标签数据;

S2:处理音频片段中的音频数据及噪音数据,得到音频的频域数据和噪音的频域数据;

S3:将所述音符时间标签数据、音频的频域数据和噪音的频域数据输入第一卷积神经网络并训练得到第一模型;将所述音高标签数据和音频的频域数据输入第二卷积神经网络训练得到第二模型;

S4:将第一模型和第二模型的训练结果输入到隐式马尔科夫模型进行曲谱匹配,获得正确音符集合及初步错误区域;

S5:针对初步错误区域采用Merged-Output隐式马尔科夫模型进行重校准匹配,获得匹配结果。

2.根据权利要求1所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,所述步骤S2中采用常量Q变换处理音频片段。

3.根据权利要求1所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,所述第一模型用于识别音符的出现时间并判断当前音频为音乐还是噪声,所述第二模型用于识别出现音符的音高。

4.根据权利要求3所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,所述第一模型采用卷积神经网络,以交叉熵函数为目标函数,共有两个输出,输出一的最后一层采用sigmoid函数,用于输出长度为r的置信度向量以确定出现音符的时间点,其中r为音频转换后频谱的宽度,当置信度超过预先设置的阈值,则判断为音符出现;输出二的最后一层采用softmax函数并输出一个用于判断当前音频是音乐还是噪音的二分类结果。

5.根据权利要求3所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,第二模型采用卷积神经网络,以交叉熵函数为目标函数,其最后一层采用sigmoid函数,用于输出长度为m的置信度向量,以判断哪些音出现的可能性,其中m为单乐器可弹奏的音的数量,预先设定置信度的阈值,超过阈值则判断出现对应音高的音。

6.根据权利要求1所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,还包括聚类操作,具体为:对于不断输入的新的音频片段,在经步骤S1~S3的处理后,先将其与已经过步骤S2~S3处理后得到的音频片段按照起始时间进行聚类,当音符的起始时间间隔小于预先设定的阈值,则音符被合并为一类,形成音符聚类。

7.根据权利要求6所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,每一个音符聚类取其所有音符起始时间的均值作为该聚类的整体起始时间,并按照音符聚类的起始时间先后进行排序,当起始时间相同时则按照音高进行排序,得到排序后的音符序列,对标准曲谱的音符采用同样规则进行排序,获得标准序列;使用隐式马尔科夫模型将音符序列与标准序列进行曲谱匹配,获得正确音符集合及判定为初步错误的区域。

8.根据权利要求7所述的基于深度学习的实时音乐转录与曲谱匹配方法,其特征在于,所述重校准匹配的过程具体为:已经匹配成功的音符用(p,t)来表示,其中p=(p1,...,pN)表示音高,t则表示时间,其中N表示一共N个正确匹配的音符;正确匹配的音符聚类的下标为i∈(1,...,I),其中I是正确匹配的音乐符聚类的总数;如果初步错误区域中存在K个音符,那么其中第n个音符为in∈(1,...,K),局部的音符弹奏速度为v={v1,...,vn},1≤n≤K;因此Merged-Output隐式马尔科夫模型中第n个隐藏状态表示为(vn,in),Merged-Output隐式马尔科夫模型的迁移和输出概率如下:上述公式中,π是描述弹奏在曲谱中表现得分的概率分布,σv为弹奏时速度的方差变化,φ表示音高错误概率,描述标准音pn和初步错误区域的音符in对应匹配概率, P(pn|in)附加了噪音识别概率项,用以减少误检测噪音的干扰,起始时间输出概率形式反映了不同聚类音符之间的起始时间间隔服从指数分布EXP,δjj'为克罗内克函数。

说明书 :

一种基于深度学习的实时音乐转录与曲谱匹配方法

技术领域

[0001] 本发明涉及计算机领域,尤其涉及一种基于深度学习的实时音乐转录与曲谱匹配方法。

背景技术

[0002] 随着互联网发展导致的数据累积、硬件设备的不断完善以及深度学习技术的深入研究,凭借深度学习方法的强大拟合泛化能力,在各领域都取得了超越传统方法的成就。
[0003] 音乐转录领域最常见的传统方法是非负矩阵分解,该方法不需要基于先验知识就能完成转录,但是要求音乐片段中的音符必须具有静态和声特征,也就是说音符必须具有固定的谐波格式。这在实际中几乎是不可能的,嘈杂的环境、乐器调音的细微不同、弹奏的声音高低、泛音识别等等问题,给这项技术在实际使用中带来了困难。归根结底的原因是非负矩阵分解表达能力不够强,没法处理实际场景中的复杂音乐特征。
[0004] 基于深度学习模型的最主要的特点就是“万能近似定理”:由于神经网络具有至少一个非线性隐藏层,那么只要给予网络足够数量的隐藏单元,它就可以以任意的精度来近似任何从一个有限维空间到另一个有限维空间的函数。
[0005] 因此基于深度学习的识别方法可以在一定程度解决上述问题,大量的不同场合下弹奏的音乐数据结合模型的强大的拟合泛化能力,能够解决复杂实际场景中音乐转录问题,并且结合目前的硬件设施,其处理速度完全能够做到实时转录,具有极大的实用价值。

发明内容

[0006] 为了解决上述的问题,本发明提供了一种基于深度学习的实时音乐转录与曲谱匹配方法,运用了深度学习方法解决实际复杂场景中存在的问题,能够完成高效准确的音乐转录并完成鲁棒的弹奏纠错功能。
[0007] 本发明的技术方案如下所示:
[0008] 一种基于深度学习的实时音乐转录与曲谱匹配方法,包括以下步骤:
[0009] S1:获取音频片段的音符时间标签数据及音高标签数据;
[0010] S2:处理音频片段中的音频数据及噪音数据,得到音频的频域数据和噪音的频域数据;
[0011] S3:将所述音符时间标签数据、音频的频域数据和噪音的频域数据输入第一卷积神经网络并训练得到第一模型;将所述音高标签数据和音频的频域数据输入第二卷积神经网络训练得到第二模型;
[0012] S4:将第一模型和第二模型的训练结果输入到隐式马尔科夫模型进行曲谱匹配,获得正确音符集合及初步错误区域;
[0013] S5:针对初步错误区域采用Merged-Output隐式马尔科夫模型进行重校准匹配,获得匹配结果。
[0014] 优选的,所述步骤S2中采用常量Q变换处理音频片段。
[0015] 优选的,所述第一模型用于识别音符的出现时间并判断当前音频为音乐还是噪声,所述第二模型用于识别出现音符的音高。
[0016] 优选的,所述第一模型采用卷积神经网络,以交叉熵函数为目标函数,有两个输出,输出一的最后一层采用sigmoid函数,用于输出长度为r的置信度向量以确定出现音符的时间点,其中r为音频转换后频谱的宽度,当置信度超过预先设置的阈值,则判断为音符出现;输出二的最后一层采用softmax函数并输出一个用于判断当前音频是音乐还是噪音的二分类结果。
[0017] 优选的,所述第二模型采用卷积神经网络,以交叉熵函数为目标函数,其最后一层采用sigmoid函数,用于输出长度为m的置信度向量,以判断哪些音出现的可能性,其中m为单乐器可弹奏的音的数量,预先设定置信度的阈值,超过阈值则判断出现对应音高的音。
[0018] 优选的,还包括聚类操作,具体为:对于不断输入的新的音频片段,在经步骤S1~S3的处理后,先将其与已经过步骤S2~S3处理后得到的音频片段按照起始时间进行聚类,当音符的起始时间间隔小于预先设定的阈值,则音符被合并为一类,形成音符聚类。
[0019] 优选的,每一个所述音符聚类取其所有音符起始时间的均值作为该聚类的整体起始时间,并按照音符聚类的起始时间先后进行排序,当起始时间相同时则按照音高进行排序,得到排序后的音符序列,对标准曲谱的音符采用同样规则进行排序,获得标准序列;使用隐式马尔科夫模型将音符序列与标准序列进行曲谱匹配,获得正确音符集合及判定为初步错误的区域。
[0020] 优选的,所述重校准匹配的过程具体为:已经匹配成功的音符用(p,t)来表示,其中p=(p1,...,pN)表示音高,t则表示时间,其中N表示一共N个正确匹配的音符;正确匹配的音符聚类的下标为i∈(1,...,I),其中I是正确匹配的音乐符聚类的总数;如果初步错误区域中存在K个音符,那么其中第n个音符为in∈(1,...,K),局部的音符弹奏速度为v={v1,...,vn},1≤n≤K;因此Merged-Output隐式马尔科夫模型中第n个隐藏状态表示为(vn,in),Merged-Output隐式马尔科夫模型的迁移和输出概率如下:
[0021]
[0022]
[0023]
[0024] 上述公式中,π是描述弹奏在曲谱中表现得分的概率分布,σv为弹奏时速度的方差变化,φ表示音高错误概率,描述标准音pn和初步错误区域的音符in对应匹配概率。P(pn|in)附加了噪音识别概率项,用以减少误检测噪音的干扰,起始时间输出概率形式反映了不同聚类音符之间的起始时间间隔服从指数分EXP,δjj'为克罗内克函数。
[0025] 本发明的有益效果为:
[0026] 1、本发明在音符检测模型中添加了噪音检测模块以及在隐式马尔科夫模型中加入噪音处理功能,完成了实际复杂场景的音乐转录及弹奏纠错,能在实际场景中得到良好的效果;
[0027] 2、本发明使用常量Q变换代替传统的傅里叶变换进行时域转频域的操作,以得到各频段特征突出的频谱数据,结合深度学习方法,能够鲁棒的识别频谱中音乐出现点、是否噪音以及音符音高信息,该方法鲁棒准确,发挥了最新的深度学习方法与海量数据的优势,起始位置与音高识别分开的模块化设计,提高了准确率并减少了计算量,非常适用于高精度、高灵敏度的音乐实时转录。

附图说明

[0028] 图1为本发明方法的整体流程示意图。
[0029] 图2为神经网络模型结构的示意图。
[0030] 图3为隐式马尔科夫模型的示意图。

具体实施方式

[0031] 下面将结合说明书附图对本发明实施例作进一步的说明。
[0032] 本发明的基于深度学习的实时音乐转录与曲谱匹配方法,首先将得到音乐音频片段进行频域转化,使用频谱与标签数据训练音符检测模型和音高识别模型,输入的数据同样会转化为频谱,然后先后输入两个模型,这就可以得到一个音频切片的音乐音符,曲谱匹配算法也可实时得到匹配结果,接着将音频片段持续输入即可得到整曲的转录和匹配纠错结果。具体如下:
[0033] (1)时域音频的频域转化
[0034] 与短时傅里叶变换一样,常量Q变换也是一种时域信号转换算法,参考了音乐的十二平均律,使得到的结果更加适用于音乐。十二平均律显示高八度音的频率比刚好为2,音乐音符的频率呈现为一个等比数列,因此常量Q变换采用了等比数列关系的滤波器,这使得常量Q变换得到的音符特征呈现为均匀排列,特征更加清晰,而短时傅里叶变换的滤波器带宽是等长的。
[0035] 第k个滤波器的频率fk为初始f0的一个倍数:
[0036]
[0037] 其中b是指每个八度存在多少个滤波器,此值通常取12的倍数。
[0038] 常量Q变换的带宽范围随着音高的增加而变大,第k个滤波器的带宽 定义如下:
[0039]
[0040] 由于音的频率的等比数列特性,滤波器范围 刚好与其中心频率fk组成一个定值:
[0041]
[0042] 因此常量Q变换最主要的是设置一个合适的b值,根据对应单乐器的可弹奏频率范围设置频谱显示上下限,上下限间距即频谱的高h,音频片段的长度决定了频谱的宽t,最终生成大小为h×t的频谱图。
[0043] (2)音符检测和噪音检测
[0044] 采用常量Q变量对音频片段进行处理生成h×t频谱图之后,与对应的标签一起输入到第一模型,即音符检测模型进行训练(标签数据可以在网络上搜索,例如MAPs数据集,或者自行打标获得),训练好后输入频谱图,音符检测模型包含两个输出:一是长度为r的置信度向量,用来确定出现音符的时间点,根据需要设置相应阈值作为判断标准,置信度超过阈值,则判断音符出现;二是一个二分类结果,用以判断当前音频是音乐还是噪音。音符检测模型主体是卷积神经网络。
[0045] 音符检测模型具体结构如图2所示,其两个输出中,输出一的最后一层是sigmoid函数,输出二的最后一层是softmax函数,而两个输出的目标函数都是交叉熵函数,其定义如下:
[0046]
[0047] 其中 为第i个数据的真实标签, 为模型预测的i个输出的可能性。
[0048] 输入一段音频后如果输出二判断当前的音频是噪音,那么流程到此为止;如果判断当前音频为音乐,并且当前输入中检测到音符,那么流程继续往下走。
[0049] (3)音高识别
[0050] 与上一个模块类似,将频谱和音高标签一起输入到第二模型进行训练,训练好后输入频谱图,第二模型输出一个长度为m(对应单乐器中可弹奏的音的数量)的置信度向量,用于判断哪些音出现的可能性,预先根据需要设置阈值,超过阈值则判断出现对应音高的音。该模型主体是卷积神经网络,最后一层为sigmoid函数,目标函数与上一个音符检测模型一样都是交叉熵。
[0051] (4)曲谱匹配
[0052] 将上述两个模型的结果组合之后就得到一个完整的曲谱,一次弹奏往往会存在一个或者几个音符,得到最新音频片段后首先与之前得到的音根据起始时间进行聚类,起始时间小于一定阈值,该值为自行设置,如0.05秒,的音乐音符会被合并为一类,获得音符聚类。
[0053] 对每一个音符聚类取其所有音符起始时间的均值作为该聚类的整体起始时间,接着根据起始时间为第一优先级,音高为第二优先级进行排列,即先按照音符聚类的起始时间先后进行排序,当起始时间相同时则按照音高进行排序,得到排序后的音符序列(q1,...,qc),用户弹奏音符下标记为c∈{1,...,C}其中C为用户弹奏的音符数量,同时定义集合Q∈{1,...,C},将曲谱上的标准音符按同样的规则进行排序,获得序列(q1,...,qB),将其下标记为b∈(1,..,B),定义集合S∈{1,...,B}。
[0054] 执行两遍从左到右的扫描匹配算法,第一遍以音符聚类为单位,第二遍以音符聚类中的每个音符为单位,根据音高和起始时间与曲谱上的标准音符进行匹配。正确音符的集合记为Qcorr,如果存在两个qc,qc'∈Qcorr(c<c'),那么对于任意一个 且c<j<c',都可能属于多余或错误音符,这些错误音符组成了一个初步错误区域。
[0055] 上述的扫描匹配算法具体如下:从一个音符聚类到音符聚类中的一个音符,使用隐式马尔科夫模型进行匹配,由于真人弹奏除了可能存在弹奏错误,还可以存在时间上的偏差,因此弹奏音符与标准曲谱的匹配映射 需要符合下列的概率:
[0056]
[0057] 其中 部分表示音符的错误概率,pb表示曲谱中第b个音符,pb和qb都用音符的数字表示,pb-qb可以表示二者音符差距,差距越大,二者匹配的可能性越小,表示时间波动项,而θb'b表示匹配算法的状态转移矩阵,其表示如下:
[0058]
[0059] 而 是起始时间波动,其公式如下:
[0060]
[0061] 其中N(δt;0,ρ2)表示一个以0为均值,ρ2为方差的正态分布,δt是 的差值。
[0062] 上述的匹配是最简单的一次匹配,只能判断出哪些音符是正确的。初步错误区域中还包括一类匹配错误,即该音符为正确音符,但在前期扫描匹配时将其归入了初步错误区域中,经过最简单的扫描匹配后,难免存在一些复杂的情况,使得匹配的结果是不当的,这时需要将其纠正过来。
[0063] 首先将所有正确音符作为参考点,对每一个音符聚类取其所有音符起始时间的均corr corr值作为该聚类的整体起始时间,如果Q 与标准曲谱对比,在标准曲谱中Q 中的两个音符之间还具有其他音符,那么就采用插值或者外推的方法补充相应音符的起始时间。定义多余、错误、缺失三种错误分别为:多余(extre)音符区域为 错误(pitcherror)音符区域为 缺失(missing)音符区域为 三中错误合并为 其中匹配错误也存在于 中。
[0064] 对于任意一个 且c<j<c',错误区域就是c与c'之间的区域,为了能够重新校准匹配错误,其对应的参考点音符(即qc,qc')必须包含在需处理的区域之内,在qc,qc'之外也扩充一个Δt包含一些音符用以作为参考。在上述局部的区域内,可以与标准曲谱进行进一步地匹配。
[0065] 重校准方法可以使用Merged-Output隐式马尔科夫(HMM)模型来解决。已经匹配成功的音符用(p,t)来表示,其中p=(p1,...,pN)表示音高,t则表示时间,其中N表示一共N个正确匹配的音符;正确匹配的音符聚类的下标为i∈(1,...,I),其中I是正确匹配的音乐符聚类的总数;如果初步错误区域中存在K个音符,那么其中第n个音符为in∈(1,...,K),局部的音符弹奏速度为v={v1,...,vn},1≤n≤K;因此Merged-Output隐式马尔科夫模型中第n个隐藏状态表示为(vn,in),Merged-Output隐式马尔科夫模型的迁移和输出概率如下:
[0066]
[0067]
[0068]
[0069] 上述公式中,假设(vn,in)组合以及组合是符合统计独立性的。π概率分布描述了弹奏在曲谱中的表现得分,N(A;B,C2)表示一个以B为均值,C2为方差的A的正态分布;σv为弹奏时速度的方差变化,φ表示音高错误概率,描述标准音pn和初步错误区域的音符in对应匹配概率。P(pn|in)附加了噪音识别概率项,用以减少误检测噪音的干扰。起始时间输出概率形式反映了不同聚类音符之间的起始时间间隔服从指数分布EXP,λ和σv和σt可通过测量得到,这些测量需要考虑误检测噪音的影响。
[0070] δjj'是克罗内克函数,它是一个二元函数,它的输入是两个整数,如果两者相等,则输出值为1,否则为0。
[0071] 上述方法是对《Performance Error Detection and Post-Processing for Fast and Accurate Symbolic Music Alignment》中算法进一步改进,该论文中的算法不适合实时匹配,同时其算法没有考虑到实际场景中的噪音环境所产生的干扰,本发明方法充分考虑了噪音影响,并在公式中添加了误检测噪音音符的项,且可实现匹配的实时化,能在实际场景中得到良好的效果。
[0072] 经过算法匹配后基本可以得到想要的匹配结果,但是匹配时可以发现一些不符合音乐规则的现象,比如存在一些不应该存在的音、存在不符合曲谱曲调规则的音,这些音可能是没有完全识别出来的泛音,或者是一些没有完全区分开的环境音,我们可以用专家系统知识将其纠正过来。
[0073] 以下将通过具体实验数据来对本发明方法的效果作进一步的描述。
[0074] 实验情况如下:
[0075] 本实验使用学术数据库MAPs,其中包含了上万首真人钢琴弹奏数据与标签,且数据集中包含的数据类型非常全面,包括了各类高低音、不同高低音组成的和弦、长曲弹奏等等,为模拟实际情况,在音频中混入一些轻微的噪音数据。实验分为两类,每类两组,第一类使用原始数据(RAM),第二类使用混合噪音数据(MIX),每一类分为两组,传统的非负矩阵分解NMF以及本发明的基于卷积神经网络的音乐转录方法(简称CNN)。
[0076] 模型训练时使用原始数据进行训练,实验中的测试数据不用于模型的训练。NMF使用2010年的《Adaptive harmonic spectral decomposition for multiple pitch estimation》的研究结果进行对比。
[0077] 实验结果如下所示:
[0078]数据项 精度(precision%) 召回率(recall%) 正确率(accuracy%)
NMF-RAW 62.62 60.69 52.92
CNN-RAW 72.45 66.36 67.45
NMF-MIX 52.71 51.55 43.04
CNN-MIX 67.89 61.75 62.62
[0079] 实验结果非常明显,基于深度学习方法要好于传统的非负矩阵分解,并且神经网络泛化能力也要比非负矩阵分解要强,使用带有噪声的数据其各项指标下降得更少。而使用实际噪音数据训练后,其效果下降幅度会更小。上述实验证明,基于深度学习方法的音乐转录方法要明显优于传统方法,并且更适用于实际领域的应用。
[0080] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。