先说结论
AI 扒谱通常能听出大部分音,但写得不好。我们用钢琴独奏选项扒一段公有领域的《致爱丽丝》录音,初稿 130 个音一个不少,却多出 67 个音,其中 66 个是被写成音符的泛音;调和拍号也成了 E 大调、6/8 拍,而不是 A 小调、3/8 拍。让一个语言模型用乐谱自带的编辑工具校对一遍,两次运行都删光了多余的音,并把调、拍号和弱起小节改对了。在吉他上它帮得少一些;在我们的测试里,它从没找回初稿漏掉的音。
AI 扒谱常出哪些错?
扒谱模型听出的是音高和时间;乐谱还需要调、拍号、小节线,以及看得懂的时值。我们在初稿里见到的问题,大多是下面五种:
- 幽灵音。钢琴的琴弦每发一个音都带着泛音,模型可能把高八度的泛音听成另一个键,在同一时刻按下。
- 一个音被拆成几段。一个长音可能变成两个;歌手滑进一个音,会变成它前面一个短短的错音;颤音会变成在两个音高之间来回晃。
- 调号错了。每个音高都可能是对的,调号却错了:《致爱丽丝》是 A 小调,不需要升号,但曲中的升 G 和升 D 会让模型猜成 E 大调。
- 拍号错了。时值整体翻倍或减半(把 3/8 写成 6/8),或者把 3/4 拍的曲子读成 4/4 拍。
- 小节线位置不对。从弱拍开始的曲子需要一个较短的第一小节;而一段速度平稳的录音,只要速度每分钟差零点几拍,就会慢慢偏离小节线。
怎样自己检查扒谱结果?
把乐谱和录音对照着播放,每次几个小节,留意下面这些地方:
- 录音里没有、却上下叠着相差八度的音:上面那个通常是幽灵音。
- 乐句在哪里结束。乐句落脚的那个音和它的和弦通常就是调,拿它和调号比一比。
- 数一数第一个乐句。如果强拍落在小节中间,拍号或第一条小节线就错了。
- 长音前面、与它相差二度的极短音符:在人声里,这是滑进那个音的过程,不是旋律里的音。
- 连奏段落里零零散散的休止符和延音线:音多半是对的,只是时值写得不好。
AI 校对都做些什么?
ScoreStarling 的 AI 精修是上传表单里的一个开关,适用于钢琴独奏,以及单件乐器或人声。转谱完成后,一个语言模型会读初稿,用编辑器里人能用的那些工具,按固定的顺序修改。这个顺序来自我们试过的最强的模型:它用同样的工具、不限时间和步数,校对了六份初稿:
- 清理由代码根据音符和录音,找出幽灵音和被拆成几段的音
- 结构拍号、速度、第一个强拍和调
- 通读把整份乐谱读一遍,对照曲中反复出现的乐句
- 记谱音名写法、左右手、长音和易读的节奏
- 收尾删掉结尾之后的空小节,检查谱面
它被告知以录音为准:绝不重新扒谱、改编、简化或移调。它最后会说明改了什么,以及哪几个小节值得再听一遍。
改好的谱长什么样?
下面是《致爱丽丝》测试的开头,分别是初稿和校对之后的样子。初稿很难读,但弹到的每个音都在;校对删掉了多余的复制音,改回贝多芬原本的调和拍号,并让左右手各占一行谱表。
之前:转谱初稿
AI 精修之后
我们钢琴录音转乐谱页面上那段 19 秒的《吉诺佩蒂第一号》录音,错法又不一样:初稿是 4/4 拍,左手的和弦跑到上面一行谱表,和旋律混在一起。两次校对最后都得到了萨蒂原谱的音符,八个小节全部一致,每个音高、时值和所在谱表都对,3/4 拍,D 大调。
之前:转谱初稿
AI 精修之后
效果怎么样?
2026年10月12日,我们用它实际使用的模型 OpenAI GPT-6.1 Sol,在每段有参考标注的录音上各跑了两次。音高相同、起点相差不超过 0.1 秒,就算这个音对;F1 同时计入漏掉的音和多余的音,1.0 表示所有音都对、一个不多。
| 录音 | 初稿 F1 | 精修后 F1 | 多余的音 | 精修后的调和拍号 |
|---|---|---|---|---|
| 《致爱丽丝》开头(钢琴,24 秒) | 0.795 | 1.000 | 67 → 0 | A 小调,3/8 拍(初稿:E 大调,6/8 拍) |
| 波萨诺瓦吉他独奏(GuitarSet) | 0.839 | 0.887 | 25 → 12 | E 大调,4/4 拍 |
| 波萨诺瓦吉他伴奏(GuitarSet) | 0.696 | 0.716 | 46 → 26 | E 大调,4/4 拍 |
另外两段人声录音来自一个研究数据集,授权不允许放在本站。它们的 F1 分别从 0.78 升到 0.89、从 0.79 升到 0.87;以音符开头的小节,从大约三分之一增加到九成以上。
七段录音(其中六段不到一分钟)只能当作诊断样本,算不上基准测试。吉他录音提升不大,因为它们初稿的错误大多是漏掉或合并了的音,而校对找不回这些音。
它做不到什么?
- 找回初稿漏掉的音。表格里的每一点提升都来自删掉多余的音:每次测试里,漏掉的音都还是漏着。
- 分清每一个真实的音和多余的音。在有参考标注的五段录音里,有四段它在删多余音时也删掉了 1 到 6 个真实的音;在伴奏上,是 117 个里删了 6 个。
- 替你判断没有参考标注的录音。在一段 2 分 48 秒的流行钢琴录音上,它删掉了初稿里的幽灵八度音,左手的音型也留在下面一行谱表,但删掉的是否全是幽灵音,只能靠耳朵确认。
- 处理乐队录音:乐队录音是好几个声部混在一起的。
要多长时间?
转谱完成后再等几分钟:在我们 19 到 82 秒的测试录音上用了 1 到 4 分钟,在那段 2 分 48 秒的钢琴录音上不到 3 分钟。校对结束后乐谱就生成了,并附上几句话说明改了什么。
参考资料
- Für Elise——互联网档案馆,公有领域(Public Domain Mark 1.0)
- Erik Satie, Gymnopédie No. 1——维基共享资源
- GuitarSet 1.1.0——Xi、Bittner、Pauwels、Ye 和 Bello,Zenodo(CC BY 4.0)
- High-resolution Piano Transcription with Pedals by Regressing Onset and Offset Times——Kong 等,2020
- A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation——Bittner 等,Spotify,2022
常见问题
为什么钢琴扒谱里会多出高八度的音?
钢琴的琴弦发出一个音的同时,也会发出它的泛音,最强的那个就在高八度。扒谱模型可能把它当成同时按下的另一个键。在我们对一段 24 秒《致爱丽丝》录音的扒谱初稿里,67 个多余的音中有 66 个落在正在弹的音上方,高出一个八度或其他泛音的位置。
为什么扒出来的调号不对?
音符可能全对,调号却还是错的,因为调是对音乐的一种解读,而不是声音本身。我们的《致爱丽丝》初稿每个音高都对,却标了四个升号(E 大调),而不是 A 小调。看看乐句停在哪里:落脚的那个音和那个和弦,通常就是调。
AI 能把扒谱结果完全改对吗?
不能。校对只能删掉不该有的音,并重写已有的内容。在我们的测试里,它从没找回初稿漏掉的音;五段录音中有四段,它在删多余音的同时还删掉了 1 到 6 个真实的音。它说拿不准的那几个小节,要再听一遍。
AI 校对会改动我的音乐吗?
不应该。它被要求绝不改编、简化或移调。每处修改都保存为同一份乐谱的新版本,所以撤销可以一步步退回到未经精修的转谱。