用 Opus 5.5 生成乐谱并用 SoundFont 渲染视频配乐
作者用 Opus 5.5 解析《二泉映月》简谱生成 MIDI,再用 fluidsynth 加 SoundFont 渲染成多乐器演奏,为视频配乐。
在用 Opus 5.5 做视频配乐的时候,发现了一个很有意思的生成音乐的办法:用 SoundFont,把一份乐谱直接变成各种乐器的演奏,钢琴、吉他、小提琴、二胡,多声部的话甚至可以是一整个乐队。 SoundFont 是什么? 简单说,就是一个"录好的乐器"。有人把一台真钢琴的每个键、从很轻到很重的不同力度,一个音一个音录下来,打包成一个 .sf2 文件。之后只要告诉它"在第几秒、用多大力度、弹哪个音",合成器就从这些录音里挑出对应的那一个放出来。 它不是 AI,没有任何"生成":音是真乐器录的,乐谱写什么就弹什么,一个音都不会错。一首四五分钟的曲子,普通笔记本几秒钟就渲染完,不需要显卡。网上有大量免费的 SoundFont,比如 Salamander 三角钢琴(雅马哈 C5,1.2 GB)、FreePats 的西班牙古典吉他,还有 GeneralUser GS,一个 30 MB 的文件里装了 128 种乐器。 步骤 1. 解析乐谱:把简谱、五线谱或 ABC 记谱里的每个音,转换成音高和时值。我这次是把杨荫浏记谱的《二泉映月》简谱逐小节读出来(52 小节,倚音都保留)。 2. 生成 MIDI 文件:MIDI 本身不是声音,而是一份"演奏指令":几点几分,按下哪个键,多大力度,按多久。和弦伴奏、吉他轮指、颤音、渐慢,都可以在这一步写进去。 3. 选择 SoundFont:决定这份指令由什么乐器来"演"。同一个 MIDI,换一个 .sf2 文件,就从钢琴变成吉他。多声部的话,每个声部可以指定不同的乐器。 4. 生成音频:用开源合成器 fluidsynth,一行命令就行: fluidsynth -ni -F out.wav guitar.sf2 song.mid 下次需要一段钢琴曲, 把谱子交给你的Opus5.5, 让他给你原封不动的给弹出来。
这条是引用着另一条写的:x.com/michaelzsguo/status/2108759419995422977