博客研究

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. 清晰 PDFG 大调小步舞曲,BWV Anh. 114(一般认为作者是克里斯蒂安·佩措尔德 Christian Petzold),一页1–16101
B. 手机照片同一页谱,拍得有点斜,光线不均,还有一块阴影;照片由 PDF 制作,模仿手机拍摄的效果1–16101
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 和照片各问一次,并截了图。

页面 A:Mutopia Project 排印的 G 大调小步舞曲第一页,每行两行谱表页面 B:同一页谱斜着放在桌上拍下,右下角偏暗,还有一块阴影
我们测试的两份小步舞曲:左边是清晰的 PDF,右边是由它做成的照片,倾斜、光线不匀、带阴影,像随手用手机拍的。
页面 C:肖邦《b 小调圆舞曲》开头,有弱起、变音记号和左手和弦
更难的一页:肖邦《b 小调圆舞曲》Op. 69 No. 2 的开头。

你也可以自己用这几页试试:清晰的 PDF和照片。

每个写出的音符计一次,所以三个音的和弦计三个。音高错误、漏掉的音或多出来的音都算音高错误;音高对但时值错,算节奏错误。整小节读高一个音时,其中每个音都算错。装饰音和倚音不计入。

ChatGPT 自己能读对什么

谱面清晰、模型够强的话,能读对很多。较强模型的每一个回答都说对了调号和拍号。gpt-6-astra 读清晰的小步舞曲,三次分别错 1、2、1 个音,读肖邦则一个没错;gpt-6.1-sol 读小步舞曲分别错 1、5、0 个,读肖邦分别错 0、0、2 个。让它把 8 个小节从 G 大调移到 F 大调,它把每个音都降低了一个全音,调号改成一个降号,波音和倚音也都保留了。它对第 5 小节的建议也很在理:波音弹得轻一点,别拖慢拍子;八分音符要均匀;左手要保持满三拍。

ChatGPT 应用说出曲名、G 大调和 3/4 拍,并列出第 1 到 4 小节的音符表;第 3 小节右手第一个音 D5 被框出
ChatGPT 应用读清晰的 PDF:曲名、调号、拍号都对,第 1–4 小节的 23 个音对了 22 个。框出的音是错的:第 3 小节第一个音是 E5,不是 D5。

哪里会出错

在我们的测试中,问题出在三个地方:较弱的模型、照片和文件。

小步舞曲第 1–16 小节。每个模型取三次中最差的一次(Astra 指 gpt-6-astra,Sol 指 gpt-6.1-sol,Luna 指 gpt-6-luna,5.6 Luna 指 gpt-5.6-luna);ScoreStarling 读了一次 PDF。所有结果见下方的结果表。

原谱

5
57

gpt-6.1-sol,清晰 PDF(第 1–16 小节错 5 个)

5
57

gpt-6.1-sol,手机照片(错 37 个)

5
57

gpt-6-luna,清晰 PDF(错 62 个)

5
57
小步舞曲第 5–8 小节的原谱,以及各个模型读出的结果。错音标为橙色。即使是清晰的 PDF,gpt-6.1-sol 也有一次把第 7 小节读高了三度;读照片时,它有三个小节读高了;速度更快的模型则把右手大部分音都读错了。

较弱的模型

模型带来的差别比什么都大。同样是清晰的 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 小节的右手全都读高了一个音。音高取决于音符在五条线上的位置,谱面一歪、有阴影,就很容易数错一条线。

ChatGPT 应用读照片:同样列出第 1 到 4 小节的音符表,左手的两个音被框出:第 1 小节的 D3 和第 2 小节的 G3
ChatGPT 应用读照片。这次右手全对,但左手错了两个音:第 1 小节第二个音应是 A3,不是 D3;第 2 小节应是 B3,不是 G3。

模型还会改口。在照片那次对话里,它先把第 3、4 小节读低了一个音,后来让它移调时,它开头就说“更正我之前的读谱”,把这两个小节改对了。同一张图片,问法不同,读出的音也可能不同。

文件

直接问模型要“一个能播放的版本,或者一个 MIDI 文件”,它写出了 ABC 记谱(一种用文本记录音乐的格式),并建议我们粘贴到在线 ABC 播放器里。ChatGPT 应用做得更多:它用代码工具生成了第 1–4 小节的 MIDI 文件供下载。这个文件只是把模型读到的内容变成音符,所以第 3 小节那个错音也在里面,而且只有我们问到的这 4 个小节。仍然没有 MusicXML,也没有能看、能改的乐谱;想改一个音,得把 MIDI 拿到别的软件里打开,或者再问一遍。

ChatGPT 应用回应 MIDI 请求,给出下载卡片:G 大调小步舞曲第 1 到 4 小节,钢琴双手,G 大调,3/4 拍,110 BPM
ChatGPT 应用对 MIDI 请求的回答:它读过的 4 个小节做成的文件。我们查看了文件里的音:第 3 小节以 D5 开头,和上面的回答一样,而不是 E5。

简谱呢?

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

小步舞曲旋律的简谱,1=G,3/4 拍,八行数字,用圆点表示八度同一页简谱斜着拍下的照片,光线不匀
我们测试的简谱:左边是清晰的页面,右边是由它做成的照片。
每次的错音数,共 64 个音
模型清晰的简谱页面简谱照片
gpt-6-astra0, 0, 00, 0, 0
gpt-6.1-sol0, 0, 00, 0, 0
gpt-6-luna46, 25, 221, 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。

ScoreStarling 从 PDF 读出的小步舞曲,由乐谱直接播放

MusicXMLMIDI

连上 ScoreStarling 的 ChatGPT:左边是回复,说 PDF 已变成 32 个小节、203 个音的可播放钢琴谱;右边是乐谱面板,显示 Menuet in G 和播放按钮
同一份 PDF 在 ChatGPT 应用里交给 ScoreStarling 读:整首小步舞曲 32 个小节,在对话旁边打开成一份能播放、能编辑的乐谱。

手机照片

识谱引擎在我们那张拍斜的照片上失败了:它只找到 12 个小节、56 个音(共 203 个),把钢琴拆成了两件乐器,还把调写成了 C 大调。照片、手写谱、简谱和旋律谱,ScoreStarling 换一种方式处理:由助手看图,把音乐写成 ABC,再由 ScoreStarling 生成能播放的乐谱。这样做的准确度取决于助手读得准不准。gpt-6.1-sol 来做时,第一版错了 6 个音,在第 7 和第 8 小节。我们接着让它把乐谱和照片对照检查,它没发现这两个小节的问题,反而认定左手低了一个八度并整体挪了上去,结果错了 43 个音。

原谱

3

模型“检查”完照片读谱之后

3
第 1–4 小节。让模型把乐谱和照片对照后,它保留了右手,却把整个左手升高了一个八度(橙色),把原本正确的低音改错了。

如果可以,尽量给识谱工具 PDF 或平整的扫描件。手机的文档扫描模式会把谱页拉正、把光线调匀,比普通照片更接近扫描件;不过它能帮上多少,我们还没有测过。

结果对比

每次的错音数,2026年10月13日测试。多出来的音也算错误,所以错音数可能比总音数还多
方法A. 清晰 PDF(101)B. 手机照片(101)C. 肖邦(91)
仅 gpt-6-astra1, 2, 113, 1, 10, 0, 0
仅 gpt-6.1-sol1, 5, 011, 37, 180, 0, 2
仅 gpt-6-sol5, 1, 516, 13, 714, 42, 9
仅 gpt-5.6-sol5, 5, 323, 19, 2236, 59, 39
仅 gpt-5.6-terra4, 37, 520, 2, 12, 13, 2
仅 gpt-6-luna62, 58, 5867;两次拒答52;两次拒答
仅 gpt-5.6-luna87, 97, 8684, 110, 9391, 79, 85
ScoreStarling 识谱0(漏了一个倚音)失败:12 个小节、56 个音,调不对0
gpt-6.1-sol 写 ABC,ScoreStarling 生成乐谱—第一版 6 个;自查后 43 个—
你拿到的是什么
仅用 ChatGPTChatGPT 加 ScoreStarling
调号和拍号每次回答都对PDF 读对;照片读错
播放ABC 文本,或者应用里给的 MIDI 文件,要到别处打开在对话的乐谱面板里播放;可下载 MP3
MusicXML 和 MIDI应用里能给出所读小节的 MIDI 文件;没有 MusicXML有,乐谱解锁后即可
移调结果音符列表和 ABC移好调的乐谱,可播放、编辑和下载

三分钟检查任何 AI 读出的乐谱

不管是谁读的谱,都把结果当作草稿,重点抽查容易读错的地方。

  1. 把调号、拍号和第一小节的音和原谱对照。
  2. 看有没有整小节高了或低了一个音:把它的第一个和最后一个音和原谱对照。
  3. 检查小节中间的变音记号,以及它是否延续到同一小节后面的音。
  4. 检查左手最低的音有没有八度错误。
  5. 挑几个有附点音符或延音线的小节,数一数拍子。
  6. 看有没有漏掉倚音、装饰音和反复记号。
  7. 一边看原谱一边播放;错音听出来比看出来容易。

Claude 和其他助手

这次我们只给 ChatGPT 模型打了分。Claude 也能读图片,也能用同样的方式通过 MCP 连接 ScoreStarling,所以识谱、播放、移调和下载在 Claude 里同样可用。

用 ScoreStarling 识谱要花多少钱?

读 PDF 或图片免费:识谱、编辑、试听和生成新的 PDF 都不扣积分。MusicXML 和 MIDI 需要先解锁乐谱,每份乐谱一次性 15 积分;每个账号每月都有免费积分(2026年10月13日核实)。把录音转成乐谱是另一回事,见《ChatGPT 能把歌扒成乐谱吗?》。

参考资料

  1. Mutopia Project,Menuet in G, BWV Anh. 114,Allen Garvin 排版,公有领域。
  2. Mutopia Project,Walzer Nr. 10 h-moll, Op. 69 No. 2,Roland Goretzki 排版,公有领域。
  3. Audiveris,ScoreStarling 识谱功能所用的开源光学乐谱识别引擎。
  4. 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 里同样可用。

让 PDF 乐谱响起来