哼唱旋律到midi旋律的转换方法_4

文档序号:9490322阅读:来源:国知局
地,若一个音符既可认定为误分割音符,同时也可认定为 误合并音符,那么我们既不把它认定为误分割音符,也不把它认定为误合并音符,而是把它 认定为后面将定义的二种情况之一:正确音符或不良音符;
[0088] ?估算正确音符率(CorrectlyDetectedNoterate):在算法估算的实际哼唱 旋律中的一个音符nj正好命中(即匹配)手工标注的Groundtruth中的某个音符η;(在 MIDI音高与音长是一致的),即nj与η;的音符起始时间(onset)相差不超过±50ms,且二 音符的时间区域超过各自时间区域的50%,且经音高取整操作后得到的MIDI音高是一致 的,则称音符1^为估算正确音符,简称CN音符。特别地,若nj也是分割音符或也是误合并 音符,贝这样的音符nj不可认定为估算正确音符。音符η,在算法估算的实际哼唱旋律中出 现的百分率称为估算正确音符率,简称CN率;
[0089]?估算音符不良率(Badlydetectednoterate):在算法估算的实际哼唱旋律中 的一个音符正好在时间区域上与手工标注的Groundtruth中的某个音符部分互相覆盖, 且二者音高经音高取整操作后得到的MIDI音高是一致的,但该音符不是前面几种音符的 任何一种。即此时,二音符的音符起始时间相差超过±50ms或二者音长相差甚远(即二者 在时间互相覆盖区域不超过50% ),则称这样的音符1^为不良估算音符,简称BD音符。BD 音符1^在算法估算的实际哼唱旋律中出现的百分率称为估算音符不良率,简称BD率。
[0090] 表2是以EmilioMolina[ls]提供的Groundtruth为标准,评估我们算法估算的实 际哼唱旋律的结果。图2展示了在EmilioM〇lina[lsM^测试结果的基础上加入了表2所述 的本发明的结果,以便比较。其中有声帧音高估算准确率(rawpitchaccuracy)为86. 34, 基本达到了由EmilioMolina的系统取得的最好结果。但本发明运算速度更快。其计算复 杂度为0(nlog2n),EmilioMolina的方法需使用YIN算法,计算复杂度为ο(η2)。
[0091] 表2 :38首算法估算的实际哼唱旋律的各项系统性能评估结果
[0093] 为便于说明,构造如下集合:
[0094]FVcii(:eFrailie={f」Groundtruth中所有处于onset至offset之间对应的信号帧 ;
[0095]FUnv-e={f; |Groundtruth中所有不处于onset至offset之间对应的信号帧 且不包括滑音区的信号帧;
[0096]Fpiteh&OTe(:tFrailie={f」-0·5<算法估算:^的扩展MIDI音高-6所处的音符的Ground truthpitch彡 0· 5),FvolceFrane} 〇
[0097] 式(F-2)、(F-3)、(F-4)分别是估算RPA、VR及VFA的方法。FUnvcil^_不包括主 观听觉认定为滑音的信号帧,这是为了和EmilioMolina提供的评估标准尽可能一致,即忽 略相邻音符间的滑音的信号帧[18]。式(F-5)中NYSGroundtruth中的音符总数,ΝγΧ为 Groundtruth中X音符e{S音符,Μ音符,⑶音符,BD音符}的音符数,.?为算法估算 的实际哼唱旋律中的音符总数,ΝγΧ为算法估算的实际哼唱旋律中X音符的音符数。

[0102] B.算法估算的期望哼唱旋律的评估与结果
[0103] 把记谱专家手工标注的期望哼唱旋律认定为这段人声哼唱的正确旋律。手工标注 的期望哼唱旋律中音符音高是哼唱旋律的调性音级。评估需要涉及以下3个任务:
[0104] 任务1 :算法估算的期望哼唱旋律的调性及其音符的调性音级是否与手工标注的 期望哼唱旋律的调性及相应音符的调性音级一致是评估的首要任务。
[0105] 任务2:评估的另一项任务是算法估算的期望哼唱旋律中是否能体现出算法的自 动校正能力。这需要比较唱走音的音符导致出现在Groundtruth中2个音符间的错误音 程关系是否会在算法估算的期望哼唱旋律中被算法正确地校正。
[0106] 任务3:太多走音而导致过度跑调(offkey)的哼唱片段的调性是不稳定的。不 稳定调性的哼唱意味着其调性以及手工标注的期望哼唱旋律是不可确定的。为此,一个与 哼唱旋律线准确度有关的正确演算音程率的概念将被引入以便评估手工标注的期望哼唱 旋律与算法估算的期望哼唱旋律的有效性。
[0107] 任务1会面临二个技术上的困难。一是一段人声哼唱的调性存在歧义或多义性。 二是由手工标注的期望哼唱旋律中的每个音符并非都能被算法正确地分析出来并对应到 算法估算的期望哼唱旋律中。然而,无论一段人声哼唱的调性能否被唯一确定,它总是与由 这段人声哼唱旋律的相邻二个音符构成的音程序列存在对应关系。我们把在前面评估算法 估算的实际哼唱旋律中的CN音符中最近邻的二个音符所构成的音程(在后面的定义3中 称为演算音程)序列与相应出现在手工标注的期望哼唱旋律中的音符所构成的音程(在后 面的定义1中称为期望音程)序列相比较,评估它们的一致性,以此作为评估算法估算的 期望哼唱旋律的一项性能指标。因为只有CN音符在算法估算的期望哼唱旋律与手工标注 的期望哼唱旋律中相应音符才是一一对应的。原因是我们要求记谱专家手工标注的期望哼 唱旋律中每个音符的边界和Groundtruth的每个音符的边界必须是一致的,以求评估标准 的一致性。为便于说明,我们通过下面的定义依次引入相关的概念。
[0108] 定义1(期望音程):手工标注的期望哼唱旋律中的前后二个非休止音符所构成的 音程称为这二个音符的期望音程。
[0109] 定义2(Groundtruth音程与正确Groundtruth音程):设?^,N2,…,Nm依次为一哼 唱片段的Groundtruth中m个非休止音符,公式(F-6)中GR-Interval(j,k)为音符Nj与音 符Nk间的Groundtruth音程(1 <j,k<m-1),
:为取整运算。若GR-Interval(j,k) 与音符Nj与音符Nk间的期望音程一致,则称音符N,与音符Nk间的Groundtruth音程为正 确Groundtruth音程,否则称为不正确Groundtruth音程。
[0110]
[0111] 定义3(演算音程、正确演算音程及正确校正音程):设叹算法为 哼唱信号HS的实际哼唱旋律的m个CN音符。Xi,X2,…,为我们的调性分析算法为 iViV …>AU隹算的m个调式音级。音级Xk至音级Xk+1之间的音程为Ik个半音音程(Ik 为整数,1彡k彡m-1)。称整数Ik为哼唱音符个:哼唱音符Α^+?的演算音程。再设记 谱专家为HS手工标注的期望哼唱旋律中与%肩2相对应的音符为%; % 哼唱音符瑪至哼唱音符的期望音程为Jk个半音音程(J整数,1彡k彡m-1)。若 f中音符i%至病^^的演算音程与期望哼唱旋律中相对应的音符次^至音 符的期望音程一致(即Ik=Jk),则称音符機&与瑪_^的演算音程为正确演算音 程。若音符叫if与的演算音程为正确演算音程,但它们的Groundtruth音程为不 正确Groundtruth音程,则称由音符和&与/V^w的演算音程为正确校正音程(Correct CorrectionInterval)〇
[0112] 这里需要说明的是定义3中所指的音符1^%与/^^5的Groundtruth音程与我们 的调性分析算法(其基本策略描述于上述步骤4)的相邻音程分析与"间邻"音程分析中所 使用的估算音程不同。估算音程包含小数部分,其精度误差在25音分以内,而式(F-6)所估 算的音符%与音符Nk间的Groundtruth音程为整数。其精度误差却在100音分以内。本发 明是借助调性分析,有调性倾向地将带有小数部分的估算音程规整为定义3所述的演算音 程。而目前所有涉及调性分析的哼唱旋律识别系统(如RyynSnen[1S|系统中Musicological Model),则是先对音符的估算音高执行如式(F-1)或式(F-6)中所述的无调性倾向地音高 取整,再进行调性分析。这是本发明调性分析哼唱旋律的主要技术特色。
[0113] 设HS为一不含转调的人声哼唱片段。EMHS、tr_EMHS分别是HS的手工标注的期望 哼唱旋律与算法估算的期望哼唱旋律。由于EMhsStr-EMHS中任意一个音符在单一调性K 下的调性音级,可由音符的音高及调性K的Keynote的音高直接推出,并由此可推算出EMhs 相邻音符的期望音程及tr-EMHj^相邻音符的演算音程,故可构造调性集合:
[0114]KeySet(EMHS) ={K|在调性K下由EMHS的相邻音符的相邻调性音级构成的音程序 列=EMHj^相邻音符的期望音程序列且EMHS的调性音级序列至多含一个非调性音级(可重 复出现)};
[0115] KeySet(tr_EMHS)={K|在调性K下由tr_EMHS的相邻音符的相邻调性音级构成的 音程序列=tr-EMHj^相邻音符的演算音程序列且tr-EMHS的调性音级序列至多含一个非调 性音级(可重复出现)};
[0116]令Key-Solution=KeySet(EMHS)ΠKeySet(tr_EMHS),若tr_EMHS存在CN音符且 Key-Solution不为空,则表示哼唱信号HS的调性被正确估算。
[0117] 于是,任务1就可转化为判定算法估算的期望哼唱旋律中有多少正确演算音程以 及估算可能的调性集合Key-Solution的问题。表3列出了MTG-QBH[24]中哼唱文件ql.wav 的手工标注的期望哼唱旋律开始9个音符(手工标注)的音高以及对应在我们算法估算的 期望哼唱旋律开始8个音符的一种可能的调性音级序列。需要说明的是我们的调性分析算 法不区分大、小调式。自然调式的关系大小调,在我们这里使用同一个调式音阶。任务2则 是判断算法估算的期望哼唱旋律中的正确演算音程有多少是正确校正音程的问题。即正确 校正音程率的问题。任务3涉及是否因哼唱片段的过渡跑调而使手工标注的期望哼唱旋律 无法确定或哼唱是否存在转调的问题。这一任务可由参与评估的音乐家人工判断。
[0118]表 3
[0119]
[0120] 3)结果的比较与讨论
[0121] A.哼唱旋律识别技术的比较与讨论
[0122] 在信号帧的基频估算上,我们算法估算的有声帧音高估算准确率(rawpitch 3(^11抑〇5〇达到了 86.35%。很接近最好的1〇]11;[仙6七31的3丨?1'!1系统[18]的结果(参 见图3)。SiPTH系统使用具有更高的基频估算精度的YIN算法与他们提出的Hysteresis DefinedonthePitch-TimeCurve相结合的方法。而我们算法只把音高误差控制在25音 分的范围内,且有效音域局限在[F,e2]三个八度范围内。但是,我们基频估算法的时间复 杂度是〇 (nlog2n),而?Ν算法的时间复杂度是ο(η2)。这是本发明在平衡基频估算的精度 与运算速度上的主要技术优势。
[0123] 在音符分析上我们算法的平均CN率(Correctlydetectednoterate)的结果是 45.39%,]\1%711&^11的31[16]的基于多状态!1丽方法取得了最好的成绩(约50%左右, 参见图3)。其中部分原因是目前我们的方法还无法有效地处理多音节的音符分割问题。这 导致不少输出结果的BD率(估算音符不良率)偏高。另一个原因是算法判定音符标准与 评估标准不一致。我们目前评估CN率的标准是采用Monlinaetal提供的评估框架。在 该框架下,滑音、倚音等一些短音符在Groundture中均被合并到后面的长音中或不参与评 估。例如,对于Monlinaetal提供的测试集中ql.wav的Groundtruth中的第1个音符, 依照我们算法的分析结果却是应分解成一个较短音符(倚音)和另一个较长的音符。
[0124]多数现有的哼唱旋律自动识别系统不涉及调性分析。在此我们仅需比较与讨论具 有代表性的M.RyynSne:nU6]系统中MusicologicalModel对输入哼唱的调性(Key)分析方 法与我们算法的调性(Key)分析方法。实际上二种调性分析方法的区别在于我们的调性分 析模型以相邻或"间邻"哼唱音符的候选音程序列作为输入,而M.KyimiMn?.系统中的调 性分析方法需以被取整化的12个
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1