📄 Pitch Spelling Jazz Lead Sheets, Solo Transcriptions, Classical Piano and Monophonic Scores
7.2/10 | 创新 1.5/2 | 严谨 1.3/1.5 | 实验 1.1/1.5 | 清晰 1/1 | 影响 0.5/1.5 | 开源 0/1.5 | 复现 0.5/0.5 | 工程 1.3/1.5
✅ 7.2/10 | 前50% | arxiv
👥 作者与机构
作者:Augustin Bouquillard(法国综合理工学院),Florent Jacquemard(法国国家信息与自动化研究所,巴黎) 机构:École polytechnique, Palaiseau, France; INRIA, Paris, France
💡 毒舌点评
这篇论文的工作很扎实,像是在为音乐信息检索(MIR)社区做一件“脏活累活”但又必不可少的基础工作。核心想法——通过最小化印刷变音记号来推导音高拼写——并不新鲜,但作者们把它做到了一个新的细致程度,特别是为了应对爵士乐这种“调性混沌”的场景,硬生生把Weber距离从几十种音阶扩展到了165种,这工程量和音乐理论的理解都值得尊敬。最大的槽点可能是标题和摘要里“Pitch Spelling”和“Key Estimation”并列,容易让人误以为是两个独立任务,实际上后者在算法中更像是前者的副产品或约束条件。另一个问题是,论文在爵士数据集上和PKSpell等基线比较时,输入信息(是否有时长)和训练数据不同,使得比较的公平性打折扣,虽然作者有解释,但终归不够有力。总的来说,这是一篇领域内实用性强、方法有改进的论文,离“惊艳”还差一步。
📌 核心摘要
本文提出一种名为PSE的两阶段优化算法,用于解决音高拼写问题,即从MIDI音高序列中推导出符合记谱规范的音符名称、全局调号和每小节的局部调式。该算法的核心创新在于:1)将音高拼写、全局调号估计和局部调式估计三个紧密相关的音乐理论问题进行联合优化;2)通过扩展Weber距离,使其能够量化并处理包括多种爵士音阶在内的165种不同音阶之间的差异,从而增强了对爵士乐等复杂音乐语境的适应性。算法分为“模态阶段”和“音调阶段”。模态阶段为每个小节确定可能的最优局部调式;音调阶段则利用这些局部调式作为约束,最终确定全局调号和所有音符的拼写。在7个涵盖爵士、民谣和古典风格的数据集上的评估表明,PSE的性能显著优于MuseScore的内置功能,并在多数古典音乐数据集上达到或超过了PKspell等数据驱动方法的水平。
🔗 开源详情
- 代码:
- 论文中给出了两个用于获取评估结果的GitHub仓库链接:
- 爵士数据集评估输出:https://github.com/florento/PSjazzEval
- 古典数据集评估输出:https://github.com/florento/PSEval
- 论文中描述了算法的C++实现(17k行代码)及Python绑定(基于pybind11),但未明确提供核心算法源代码的独立开源仓库链接。
- 论文中给出了两个用于获取评估结果的GitHub仓库链接:
- 模型权重:论文中未提及。
- 数据集:论文评估使用了以下7个数据集,部分数据集的获取方式如下:
- Real Book:200首爵士标准曲总谱(MusicXML格式)。论文未提供直接下载链接。
- Charlie Parker Omnibook:50首中音萨克斯独奏转录(MusicXML格式)。论文未提供直接下载链接。
- FiloBass:48首验证过的爵士贝斯线转录(MusicXML格式,公开可用)。论文引用了其来源论文:Riley, X., Dixon, S.: Filobass: A dataset and corpus based study of jazz basslines. In: 24th Int. Society for Music Information Retrieval Conference (ISMIR) (2023)。
- The Session:从在线社区数据库提取的62首传统曲调子集(原始ABC格式转换为MusicXML)。在线数据库地址:https://thesession.org。
- ASAP:从222首钢琴曲的ASAP数据集中选取的5个子语料库(MusicXML格式)。论文引用了其来源论文:Foscarin, F., Mcleod, A., Rigaux, P., Jacquemard, F., Sakai, M.: ASAP: A dataset of aligned scores and performances for piano transcription. In: ISMIR (2020)。
- DCML Schumann Kinderszenen:由EPFL数字与认知音乐学实验室提供的13首短曲总谱(MusicXML格式)。论文引用了其来源:Hentschel, J., et al.: An annotated corpus of tonal piano music from the long 19th century. (2024)。
- Lamarque-Goudard:来自节奏教科书《D’un Rythme à l’Autre》的250个音乐片段(MusicXML格式)。论文未提供直接下载链接。
- Demo:论文中未提及。
- 复现材料:论文在第5.1节提到了评估方法,使用了Music21工具解析MusicXML文件,并生成带有颜色编码拼写差异、原始拼写、估计的局部调性和全局调性标记的输出XML分数。这些输出文件可在上述GitHub仓库中找到。论文未单独提供检查点或详细的训练配置文件。
- 论文中引用的开源项目:
- Music21:用于解析和比较MusicXML乐谱的Python工具包。论文中提供了项目主页链接:https://github.com/cuthbertLab/music21。
- MuseScore:用于基准比较的乐谱编辑软件。论文中提供了项目主页链接:https://musescore.org。
- PKSpell:用于基准比较的数据驱动音高拼写和调号估计模型。论文引用了其来源论文:Foscarin, F., et al.: PKSpell: Data-driven pitch spelling and key signature estimation. In: ISMIR (2021)。
- Krumhansl-Schmuckler (K-S) key-finding model:用于基准比较的调性查找算法。论文中未提供具体实现代码链接,仅引用了理论文献。
- FiloBass 与 FiloSax 数据集:在基准比较中提及。论文中给出了FiloBass的来源论文,FiloSax的来源论文为:Foster, D., Dixon, S.: A dataset of annotated jazz saxophone recordings. In: ISMIR (2021)。
- The Session 在线数据库:论文中提供了网站链接:https://thesession.org。
- ASAP 数据集:论文中给出了来源论文链接(见数据集部分)。
🏗️ 方法概述和架构
本文提出的方法(PSE)旨在解决给定MIDI音高序列和小节边界信息时,自动推导音符拼写(Pitch Spelling)、全局调号(Key Signature)和每小节局部调式(Local Scale)的问题。该问题被建模为一个两阶段的联合优化过程,核心思想是遵循西方乐谱记谱惯例,通过最小化印刷变音记号的数量来寻找最优解。
- 问题定义与输入输出
- 输入:一个按起始时间排序的音符序列,每个音符包含MIDI音高值(
inpit)、是否与下一个音符属于同一小节(inbar)的布尔标志,以及是否与下一个音符同时发声(insim)的布尔标志。不假设音符的时值信息可用。 - 输出:为每个音符确定一个唯一的拼写(音符名A-G + 升降记号 + 八度),估计一个全局调号(整数,-7到7),并为每一小节估计一个局部调式。
- 核心组件与技术
- 调式与音阶候选集:算法考虑了11种调式:9种七声调式(爱奥尼亚、多利亚等)、旋律小调、和声小调、大调布鲁斯、小调布鲁斯。一个“音阶”被定义为一个调号与一个调式的配对。在爵士乐评估中使用165种候选音阶(所有调号与所有调式的组合),在古典乐评估中使用30种(仅大小调调式)。
- 扩展的Weber距离:为量化不同音阶间的相似性,论文扩展了经典的Weber距离。原始Weber距离定义在大小调音阶的二维网格上。本文将其扩展至一个三维结构:七个自然调式按“关系大小调”配对形成六个二维网格层(如爱奥尼亚-爱奥利亚层、多利亚-弗里几亚层),这些层在三维空间中对齐,使得包含相同音符集的音阶(如C大调、D多利亚、G混合利底亚)位于同一“深度”线上。额外加入旋律小调、和声小调层(与爱奥利亚层同位)以及布鲁斯音阶层(插入在利底亚-多利亚层与爱奥尼亚-爱奥利亚层之间)。三维结构中相邻网格间的移动代价为1,该距离用于在模态阶段选择平滑的调式转换路径。
- 基于最短路径的拼写状态机:这是算法的核心计算引擎,用于评估在给定全局音阶下,一小节内所有音符的最优拼写。
- 状态(State):一个映射,将音符名(A-G)映射到其当前生效的升降记号(如
^,\等)。在启用八度例外(optoct)选项时,状态还会记录每个音符名在不同八度的记号。 - 初始状态(
σ0):由全局音阶的调号(optunld选项)或调号加上该音阶的特征变音记号(optlead选项)定义。 - 转移与代价:处理一个音符时,根据其音高类,有2-3种可能的拼写选择(见Figure 2)。每种选择对应一个转移,可能改变状态。转移代价(印刷代价)有两种选项:(optac) 单变音记号代价1,双变音记号代价2;(optad) 根据变音记号在五度圈上的位置计算变化距离。
- 最短路径搜索:使用Viterbi算法在小节内搜索从初始状态开始、使总印刷代价最小的拼写路径。由于状态数可能随音符数指数增长,算法通过在线构建可达状态进行剪枝,保持实践中的高效性。
- 状态(State):一个映射,将音符名(A-G)映射到其当前生效的升降记号(如
- 约束与选项:
- 八度例外(
optoct):默认情况下,一个变音记号仅对当前八度有效。此选项控制是否启用此规则,启用会增加状态维度。 - 和弦内音名一致性(
ressim):强制同一音高类的同时发声音符使用相同音符名,以避免组合爆炸。 - 音名不一致性惩罚(
optinc):可选惩罚在同一小节内,相同音高类但使用不同音符名的情况。
- 八度例外(
- 两阶段算法流程
- 第一阶段:模态阶段(Modal Step)
- 构建代价表 \(T\):对于每个候选全局音阶 \(S_i\)(共 \(n\) 个)和每个小节 \(j\),使用带
optlead选项但不带optoct选项的最短路径算法,计算在该全局音阶下,小节 \(j\) 的最小印刷代价 \(T[i, j]\)。 - 构建网格 \(G\):对于每个可能的全局起始音阶 \(S_{i0}\),寻找一个长度为 \(m\)(小节数)的局部音阶序列 \(\langle S_{i1}, ..., S_{im}\rangle\),以最小化一个组合目标函数:\(\sum_{j=1}^{m} rk_T(i_j, j) + \sum_{j=1}^{m} rk_{dist}(S_{i0}, S_{ij}) + \sum_{j=1}^{m-1} rk_{dist}(S_{ij}, S_{i_{j+1}})\)。其中 \(rk_T\) 是该音阶在 \(T\) 表该小节代价的排名,\(rk_{dist}\) 是该局部音阶与全局音阶或前一小节局部音阶之间距离的排名。这个序列通过最短路径算法求得。最终 \(G[i0, j]\) 存储在假设全局音阶为 \(S_{i0}\) 时,小节 \(j\) 的估计局部音阶。
- 构建代价表 \(T\):对于每个候选全局音阶 \(S_i\)(共 \(n\) 个)和每个小节 \(j\),使用带
- 第二阶段:音调阶段(Tonal Step)
- 构建新代价表 \(P\):与 \(T\) 类似,但此次启用
optunld和optoct选项。关键变化在于转移代价变为一个三元组:i) 基础代价 \(a_{i,j}\) 加上不匹配局部音阶 \(G[i, j]\) 的变音记号数 \(d_{i,j}\);ii) \(d_{i,j}\);iii) 原有的平局打破规则。这使得拼写选择不仅考虑最小化印刷记号,还倾向于与模态阶段估计的局部音阶保持一致。 - 输出:在 \(P\) 表中,累积代价最小的那一行(即最优全局音阶 \(S_i\))决定了最终输出的全局调号(
outks)。该行对应的最小代价路径上的拼写即为所有音符的最终拼写(outspell)。
- 构建新代价表 \(P\):与 \(T\) 类似,但此次启用
- 后处理与变体
- 音符经过音重写(Rewriting Passing Notes):在确定最终拼写后,应用基于经典声部进行原则的规则,对旋律中的“经过音”进行局部修正,以提高记谱的音乐性。
- 确定性变体(Deterministic Variant):一种更高效的贪心变体,强制将每个音符的拼写限定在其当前调式的“半音阶和声调式”内,从而消除选择分支,将复杂度降至线性。但可能会错过一些正确的拼写选择。
- 和弦符号约束:对于爵士乐数据集,可选利用已知的和弦符号信息,在搜索中强制匹配和弦内音的音符名。
💡 核心创新点
- 联合优化框架:将音高拼写、全局调号估计和局部调式/调性估计三个传统上分开或松散耦合的问题,在一个统一的两阶段最短路径优化框架内进行联合求解。
- 扩展Weber距离至爵士语境:将原本适用于大小调体系的Weber距离系统性地扩展到11种调式、165种不同音阶,构建了一个三维的音阶关系模型,为在复杂调式音乐中量化音阶相似性提供了理论基础和计算工具。
- 基于记谱惯例的无监督/弱监督方法:算法主要基于西方乐谱的“变音记号最少化”惯例和音乐理论知识(调式、声部进行),不依赖大规模标注数据训练,在爵士和古典音乐上均表现出强大的泛化能力。与PKspell等数据驱动方法相比,具有更好的可解释性和对不同风格数据的适应性(通过选项调整)。
📊 实验结果
论文在7个数据集上对算法(PSE)进行了全面评估,并与MuseScore、PKspell、K-S模型等基线进行比较。评估指标为音高拼写准确率(%)。
表1:爵士与民间音乐数据集音高拼写准确率
| 数据集 | MuseScore | PKspell | PSE (30尺度, 无和弦, 无重写) | PSE (30尺度, 无和弦, 重写) | PSE (165尺度, 无和弦, 无重写) | PSE (165尺度, 无和弦, 重写) | PSE (165尺度, 和弦强制, 无重写) | PSE (165尺度, 和弦强制, 重写) | PSE (165尺度, 无和弦, 重写, 无B\C#, E#, Fb, [x]) | PSE (165尺度, 和弦强制, 重写, 无B\C#, E#, Fb, [x]) |
|---|---|---|---|---|---|---|---|---|---|---|
| The Session | 93.56 | 99.99 | 99.86 | 99.86 | 99.88 | 99.88 | ||||
| Real Book | 64.38 | 96.71 | 97.35 | 97.35 | 97.99 | 98.01 | 96.24 | 96.77 | 97.89 | 97.95 |
| Omnibook | 85.66 | 96.01 | 94.95 | 94.88 | 96.86 | 96.78 | 94.97 | 94.88 | 96.92 | 96.85 |
| Omnibook (无B\C#, E#, Fb, [x]) | - | - | 97.23 | 97.06 | 97.91 | 97.70 | 96.78 | 96.63 | 98.04 | 97.82 |
| FiloBass | 75.66 | 94.73 | 94.68 | 94.53 | 94.84 | 94.68 | 94.87 | 94.71 | 95.23 | 95.06 |
- The Session数据集不含和弦符号,故“和弦强制”模式不适用。
表2:古典音乐数据集音高拼写与调号估计准确率
| 数据集 (音符数) | MuseScore (PS) | PKSpell (PS) | PSE (PS, 30尺度, 确定性变体=否) | PSE (PS, 30尺度, 确定性变体=是) | K-S (KE) | PKSpell (KE) | PSE (KE, 30尺度, 确定性变体=否) | PSE (KE, 30尺度, 确定性变体=是) |
|---|---|---|---|---|---|---|---|---|
| Bach WTC (ASAP) (55,530) | 94.13 | 96.50 | 98.27 | 99.50 | 87.27 | 91.52 | 98.29 | 99.09 |
| Mozart (13,830) | 90.40 | 99.20 | 95.97 | 97.65 | 60.00 | 80.00 | 80.00 | 80.00 |
| Beethoven (87,292) | 91.91 | 97.81 | 95.65 | 97.64 | 66.15 | 90.48 | 95.71 | 92.32 |
| Chopin (25,103) | 91.19 | 95.27 | 96.03 | 96.71 | 84.62 | 100 | 96.15 | 96.15 |
| Schumann (DCML) (4,810) | 86.90 | 96.80 | 96.82 | 97.48 | 61.54 | 84.60 | 79.16 | 79.16 |
| Rachmaninov (7,022) | 84.30 | 99.19 | 97.49 | 98.76 | 100 | 100 | 100 | 100 |
| Lamarque-Goudard (27,687) | 96.49 | 97.85 | 98.23 | 98.46 | 50.60 | 66.80 | 74.30 | 76.90 |
关键结果分析:
- 爵���/民谣:PSE在Real Book上表现优异,使用165尺度后准确率达98.01%。在Omnibook上,应用编辑约束(排除特定音符和双升降记号)后,PSE达到最高准确率98.04%,超越了PKSpell(96.01%)。FiloBass结果相对较低,作者归因于该数据集内部记谱风格的不一致性。
- 古典:PSE(非确定性变体)在多数古典数据集上的音高拼写(PS)准确率优于或接近PKSpell。在Bach WTC和Beethoven上,PSE显著优于K-S和MuseScore。对于调号估计(KE),PSE也通常优于K-S,在Rachmaninov上达到100%。确定性变体通常能进一步提高性能。
- 对比与讨论:MuseScore内置算法在所有数据集上表现最差。PSE与PKSpell的比较需谨慎,因为输入(PSE不用时值)和训练数据(PKSpell在古典数据上训练)不同。PSE的算法性方法提供了可控性和可解释性。
⚖️ 评分理由
- 创新性 (1.5/2):提出了将音高拼写与调性估计联合优化的框架,并将Weber距离系统扩展到爵士乐语境,这在音乐信息检索领域是一个明确且有价值的贡献。但核心的最小化变音记号思路是已知的,创新更多体现在系统整合和扩展上。
- 技术严谨性 (1.3/1.5):算法设计有清晰的音乐理论和记谱规范作为依据。从问题形式化到两阶段优化,推导和解释都比较严谨。模态阶段和音调阶段的设计逻辑连贯。对各种选项(optoct, ressim等)的讨论和消融实验显示了技术上的细致考虑。
- 实验充分性 (1.1/1.5):实验覆盖了爵士、民谣、古典等多种风格,使用了7个数据集,比较了多个基线,并进行了细致的选项消融实验(如尺度数、重写规则、和弦约束、编辑约束)。表格数据完整。但不足之处在于:与PKSpell的比较因输入和训练集不同而不够公平;未提供在标准Musedata基准上的直接对比结果;对FiloBass表现不佳的原因分析虽合理,但未给出更深入的实验验证。
- 清晰度 (1.3/1.5):论文结构清晰,从问题定义、相关工作、方法、到实验和讨论,逻辑流畅。图表(如Weber距离网格、乐谱示例)有效地辅助了方法说明。主要概念(如音阶、状态机)解释得当。但部分算法细节(如模态阶段目标函数中排名的组合)需要仔细阅读才能完全理解。
- 影响力 (0.5/1.0):工作直接针对MIR中的基础问题,对乐谱制作、音乐转录和分析工具有实际价值。扩展的Weber距离可能对计算音乐学研究有参考意义。但其影响力主要局限于音乐信息检索子领域,对更广泛的语音/音频社区影响有限。
- 开源 (1.2/1.5):论文提供了两个用于获取评估结果的GitHub仓库链接,包含了评估脚本和输出结果。但核心的算法C++实现和Python绑定未提供独立的开源仓库链接,这降低了其可复现性和可直接应用性。
- 可复现性 (1.2/1.5):由于核心代码未开源,完全复现论文结果存在障碍。但论文详细描述了算法、选项和评估设置,并提供了评估代码和输出示例,为在相似数据集上进行部分验证和复现提供了可能。
- 工程/实践价值 (1.3/1.5):算法用C++实现,注重效率,并提供了Python接口,便于集成。针对不同场景(爵士 vs 古典)提供了可配置的选项,具有较好的实用性。作为一个后端任务算法,易于嵌入到更大的音乐转录或制谱系统中。
🚨 局限与问题
- 对小节边界的强依赖:算法要求输入必须提供准确的小节边界信息(
inbar)。这限制了其应用场景,尤其在处理非量化或节奏复杂的未分段MIDI数据时。论文虽指出这在转录流程的后期(量化后)是合理的,但仍是一个显著的限制。 - 忽略音符时长信息:算法完全不使用音符时长,这是一个设计权衡。虽然提高了通用性,但可能丢失了有助于推断调性的重要线索(例如,长音符更可能是和弦内音)。论文承认这是未来工作方向,但也指出在爵士即兴中,时长与音符重要性的关系可能不同于古典音乐。
- 记谱风格不一致的挑战:在FiloBass等爵士数据集上表现相对较差,暴露了该算法对“正确”拼写的定义依赖于一个稳定、一致的记谱惯例。当同一乐曲或不同来源的转录使用不同但均可接受的拼写逻辑时,基于最小变音记号或单一理论模型的算法就难以取得高分。
- 模态阶段估计的局部调式可能不准确:局部调式在算法中主要作为拼写优化的中间约束,其本身是通过一个涉及多个排名项的复合目标函数估计的。这个目标函数是启发式的,其有效性不一定在所有音乐风格中得到保证。例如,在高度半音化或调性模糊的爵士乐段中,估计出的“局部调式”可能没有明确的音乐意义。
- 与PKSpell比较的公平性问题:由于PKSpell是基于时长和音高类数据训练的模型,而PSE是不使用时长的算法,两者输入信息不同,直接比较准确率并不完全公平。论文中也提到PKSpell在Mozart上表现显著优于PSE(>1.5%差异),这提示在某些特定风格下,数据驱动方法可能仍有优势。
- 调号估计的相对性:论文指出,调号估计在实验中更多是拼写过程的副产品。在古典数据集上,PSE的调号估计准确率有时低于PKSpell(如Schumann、Chopin),且确定性变体在调号估计上可能带来性能下降(如Beethoven)。这表明该算法的核心优势在于拼写,而非调号探测本身。
- 编辑约束的非普适性:为了在Omnibook上达到最佳结果,需要引入“排除B#, C#, E#, Fb和双升降记号”的编辑约束。这反映了算法无法自动适应特定的、非标准的记谱规范,需要人工设定先验约束。