博客研究
ChatGPT 能看懂乐谱吗?
我们把同一页钢琴谱分别以清晰的 PDF 和手机照片的形式交给多个 ChatGPT 模型,把每个音都和原谱逐一核对,再用椋鸟记谱(ScoreStarling)读同样的文件。
先说结论
在清晰的谱面上,它比传闻中强。在我们 2026年10月13日的测试中,7 个 ChatGPT 模型里最好的一个读一首巴赫小步舞曲的 16 个小节,101 个音只错 1 到 2 个,调号和拍号每次都对。差别最大的是模型:同样清晰的 PDF,最弱的模型错了约 90 个。换成这页谱的照片,结果就忽高忽低,较强的模型也从错 1 个到错 37 个不等。在 ChatGPT 应用里,它能把读到的内容做成 MIDI 文件,读错的音也一并带上,但给不出能当乐谱编辑的东西。接上像椋鸟记谱(ScoreStarling)这样的识谱工具(光学乐谱识别),同一个对话就能把 PDF 读成一份乐谱:可以试听、移调,还能下载 MusicXML 或 MIDI。
我们测了什么
我们用了三首公有领域的乐曲,都由 Mutopia Project 排版,并把每个回答里的每个音都和原谱逐一核对。
| 谱页 | 内容 | 计分小节 | 音符数 |
|---|---|---|---|
| A. 清晰 PDF | G 大调小步舞曲,BWV Anh. 114(一般认为作者是克里斯蒂安·佩措尔德 Christian Petzold),一页 | 1–16 | 101 |
| B. 手机照片 | 同一页谱,拍得有点斜,光线不均,还有一块阴影;照片由 PDF 制作,模仿手机拍摄的效果 | 1–16 | 101 |
| C. 更难的一页 | 肖邦《b 小调圆舞曲》,Op. 69 No. 2:弱起小节、变音记号、左手和弦 | 弱起小节和第 1–8 小节 | 91 |
每一页谱,我们都分别发给 ChatGPT 订阅所提供的 7 个模型各三次:gpt-6.1-sol、gpt-6-astra、gpt-6-sol、gpt-6-luna、gpt-5.6-sol、gpt-5.6-terra 和 gpt-5.6-luna。这些是附上图片后直接向模型发出的请求,没有用 ChatGPT 应用里的联网搜索或代码工具;应用会为你选哪个模型,取决于你的套餐和设置。我们还向 gpt-6.1-sol 问了四个乐手会问的问题:第 1–4 小节的调、拍号和音符;把前 8 个小节移到 F 大调;给一个能播放的版本或 MIDI 文件;以及第 5 小节难在哪里。为了统计错误,我们要求每个模型写出计分小节里的每个音,包括八度和时值。
之后我们又在 ChatGPT 应用里(chatgpt.com,GPT-6,默认的 Medium 思考强度)问了同样的问题,PDF 和照片各问一次,并截了图。



每个写出的音符计一次,所以三个音的和弦计三个。音高错误、漏掉的音或多出来的音都算音高错误;音高对但时值错,算节奏错误。整小节读高一个音时,其中每个音都算错。装饰音和倚音不计入。
ChatGPT 自己能读对什么
谱面清晰、模型够强的话,能读对很多。较强模型的每一个回答都说对了调号和拍号。gpt-6-astra 读清晰的小步舞曲,三次分别错 1、2、1 个音,读肖邦则一个没错;gpt-6.1-sol 读小步舞曲分别错 1、5、0 个,读肖邦分别错 0、0、2 个。让它把 8 个小节从 G 大调移到 F 大调,它把每个音都降低了一个全音,调号改成一个降号,波音和倚音也都保留了。它对第 5 小节的建议也很在理:波音弹得轻一点,别拖慢拍子;八分音符要均匀;左手要保持满三拍。

哪里会出错
在我们的测试中,问题出在三个地方:较弱的模型、照片和文件。
原谱
gpt-6.1-sol,清晰 PDF(第 1–16 小节错 5 个)
gpt-6.1-sol,手机照片(错 37 个)
gpt-6-luna,清晰 PDF(错 62 个)
较弱的模型
模型带来的差别比什么都大。同样是清晰的 PDF,gpt-6-sol 和 gpt-5.6-sol 每次错 1 到 5 个音,gpt-5.6-terra 有一次错了 37 个,gpt-6-luna 错了约 60 个,大多是整小节读偏一个音,gpt-5.6-luna 则错了 86 到 97 个。读肖邦时,gpt-6-sol 最多错 42 个,gpt-5.6-sol 最多错 59 个。在照片和肖邦上,gpt-6-luna 三次里有两次拒绝作答,有一次说它没法“可靠地写出每个音和时值”。具体由哪个模型回答,取决于你用的套餐和设置,所以这里最好的结果是最理想的情况,而不是常见情况。
照片
换成照片,每个模型都变得更难预料。gpt-6-astra 读拍下来的谱页,三次分别错 1、1、13 个音;gpt-6.1-sol 分别错 11、37、18 个。这些错误并不随机:有一次,第 7 小节的 F♯4 G4 A4 B4 G4 变成了 A4 B4 C5 D5 B4,整小节高了三度;另一次,第 5–7 小节和第 11–15 小节的右手全都读高了一个音。音高取决于音符在五条线上的位置,谱面一歪、有阴影,就很容易数错一条线。

模型还会改口。在照片那次对话里,它先把第 3、4 小节读低了一个音,后来让它移调时,它开头就说“更正我之前的读谱”,把这两个小节改对了。同一张图片,问法不同,读出的音也可能不同。
文件
直接问模型要“一个能播放的版本,或者一个 MIDI 文件”,它写出了 ABC 记谱(一种用文本记录音乐的格式),并建议我们粘贴到在线 ABC 播放器里。ChatGPT 应用做得更多:它用代码工具生成了第 1–4 小节的 MIDI 文件供下载。这个文件只是把模型读到的内容变成音符,所以第 3 小节那个错音也在里面,而且只有我们问到的这 4 个小节。仍然没有 MusicXML,也没有能看、能改的乐谱;想改一个音,得把 MIDI 拿到别的软件里打开,或者再问一遍。

简谱呢?
国内很多人是看简谱学琴的,所以我们用简谱也测了一遍。我们用 ScoreStarling 把这首小步舞曲的旋律排成简谱(1=G),把清晰的页面和一张模拟照片分别发给三个模型,各问三次,要它们写出第 1–16 小节的每个音(共 64 个)和所在八度。


| 模型 | 清晰的简谱页面 | 简谱照片 |
|---|---|---|
| gpt-6-astra | 0, 0, 0 | 0, 0, 0 |
| gpt-6.1-sol | 0, 0, 0 | 0, 0, 0 |
| gpt-6-luna | 46, 25, 22 | 1, 4, 0 |
简谱比五线谱好读得多。两个较强的模型 12 次全部读对,页面和照片都一样:数字从哪个角度看都是同一个数字,八度靠上下的圆点表示,不用去数线。gpt-6-luna 的错多半是把不带点的音读低了一个八度。
短板和五线谱一样:你拿到的只是一段文字。连上 ScoreStarling 后,助手会把读到的内容写成 ABC,ScoreStarling 再把它变成能播放的乐谱,可以切换五线谱或简谱显示,也能下载 MusicXML、MIDI 或简谱 PDF。
为什么聊天模型很难读懂乐谱?
因为同一个符号放在不同位置,意思就不同。同样一个黑色符头,在这条线上是 G,在那条线上就是 B;谱号、调号、小节里前面出现的变音记号、八度记号,都会改变它的音高。读一页谱,就要让每个音的这些因素同时都对。一个能把图片描述得很好的通用模型,照样可能差一条线;而在照片上,谱线本身就是弯的、淡的。
在 ChatGPT 里用 ScoreStarling 读同一份乐谱
ScoreStarling 可以通过 MCP 连接 ChatGPT 和 Claude,方法见连接指南。清晰的 PDF 会交给识谱引擎(光学乐谱识别,基于开源的 Audiveris),把谱页变成乐谱;助手再把这份乐谱和原谱对照,改正读错的地方。
清晰的 PDF
识谱结果把小步舞曲第 1–16 小节的 101 个音全部读对,肖邦片段的 91 个音也全对,调号和拍号都没错。只漏了一处:小步舞曲第 8 小节前的倚音。结果直接打开成一份乐谱,马上就能播放,一步就移到了 F 大调(全部 32 个小节,连调号一起),还能下载 MusicXML、MIDI、PDF 和 MP3。

手机照片
识谱引擎在我们那张拍斜的照片上失败了:它只找到 12 个小节、56 个音(共 203 个),把钢琴拆成了两件乐器,还把调写成了 C 大调。照片、手写谱、简谱和旋律谱,ScoreStarling 换一种方式处理:由助手看图,把音乐写成 ABC,再由 ScoreStarling 生成能播放的乐谱。这样做的准确度取决于助手读得准不准。gpt-6.1-sol 来做时,第一版错了 6 个音,在第 7 和第 8 小节。我们接着让它把乐谱和照片对照检查,它没发现这两个小节的问题,反而认定左手低了一个八度并整体挪了上去,结果错了 43 个音。
原谱
模型“检查”完照片读谱之后
如果可以,尽量给识谱工具 PDF 或平整的扫描件。手机的文档扫描模式会把谱页拉正、把光线调匀,比普通照片更接近扫描件;不过它能帮上多少,我们还没有测过。
结果对比
| 方法 | A. 清晰 PDF(101) | B. 手机照片(101) | C. 肖邦(91) |
|---|---|---|---|
| 仅 gpt-6-astra | 1, 2, 1 | 13, 1, 1 | 0, 0, 0 |
| 仅 gpt-6.1-sol | 1, 5, 0 | 11, 37, 18 | 0, 0, 2 |
| 仅 gpt-6-sol | 5, 1, 5 | 16, 13, 7 | 14, 42, 9 |
| 仅 gpt-5.6-sol | 5, 5, 3 | 23, 19, 22 | 36, 59, 39 |
| 仅 gpt-5.6-terra | 4, 37, 5 | 20, 2, 1 | 2, 13, 2 |
| 仅 gpt-6-luna | 62, 58, 58 | 67;两次拒答 | 52;两次拒答 |
| 仅 gpt-5.6-luna | 87, 97, 86 | 84, 110, 93 | 91, 79, 85 |
| ScoreStarling 识谱 | 0(漏了一个倚音) | 失败:12 个小节、56 个音,调不对 | 0 |
| gpt-6.1-sol 写 ABC,ScoreStarling 生成乐谱 | — | 第一版 6 个;自查后 43 个 | — |
| 仅用 ChatGPT | ChatGPT 加 ScoreStarling | |
|---|---|---|
| 调号和拍号 | 每次回答都对 | PDF 读对;照片读错 |
| 播放 | ABC 文本,或者应用里给的 MIDI 文件,要到别处打开 | 在对话的乐谱面板里播放;可下载 MP3 |
| MusicXML 和 MIDI | 应用里能给出所读小节的 MIDI 文件;没有 MusicXML | 有,乐谱解锁后即可 |
| 移调结果 | 音符列表和 ABC | 移好调的乐谱,可播放、编辑和下载 |
三分钟检查任何 AI 读出的乐谱
不管是谁读的谱,都把结果当作草稿,重点抽查容易读错的地方。
- 把调号、拍号和第一小节的音和原谱对照。
- 看有没有整小节高了或低了一个音:把它的第一个和最后一个音和原谱对照。
- 检查小节中间的变音记号,以及它是否延续到同一小节后面的音。
- 检查左手最低的音有没有八度错误。
- 挑几个有附点音符或延音线的小节,数一数拍子。
- 看有没有漏掉倚音、装饰音和反复记号。
- 一边看原谱一边播放;错音听出来比看出来容易。
Claude 和其他助手
这次我们只给 ChatGPT 模型打了分。Claude 也能读图片,也能用同样的方式通过 MCP 连接 ScoreStarling,所以识谱、播放、移调和下载在 Claude 里同样可用。
用 ScoreStarling 识谱要花多少钱?
读 PDF 或图片免费:识谱、编辑、试听和生成新的 PDF 都不扣积分。MusicXML 和 MIDI 需要先解锁乐谱,每份乐谱一次性 15 积分;每个账号每月都有免费积分(2026年10月13日核实)。把录音转成乐谱是另一回事,见《ChatGPT 能把歌扒成乐谱吗?》。
参考资料
- Mutopia Project,Menuet in G, BWV Anh. 114,Allen Garvin 排版,公有领域。
- Mutopia Project,Walzer Nr. 10 h-moll, Op. 69 No. 2,Roland Goretzki 排版,公有领域。
- Audiveris,ScoreStarling 识谱功能所用的开源光学乐谱识别引擎。
- ABC 记谱法标准.
常见问题
ChatGPT 能读懂 PDF 乐谱吗?
PDF 清晰、模型够强的话,多半可以。在我们 2026年10月13日的测试中,gpt-6-astra 读一首巴赫小步舞曲的 16 个小节(101 个音),三次分别错 1、2、1 个音;gpt-6.1-sol 分别错 1、5、0 个。7 个模型里最弱的错了 86 到 97 个。用之前先核对音符。
为什么 ChatGPT 读照片会读错音?
音高取决于音符在五条线上的位置,照片一歪或有阴影,就很容易数错一条线或一个间。在我们的测试中,照片上最典型的错误是整小节读高或读低一个音。即使是最好的模型,三次里也有一次在 101 个音中错了 13 个;其他模型最多错 37 个。
ChatGPT 能给乐谱移调吗?
它能把读到的音符移调,再以音符列表或 ABC 文本的形式写出来。只要读对了,它把 8 个小节从 G 大调移到 F 大调也是对的。但你拿到的是文本,不是能在打谱软件里打开的乐谱文件。
ChatGPT 能把乐谱转成 MIDI 吗?
能把它读到的音做成 MIDI 文件,读错的音也会原样带进去。2026年10月13日在 ChatGPT 应用里,它为第 1–4 小节写了一个 MIDI 文件,里面带着它读错的那个音;不经应用的工具直接问模型,它给的则是 ABC 文本。接上像 ScoreStarling 这样的识谱工具,同一个对话就能给出整页的 MIDI 和 MusicXML。
Claude 能看懂乐谱吗?
Claude 也能看乐谱图片,不过这次测试没有给它打分。Claude 可以像 ChatGPT 一样通过 MCP 连接 ScoreStarling,所以下文的识谱、播放和导出在 Claude 里同样可用。