你弹键盘,AI 弹第二架钢琴。难点不只是让它接着生成音乐,还要让它跟上你的和弦和速度,别跑调,也别挤进你正在演奏的音域。Reddit 用户 GGAllin43 展示的 Duetto 原型,用预训练的 Anticipatory Music Transformer 实现了这件事,而且没有微调——也就是没有用新数据继续训练、改变模型本身。
它处理的是 MIDI 式的符号音乐,即音符、时值和力度等离散事件,而非直接生成声波。演奏者弹奏时,系统持续追踪调性、和弦与速度,并在模型采样下一个音符前调整 logits——模型给各个候选音符的分数:压低调外音和演奏者手边音域,提高和弦音及延伸音;演奏者停下时,再把输出引向旋律区。系统还会轻微鼓励延续上一乐句的音程,让回应更像接话。
据作者自述,模型会提前约一秒生成;和弦变化时,系统丢弃原计划并重新采样,可在 Jetson Orin Nano 上运行。值得注意的是,这些引导幅度目前全靠听感手工调节。它证明了低成本实时合奏可以不重新训练模型,但控制质量仍依赖人工规则。