一种歌唱评价方法及系统与流程
本发明属于音乐评价技术领域,具体涉及一种歌唱评价方法及系统。
背景技术:
歌唱评价,即对一个歌手所演唱的歌声片段做出各方面的正面或负面描述,一直以来都是音乐学界所关注的课题之一。面向专业歌手的歌唱评价体系,可以选拔出优秀的歌手,并为歌手提供提升自我演唱水平的参考;面向近年来逐渐流行起来的歌唱比赛的歌唱评价体系,能够使得参赛的歌手得到合理的评价,使得比赛的观赏性和权威性大大提高;面向业余歌手的歌唱评价体系,则可以满足人们追求竞争的心理,使得业余歌唱活动的趣味性大大增强。一套广大歌唱评价者所公认的,共用的歌唱评价方法,能够使得在多种场合起到良好的效果,满足多种人群的需求。
基于音符准确性体系的自动歌唱评价系统已经在计算机、智能手机应用等多种平台上被广大用户使用。第一,大多数设计者在实现这样一套系统中,直接将用户所唱的“基音”(fundamentalfrequency),或者是由该基音所直接量化出来的“音符”(notes)与原歌曲乐谱对应的频率序列或者是音符序列作对比;第二,很多系统以伴奏等不稳定或多数情况下无法获取的信息作为参考,尝试做出节拍准确性评价;第三,以同一段歌曲的目标演唱者为基准,进行歌手的音符准确性评价时,大多数系统将歌手所演唱出的各个时刻的基音或者音符与同一时刻的目标基音或者音符进行差值计算以给出评分。
基于音符准确性体系的自动歌唱评价系统已经在计算机、智能手机应用等多种平台上被广大用户使用,但该类系统依然不可避免的存在着缺陷:
第一,大多数设计者在实现这样一套系统中,直接将用户所唱的“基音”(fundamentalfrequency),或者是由该基音所直接量化出来的“音符”(notes)与原歌曲乐谱对应的频率序列或者是音符序列作对比,没有考虑到歌手在没有跑调的情况下,基音仍然会围绕歌手所唱的音符(note)产生波动的特性,将这种正常的波动视为了“跑调”,并因此作出了不合理的判决,这使得歌手如果想要在该类系统中获得较高的评价的话,必须用平淡而机械的声音,不加任何修饰和情感的将原歌声演唱出来,这显然是一种不合理的做法。
第二,很多系统不能给出歌手在“节拍准确性”方面的评价,或是只能以伴奏等不稳定或多数情况下无法获取的信息作为参考,对节拍准确性评价仅仅做出尝试。对于以往比较常见的伴奏节拍分明的流行歌曲来说,这类节拍准确性评价的尝试仍然可以给出相对可靠的结果,但是对于近年来开始逐渐普遍化的一部分的流行歌曲来说,由于伴奏中不含明显的鼓点和乐器等声音的参考,这类依赖伴奏信息的节拍准确性评价则会很难给出令人信服的结果。
第三,以同一段歌曲的目标演唱者为基准,进行歌手的音符准确性评价时,只是纯粹的将歌手所演唱出的各个时刻的基音或者音符与同一时刻的目标基音或者音符进行差值计算以给出评分,却并没有考虑歌手可能的节拍准确性错误对该类算法的影响。这使得仅仅发生“抢拍”或者“慢拍”等节拍准确性方面的错误,而并没有发生音符准确性错误的歌手,由于音符序列或时间线上的不对齐点的出现,仍然被给出了不合理的音符准确性评分。
技术实现要素:
本发明的目的是提供一种能够对节拍准确性和音符准确性进行准确评价的歌唱评价方法及系统。
本发明提供的歌唱评价方法,具体步骤包括:
(1)分别计算待评价歌声片段以及目标歌声片段的有声区基音时间线;
(2)通过转录,从所述有声区基音时间线中提取音符,得到音符时间线;
(3)采用动态时间规整算法(dtw算法),求解所述待评价歌声片段的音符时间线和所述目标歌声片段的音符时间线之间的dtw最佳路径以及差别惩罚矩阵;
(4)遍历整条dtw最佳路径,在dtw最佳路径出现横片段时,指示值+1,在dtw最佳路径出现纵片段时,所述指示值-1,所述指示值为所述待评价歌声片的节拍准确性评价指标;
(5)根据所述差别惩罚矩阵和dtw最佳路径,将所述待评价歌声片段的音符序列和所述目标歌声片段的音符序列对齐,并在对齐后对所述待评价歌声片段进行音符准确性评价。
本发明步骤(2)中,所述通过转录,从所述有声区基音时间线中提取音符,得到音符时间线,具体流程包括:
(2.1)确定所述有声区基音时间线的基音值时间序列;
(2.2)以半音的第一设定比例量为分辨率,对基音值时间序列进行量化,得到量化后的基音值时间序列;
(2.3)对量化后的基音值时间序列连续进行三次动态平均滤波处理;其中,所述动态平均滤波处理具体包括:在当前音符段落i的基音点m处,计算下一个基音点m+1的基音值与当前音符段落i的音符均值的差值,当所述差值大于设定幅度时,将基音点m+1作为新的音符段落i+1的开始,否则将基音点m+1纳入当前音符段落i;
其中,第一次动态平均滤波中的设定幅度为半音的第二设定比例量,第二次动态平均滤波中的设定幅度为半音的第三设定比例量,第二次动态平均滤波中的设定幅度为第四设定比例量。
可选的,所述第一设定比例量为1/5,第二设定比例量为2/5,第三设定比例量为3/5,第四设定比例量为1。
进一步地,在所述对量化后的基音值时间序列连续进行三次动态平均滤波处理之后,还包括:
将基音点数小于第一设定数量的数值波动区以及基音点数小于第二设定数量的无数值区的音符值赋值为之前最近的音符段落的音符值。
可选的,所述第一设定数量为2,所述第二设定数量为5。
进一步地,在所述将基音点数小于第一设定数量的数值波动区以及基音点数小于第二设定数量的无数值区的音符值赋值为之前最近的音符段落的音符值之后,还包括:
将长度在第三设定数量的基音点以内,且与下一音符段的音符频率差值在设定频率以内的音符段设置为下一音符段的音符值。
可选的,所述第三设定数量为15。
进一步地,本发明还可进一步对待评价歌声片段进行情感饱满度评价和音域合适度评价。具体地还包括如下步骤:
(1)选取待评价歌声片段对应的音符时间线上音符值稳定,且持续时间大于设定时间值的片段,记为目标片段;
(2)提取所述目标片段的频谱形状特征、谐音能量特征、颤音特征和声强特征;
(3)将所述频谱形状特征、谐音能量特征、颤音特征和声强特征输入训练好的神经网络模型,得到情感饱满度评价和音域合适度评价。
本发明还提供了一种歌唱评价系统,包括:
有声区基音时间线确定模块,用于分别计算待评价歌声片段以及目标歌声片段的有声区基音时间线;
音符提取模块,用于通过转录,从所述有声区基音时间线中提取音符,得到音符时间线;
dtw算法求解模块,用于求解所述待评价歌声片段的音符时间线和所述目标歌声片段的音符时间线之间的dtw最佳路径以及差别惩罚矩阵;
节拍准确性评价模块,用于遍历整条dtw最佳路径,在dtw最佳路径出现横片段时,指示值+1,在dtw最佳路径出现纵片段时,所述指示值-1,所述指示值为所述待评价歌声片的节拍准确性评价指标;
音符准确性评价模块,用于根据所述差别惩罚矩阵和dtw最佳路径,将所述待评价歌声片段的音符序列和所述目标歌声片段的音符序列对齐,并在对齐后对所述待评价歌声片段进行音符准确性评价。
即上述5个模块分别执行歌唱评价方法中5个步骤的操作。
可选的,所述系统还包括:
目标片段选取模块,用于选取待评价歌声片段对应的音符时间线上音符值稳定,且持续时间大于设定时间值的片段,记为目标片段;
特征提取模块,用于提取所述目标片段的频谱形状特征、谐音能量特征、颤音特征和声强特征;
高级评价模块,用于将所述频谱形状特征、谐音能量特征、颤音特征和声强特征输入训练好的神经网络模型,得到情感饱满度评价和音域合适度评价。
即上述3个模块分别执行对待评价歌声片段进行情感饱满度评价和音域合适度评价中3个步骤的操作。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的歌唱评价方法及系统,通过对待评价歌声片段以及目标歌声片段的基音提取、转录、时间序列比较三个环节,实现了对待评价歌声片段节拍准确性方面的准确评价。同时,本发明基于dtw算法对于待评价歌声片段的音符时间序列和目标歌声片段的音符时间序列进行了音符对齐,在对齐后进行了音符准确性的评价,避免了由于节拍不准而引起的音符准确性评价的不准确,提高了音符准确性评价的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的歌唱评价方法流程图。
图2为本发明实施例1中三层动态平均滤波处理效果。其中,(a)、(b)、(c)和(d)分别为处理之前,第一轮之后,第二轮之后和第三轮之后的转化回频率值的序列。
图3为本发明实施例3提供的歌唱评价系统结构示意图。
具体实施方式
下面结合实施例和附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施例对本发明作进一步详细的说明。
实施例1
参见图1,本实施例提供了一种歌唱评价方法,该方法包括以下步骤:
步骤101:分别计算待评价歌声片段以及目标歌声片段的有声区基音时间线;
步骤102:通过转录,从所述有声区基音时间线中提取音符,得到音符时间线;
步骤103:求解所述待评价歌声片段的音符时间线和所述目标歌声片段的音符时间线之间的dtw最佳路径以及差别惩罚矩阵;
步骤104:遍历整条dtw最佳路径,在dtw最佳路径出现横片段时,指示值+1,在dtw最佳路径出现纵片段时,所述指示值-1,所述指示值为所述待评价歌声片的节拍准确性评价指标;
步骤105:根据所述差别惩罚矩阵和dtw最佳路径,将所述待评价歌声片段的音符序列和所述目标歌声片段的音符序列对齐,并在对齐后对所述待评价歌声片段进行音符准确性评价。
其中,步骤101的具体步骤可以为:对待评价歌声片段以及目标歌声片段分别进行加窗分帧操作;对待评价歌声片段以及目标歌声片段分别逐帧进行基于yin算法的基音计算;将各相邻帧的基音连接在一起,得到基音向量;将所述基音向量结合各帧所对应的时间,确定基音时间线;对基音时间线上的各时间点进行有声区检测,对有声区进行提取,得到有声区基音时间线。
在本实施例中,首先,用户输入自己所演唱的歌声片段,系统将对两段歌声音频进行加窗分帧以便进行后续的运算;之后,系统对两段歌声逐帧进行基于yin算法的基音计算,通过将各个相邻帧的基音值连接到一起,形成一个向量,该向量结合各帧所对应的具体时间值,可形成一段基音-时间曲线,即“基音时间线”,需要注意到,本发明之后所提到的“时间线”将全部指这种将逐帧数值相连,并对应到具体的时间点上而形成的向量;接下来,对基音时间线上面的各个具体时间点进行“有声区检测”(voiceactivitydetection,一般简称vad),也就是对各个时间点进行有无歌声出现的判决,并将有歌声区保留,将无歌声区筛除,得到一条仅在有歌声区域具有数值的新的基音时间线;基于上一步所提取的基音时间线,通过转录环节,从歌声音频中不断发生波动的基音中提取出其在波动时所围绕的“音符”向量,形成“音符时间线”;得到音符时间线之后,使用动态时间规整算法(dynamictimewarping,一般简称dtw),通过比较两段音符时间线在时间上的相似性,给出用户与目标之间在节拍方面的相似性,从而评价用户的节拍准确性;同时,通过创新的将dtw算法所得的结果进一步应用于两段音符时间线的相互修正上,能够首先将发生节拍错误的用户歌声与目标歌声对齐,然后再给出更加合理的、不受节拍错误影响的用户音符准确性评价。
本实施例通过比较用户和被其模仿的同一歌声片段的目标歌声之间的相似性,给出对用户的音符准确性和节拍准确性评价。在进行评价之前,需要采集歌手和目标歌声二者的“干声”(acapella,无伴奏的歌声),其中目标歌声可以为原歌曲的原唱,也可以为根据本首歌曲的音符时间序列所还原出来的乐音(例如midi音频文件)。之后对歌声进行分帧处理,以便后续进行基音计算和声强计算。本发明遵循主流歌声处理系统的做法,使用矩形窗,窗长可以为25ms,窗重叠为窗长的一半。
步骤102中的转录指的是基音的转录,即在已经提取好的基音的基础上,计算音乐段落的音符序列的过程。同样的,结合各帧的起始时间,给出与基音时间线定义相似的音调时间线。
本发明的转录环节基于两个重要的假设:首先,在将基音序列分割为不同的音符段落时,如果两段基音确实属于两个音调的话,则他们的差值必大于一定幅度;其次,在任何情况下,由人类所演唱的歌声中,连续两个基音值之差不可能大于一定幅度,否则其中之一为基音计算时的错误点。基于这两个假设,本发明通过逐帧的处理每一帧的基音值而构成整个音符序列。
转录环节输入的是一段之前所得到的基音序列,该序列在某些位置具有无数值的情况,由于之前的yin算法环节和vad检测环节中较为严格的门限设置,该情况能够涵盖绝大部分的非歌声区域,但也会在少数情况下对某些有歌声区域造成非歌声的误判。因此,在进行音符计算之前,本实施例优选的先对基音值序列进行量化,比如以1/5个半音为分辨率,对基音值序列进行量化:
qpitch=round(60*log2(p/440))
其中,p是指输入的基音值,qpitch为该基音值量化后的结果,round()运算为取距离括号中数值最接近的整数的运算,该量化运算以440hz为基准。
在对基音序列进行量化后,对量化后的基音序列进行三次动态平均滤波处理。第一次“动态平均滤波”处理:在当前音符段落i的基音点m处,如果下一个基音值m+1为有数值,则计算下一个基音值点m+1与当前音符段落i的音符均值n的差值,如果该差值大于一定幅度a1,则将其视为一段新的音符段落i+1的开始,否则将该基音值m+1纳入目前的音符段落i,并计算该段落的新的音符均值,每个处于同一音符段落中的点将被赋予该段落最终的音符均值;如果当前基音值为无数值,则暂时将其赋值为前一点的音符值。优选的,a1取值为2/5个半音。第一次“动态平均滤波”处理之后,对所得序列再次进行两次相同的“动态平均滤波”处理,在这两次处理中,不再处理无数值的情况,并且第二轮和第三轮音符变化的阈值a2和a3分别被设为3/5个半音和1个半音。分三层对基音序列进行动态平均处理既可以防止一次动态平均中由于音符变化阈值设定过低而造成的小幅度音符变化信息被破坏,又可以防止因音符变化阈值设定过高而造成的基因波动现象仍然存在的问题。三层“动态平均滤波”处理后所得到的效果如图2所示,其中纵坐标为频率(hz),横坐标为时间(s),图2(d)中的序列已经经历了无数值点恢复环节。
之后,在所得的音符序列中进行突变值筛除,具体做法为寻找较之前的音符值点的幅值差别大于b的音符值点,将其视为错误点,并赋值为前一点的音符值;然后,进行无数值点恢复,也就是使之前第一轮“动态平均滤波”中所遇到的无数值点处的音符值恢复为无数值,并将所有的音符值转换回以赫兹(hz)为单位的频率值。优选的,b的取值为9个半音。
在以上步骤完成后,仍需对所得序列中的时长很短的波动值以及时长很短的无数值区进行处理,因为时长很短的波动值大多数情况下是由每个音在开始和结束点附近的“修饰音”和“基音尖峰”造成的,而时长很短的无数值区大多数情况下是由之前所提到的非歌声区域误判造成的。本发明的处理方法是,当点数分别少于ts和tn的数值波动区和无数值区出现时,将该区域的音符值赋值为之前最近的音符段落的音符值。优选的,ts和tn的取值分别为2和5。
另外,在多数的高水平歌手所演唱的歌声中,常常会出现音符时间线中的“修饰音”现象(ornamentation),这里,将修饰音定义为一个短音符或一个长音符内部开头的某一段区域,其音高小于被修饰音的音高的现象,体现在基音时间线上时,则会是一段音符开始之前的一小段“下凸”。修饰音是非常普遍的现象。由于修饰音是高度个人化的艺术处理,因此在歌唱评价相关的应用中,虽然修饰音的出现会造成歌手在基音方面与目标段落的偏移,但仍然不会被视为音符准确性方面的负面评价。
针对修饰音现象,做出如下的检测和处理:当一段已经经过之前环节处理后的音符时间线中,出现了长度在lth以内,并且与下一段音符序列的音符差值在cth以内的音符序列时,将该段音符序列手动置为下一段音符序列中的音符值,也就是将该段修饰音直接视为被其修饰的音符的一部分。优选的,lth取为15个点,cth取为30hz。
步骤103到步骤105,采用动态时间规整算法(dtw算法)对音符时间线比较和对齐。基于转录环节得到的音符时间线,比较用户和目标两个歌手在时间上的相似性,从而给出用户在所唱的歌声段落中是否出现了“抢拍”或者“慢拍”的提示,以及最终的节拍准确性评价。另外,还根据时间线相似性的比较结果,对两条基音时间线进行相互对齐,并由此给出客观的音符准确性评价。
具体流程如下:首先,计算用户和目标的两段音符序列之间的“差别惩罚矩阵”(costmatrix):
m(i,j)=min{(n0t(i)-n0u(j))2,α}
其中,m(i,j)为目标音符序列中第i个点和用户音符序列中第j个点之间的差别惩罚值,同时也是差别惩罚矩阵第i行第j列的元素,n0t为目标音符序列,n0t为用户音符序列,差别惩罚具体值被两个数值之差的平方来简单的表现,该惩罚值最高不会超过α。优选的,α取值0.5。
得到该矩阵后,遍历惩罚矩阵中的每一个点,设当前遍历的点为(i,j),在该点本身,其下一行的点(i+1,j)和其下一列的点(i,j+1)这三点中找出具有最小值的点,将该点的数值加到(i+1,j+1)点上,并记录该点处的最小值方向为选择方向,代表从右下的点走回左上的点时,从每个可能的点向左上方向移动过程中的每一步“方向”和承受的“惩罚”,该步骤累加出的新的矩阵为累积差别惩罚矩阵。累积惩罚矩阵中,可以采用如下公式计算每一个元素:
其中,ms为累积惩罚矩阵中第i行第j列的元素,m为之前所定义的差别惩罚矩阵。
然后,从差别累积惩罚矩阵的右下角元素开始,通过逐步“回溯”,寻找矩阵中的最佳路径。由于在该矩阵的任何一个点上,已经选择并记录了向左上角“回溯”时,使得下一步受到的“惩罚”最小的方向信息,并且在当前点中已经加上了下一步受到的具体惩罚值,所以只需将经过的每一个点的已有方向信息记录在“横”和“纵”两个方向向量中,就可以最终得到由两个方向向量组成的“最佳路径”。
当以“最佳路径”中的“纵”向量为纵坐标,以“横”向量为横坐标,将该“最佳路径”绘制出来时,发现以下的情况:在两段音符序列中,如果二者的各个音符(即使是具有小的幅值偏差)所出现的时间点相似,也就是用户歌声没有发生节拍错误的话,“最佳路径”将反映为一段斜的直线;相反,如果二者的某些音符所出现的时间点不同,也就是用户的歌声在某些音的位置有“抢拍”或者“慢拍”的现象的话,“最佳路径”将反映为一段横或者纵的直线。现有技术中,通过对“最佳路径”进行线性拟合,根据“最佳路径”和拟合直线之间的差值,能够找出用户歌声发生节拍错误的具体时间点和程度,从而直观的对歌手的“节拍准确性”进行评价。此种方法为一种粗略的节拍准确性评价方法,对于短时间的歌曲片段来说,这不失为一种可行的方法,但对于时间较长的,甚至是整首的歌曲中,某个时间点上歌手的节拍错误可能会导致整个线性拟合路径在其他的时间点上仍然产生与dtw最佳路径之间的客观的差值,使得节拍准确性在不同时间点的评价有失客观性。作为本实施例的一种实施方式,本实施例设定了一个“节拍错误指示值”,在评价节拍准确性时,不再对最佳路径进行线性拟合,而是将该指示值设为初始0状态,遍历整条路径,在路径出现横片段时,该指示值被+1,当路径出现纵片段时,该值被-1,否则其数值不变。最终,观察该指示值在整段歌声时间段中的数值变化,大于0或者小于0的时间段意味着可能的抢拍或者慢拍。由于人耳对于一定范围内的节拍错误是不会产生感知的,并且由于在不同歌手对于同一段歌曲的演绎中,可能会故意的通过偏移少量个数的音来营造一种艺术表达效果,所以设定一个节拍错误幅度阈值dt,并仅仅将偏移量在该数值以外的指示值偏移视为节拍错误的发生。优选的,dt的取值为20个点。
另外,由于在所得到的“最佳路径”中,实际上是以两个序列的索引出现顺序,记录了用户歌声与目标歌声之间节拍发生差别的具体方式,因此根据该“最佳路径”所反映出的索引出现顺序,对用户歌声和目标歌声这两个序列的索引进行调整,得到两组被对齐后的音符序列(注意,这里经过对齐的序列已经不再是“音符时间线”)。该序列的意义在于,能够不受用户的节拍错误影响,更加合理可观的给出其在“音符准确性”这一方面的基本评价。
由于本实施例中,用户和目标的歌声被认为是在完全相同的伴奏下所演唱出来的,所以并没有考虑音符准确性评价中“高8度”,“低8度”等现象的出现,而是简单的将任何两段音符序列之间的差别视为音符准确性错误。如果需要考虑不同音高基准现象的出现的话,可以先分别计算两段序列的平均值,将两段序列分别减去他们各自的平均值之后,再比较两列“相对音符”之间的相似性。
需要指出的是,无论是音符错误还是节拍错误,都只有在高于一定程度之后才能够被人类听众察觉。在给出节拍错误指标的时候,已经考虑到了该问题的影响,而在给出音符错误的时候,优选的,采取阈值设定的方法,忽略一定程度之内的音符序列差值,或者是采取非线性的差值与评分关系,以弱化小的差值对评分带来的影响。
实施例2
在实施例1的基础上,本实施例还对待评价歌声片段进行了情感饱满度评价和音域合适度评价。具体为:选取待评价歌声片段对应的音符时间线上音符值稳定,且持续时间大于设定时间值的片段,记为目标片段;提取所述目标片段的频谱形状特征、谐音能量特征、颤音特征和声强特征;将所述频谱形状特征、谐音能量特征、颤音特征和声强特征输入训练好的神经网络模型,得到情感饱满度评价和音域合适度评价。
在本实施例中,首先,在提取出的音符时间线上,找到音符值稳定且持续时间较长的片段,因为该类片段中,歌手具有更为充足的演唱技巧和音色特征(timbre)方面的发挥空间,同时也具有更大的暴露自己声音中存在的“气息不足”,“音域不合适”等问题的机会,而之后所进行的频谱形状特征、谐音能量特征和颤音特征这三方面的特征运算都将仅在该区域进行;然后,在分帧的基础上,逐帧对用户歌声信号进行短时傅里叶变换处理(shorttermfouriertransform,一般简称stft)和均方根(rms)计算,并将每帧得到的频谱向量逐帧并列组成频谱时间矩阵,将得到的均方根值逐帧相连组成声强时间线;从频谱时间矩阵中,可以对歌声信号的频谱形状特征和谐音能量特征进行计算提取;其中,谐音能量特征的计算由于需要事先得知歌声的基音和若干倍谐音(harmonics)的频率位置,所以需要以基音时间线作为参考;同时,还将从基音时间线和相同时间位置的音符时间线之间的关系得出歌声的颤音特征;最终,将所述频谱形状特征、谐音能量特征、颤音特征和声强特征输入训练好的神经网络模型,得到情感饱满度评价和音域合适度评价。
实施例3
参见图3,本实施例提供了一种歌唱评价系统,该系统包括:
有声区基音时间线确定模块301,用于分别计算待评价歌声片段以及目标歌声片段的有声区基音时间线;
音符提取模块302,用于通过转录,从所述有声区基音时间线中提取音符,得到音符时间线;
dtw算法求解模块303,用于求解所述待评价歌声片段的音符时间线和所述目标歌声片段的音符时间线之间的dtw最佳路径以及差别惩罚矩阵;
节拍准确性评价模块304,用于遍历整条dtw最佳路径,在dtw最佳路径出现横片段时,指示值+1,在dtw最佳路径出现纵片段时,所述指示值-1,所述指示值为所述待评价歌声片的节拍准确性评价指标;
音符准确性评价模块305,用于根据所述差别惩罚矩阵和dtw最佳路径,将所述待评价歌声片段的音符序列和所述目标歌声片段的音符序列对齐,并在对齐后对所述待评价歌声片段进行音符准确性评价
其中,有声区基音时间线确定模块301可以具体包括:
加窗分帧操作单元,用于对待评价歌声片段以及目标歌声片段分别进行加窗分帧操作;
基音计算单元,用于对待评价歌声片段以及目标歌声片段分别逐帧进行基于yin算法的基音计算;
基音向量确定单元,用于将各相邻帧的基音连接在一起,得到基音向量;
基音时间线确定单元,用于将所述基音向量结合各帧所对应的时间,确定基音时间线;
有声区检测单元,用于对基音时间线上的各时间点进行有声区检测,对有声区进行提取,得到有声区基音时间线。
作为一种可选的实施方式,歌唱评价系统还包括:
目标片段选取模块,用于选取待评价歌声片段对应的音符时间线上音符值稳定,且持续时间大于设定时间值的片段,记为目标片段;
特征提取模块,用于提取所述目标片段的频谱形状特征、谐音能量特征、颤音特征和声强特征;
高级评价模块,用于将所述频谱形状特征、谐音能量特征、颤音特征和声强特征输入训练好的神经网络模型,得到情感饱满度评价和音域合适度评价。
下面对本发明提供的歌唱评价方法及系统在基音提取和转录这两个环节的准确性和可靠性进行测试
1、数据集的采取和正确结果标定
在测试本发明所述的系统时,使用了“molina,emilio.evaluationframeworkforautomaticsingingtranscription[j].2014.”中所公开的数据集。该数据集中,每个歌声音频文件都具有44100hz的采样率,时长从15s到86s不等,歌声均在无伴奏的情况下录制,分为三部分:第一部分为“molina,emilio.evaluationframeworkforautomaticsingingtranscription[j].2014.”作者自己组织录制的由8名不同的业余水平年轻歌手所演唱的14段歌声;第二部分为该作者从mtg-qbh公开数据集“salamonj,serràj,gómeze.tonalrepresentationsformusicretrieval:fromversionidentificationtoquery-by-humming[j].internationaljournalofmultimediainformationretrieval,2013,2(1):45-58.”中选择的由8名不同的水平较高的男歌手演唱的13段歌声;第三部分为该作者从mtg-qbh公开数据集“salamonj,serràj,gómeze.tonalrepresentationsformusicretrieval:fromversionidentificationtoquery-by-humming[j].internationaljournalofmultimediainformationretrieval,2013,2(1):45-58.”中选择的由5名不同的水平较高的女歌手演唱的11段歌声。以上歌声片段均由作者所邀请的两名资深音乐学专业研究者(一名具有12年资历,另一名具有9年资历)进行了正确音符的起始时间,音高值以及结束时间的标定,作为评价系统准确性时所参考的标准答案(ground-truth)。时间以秒作为单位,音高以midi标准作为单位,由频率转换为midi标准音高的公式如下所示。
nmidi=69+12*log2(f/440)
其中,nmidi表示midi标准的音高,分辨率为1个半音。
2、系统性能评价指标
为了将本发明提供的方法的相关环节与几种具有相同功能的主流算法进行比较,将遵循“molina,emilio.evaluationframeworkforautomaticsingingtranscription[j].2014.”中对于转录准确性的评价指标和转录错误的描述。首先,定义第i个由本发明提供的方法所提取出的音符为ntri,而第j个标准答案中的音符为ngtj,系统提取的音符总个数为ntr,而标准答案中的音符总个数为ngt。由于每一个音符都代表着一个具有音符值的段落,因此具备起始时间,结束时间和音符值三个信息。该评价体系规定,由系统所转录出的某个音符的起始时间和结束时间与标准答案如果相差在50ms之内,则被视为起始时间或结束时间正确的音符,这里分别用con(correctonset)和coff(correctoffset)表示;系统转录出的某个音符的midi音高值如果与标准答案相差在0.5个半音(即0.5)之内,则被视为音高值正确的音符,这里用cp(correctpitch)表示。
在系统所转录出的音符中,会出现不同的正确条件,这里关注的是以下三种正确的音符:第一,满足起始时间正确,即con条件的音符;第二,满足起始时间和音高值正确,即con和cp条件的音符,该条件被记作conp;第三,满足起始时间,音高值和终止时间正确,即con,cp和coff条件的音符,该条件被记作conpoff。另外,当以标准答案中的音符为标准时,设转录出的音符序列中满足x条件(为con,conp和conpoff中的一种)的音符个数为ngtx,则系统在x条件方面的准确率(precision)cxprecision被定义为如下:
cxprecision=ngtx/ngt
而当以系统转录出的音符为标准时,设标准答案中的音符序列中满足x条件的音符个数为ntrx,则系统在x条件方面的召回率(recall)cxrecall被定义为如下:
cxrecall=ntrx/ntr
将准确率和召回率综合起来,还可以对系统做出一个总体的评价,即f值(f-measure):
cxf-measure=2*cxprecision*cxrecall/(cxprecision+cxrecall)
以上评分在这里被统一称为“正确音符性能”。
3、实验结果
本发明系统在正确音符性能方面的评价如表1,表2,表3和表4所示,其中,表1中的是在第一部分数据集上的测试结果,表2和3则分别是第二部分和第三部分的测试结果,表4为所有数据集的综合测试结果。
表1
表2
表3
表4
与“molina,emilio.evaluationframeworkforautomaticsingingtranscription[j].2014.”文中所提到的其他3个主流算法[“meze,bonadaj.towardscomputer-assistedflamencotranscription:anexperimentalcomparisonofautomatictranscriptionalgorithmsasappliedtoacappellasinging[j].computermusicjournal,2013,37(37):73-90”|,“
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除