斯科尔科沃科技大学如何为钢琴AI打造“万能乐谱库“?
这项由俄罗斯斯科尔科沃科技大学完成的研究发表于2026年的《国际音乐信息检索学会汇刊》Transactions of the International Society for Music Information Retrieval第9卷第1期页码144至163DOI编号为10.5334/tismir.333论文编号arXiv:2605.06627。感兴趣的读者可以通过上述DOI或arXiv编号查阅完整原文。教一台计算机弹钢琴听起来像科幻小说但实际上这已经是音乐AI研究者们攻克了很多年的课题。不过教机器弹琴首先得给它准备足够多的教材——也就是大量的钢琴乐谱和真实演奏录音而且两者还必须精确对应哪个音符在哪个时间点被怎样弹奏的都要清清楚楚。这件事说起来简单做起来却充满了麻烦。而这篇论文就是一份关于如何从零开始把一堆杂乱无章的钢琴MIDI数据整理成一个干净、庞大、可直接使用的终极教材库的详细报告。这个数据集被命名为PianoCoRe它的出现有望让下一代钢琴AI变得更聪明、更有表现力。一、为什么钢琴AI需要教材库现有的又有什么问题要理解这项研究的价值先得明白钢琴AI的学习方式。人类钢琴家学琴既要读乐谱又要听老师示范还要自己反复练习、感受情绪。机器学习钢琴表达走的是类似的路给它看乐谱再给它听真人的演奏录音让它学习同一段谱子为什么这个钢琴家弹得慢一点那个快一点这个地方力度强那个地方轻柔——这背后隐藏的就是所谓的音乐表达。机器看得越多学得越好就像一个学生读的书越多、听的范本越多理解力就越强。然而现有的数据集就像一批各自为政的私立图书馆——每一家都有自己的规矩各自收录了不同的作曲家、不同的曲目命名方式五花八门有的甚至连基本的音符对应关系都没有整理出来。比如MAESTRO数据集是目前最有影响力的钢琴演奏数据集之一收录了超过200小时的高水平演奏来自国际钢琴大赛音频和MIDI精确同步是转录研究的标杆。但它覆盖的作曲家和风格范围偏窄对现代深度学习来说规模也嫌不足。ASAP数据集在MAESTRO基础上加入了乐谱和节拍注释扩展版(n)ASAP更是提供了音符级别的对应关系是目前最精细的录音MIDI数据集之一但总量仍然只有约92小时。另一类数据集走的是量大管够路线利用自动音乐转录技术把YouTube上海量的钢琴演奏视频转成MIDI文件。GiantMIDI-Piano就是这样收录了超过1237小时的古典钢琴MIDI覆盖了近11000首作品来自2786位作曲家规模相当可观。但它完全没有乐谱而且元数据也就是说明文件是谁弹了什么曲子的信息里有大量重复和错误。ATEPP数据集提供了11674首演奏的转录大约一半有配套乐谱但没有音符级对应而且标注质量参差不齐。Aria-MIDI更是把规模推到了极致超过100万个MIDI文件、10万小时的转录音乐但几乎没有乐谱注释也不完整。还有一个问题是信息泄露——如果同一首曲子的不同演奏版本分散在多个数据集里而你在训练AI时用了其中一些测试时又碰上了另一些那AI其实已经见过这首曲子测试结果就不可靠了。由于各数据集命名格式不统一这种泄露风险很难发现和规避。正是这些问题催生了PianoCoRe——一个试图把所有优质开源钢琴数据整合在一起同时清洗掉脏数据、建立精确对应关系的超大型统一教材库。二、PianoCoRe是什么它长什么样PianoCoRe的核心数字令人印象深刻总共收录了483位作曲家的5625首作品包括乐章共250046个演奏版本累计时长21763小时。其中75.3%的演奏有对应的乐谱。所有文件按照作曲家/作品/乐章的层级目录结构整理命名遵循统一规范——作曲家目录用姓,名的格式调性按照音名_升降记号_大小调的格式标注每个文件名里都保留了原始来源信息。为了适应不同的使用场景PianoCoRe被设计成四个层级的子集就像一套教材分了基础版、进阶版、专业版和精华版。最基础的PianoCoRe-C是完整的混合来源演奏集合包含全部250046个演奏文件没有去重也没有质量筛选适合需要最大数据量的任务比如自监督预训练或大规模音乐分析。往上一级的PianoCoRe-B是去重并经过质量评估的子集剔除了近似重复的演奏和被判定为损坏或假演奏的文件保留了214092个演奏覆盖5591首作品适合大规模预训练、演奏风格分析和钢琴生成任务。再往上的PianoCoRe-A是最关键的子集157207个演奏与1591首作品的乐谱建立了音符级别的精确对应累计12509小时是目前开源规模最大的音符对齐钢琴数据集。最顶层的PianoCoRe-A*则是高置信度精华版只保留了音符对齐率在85%以上、且被判定为高质量的演奏共130275个覆盖1517首作品。数据来源涵盖了主要的开源钢琴数据集ASAP、ATEPP、GiantMIDI-Piano、PERiScoPe和Aria-MIDI乐谱则来自ASAP、ATEPP、公共领域乐谱库PDMX、KunstderFuge和ClassicalMIDI网站以及研究者手动从MuseScore收集的421份乐谱。所有内容都限定在欧盟公共领域范围内即作曲家去世超过70年以确保版权合规。整个数据集发布在Zenodo和Hugging Face平台上采用CC-BY-NC-SA 4.0许可证。三、数据是怎么拼在一起的一场大规模的配对游戏把来自不同数据集的乐谱和演奏配对是整个工程中最费力的部分。通常的做法是比较文件名和元数据但如果文件被错误标注或者命名格式完全不同这种方法就会失效。研究者采用了一种更可靠的音乐内容直接比对方法把所有文件都转成MIDI格式然后直接比较音符序列。具体流程分三个大阶段。第一阶段是建立核心结构把ASAP和ATEPP这两个最可靠的数据集合并修正元数据错误包括49个乐章被不同名字重复收录的问题、24个乐章名称错误的问题、3个乐谱缺失的问题形成一个统一的基础目录。第二阶段是扩充乐谱把已有演奏与来自PDMX、KunstderFuge、ClassicalMIDI和手动收集的MuseScore乐谱进行配对丰富有乐谱对应的演奏数量。第三阶段是扩充演奏把GiantMIDI-Piano、PERiScoPe和Aria-MIDI中的演奏文件先与已有乐谱和演奏配对找不到匹配的再彼此互相配对以识别出更多属于同一首作品的演奏。配对不是随便找两个文件就算的要经过严格的筛选和验证。首先两个文件的作曲家名字必须一致音符数量之比演奏音符数除以乐谱音符数必须在0.75到1.33之间如果有作品编号、调性等关键字信息也必须吻合。通过这个初筛后再使用一个叫DualDTWNoteMatcher的算法来自Parangonar工具计算两个文件之间的音符级对齐只有当乐谱中超过70%的音符都能在演奏中找到对应时才认定为一对有效匹配。为了加速这个计算密集的过程研究者用Numba的即时编译技术对动态时间规整算法进行了优化使其在ASAP数据集上的速度提升了12倍从而使数百万次配对计算在合理时间内完成。在乐谱处理上所有MusicXML格式的乐谱都经过专门的转换流程变成MIDI力度和速度标记会被嵌入音符的力度值和速度变化中装饰音颤音、波音会被展开为具体的音符序列倚音会根据定义展开反复记号则会生成完整展开版和最小重复版两个版本。对于各数据集中发现的问题也做了针对性修复ASAP中的208份乐谱和94份演奏MIDI存在零时值音符都重新生成了GiantMIDI中发现了315个重复的YouTube视频被标注在不同曲目名称下所有转录数据集中都修复了无限时长音符的问题这种问题发生在转录模型的音符开启事件和关闭事件不匹配时ATEPP有30个文件、GiantMIDI有9个、PERiScoPe有92个、Aria-MIDI有5501个受到影响Aria-MIDI的延音踏板编码方式也与其他数据集不同做了专门说明。整个拼合过程是半自动的自动匹配后的结果都经过人工审核作品和乐章名称通过IMSLP网站和网络搜索进行核实和标准化确保没有同一首作品被收录在不同名称下。四、怎么判断一段演奏是好录音还是垃圾文件AI质检员登场并不是每一个MIDI文件都真的是人类演奏的结果。有些文件是从合成音频也就是用软件把乐谱唱出来的声音转录而来的这种演奏节奏机械、力度均匀根本没有任何表现力对训练AI学习演奏风格毫无帮助。另一些文件则是损坏的转录充斥着噪音和错误。还有大量文件是重复的——同一场演奏被不同的转录模型处理了两遍或者被上传到了不同的平台。这些问题都需要在数据进入训练集之前被清除掉。去重的做法相当精巧。对于同一首作品的多个演奏文件研究者设计了一种基于音符内容的相似度算法把每个MIDI的音符按时间排序把起始时间归零然后按音高分组对于任意两个演奏文件找出每个音符在对方文件中音高相同、起奏时间差不超过50毫秒这是一个高精度自动转录的误差上限的对应音符统计这样的近似对应音符对占总音符数的比例作为相似度相似度超过50%的两个文件被划为同一个重复簇只保留一个代表文件优先保留来自样本较少数据集的版本以及对齐率较高的版本。这一步共识别并标记了34452个近似重复文件。质量判断则要复杂得多。研究者首先分析了对齐质量与MIDI质量之间的关系把演奏文件的音符数量比演奏音符数除以乐谱音符数和调整后对齐率已对齐音符数除以演奏和乐谱中较少的那个数量两个指标画成散点图发现高质量录音和ASAP中的直接录音集中在对齐率高于0.85的区域而损坏文件则散布各处低质量和背景噪音文件与高质量文件有明显重叠。更关键的是人工抽查发现ATEPP原有的质量标签并不可靠——有些被标为低质量的文件实际上对齐很好可以使用有些被标为损坏的文件却是可用的。由此研究者定义了四个质量等级Score乐谱类即从合成音频转录的无表现力演奏、High Quality高质量包括所有直接录音和对齐率超过0.9的转录、Low Quality低质量对齐率在0.7至0.85之间的转录、Corrupted损坏对齐率低于0.65的转录。基于这个框架研究者训练了一个专门的分类器。这个分类器的骨架是一个12层的变换器编码器拥有8000万个参数在Aria-MIDI的37万个多样化钢琴MIDI文件上做了预训练使用多掩码语言建模目标然后在专门构建的质量标注数据集上微调。输入的特征只有五个音符属性音高、时间步长、力度、时值和绝对时间位置完全不包含任何乐谱信息因此可以独立于乐谱对任意MIDI文件进行评估。训练数据经过精心构建真实的高质量样本有2500个低质量样本有1000个损坏样本有86个为了平衡类别还生成了合成的损坏版本随机删除15%到50%的音符、加入起奏时间抖动、加入力度扰动、随机插入额外音符以及合成的乐谱类样本随机设定恒定力度、加入10毫秒起奏抖动。分类器在测试集上的宏平均F1分数达到89.1%对乐谱类文件识别完美高质量和损坏类的F1分别为83.9%和94.6%低质量类为77.7%。消融实验表明合成训练样本、基于[CLS]标记的聚合方式、以及预训练的表示都对最终性能有贡献屏蔽音高、时间或力度特征中的任何一个都会导致性能下降说明三类特征都对质量判断有独立贡献。对全数据集应用分类器后在250046个演奏中识别出了1244个乐谱类文件和459个损坏文件其中Aria-MIDI贡献了绝大多数低质量和乐谱类文件ASAP全部被判为高质量19402个低质量文件以及228941个高质量文件。最终PianoCoRe-B子集由214092个去重且非损坏、非乐谱类的演奏构成。五、让乐谱和演奏对上号音符对齐的清洗之道现在来到最技术性也最关键的一步。有了乐谱和演奏的配对还需要知道乐谱里的每一个音符对应演奏里的哪一个音符。这就是音符级对齐。有了它AI才能学到弹这个音符时钢琴家选择了这样的力度、这样的时长、比乐谱规定的时间提前或推后了多少——这些细节正是表现力的全部秘密。然而自动对齐算法的输出结果并不总是干净可用的。最常见的两类问题是这样的一是时间跳跃——对齐算法把两个在时间上相距甚远的音符配成了一对导致从这个音符跳到下一个速度突然变成了荒诞的每分钟600拍或者突然降到每分钟15拍完全不符合人类演奏的规律。二是对齐空洞——演奏中有一大段音符根本没有在乐谱中找到对应或者乐谱中有一大段比如一个重复段落在演奏中被跳过导致这段区域内的对齐链接全都是随机乱配的。为了解决这些问题研究者设计了一套名为RAScoPRefined Alignment for Scores and Performances乐谱与演奏的精细化对齐的四步流水线处理管道。第一步处理对齐空洞。算法用一个滑动窗口扫过整个对齐序列窗口大小设为31个音符接近数据集中所有乐谱的小节平均音符数的两倍也就是大约左右各一小节的范围计算每个位置窗口内未对齐音符的比例如果超过75%的音符都没有对齐就把这个位置标记为空洞区域并把空洞内所有的对齐链接全部删除。这一步的逻辑是如果一个区域内几乎所有音符都没有对应那些少数几个对应的链接大概率也是错的不如全部清除。第二步处理时间跳跃。算法先把所有已对齐的音符按乐谱时间位置分组构建一个乐谱位置→演奏时间的对应列表。然后逐个检查相邻两个乐谱位置之间的时间间隔如果这个间隔对应的演奏速度超出合理范围默认为15到480 BPM就认定发生了对齐跳跃。对于和弦内部的多个音符即乐谱上同一时刻演奏的多个音还会检查它们在演奏中的时间偏差如果某个音符的偏差超过该和弦所有音符偏差的两个标准差就把它从对齐中移除。发现跳跃后算法会根据当前位置前8秒内的局部演奏速度推算出这个音符应该在什么时间出现然后对演奏MIDI中的所有后续音符做整体时间平移使其落入合理范围。处理完后只保留对齐序列中有链接的演奏音符没有链接的都删去。此外时间间隔小于10毫秒的相邻同音高音符也会被过滤因为人类演奏中不可能在10毫秒内连续按下同一个键两次。第三步进行音符插值。乐谱中有些音符在演奏中没有出现比如演奏者跳过了某个重复段落或者转录时漏掉了某些音符。为了给AI提供完整的乐谱上下文这一步会为这些缺失的音符补上一个合成的演奏版本起奏时间通过前后已有的演奏音符的时间进行线性插值力度和时值则取周边已演奏音符的加权平均权重与乐谱位置的距离成反比越近的音符权重越高。补上的合成音符会用特殊的MIDI文本标记标注以便训练时对这些音符进行特殊处理或直接过滤。第四步进行演奏-乐谱节拍同步。利用音符对齐关系计算每个节拍的演奏时间在演奏MIDI中插入对应的速度变化信息使其与乐谱的节拍结构对齐。另外所有演奏都会被平移使第一个演奏音符与乐谱第一个音符在时间上对齐保证同一首作品的不同演奏有统一的起始点。在实际构建PianoCoRe-A时只应用了前三步和初始对齐没有应用节拍同步以保留原始时间信息节拍同步可由用户自行计算。这套流水线的效果如何量化分析显示经过空洞处理和时间清洗后和弦内音符的时间偏差标准差显著降低演奏速度分布也变得更集中在合理范围内极端速度异常值基本消失。代价是平均对齐率从0.935小幅降至0.920也就是说平均只损失了约1.5%的对齐链接。处理前54.3%的演奏对齐率高于0.95处理后这一比例降至42.9%但这些演奏只是降到了仍然很高的对齐率区间并没有被丢弃——处理后仍有86.6%的演奏保持了85%以上的对齐率。六、用PianoCoRe训练出来的AI弹得更好吗研究者把PianoCoRe用于一个最直接的下游任务让AI根据乐谱自动生成有表现力的钢琴演奏。使用的模型是PianoFlow一个基于条件流匹配的符号音乐演奏渲染模型。它的工作方式可以这样理解给它看一段乐谱包括每个音符的音高、位置和时值以及当前演奏的语境之前已经渲染好的一段演奏让它推断出下一段的力度、时间偏差、时长等表现力特征。研究者训练了一系列模型每个模型用不同规模的数据子集只用ASAP、ASAP加ATEPP、ASAP加ATEPP再加PERiScoPe、以及完整的PianoCoRe-A。此外还有两个对照组用较低对齐率阈值0.7而非0.85的更多数据以及用没有经过RAScoP清洗的原始对齐数据。训练过程中的验证损失曲线揭示了一个清晰的规律只用ASAP训练的模型很快就出现过拟合即在训练集上越来越好但在新数据上不再进步而随着数据规模增大加入ATEPP、加入PERiScoPe、加入全部PianoCoRe-A过拟合被显著推迟最终验证损失更低。更关键的是用原始未清洗对齐数据训练的模型在时间特征TimeShift即每个音符演奏时间相对于乐谱的偏差上的验证损失始终高于用RAScoP清洗后数据训练的模型证明了清洗时间噪音对学习准确的节奏表达至关重要。在无条件生成即模型从头渲染一首完整曲子的评估中用皮尔逊相关系数衡量模型输出与真实演奏在力度Vel、相对音符间时间间隔IOI、和弦内时间偏差OD和音符时长Art四个特征上的相似度。只用ASAP训练的模型相关系数最低力度0.37IOI 0.83OD 0.07Art 0.28随着数据增加各项指标持续提升PianoCoRe-A模型达到力度0.40IOI 0.86OD 0.10Art 0.35。有意思的是只用ASAP和ATEPP训练的模型在某些指标上反而比用全量数据的模型稍高这可能是因为ATEPP主要收录了知名钢琴家的演奏风格更集中而PianoCoRe-A包含了更广泛的风格多样性模型需要兼顾更多风格在某些特定评估维度上反而没那么专注。在演奏续演即给模型256个音符的演奏历史让它预测接下来256个音符的演奏特征的评估中用平均绝对误差衡量结果显示训练数据越多模型在ASAP、ATEPP、PERiScoPe和Aria-MIDI四个测试领域的误差普遍越低。PianoCoRe-A模型在ASAP和Aria-MIDI测试集上取得最佳成绩力度误差分别为8.613和7.872 MIDI单位时间偏移误差均为0.016秒在另外两个测试集上也表现出色综合来看是跨数据源泛化能力最强的模型。七、这套方法还有哪些不足未来能做什么任何大型工程都难免有缺陷PianoCoRe也不例外研究者在论文中也坦诚地列出了这些局限。由于采用迭代式的数据整合流程估计有约1%的演奏可能包含了相邻乐章的内容或者与乐谱在长度上有超过两倍的差异。数据集中作品分布也明显偏向西方古典曲目和著名作曲家这是底层开源数据集本身偏差的延伸。质量标签经过了针对召回率优化的校准并不保证与人类听感的判断完全一致。在音符插值环节生成的合成音符段落完全没有表现力如同机器演奏下游应用必须对此做出处理。另外插值也不处理延音踏板效果这在某些情况下可能导致踏板与插值音符之间的不一致。对于未来的发展方向研究者认为下一步最有价值的工作包括对比较受欢迎的模型做主观听感测试验证客观指标的提升是否真的对应人耳感知到的演奏质量改善针对Aria-MIDI在数据集中占比过大的问题考虑对各数据源做更均衡的采样对完整的PianoCoRe-A模型做更长时间的训练从验证损失曲线来看仍有提升空间在高保真子集如ASAP上做微调可能进一步提升演奏质量将整套方法论扩展到多乐器曲目以及开发更强大的质量评估模型和更细粒度的乐谱与演奏注释工具。说到底PianoCoRe做的事情本质上就是一件很朴素的事把散落在各处的钢琴教材全部收集起来统一格式剔除残缺和抄袭的再把每本教材里的每一句话和它对应的声音录音精确对应起来最后装订成册免费分发给所有想教机器学钢琴的人。这件事之前没有人系统地做过而做完之后效果是看得见的——用这套教材训练出的AI在几个维度上都比用残缺教材训练的AI弹得更好、更稳定、对各种风格的适应性也更强。这对普通人意味着什么也许五年后你打开某个AI作曲软件让它帮你把自己写的旋律弹出来那背后的模型就有可能是在PianoCoRe上训练的。弹得像不像真人、有没有表情在一定程度上就取决于这个数据集是否足够大、足够干净。从这个角度看这篇论文并不只是写给专业研究者的——它是在为所有人能用上更像样的音乐AI悄悄铺路。对这个话题感兴趣的读者可以通过DOI 10.5334/tismir.333查阅完整论文也可以在arXiv上搜索编号2605.06627获取预印版本。数据集本身可以在ZenodoDOI10.5281/zenodo.19186016和Hugging FaceSyMuPe/PianoCoRe免费获取代码则开放在GitHub的ilya16/PianoCoRe仓库中。QAQ1PianoCoRe数据集和MAESTRO、ATEPP这些已有数据集相比有什么实质性的区别AMAESTRO和ATEPP等数据集各自有明显的局限——MAESTRO规模偏小ATEPP没有音符级对齐GiantMIDI没有乐谱。PianoCoRe的核心区别在于把这些数据集统一整合解决了命名格式不统一、重复文件、元数据错误等问题并在此基础上提供了目前开源规模最大的音符级对齐子集157207个演奏同时附带了质量标签和清洗后的对齐文件可以直接用于训练而无需自行处理原始数据。Q2RAScoP对齐清洗之后数据的对齐率会损失很多吗A损失很小。经过空洞处理和时间清洗两步之后平均对齐率从0.935降至0.920仅损失约1.5%的对齐链接。处理后仍有86.6%的演奏保持了85%以上的对齐率。换句话说清洗主要是把错误的链接去掉正确的链接基本都得到了保留代价非常小但换来的是时间特征的显著改善和速度分布异常值的消除。Q3PianoCoRe数据集里的演奏质量分类是怎么划分的低质量文件还能用吗A质量分为四类Score从合成乐谱音频转录的无表现力演奏、High Quality直接录音或对齐率超过0.9的转录、Low Quality对齐率在0.7到0.85之间的转录和Corrupted对齐率低于0.65的损坏文件。低质量文件并不是完全无用研究者明确指出这类标签是参考性的低质量MIDI可能适合某些特定应用场景。只有Corrupted和Score类文件在大多数情况下应当过滤掉因为它们要么是损坏数据要么是缺乏任何表现力信息的机器演奏。