📄 PianoCoRe: Combined and Refined Piano MIDI Dataset
#数据集 #数据清洗 #音乐信息检索 #钢琴表演建模
✅ 7.5/10 | 前25% | #数据集 | #数据清洗 | #音乐信息检索 #钢琴表演建模 | arxiv
学术质量 6.5/7 | 选题价值 1.5/2 | 复现加成 1.0 | 置信度 高
👥 作者与机构
- 第一作者:Ilya Borovik(Skolkovo Institute of Science and Technology, Moscow, Russia)
- 通讯作者:未说明(论文中未明确指定通讯作者)
- 作者列表:Ilya Borovik(Skolkovo Institute of Science and Technology, Moscow, Russia)
💡 毒舌点评
亮点:该工作最大的价值在于其卓越的系统工程和开源精神——将零散、杂乱的现有钢琴MIDI语料库整合、清洗、对齐成一个开箱即用、分层合理的数据集,并配套发布了高质量的质量分类器和对齐优化工具,极大地降低了后续研究者的门槛。短板:核心创新更偏向“数据料理”而非“算法突破”,例如质量分类器和对齐精炼的启发式规则虽然有效,但方法本身缺乏更强的理论深度或新颖性,在某种程度上更像是一篇详尽的“技术手册”或“最佳实践指南”。
📌 核心摘要
- 要解决什么问题:现有的钢琴符号音乐数据集存在覆盖范围窄、缺乏多样性、缺少音符级对齐、命名格式不一致等问题,阻碍了大规模、高质量的钢琴表演分析与建模研究。
- 方法核心是什么:论文构建了PianoCoRe数据集,其核心方法包括:a) 一套多阶段、自动化的数据匹配与整合流程,将多个现有数据集(ASAP, ATEPP, GiantMIDI-Piano, PERiScoPe, Aria-MIDI)合并;b) 一个训练的MIDI质量分类器,用于识别损坏和类乐谱的转录;c) 一个名为RAScoP的对齐精炼流水线,用于清理时间对齐错误并插值缺失音符。
- 与已有方法相比新在哪里:新在首次将多个主流开源钢琴数据集整合并去重,发布为具有清晰层级(C/B/A/A*)的数据集,覆盖不同应用场景需求,这是之前不存在的。同时,配套的质量分类和对齐精炼工具链是此前缺乏的、易用的开源解决方案。
- 主要实验结果:
MIDI质量分类器在平衡测试集上的宏平均F1分数达到89.1%。
RAScoP流水线在精炼后,平均对齐召回率仅下降1.5%(从0.935降至0.920),但显著降低了时间噪声和速度异常值(如图7所示)。
下游任务验证:在钢琴性能渲染任务中,使用完整且精炼后的PianoCoRe-A数据集训练的模型,相较于使用更小或未精炼数据集训练的模型,在面对未见过的作品和数据源时表现出更强的鲁棒性(验证损失更低、渲染性能相关性更高、续写误差更小)。
关键实验结果表格: 表4:MIDI质量分类器评估(F1分数)
模型 S HQ LQ C 平均 base 1.000 0.839 0.777 0.946 0.891 no synth 1.000 0.759 0.778 0.946 0.871 mean 1.000 0.828 0.752 0.881 0.865 mean, no TL 0.993 0.802 0.713 0.851 0.840 no MLM 0.995 0.773 0.667 0.842 0.819 表8:性能续写任务结果(平均绝对误差,越低越好)
数据集 规模 ASAP Vel ASAP TS ASAP TD ATEPP Vel ATEPP TS ATEPP TD PERiScoPe Vel PERiScoPe TS PERiScoPe TD Aria Vel Aria TS Aria TD ASAP 1k 9.885 0.023 0.187 9.928 0.022 0.206 9.893 0.023 0.230 9.957 0.027 0.275 + ATEPP 6k 9.157 0.017 0.168 8.230 0.015 0.191 8.782 0.016 0.216 8.721 0.019 0.252 + PERiScoPe 25k 8.851 0.016 0.154 7.888 0.013 0.189 8.117 0.015 0.192 8.133 0.017 0.230 PianoCoRe-A 124k 8.613 0.016 0.155 7.967 0.014 0.194 8.094 0.015 0.194 7.872 0.017 0.205 w/o RAScoP 124k 8.734 0.017 0.159 8.059 0.015 0.193 8.199 0.016 0.196 8.055 0.018 0.211
- 实际意义是什么:为音乐AI研究社区提供了一个可随时使用、质量更高、组织规范的大型钢琴MIDI数据集基础,有望加速钢琴表演建模、音乐生成、分析等领域的研究进展,并促进研究的可复现性。
- 主要局限性:a) 数据分布仍偏向西方古典音乐和知名作曲家,存在偏差;b) 依赖的开源乐谱(MusicXML)本身可能包含错误;c) 对齐精炼中的插值处理可能引入“呆板”的表演片段,且未处理延音踏板效果;d) 部分工作(如质量标签)的校准以召回为导向,可能包含误判。
🔗 开源详情
代码:
- 主代码仓库:https://github.com/ilya16/PianoCoRe (论文中明确提及,包含文档和使用示例)
- RAScoP流水线和MIDI质量分类器代码集成于:https://github.com/ilya16/SyMuPe
模型权重:论文中未提及提供预训练模型权重的具体下载链接。MIDI质量分类器代码已包含在上述代码仓库中,但未提供独立的模型权重文件链接。
数据集:
- 主数据集:PianoCoRe
- Zenodo归档:https://doi.org/10.5281/zenodo.19186016
- Hugging Face镜像:https://huggingface.co/datasets/SyMuPe/PianoCoRe
- 许可协议:CC-BY-NC-SA 4.0
- 数据集包含四个层级子集:PianoCoRe-C, PianoCoRe-B, PianoCoRe-A, PianoCoRe-A*。
- 主数据集:PianoCoRe
Demo:论文中未提及在线演示链接。
复现材料:论文中未提及训练配置文件、检查点或详细复现步骤的具体下载链接。文中提及训练细节在附录中,但未给出链接。
论文中引用的开源项目:
- (n)ASAP Dataset: https://github.com/CPJKU/asap-dataset
- ATEPP Dataset: https://github.com/tangjjbetsy/ATEPP
- GiantMIDI-Piano Dataset: https://github.com/bytedance/GiantMIDI-Piano
- PERiScoPe Dataset: https://huggingface.co/datasets/SyMuPe/PERiScoPe
- Aria-MIDI Dataset: https://huggingface.co/datasets/loubb/aria-midi
- MAESTRO Dataset: 论文引用但未在本文提供直接链接(需查询原论文Hawthorne et al., 2019)。
- partitura library: 用于乐谱处理(Cancino-Chacón et al., 2022)。
- Parangonar (DualDTWNoteMatcher): 用于初始音符对齐(Peter, 2023)。
- symusic library: 用于所有MIDI处理步骤(Liao et al., 2024)。
- Numba: 用于DTW加速(Lam et al., 2015)。
- MuseScore: 乐谱软件(Watson, 2018),用于处理原ASAP乐谱。
- Transkun V2: 用于PERiScoPe数据集的音频转录(Yan and Duan, 2024)。
- PDMX Dataset: 公共领域MusicXML乐谱来源(Long et al., 2025)。
- KunstderFuge: MIDI乐谱来源网站:https://kunstderfuge.com
- ClassicalMIDI: MIDI乐谱来源网站:https://www.classicalmidi.co.uk
- IMSLP: 用于元数据验证:https://imslp.org
- PianoFlow: 用于性能渲染评估的模型(Borovik et al., 2025)。
补充链接(自动提取):
- 代码仓库:https://github.com/ilya16/PianoCoRe/raw/main/figures/fig7.png
- 代码仓库:https://github.com/ilya16/PianoCoRe/raw/main/figures/fig8.png
🏗️ 方法概述和架构
本文的核心方法是一个多阶段的数据集构建与精炼流水线,而非单一的神经网络模型。其目标是整合多个异构的钢琴MIDI语料库,产出一个统一、干净、且带有高质量注释(如对齐)的数据集。整体流程如下图所示:
图1展示了构建PianoCoRe数据集的三阶段数据匹配与标注流程。第一阶段合并ASAP和ATEPP形成核心结构;第二阶段将核心数据集与大量乐谱库(PDMX, KunstderFuge, ClassicalMIDI, MuseScore)进行匹配,丰富乐谱覆盖;第三阶段整合剩余的表演数据集(GiantMIDI-Piano, PERiScoPe, Aria-MIDI),并通过跨数据集匹配进一步扩展作品覆盖。整个流程以自动化匹配为主,辅以人工验证以确保一致性。
主要组件/模块详解:
数据匹配与整合模块:
- 功能:将来自不同来源的乐谱和表演MIDI文件正确配对。
- 内部结构/实现:
- 候选对筛选:基于作曲家名字、音符数量比(
Rn, 0.75≤Rn≤1.33)以及目录号/调性关键词进行快速过滤。 - 音符级对齐验证:对筛选后的候选对,使用优化的DualDTWNoteMatcher(来自Parangonar库)计算动态时间规整(DTW)对齐。匹配成功的标准是对齐召回率
Ra > 0.7。
- 候选对筛选:基于作曲家名字、音符数量比(
- 输入/输出:输入是多个来源的原始MIDI/乐谱文件及元数据;输出是初步匹配的乐谱-表演对及原始对齐信息(存储为
.npz文件)。
MIDI质量评估模块:
- 功能:自动分类表演MIDI的质量,识别损坏的转录和呆板的类乐谱演奏。
- 内部结构/实现:
- 训练数据构建:利用初步对齐结果,基于调整后的对齐比率
Ra'定义四个软标签类别(Score, HQ, LQ, C),并平衡训练集(真实样本+合成增强样本)。 - 分类器架构:一个12层Transformer编码器(80M参数),输入为5个音符特征(音高、时移、力度、时值、绝对时间位置)。在大规模MIDI数据上进行掩码语言模型预训练,然后在分类任务上微调。使用
[CLS]token和分类头进行分类。
- 训练数据构建:利用初步对齐结果,基于调整后的对齐比率
- 输入/输出:输入是单段MIDI表演;输出是该段属于S/HQ/LQ/C类的概率。
RAScoP对齐精炼模块:
- 功能:清理原始对齐中的错误,插值缺失音符,生成干净的、音符级对齐的平行语料。
- 内部结构/实现:这是一个四步流水线(如图6所示):
- H(空洞处理):使用滑动窗口检测并移除大段稀疏或错误的对齐区域。
- O(起始点清洗与时间修正):检查和修正和弦内的音符起始时间偏差,并基于局部速度估计调整整体时间偏移,移除不合理的速度跳跃。
- I(音符插值):基于相邻已演奏音符的线性插值,为未演奏的乐谱音符生成起始时间、时值和力度,并用MIDI标记区分。
- S(同步):将精炼后的表演MIDI的节拍结构与乐谱同步(注:论文中为保持原始时序,未在此数据集上应用此步)。
- 输入/输出:输入是原始对齐文件和表演MIDI;输出是精炼的对齐文件、插值标记和清理后的表演MIDI。
组件间的数据流与交互: 整个流程是多阶段串行的。数据匹配模块产出初步的匹配对和原始对齐。这些数据一部分流入质量评估模块,用于训练和分类MIDI质量,产出质量标签(用于生成PianoCoRe-B)。另一部分(主要是带有乐谱的)流入RAScoP模块,进行对齐精炼,产出音符级对齐数据(用于生成PianoCoRe-A/A*)。质量标签和对齐信息最终都集成到数据集的元数据中。
关键设计选择及动机:
- 分层发布:动机是满足不同应用对数据规模和精度的权衡需求(C用于预训练,A用于精细建模)。
- 基于对齐的质量启发式:动机是缺乏大规模的、参考音频的标准质量标签。利用与乐谱的对齐质量作为代理指标,虽然不完美,但可扩展。
- RAScoP的多步清理:动机是原始对齐工具(如DTW)的输出存在各种噪声(空洞、速度异常、缺失音符),直接用于训练模型效果不佳。通过启发式清理而非重新对齐,可以在保留原始信息的同时提升数据可用性。
- 分类器架构选择:选择Transformer是因为其在序列建模上的能力。采用预训练+微调范式,利用大规模无标签MIDI数据学习通用表示。
💡 核心创新点
- 大规模、统一、分层的钢琴MIDI数据集:首次将多个主流开源钢琴数据集(ASAP, ATEPP, GiantMIDI-Piano等)整合并去重,发布为具有清晰层级(C/B/A/A*)的数据集,覆盖不同应用场景需求,这是之前不存在的。
- 面向MIDI的���量分类器与去重策略:
- 之前局限:现有数据集(如ATEPP)的质量标签不准确,或缺乏自动化过滤手段。
- 创新:提出了一种基于内容的近重复性能检测启发式,并训练了一个Transformer分类器,能直接从MIDI内容中区分出损坏的转录和呆板的类乐谱演奏。其训练数据通过巧妙的软标签启发式和合成增强构建。
- 收益:能够自动过滤数据集中的低质量、重复和不具表达性的数据,生成更干净的子集(PianoCoRe-B)。
- RAScoP对齐精炼流水线:
- 之前局限:原始音符对齐工具的输出包含时间噪声、结构错位和缺失音符,不直接适用于需要高质量对齐的生成模型。
- 创新:提供了一个模块化、可配置的流水线(空洞清理、时间修正、插值),用于“修复”而非“重新计算”对齐。该流水线被集成并开源。
- 收益:显著降低了对齐数据中的时间异常值,同时仅微小降低了对齐召回率(1.5%),为下游模型提供了更干净的训练信号(如图8所示,精炼数据训练的模型验证损失更低更稳定)。
📊 实验结果
本节展示PianoCoRe论文中所有实验部分的定量结果,包括数据集构建、质量分类、对齐精炼和下游任务验证。
MIDI质量分类器评估
表4展示了不同模型配置在自定义平衡测试集(包含真实和合成样本)上的分类性能(F1分数)。宏平均F1(Avg.)是四个类别(Score, High Quality, Low Quality, Corrupted)的平均。
| Model | S | HQ | LQ | C | Avg. |
|---|---|---|---|---|---|
| base | 1.000 | 0.839 | 0.777 | 0.946 | 0.891 |
| no synth | 1.000 | 0.759 | 0.778 | 0.946 | 0.871 |
| mean | 1.000 | 0.828 | 0.752 | 0.881 | 0.865 |
| mean, no TL | 0.993 | 0.802 | 0.713 | 0.851 | 0.840 |
| no MLM | 0.995 | 0.773 | 0.667 | 0.842 | 0.819 |
| mask Pitch | 1.000 | 0.803 | 0.723 | 0.913 | 0.860 |
| mask Timing | 0.990 | 0.788 | 0.747 | 0.851 | 0.844 |
| mask Velocity | 1.000 | 0.834 | 0.776 | 0.893 | 0.876 |
表4: MIDI质量分类器评估结果,以F1分数表示。最佳分数以粗体显示。‘no synth’表示无合成训练数据;‘mean’表示使用平均池化(无[CLS]标记);‘no TL’表示分类头前无Transformer层;‘no MLM’表示仅使用标记嵌入和分类器。最后三行是针对不同特征的掩码消融实验。
关键结论: 最佳的‘base’模型取得了0.891的宏平均F1分数,能够完美区分Score类(F1=1.000),并在识别不同质量级别的表演上表现出色。合成训练数据和基于[CLS]标记的聚合方法有助于模型学习到更鲁棒的决策边界。特征掩码实验表明,音符的音高、力度和时序信息对质量分类都有贡献。
对齐精炼效果评估
表6量化了RAScoP流水线(孔洞处理H、起始点清洗O)在清理对齐时对“对齐召回率(Ra)”这一核心指标的影响。序列按召回率分组。
| Band (Ra) | Raw (R̄a, %) | After H (R̄a, %) | After H+O (R̄a, %) |
|---|---|---|---|
| 0.95–1.00 | 0.975 (54.3) | 0.975 (53.9) | 0.973 (42.9) |
| 0.90–0.95 | 0.929 (26.6) | 0.929 (26.7) | 0.928 (30.4) |
| 0.85–0.90 | 0.879 (10.1) | 0.878 (10.0) | 0.878 (13.3) |
| 0.80–0.85 | 0.828 (4.7) | 0.828 (4.6) | 0.828 (6.5) |
| 0.75–0.80 | 0.779 (2.1) | 0.778 (2.2) | 0.777 (3.2) |
| 0.70–0.75 | 0.725 (1.1) | 0.727 (1.0) | 0.728 (1.6) |
| 0.60–0.70 | 0.660 (0.7) | 0.663 (1.1) | 0.661 (1.5) |
| 0.00–0.60 | 0.471 (0.4) | 0.464 (0.5) | 0.462 (0.6) |
| all | 0.935 (100.0) | 0.934 (100.0) | 0.920 (100.0) |
表6: 不同对齐精炼阶段后的平均召回率(R̄)及处于不同召回率区间的序列比例(%)。
图7直观展示了对齐精炼在时序质量上的改善。

图7: 对齐处理前后的节拍速度(右)和音符内起始时间偏差(左)分布图。
关键结论: RAScoP流水线通过孔洞处理和起始点清洗,显著降低了节拍速度分布中的极端值,并使得和弦内音符的起始时间更加同步。在此过程中,整体平均召回率仅从0.935小幅下降至0.920,且清洗后仍有86.6%的序列保持0.85以上的召回率。这证明数据清理的代价(轻微降低召回率)是可控的,而带来的时序质量提升是显著的。
下游任务验证(性能渲染)
训练数据消融实验使用了不同规模和质量的子集。以下为核心结果。
图8显示了不同训练数据子集的验证损失曲线,证明了更大、更精炼的数据能减少过拟合。

图8: 在PianoFlow模型上训练不同数据子集时的验证损失曲线。
表7:无条件生成任务结果。 评估了模型在多种来源测试集上的渲染性能,以模型输出与真实表演特征之间的皮尔逊相关系数(均值±标准差)衡量。
| Dataset (训练集) | Vel | IOI | OD | Art |
|---|---|---|---|---|
| PianoCoRe-A (测试集内) | 0.57±0.19 | 0.90±0.06 | 0.22±0.17 | 0.44±0.19 |
| ASAP | 0.37±0.17 | 0.83±0.11 | 0.07±0.15 | 0.28±0.13 |
| + ATEPP | 0.42±0.16 | 0.85±0.11 | 0.12±0.14 | 0.35±0.15 |
| + PERiScoPe | 0.41±0.17 | 0.86±0.11 | 0.11±0.17 | 0.36±0.17 |
| PianoCoRe-A | 0.40±0.17 | 0.86±0.11 | 0.10±0.17 | 0.35±0.17 |
| RRAScoP≥0.7 | 0.39±0.16 | 0.85±0.11 | 0.09±0.16 | 0.35±0.18 |
| w/o RAScoP | 0.41±0.16 | 0.85±0.11 | 0.09±0.16 | 0.36±0.18 |
表7: 渲染表演与PianoCoRe-A真实表演之间的特征相关性。第一行为测试集内部相关性(基准),其余行为不同训练子集训练出的模型结果。最佳分数以粗体表示。
表8:性能续写任务结果。 在跨数据源的续写任务中,评估模型预测未来256个音符特征的平均绝对误差(MAE,越低越好)。
| Dataset (训练集) | Size | ASAP Vel | ASAP TS | ASAP TD | ATEPP Vel | ATEPP TS | ATEPP TD | PERiScoPe Vel | PERiScoPe TS | PERiScoPe TD | Aria Vel | Aria TS | Aria TD |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ASAP | 1k | 9.885 | 0.023 | 0.187 | 9.928 | 0.022 | 0.206 | 9.893 | 0.023 | 0.230 | 9.957 | 0.027 | 0.275 |
| + ATEPP | 6k | 9.157 | 0.017 | 0.168 | 8.230 | 0.015 | 0.191 | 8.782 | 0.016 | 0.216 | 8.721 | 0.019 | 0.252 |
| + PERiScoPe | 25k | 8.851 | 0.016 | 0.154 | 7.888 | 0.013 | 0.189 | 8.117 | 0.015 | 0.192 | 8.133 | 0.017 | 0.230 |
| PianoCoRe-A | 124k | 8.613 | 0.016 | 0.155 | 7.967 | 0.014 | 0.194 | 8.094 | 0.015 | 0.194 | 7.872 | 0.017 | 0.205 |
| RRAScoP≥0.7 | 141k | 8.631 | 0.016 | 0.158 | 7.944 | 0.014 | 0.196 | 8.071 | 0.015 | 0.194 | 7.921 | 0.017 | 0.206 |
| w/o RAScoP | 124k | 8.734 | 0.017 | 0.159 | 8.059 | 0.015 | 0.193 | 8.199 | 0.016 | 0.196 | 8.055 | 0.018 | 0.211 |
表8: 条件性表演渲染(性能续写)结果。跨不同训练子集和未见过的源序列进行评估。Size表示训练集大小。Vel:速度(MIDI bins),TS:TimeShift(秒),TD:TimeDurationSustain(秒)。数值越低越好,最佳值以粗体表示。
关键结论:
- 训练数据规模与质量至关重要:图8表明,随着训练数据规模从ASAP(1k)增加到PianoCoRe-A(124k),模型的过拟合倾向显著降低。使用经RAScoP精炼的数据训练,能获得更低、更稳定的验证损失,尤其体现在时序特征上。
- 无条件生成:表7显示,在相关性指标上,使用更大、更多样化数据集(如PianoCoRe-A)训练的模型,其输出与真实表演的特征相关性通常优于仅用小数据集(ASAP)训练的基线。未使用RAScoP精炼的数据(w/o RAScoP)在时序相关性(IOI, OD)上略有下降。
- 性能续写(跨域泛化):表8显示,PianoCoRe-A模型在四个不同来源的测试集上取得了最佳或接近最佳的MAE,特别是在Aria-MIDI源的速度(Vel)预测上(7.872 vs. ASAP基线的9.957)。这表明在更大、更精炼的混合数据集上训练的模型,在面对未见过的表演风格时具有更强的泛化能力和鲁棒性。使用未精炼数据(w/o RAScoP)的模型性能略逊于精炼版本,进一步证实了RAScoP流水线对提升模型实用价值的贡献。
开源详情
- 代码:
- 主代码仓库:https://github.com/ilya16/PianoCoRe (论文中明确提及,包含文档和使用示例)
- RAScoP流水线和MIDI质量分类器代码集成于:https://github.com/ilya16/SyMuPe
- 模型权重:论文中未提及提供预训练模型权重的具体下载链接。MIDI质量分类器代码已包含在上述代码仓库中,但未提供独立的模型权重文件链接。
- 数据集:
- 主数据集:PianoCoRe
- Zenodo归档:https://doi.org/10.5281/zenodo.19186016
- Hugging Face镜像:https://huggingface.co/datasets/SyMuPe/PianoCoRe
- 许可协议:CC-BY-NC-SA 4.0
- 数据集包含四个层级子集:PianoCoRe-C, PianoCoRe-B, PianoCoRe-A, PianoCoRe-A*。
- 主数据集:PianoCoRe
- Demo:论文中未提及在线演示链接。
- 复现材料:论文中未提及训练配置文件、检查点或详细复现步骤的具体下载链接。文中提及训练细节在附录中,但未给出链接。
- 论文中引用的开源项目:
- (n)ASAP Dataset: https://github.com/CPJKU/asap-dataset
- ATEPP Dataset: https://github.com/tangjjbetsy/ATEPP
- GiantMIDI-Piano Dataset: https://github.com/bytedance/GiantMIDI-Piano
- PERiScoPe Dataset: https://huggingface.co/datasets/SyMuPe/PERiScoPe
- Aria-MIDI Dataset: https://huggingface.co/datasets/loubb/aria-midi
- MAESTRO Dataset: 论文引用但未在本文提供直接链接(需查询原论文Hawthorne et al., 2019)。
- partitura library: 用于乐谱处理(Cancino-Chacón et al., 2022)。
- Parangonar (DualDTWNoteMatcher): 用于初始音符对齐(Peter, 2023)。
- symusic library: 用于所有MIDI处理步骤(Liao et al., 2024)。
- Numba: 用于DTW加速(Lam et al., 2015)。
- MuseScore: 乐谱软件(Watson, 2018),用于处理原ASAP乐谱。
- Transkun V2: 用于PERiScoPe数据集的音频转录(Yan and Duan, 2024)。
- PDMX Dataset: 公共领域MusicXML乐谱来源(Long et al., 2025)。
- KunstderFuge: MIDI乐谱来源网站:https://kunstderfuge.com
- ClassicalMIDI: MIDI乐谱来源网站:https://www.classicalmidi.co.uk
- IMSLP: 用于元数据验证:https://imslp.org
- PianoFlow: 用于性能渲染评估的模型(Borovik et al., 2025)。