论文阅读:《Real-Time Audio-to-Score Alignment of Music Performances Containing Errors and Arbitrary Repeats and Skips》

WARNING: This article may be obsolete
This post was published in 2022-04-06. Obviously, expired content is less useful to users if it has already pasted its expiration date.
This article is categorized as "Garbage" . It should NEVER be appeared in your search engine's results.


注意
这篇论文目前只理解了大概50%,还有大量的东西等待后续补充

Title

Nakamura, Tomohiko, Eita Nakamura, and Shigeki Sagayama. "Real-time audio-to-score alignment of music performances containing errors and arbitrary repeats and skips." IEEE/ACM Transactions on Audio, Speech, and Language Processing 24.2 (2015): 329-339.

快速找到这篇论文:搜索 Real-Time Audio-to-Score Alignment of Music Performances Containing Errors and Arbitrary Repeats and Skips.pdf 

机翻

目前中文阅读仍然比英文阅读更流畅,向deepL投降

主要翻译abstract和introduction

摘要--本文讨论了音乐表演的音频信号与相应乐谱的实时对齐(又称乐谱跟踪),它可以处理表演中的节奏变化、错误和任意的重复和/或跳过(重复/跳过)。这种类型的乐谱跟踪在练习和排练的自动伴奏中特别有用,因为那里经常出现错误和重复/跳过。由于计算复杂度大的问题,以前文献中提出的算法的简单扩展并不适用于这些情况下的实际长度的乐谱。为了解决这个问题,我们提出了两个带有错误和任意重复/跳过的单音表演的隐马尔可夫模型,并在假设重复/跳过之前和之后的分数位置的先验概率分布相互独立的情况下,推导出高效的分数处理算法。我们证实了这些算法在现代笔记本电脑上对实际长度的乐谱(大约10000个音符)的实时操作,以及它们在单簧管演奏数据中重复/跳过后平均0.7秒内对输入演奏的跟踪能力。还讨论了对多声道信号的进一步改进和扩展。

将音乐表演的音频信号与给定的乐谱进行实时对齐,也被称为乐谱跟随,自1984年首次出现以来,一直备受关注[1], [2]。乐谱跟随是实时音乐应用的一项基本技术,如自动伴奏、自动翻阅乐谱[3]和音乐视频的自动字幕。这项技术对于自动伴奏尤其重要,它可以参照表演和伴奏的乐谱,将伴奏与表演者在空中同步。自动伴奏可以让一个或几个表演者现场表演合奏音乐。许多关于跟谱的研究已经展开(回顾见[4],最新进展见[5]-[13])。

自动伴奏对于合奏音乐的练习、排练和个人欣赏特别有用。在这些情况下,表演者经常会犯错误。此外,表演者可能想从乐谱的中间部分开始演奏,并且通常会进行重复和/或跳过(重复/跳过)。由于错误和重复/跳过是很难预测的,所以要实现在这些情况下有效的自动伴奏系统,必须有一个能够处理任意错误和重复/跳过的乐谱跟踪算法。我们的目标是开发这样一种算法。

在一些研究中讨论了对跟分错误的处理[4],[5],[13],[14]。然而,文献中没有对音频跟分方法的有效性进行详细讨论和系统评估。在[5], [11], [15]中已经提出了可以跟踪重复/跳过的分数跟踪算法。这些算法的目标是预定的重复/跳动,从特定的乐谱位置开始,也不保证任意的重复/跳动的处理。事实上,正如我们将在本文中所展示的,这些算法的简单例子存在着巨大的计算成本问题,并且无法在实际长度的长分数上实时工作。除非这个问题得到解决,否则乐谱跟踪系统只能在长度很短的有限乐谱中工作,或者我们必须放弃跟踪任意的重复/跳过,就像目前大多数系统所做的那样,这两种情况都牺牲了乐谱跟踪的巨大潜在应用。因此,必须降低计算的复杂性来跟踪任意的重复/跳动。

作者提出了一种新型的隐马尔可夫模型(HMM),描述了带有错误和任意重复/跳过的乐器数字接口(MIDI)表演,并得出了HMM的计算效率算法[13]。它用一个假设来简化重复/跳过前后乐谱位置的概率分布,降低了计算的复杂性。虽然类似的模型也适用于音频的情况,但需要进一步讨论,因为音频输入(帧的时间离散,特征连续)与MIDI输入(时间连续,音高离散)在性质上有很大不同。

本文的主要贡献是提出了可以跟踪包含任意重复/跳过和错误的单声道音频表演的实时算法。尽管自[1]、[2]以来,单声道的乐谱跟踪已经得到了解决,但任意重复/跳音却从未被讨论过,尽管它们的处理有上述的实际重要性。因为多声部的追随仍然是一个活跃的研究领域,而且本方法在多声部表演中的扩展需要在第五节中讨论许多额外的问题,所以我们只限于单声部表演。

我们用HMM建立了一个包含错误和任意重复/跳过的音乐表演模型。我们首先讨论如何将各种类型的错误纳入模型(第二节)。接下来,我们对模型进行了扩展,以纳入任意的重复/跳动。为了解决跟踪任意重复/跳过的巨大计算成本问题,我们提出了两个具有精炼拓扑结构的HMMs。我们在这两个HMMs的基础上推导出高效的分数跟踪算法,并降低了计算复杂性(第三节)。我们证明了这两种算法都能在现代笔记本电脑上实时处理实践长度的乐谱,并且通过对练习期间单簧管演奏的评估,有效地跟踪有错误和任意重复/跳过的演奏(第四节)。我们讨论了所提出的算法在多声部输入方面可能的改进和扩展(第五节)。本研究的部分内容(第三节和第四节的一部分)在我们以前的会议论文[12]中被重新移植。

即使使用相同的乐谱,音乐表演的音频信号也有很大的不同,因此,乐谱跟踪通常是一个挑战。下面列出了四种典型的单声道音频信号的变化来源。

  1. 声学变化。音频表演的频谱特征取决于乐器,并不是静止的。此外,音频表演通常包含由周围环境和乐器引起的噪音(如共振、背景噪音、呼吸噪音和其他声学因素)。
  2. 时间上的波动。由于表演者的技能、乐器的物理限制和音乐表达方式的原因,表演的节奏和所演奏的音符的起始时间和持续时间与乐谱上所标明的有偏差。例如,在练习过程中,为了避免出错,表演往往以慢节奏呈现。
  3. 表演错误。表演者可能会因为缺乏表演技巧或对乐谱的误读而犯错。错误可分为音高错误(替换错误)、丢弃音符(删除错误)、增加额外的音符(插入错误)[1]。此外,表演者可能会在各音符之间出现停顿,例如,翻阅乐谱和检查下一个音符。
  4. 复述/跳过。表演者在练习中可能会特别重复和/或跳过一些乐句。此外,表演者一般会增加或删除一个重复的部分。

单声道音频演奏中的这四个来源的变化,使乐谱的跟随变得困难,并促使我们去研究它。特别是,为了保持与现场表演的同步性,必须使自动伴奏系统适应这种多样性。虽然这不在本文的讨论范围内,但音乐表演中还有其他的多样性来源,如口技[6]、[13]、[16]、[17]和即兴演奏[18]、[19]。
最近的乐谱跟踪系统通常使用概率模型,如HMM来捕捉音频表现的多样性,其有效性已被充分证实[4](以及介绍中的参考文献)。它们对于捕捉音频特征的连续变化和处理难以预测的错误特别有优势。因此,我们在本研究中采用了统计方法。

(翻译到section B为止)

零碎知识


通过阅读本文学习/巩固了以下知识:

HMM自旋、跳跃、重复 等结构 🔗 [2022-03-20 - Truxton's blog] https://truxton2blog.com/2022-03-20/#有关HMM自旋等结构的思考

Forward algorithm的暴力搜索匹配算法 🔗 [2022-03-20 - Truxton's blog] https://truxton2blog.com/2022-03-20/#还可以解决的问题:搜索问题


这篇论文主要研究问题:传统HMM模型虽然可以识别连续音乐,但只能输出一系列识别音符。如果演奏者反复演奏、反复练习、任意跳过,就不能在同一张乐谱上体现这些“随机跳跃”的规律。


(* 以下2张图都来自另一篇论文《REALTIME AUDIO TO SCORE ALIGNMENT FOR POLYPHONIC MUSIC INSTRUMENTS USING SPARSE NON-NEGATIVE CONSTRAINTS AND HIERARCHICAL HMMS》)

两层结构:

SHMM-Note模型:


topHMM, buttomHMM

(见PDF)


半音/小二度

half-tone / semitone

半音是音乐中的一个术语,即一个小二度,是最不协和的一个音。 十二平均律乃按照比例将音高频率平均分成12份,每份是一个半音,例如C♯比C高半音。这些半音全部相等。但在其他音乐体系中,半音未必全部相等。

https://zh.wikipedia.org/zh-hans/半音

为什么小二度非常不和谐?

由於兩個呈小二度的正弦波的疊加波型,非常凹凸不平,因此出來的聲效非常不協調,甚至被指是簡單音程中最不協調的一個。(Paul, Oscar (1885). A manual of harmony for use in music-schools and seminaries and for self-instruction)

https://zh.wikipedia.org/zh/%E5%B0%8F%E4%BA%8C%E5%BA%A6

CQT变换/constant-Q变换/恒Q变换

🔗 [Constant-Q transform - Wikipedia] https://en.wikipedia.org/wiki/Constant-Q_transform

🔗 [恒 Q 变换 (Constant-Q transform) | A Quest After Perspectives] https://iphysresearch.github.io/blog/post/signal_processing/cqt/


极限和微积分问题 Geometric Series, Geometric Distributions (等比级数 / 几何级数)

注意到论文里的公式(5):

对应:

🔗 [probability - Why does $\sum_{k=1}^{\infty} kp (1-p)^{(k-1)} p$ converge to 1 for all probabilities p? - Mathematics Stack Exchange] https://math.stackexchange.com/questions/3681183/why-does-sum-k-1-infty-kp-1-pk-1-p-converge-to-1-for-all-probabil

这类问题的关键词是「Geometric Series, Geometric Distributions」

论文公式的推导过程:

更多有关题目和资料见:🔗 [2022-08-10 - Truxton's blog] https://truxton2blog.com/2022-08-10/


暂时先读到第[mathjax]\rm{III}[/mathjax]章,然后开始看其他论文


HMM with Arbitrary Repeats and skips

根据这篇paper的references,它大概是使用了类似这样的HMM模型:

Modeling Form for On-line Following of Musical Performances

目前把它暂时认定为这样的模型:(不确定,如果后续发现错误就改回来)「[mathjax](A,B,\pi)[/mathjax]和原版HMM一样,只是transition probability table计算量较大(表结构仍然相同)」


符号「:=」

类似这样的:

[mathjax-d]\tilde{a}_{j, i}:=\tilde{a}_{(j, 0),(i, 0)}, \tilde{b}_{i}\left(\mathbf{y}_{t}\right):=\tilde{b}_{(i, 0)}\left(\mathbf{y}_{t}\right), \tilde{\pi}_{i}:=\tilde{\pi}_{(i, 0)}[/mathjax-d]

🔗 [notation - What does := mean? - Mathematics Stack Exchange] https://math.stackexchange.com/questions/25214/what-does-mean


剪枝/pruning

见李航统计学习方法5.4(p78)


band matrix / 带状矩阵

🔗 [矩阵计算(二):带状矩阵结构、效率及存储 - 知乎] https://zhuanlan.zhihu.com/p/400460201


笔记

不同PDF阅读器的显示效果不同,如果渲染PDF出现偏差,请尝试其他PDF阅读器

遗留问题

读完论文后遗留的最大问题:

在上面的阅读草稿笔记PDF中的P27左右:

为了更好阐述这个疑惑,首先可以复习:🔗 [2022-03-20 - Truxton's blog] https://truxton2blog.com/2022-03-20/#更新跳转几率

现在的问题在什么地方?在于这个Forward algorithm:

它虽然从[mathjax]i-1[/mathjax]计算到了[mathjax]i[/mathjax],(backward algorithm同理),但它无法在一轮EM中指定更新的[mathjax]a_{i,j}[/mathjax]到底如何分配:是通过skip/break间接跳转过来的,还是通过[mathjax]nbh(i)[/mathjax]直接跳转过来的?用常规EM迭代方式只能满足一个普通[mathjax]a_{i,j}[/mathjax]矩阵的需求,但无法满足本论文阐述的方法!



 Last Modified in 2024-02-25 

Leave a Comment Anonymous comment is allowed / 允许匿名评论