tldr;
将降E大调的钢琴谱图片转为C大调,使用以下工具链即可实现:
- Upscayl(非必须):提升谱图清晰度
- Audiveris:识别五线谱并生成MusicXML文件
- MuseScore:进行移调操作并导出MIDI
- Pianovisual.com:将MIDI转为可视化钢琴演奏动画
一、一个天真的念头
最近在看《万物生灵》,主题曲很好听,花小猫最近也一直在联系电钢琴,感觉难度应该在能力范围之内,便建议说她能不能也学一下这首曲子。
她还真在b站某视频的评论区下载得到一张五线谱,但苦于是 ♭E 大调的,不会弹,看到她尝试用豆包去转换成 C 大调 1,知道会失败,果不其然,只能得到文本描述,没有用。
二、聊天助手?差点意思
看来只好我出手了,我暗地里试了一下。心想如果有好的标记语言,可以试试让AI把五线谱转成文本标记语言,再转调,然后渲染,就能得到想要的调了
了解到有一个 musicxml,开始让豆包把图片转成 musicxml。 我急不可待地把图片上传到豆包,并粗暴地丢下了这一行提示词:
转成musicXML,给我代码块
试了几个 AI,都没出息,不能成功得到完整准确的结果。
但豆包告诉我完整文件需通过OMR 工具(如 Audiveris、ScoreFlow) 识别全谱后,并人工校对准确性。生成后可导入 MuseScore、Finale 等软件验证格式正确性。
三、老派工具的真本事——OMR 识别与修正
于是我下载老老实实下载了 Audiveris 和 MuseScore ,没想到还真把问题解决了
Audiveris 扫描曲谱:一开始图片不够高清,Audiveris会提示清晰度太低,劝我放弃,点默认按钮就放弃识别了,意识到这点后我又点了另一个按钮,坚持扫描,识别下来又很多错误,我也不会修正。
于是我意识到必须得搞个高清图才行,我用了 upscayl 去升级图片清晰度,将放大四倍的图片再导入 Audiveris,识别后效果非常不错,绝大部分的音符都识别得很准确,后来意识到有些符号的作用域不太对,修正后就得到准确的谱子,可以到处为 mxml 了
但 Audiveris 功能似乎主要局限于识别谱子,不能转调,又下载了 MuseScore ,从官网先是 musehub,又从里面安装了 MuseScore。
在 MuseScore 中打开 mxml 格式的谱子之后,点击顶部菜单栏的工具选项,在下拉菜单中找到移调功能并点击,在弹出的对话框中,就可以转换成 C大调。
然后就可以导出成图片或者 pdf 了
琴键动起来
可是有的还是不会弹,要是把谱子演绎的过程可视化出来,显示出什么时候该谈哪个琴键就好了。其实 MuseScore 本身也是可以演奏的,只是不能显示琴键。后来找到了 https://pianovisual.com/ 这个网站,可以加载mid 文件,并可视化地演奏钢琴谱。mid文件从 MuseScore可以导出。
ps. 去哪里找曲谱:https://musescore.com/song/all_creatures_great_and_small-2604917
Footnotes
-
钢琴谱的调式分为大调和小调两类,核心是围绕不同的主音构建音高关系 ↩
