模型在生成什么
音乐生成模型不是在编 MIDI 再渲染音源。它直接生成音频,通常是一串学到的 token,由解码器变成波形 —— 这意味着编排、演奏和录音是一起融合出来的。你事后没法把贝斯单独关掉,因为根本没有贝斯轨,只有一段听起来像有贝斯的混音。
这一个事实就能解释大部分让人意外的行为。速度稳定,是因为模型学到了音乐有脉搏,不是因为后台跑着一个节拍器;乐器进出得合理,是因为训练数据就是这样,不是因为你编排过;而你也没法从一个从未分开过的东西里要分轨,所以分轨(stem separation)是事后独立跑的一步。
时长在音乐生成里是真实约束,不是形式。模型有一个被训练去填满的窗口,要求远超这个窗口,得到的要么是一次硬切断,要么是漂移 —— 曲子丢掉自己的调性和脉搏。
把「音乐事实」写进提示词
提示词里可靠的部分,是一个乐手能照着执行的那些;不可靠的部分,是甲方会说的那些。
- 速度。 给数字:
68 bpm。「慢」这个词会被解释成横跨三十拍的区间。 - 调性与调式。
D minor写上去不花钱,而且强烈塑形结果。 - 点名乐器。
solo cello、felt piano、upright bass。点名的乐器被遵循的程度远高于流派标签。 - 排除项。
no drums、no vocals。否定句是能拿到的最强杠杆之一,因为默认编排通常比你想要的更满。 - 一个结构事件。
a slow felt piano entering at the halfway point给了曲子一个去处;要求四个段落通常换来一锅粥。 - 录音质感。
warm analogue tape、close-miked, dry。它对混音的影响不亚于音符本身。
流派词在音乐生成里适合当起点的锚,不适合当描述,因为任何流派标签底下都盖着一堆听起来毫不相似的编排。先给一个,然后立刻用乐器和速度把它框住。
它在视频项目里的位置
多数视频活里,决定性的问题是「这段音乐要对画面做什么」,而这决定了采用哪条路。
垫在对白底下的配乐是最强的用法。要求稀疏配器、无人声、只做一次推进,然后按你成片的精确时长生成好几条。因为生成很便宜,从八条里挑一条胜过反复打磨一条。
必须卡画面的东西要难得多。模型不接受时间码,所以某一帧上的一个重音只能靠「生成得比需要的长、再剪到位」来实现。计划里应该写「修剪」,不是「靠提示词」。
带歌词的歌是那个独立歌词字段真正体现价值的场合。词写在那儿,风格提示词保持纯音乐,并且预期要为吐字重摇几次。元音比辅音撑得住,而生僻词往往是一条人声崩掉的地方。
最后一条实用提醒是响度。音乐生成出来的曲子经常贴着满刻度、几乎没有余量,所以一条单独听起来还不错的曲子,在混音里会和对白打架。把它压下来、再放到人声底下重听一遍,这是常规步骤,不是生成质量不好的信号。