用于跟踪乐谱的方法以及相关的建模方法与流程

文档序号:11531109阅读:567来源:国知局
用于跟踪乐谱的方法以及相关的建模方法与流程

本发明涉及一种用于跟踪乐谱的方法以及相关的建模方法。本发明涉及数字乐谱的读取领域。

本发明尤其有利地应用于学习、练习乐器或者引导收听演奏等方面。



背景技术:

存在用于跟踪数字乐谱的软件,对于该数字乐谱,其活动区(音符、小节、五线谱等)可从该乐谱的节奏或从表演者手动提供的演绎节奏中推导出来。这些软件通常包括用于标记该乐谱的元素,例如上划线或点状指示符。在代表开始读取的一个时延之后,标记元素以对应于该乐谱节奏的速度移动。因此,当音乐家可以随着乐谱的节奏演奏乐谱时,这些乐谱的活动区(音符、小节、五线谱等)被显示出来,考虑到乐谱的节奏,音乐家应该在理论上处于这些活动区。

这些软件的读取时间性是预先定义的,而并没有考虑音乐家演奏时的实际节奏。音乐家必须“跟踪乐谱上的光标”,而不能用他们自己的演奏来定义乐谱上光标的位置。因此,音乐家无法降低他们难以弹奏的一部分乐谱的滚动速度。同样地,当音乐家被现有的软件跟踪时,他们也无法重奏他们希望完美演奏的一部分乐谱。



技术实现要素:

本发明意在通过提出一种用于跟踪乐谱同时收听表演者的演奏的方法来弥补现有技术的缺点,其适于随表演者的演奏来改变乐滚动的速度或乐谱显示的位置。

为此目的,从第一个方面,本发明涉及一种用于跟踪乐谱的方法,包括以下步骤:在添加和移动标记步骤中,在该乐谱上显示标记元素并移动该标记元素,该方法还包括实时执行以下步骤:在记录声音步骤中,以持续时间的数据帧的形式记录表演者发出的至少一个声音;在估算步骤中,基于该数据帧的内容估算至少一个半音阶矢量;在半音阶矢量比较步骤中,比较该半音阶矢量与乐谱的理论上的半音阶矢量;在转变比较步骤中,比较该半音阶矢量与具有该乐谱理论上的转变的在前半音阶矢量;以及在估算步骤中,依据在前的演奏位置、对半音阶矢量进行比较的结果、以及对上述转变的比较结果,估算演奏位置表演者的演奏位置;上述添加和移动标记步骤是根据表演者的演奏位置实现的;在记录步骤中,依据该转变的持续时长与参考持续时长的比例选择一个持续时长,并在该选择的持续市场内执行记录步骤。

因此,本发明使得可以识别表演者弹奏的音符或和弦,并将该识别与该乐谱的和弦相关联。这种关联可以使跟踪方法实时地适应演奏。

例如,依据该乐谱原始节奏,提供与音符或和弦有关的持续时间,但表演者不一定对此完全遵从。表演者可能希望在某些部分加快或减慢演奏速度。本发明可以增强对表演者个人特定节奏的跟踪。对节奏进行建模还可以获得对表演者当前节奏的估算,这可能对高级同步应用非常有用。

根据另一个示例,存在一个强烈的假设,根据该假设,表演者按照从第一个到最后一个的顺序演奏所有的音符或和弦。事实上,表演者很少有这个规律;相反,他们可能希望训练自己,在他们正在演奏的片段中来回移动、停止、然后在别处重新开始演奏。为了回应这种需求,本发明的方法可以在乐谱内执行“跳跃”,打破乐谱的连续性。因此,在模型中允许演奏的中断,并且当这种中断出现时,算法只需很少的时间即收敛到新的位置。

所实施的方法在适用于一个乐谱,从总体上来讲,这个乐谱包括具有时间性而不只是图形的形式的和弦。例如,该方法可以在乐器数字接口(midi)形式的乐谱文件中指示位置。

本发明还适用于引导收听演奏。例如,听众可以收听对应于乐谱演奏的音轨,该音轨经由具有扬声器的音频系统播放,并且可以观察与音轨相关联的乐谱的正在演奏的活动区域。

根据一个实施方式,该方法包括归一化步骤,即用该乐谱的该理论上的半音阶矢量对该半音阶矢量进行归一化。该归一化步骤可以使理论上的半音阶矢量适应于估算的半音阶矢量,从而提高识别和关联表演者所演奏的和弦的性能。

根据一个实施方式,将该半音阶矢量与该乐谱的理论上的半音阶矢量进行比较的步骤包括以下子步骤:估算该半音阶矢量和每个理论上的半音阶矢量之间的欧几里德距离,归一化所获得的欧几里德距离总和,以及估算该半音阶矢量隶属于每个理论上的半音阶矢量的概率。该实施方式在性能比较和能够允许实时处理的必要计算资源之间做出了很好的折衷。

根据一个实施方式,在转变步骤中:通过泊松定律的方法完成比较该半音阶矢量与在前半音阶矢量之间转变。该实施方式也在性能比较和能够允许实时处理的必要计算资源之间做出了良好的折衷。

根据一个实施方式,至少一个估算在对数尺度下完成。本发明涉及很多乘法,经常涉及接近于0的数值。因此,由于可能超过与所采用的计算设备中浮点数字相关的精度,计算可能会变得不稳定。为了补救这一点,本实施方式可以在“对数概率”领域中执行所有的计算,因此,所有乘法都变成加法,计算的精度仍然是可接受的。

根据一个实施方式,通过维特比(viterbi)解码算法执行记录步骤中对持续时间的估算。该实施方式也在性能和能够允许实时处理的必要计算资源之间做出了良好的折衷。

根据一个实施方式,至少一个估算包括阈值,低于该阈值的估算被判断为不相关,并且其结果将不被采用。由于其概率性质,根据本发明的乐谱跟踪方法可能有误,并且给表演者错误的指示。当表演者在演奏中犯一些错误在或者在对乐谱的演奏很自由时,这种情况会发生。为了以最好方式管理由本发明方法提供的信息不可靠的情况,本实施方式可以实施判断估算的相关性的一个评估标准。

根据第二个方面,本发明涉及一种用于对乐谱建模的方法,包括以下步骤:将乐谱分隔成至少一个系列具有内容和持续时间的理论上的和弦,以理论上的半音阶矢量的形式表示每个理论上的和弦的内容,并对各种理论上的和弦之间的理论上的转变进行建模。本发明的第二个方面使得可以获得一个对数字乐谱的表示。半音阶矢量是数字乐谱的更“结构化”的表示,其可以使和弦之间的比较更简单。

根据一个实施方式,在建模步骤中,通过隐马尔可夫模型实现对各种理论上的和弦之间的理论转变的建模。该实施方式还在比较性能和能够允许实时处理的必要计算资源之间做出了良好的折中。

根据一个实施方式,该理论上的半音阶矢量由至少一个具有12个标量的音阶构成,其中标量数值均位于0和1之间,并且每个标量与半音音阶的半音调(do、do#,re、re#、mi、fa、fa#、sol、sol#、la、la#、si)之一相关联。作为变型例,半音阶矢量包括更多的标量数,例如以便整合阿拉伯音乐中的四分之一音。

附图说明

借助于下文中仅以说明方式对本发明实施方式的描述,可以更好地理解本发明,其中附图:

·图1所示为根据本发明的一种实施方式对乐谱建模的方法的步骤;

·图2所示为根据本发明的一种实施方式跟踪乐谱的方法的步骤;以及

·图3所示为根据本发明的一种实施方式跟踪乐谱的界面。

具体实施方式

图1所示为用于对乐谱10进行建模的方法的步骤,其中在步骤30,乐谱10被切分为一系列理论上的和弦s={s0,s1,...,si,si-1}。s的每个理论上的弦与一个内容ci、一个可能为零的音调组、以及一个具有开始和结束的持续时长di相关联。和弦的开始和结束分别是内容ci改变之前的最小和最大的时刻值。

在步骤31中,以半音阶矢量vi的形式表示每个理论上的和弦si的内容ci。优选地,半音阶矢量vi由一个具有12个标量的音阶构成,其中标量数值均位于0和1之间,并且每个标量与半音音阶的半音调(do、do#、re、re#、mi、fa、fa#、sol、sol#、la、la#、si)之一相关联。优选地,每个半音阶矢量vi的范数等于1。通过这种半音阶矢量vi的表示,八度音的差异不被显示,因此不再考虑和弦的绝对音高。半音阶矢量vi使得可以获得理论上的和弦si的和声内容ci的紧凑版本。半音阶矢量vi也是更“结构化”的表示,其可以使s的理论上的和弦之间的比较更简单,并且还能够集中使用欧几里德距离。

数字乐谱10的s的理论上的和弦之间的理论上的转变t0、ti、ti-1也优选地通过具有显式持续时间的隐马尔可夫模型来建模。因此,每个理论上的和弦si被认为是马尔科夫状态,并且每个状态si与离散时间线相关联,其表达式如下:

li=[li,0li,1…li,j…li,j-1],

其中j是半音阶矢量的大小,l和p是时间线的采样周期,li,j是表演者已经处于si状态达jp毫秒的概率。一旦构建了时间线,可以对表演者在不同和弦之间转变的调式进行建模。

因此,对于s的每个理论上的和弦,数据库15内有半音阶矢量vi、当前理论上的和弦与s的和弦之间的理论上的转变t0、ti、ti-1。

图2示出了用于跟踪乐谱10并且实时分析表演者的表现的方法的步骤,其中实时是指在确定的时间内。

在第一步骤23中,以由表演者演奏发出的声音12以数据帧tr的形式持续记录时间dx(例如200ms)记录。基于该数据帧tr的内容cx,步骤24包括估算半音阶矢量vx。例如,该估算可以通过能够识别表演者所演奏的所有可能的和弦的神经网络来执行。此后,在步骤25中,执行半音阶矢量vx的归一化,以对应于存储在数据库15中的半音阶矢量v0、v1、...vi、...vi-1的格式。

此后,步骤26包括将半音阶矢量vx与乐谱10的半音阶矢量v0,v1,...vi,...vi-1进行比较。为此,计算半音阶矢量vx和每个半音阶矢量vi之间的欧几里德距离ei。保存这些距离值,并且使这些距离值归一化,使得欧几里德距离ei总和等于1。然后,欧几里德距离ei表示当前帧tr“非隶属”于s的各种理论上的和弦中。最后一个步骤中将这些“非隶属”的概率转换成一个“隶属”的概率,即执行以下操作:

ei:=1-ej。

另一步骤27在于分析半音阶矢量vx和在前由表演者演奏的半音阶矢量vx-1之间的转变tx。因此,具有显式持续时间的隐马尔可夫模型被用作存储在数据库15中的理论上的转变t0、...、ti、tl-1的函数。根据以下等式进行转变的计算:

li,0:=maxj(poisson(j,λi)li-1,j),

其中λ表示与离散时间线的每个元素j相关联的期望值。术语泊松(poisson)是指描述在乐谱10中出现的s的理论上的和弦的数量特性的离散概率分布。

此后对于i和j的所有数值,根据以下等式计算离散时间线的发出概率:

li,j:=li,jei。

保存这些计算所得值,并且将这些值归一化,使得离散时间线li,j总和等于1。i和j的最大参数分别表示表演者最可能演奏的和弦以及在和弦内的进度。

上述计算涉及许多乘法运算,通常涉及接近于0的数值。因此,由于可能超过与考虑的计算设备中的浮点数相关的精度,计算可能变得不稳定。为了克服这一点,所有的计算可以在“对数概率”域中执行;并且所有乘法运算都变成加法运算,计算的精度仍然是可接受的。从而修改上述公式。因此,根据以下等式来执行转变的计算:

li,0:=maxj(log(poisson(j,λi))+li-1,j),

并根据以下等式考虑发出概率:

li,j=li,j+log(ei)。

根据以下等式,用离散时间线的重定基础来代替归一化:

li,j=li,j-maxn,m(ln,m)。

对数概率因此被补偿,使得其最大值等于0。

依据在前演奏位置px-1、半音阶矢量vx的比较和转变tx的比较,所有这些信息使得可以在步骤28中估算表演者的演奏位置px演奏位置。该演奏位置px使得可以在步骤20中显示一个数字乐谱10上的标记元素11,并且在步骤21中将该标记元素11移动。

图3表示用于跟踪包括标记元素11的乐谱10的界面16。标记元素11采取离散线的形式,其中离散线表示理论上的和弦s1、s2、si、si-1。优选地,理论上的和弦s1、s2、si、si-1所处于的节拍mes_i也被突出显示。用于跟踪乐谱10的界面16还包括可由表演者控制的命令控制器17,例如以便调整本发明方法中的设置,从而选择由表演者演奏的声音和由界面播放的(多种)声音。

在该实施方式中,当表演者演奏到页面底部时,可以自动翻页而不需要表演者手动翻页。作为变型例,例如由于数字平板电脑的屏幕的尺寸,乐谱10可以根据演奏位置px而在屏幕上滚动。

此外,根据乐谱10的原始节奏tpo,对与理论上的和弦s1、s2、si、si-1有关的持续时间di进行估算,而表演者不一定对此完全遵从。表演者可能希望在某些部分加快或减慢演奏。本发明实施一种加强跟踪,而该加强跟踪并不包括与表演者的演奏速度相关的任何不适当的推定。对节奏v进行建模可以获得对表演者的当前节奏tpo_inter的估算。该估算对于高级同步应用程序可能十分有用。节奏di可以在乐谱10内显著变化;由于该原因,不必考虑表演者的精确节奏tpo_inter,而依据以下等式对节奏v进行估算:

对节奏v的这种估算给出了表演者相对于乐谱10的相对演奏速度。为了对该速度作出估算,可以使用一种适用于马尔可夫链的算法---维特比解码(viterbidecoding)。维特比解码是一种动态编程技术,可以跟踪导致目标状态的最可能的状态序列。在具有显式持续时间的马尔科夫链的情况下,目标并不是状态,而是在概率li,j的一个状态si内的时间偏移jp。具体地,每个目标具有存储其历史信息的大小为k的向量mi,i。在转变步骤中,根据以下等式向量mi,j进行更新:

其中shift(mi,j)为指定操作运算,对于所有k:

向量mi,i总结在最后k个状态中花费的时间,因此可以根据以下等式获得对给定目标的节奏的估算:

基于由(i,j)=argmaxi,jli,j索引的该最可能的目标,通过评估来获得最终节奏。一旦计算得出节奏的估算,与理论上的弦si相关联的持续时间di就被修改。持续时间di的这种改变允许对表演者播放的下一音频帧tr进行更合适的处理。

由于其概率性质,根据本发明的乐谱跟踪方法可能有误,并且给表演者不佳指示。当表演者在演奏中或者在对乐谱的自由演奏期间犯一些错误时,这种情况可能会发生。为了以最好方式管理由本发明方法提出的信息不可靠的情况(例如提示演奏者),落实判断估算的相关性的评估标准(例如使用上述的“重定基础”步骤),则可能是有益的。在该过程期间,项maxn,m(ln,m)可以被解释为由最后的帧tr引起的全局补偿。通过在最后n个帧上平均maxn,m(ln,m),可能获得与最后np毫秒的播放相关的补偿。因此,可以设定一个阈值,高于该阈值的估算判定为可靠。

关于跟踪乐谱10,在一个第一近似中,可以认为表演者仅能从状态si-1(乐谱10的在前理论上的和弦)达到状态si。即,表演者演奏所有的和弦。事实上,表演者很少遵守这个规律;相反,表演者可能希望训练自己,在正在演奏的片段中前后移动、停止、然后在其他地方继续。为了处理这个推测,本发明的方法可以在乐谱10内执行“跳跃”,打破由转换概率的选择引起的连续性。在“对数概率”空间中,值0对应于概率1,值-1对应于概率0(严格不可能性)。该方法将小于0或甚至等于-1的“对数概率”与乐谱10的某些区域相关联。基于表演者的表演历史建立的这样的值几乎肯定限制了考虑所讨论的区域作为新表演段的开始点的算法的可能性,即使随后分析的帧这样暗示。

为了克服这一点,可以重建已经变得非常小的概率li,j。实际上,这由根据以下等式执行的阈值操作表示:

其中z是期望的阈值。所讨论的阈值应该慎重选择:阈值不应过高,其效果是使得乐谱中的每个区域在任何情况下等概率:阈值也不应过低,以便保持有效。因此,演奏的不连续性在模型内被允许,当出现这种不连续时,该方法仅需要几秒钟即可收敛到新的位置px。

因此,根据表演者对数字乐谱10的演奏情况,本发明可以将表演者的节奏和读取线的变化考虑在内,对其表演者进行有效地引导。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1