MPEcho: A Melody and Phoneme-Aware Generative Framework for Controllable Cover Song Generation
Wei-Jaw Lee, Hsuan-Yu Yeh, Ting-Yi Hu, Chih-Pin Tan, Fang-Duo Tsai, Yi-Hsuan Yang
cs.SD, cs.AI, eess.AS
2026-07-29
给 SongEcho 翻唱模型加音素对齐,配 Whisper 歌声标注器 Phonsa,音素错误率从 45.62% 降到 18.65%,旋律一致性几乎不掉。
翻唱生成(cover song generation,CSG)的目标是保留参考歌的旋律和歌词,把伴奏、音色、编曲这些其余成分重新生成。旋律这块当前最强的 SongEcho 已经做得不错,卡点在歌词。SongEcho 用音高曲线(F0)和「有声/无声」(V/UV)标记给模型提供线索。V/UV 只标当前这一帧有没有人声,不含任何音素信息,模型只能从上下文硬猜该唱哪个字。于是歌词唱得乱七八糟,音素错误率(phoneme error rate,PER)高达 45.62%——接近一半音素是错的。一首翻唱把旋律还原得很像,词却听不清,这条路线就站不住。
MPEcho 的思路是从歌声合成(singing voice synthesis,SVS)那边借工具。SVS 本来就先把歌词对齐到时间轴再生成声音,音素级的控制是标配。MPEcho 给 SongEcho 加了两个组件:
光有结构还不够,音素的时间戳从哪来?高质量「音频→音素」标注对很稀缺。作者顺手做了第二个东西:Phonsa,一个基于 Whisper 的歌声自动标注模型。相比之前的工作,它把建模从词级下沉到音素级,用分块自注意力替换 RNN(每块 500 帧、10 秒,50% 重叠),还往音素表里加了呼吸和边界 token。它在 M4Singer 和 Opencpop 上训练,用 CTC 加交叉熵的多任务损失。
音素的排列方式有讲究,作者对比了三种:词级、带填充 token 的 JAM 式、以及他们用的 SVS 式(音素级时间戳加 LR)。JAM 式非但没帮上忙,反而把 PER 拉到 0.7125,因为填充 token 干扰了模型。SVS 式才是对的。
推理时用多条件分类器自由引导,把文本、歌词、时变控制(旋律加音素)的引导分开加权,并用自适应投影引导(APG)。
Phonsa 的对齐质量(表 1):
| 模型 | 对齐 MAE↓ |
| MFA(基线) | 233.9 ms |
| Phonsa | 32.6 ms |
对齐误差从 233.9 毫秒降到 32.6 毫秒,约原来的七分之一。
CSG 主结果(表 2,PER 越低越好):
| 模型 | 条件 | PER↓ | 旋律 RPA↑ |
| SongEcho | 仅旋律 | 0.4562 | 0.5779 |
| MPEcho | 仅音素 | 0.2292 | 0.0667 |
| MPEcho | 旋律+音素 | 0.1865 | 0.5764 |
| ACE-Step 基线 | — | 0.4348 | 0.2581 |
加上音素条件后,PER 从 0.4562 降到 0.1865,相对降幅约 59%,而旋律一致性(RPA 0.5764 对 0.5779)几乎不掉。只有音素没有旋律的话 PER 也低(0.2292),但旋律崩了,两个条件缺一不可。参照模型 ACE-Step 的 PER 是 0.4348,MPEcho 明显更好。
主观听感(表 4,MOS,25 名听众)上,旋律+音素配多条件引导的综合评分(OA)3.57,旋律一致性 3.88,人声自然度 3.59,全部最高。
这等于证明了:把 SVS 那套成熟的音素对齐搬进新一代扩散式翻唱模型,能直接解决「词唱不对」这个老大难,还不用牺牲旋律。Phonsa 本身是个有独立价值的副产品,任何需要歌声音素对齐的任务都能用。对做卡拉 OK、音乐生成、翻唱工具的人来说,这是条现成的改进路径。它是一个扎实的工程改进,不是范式跃迁。
作者自己承认只支持单人场景,多人合唱、多语言音素、更细的韵律控制都留作未来工作。边界检测仍然是硬骨头,在 20 毫秒的严格容差下边界 F1 只有 0.534。另外所有方法的 CLAP 分数都偏低,作者归因于训练 CLAP 的数据和他们用的中文老歌分布不匹配。这说明现有的通用音频文本评测指标对这类中文歌声模型可能并不公正,客观结论需要打折看。论文也没有给与更多主流歌声或翻唱模型的直接横向对照,ACE-Step 是唯一的参照系。