• 投稿

qwen3-tts昔涟微调

664
0
2026-09-18 19:08:36
含AI生成内容
25
12
24
9
感谢@简单的云游四海 大佬解包的351条游戏中昔涟的语音资源 最终成果 音色还原:长句 ASR 与原声相似度 1.00(连 ASR 分不清的"负世/复试",模型和真人念得一模一样) 长文测试:192 字独白逐句合成,8/8 全部通过,无跑飞、无音色漂移 已上线:部署到服务器 P104 老卡(fp16),我的 bot 已经在用她说话了 踩过的坑(按剧情顺序) ① 官方微调脚本,直接跑是纯噪声。 Qwen3-TTS 官方的 sft_12hz.py 至少埋了 4 个 bug:缺 text_projection 调用、talker 和 sub_talker 双重 label-shift、索引错位。最阴险的是——不修也不报错,loss 照样正常下降,练完一合成才发现全是杂音。 ② 学习率,官方 README 也是错的。 README 写 2e-5,照着练=纯噪声。实际要用 2e-6(官方后来自己在 commit 里改了,但 README 没改)。社区被这个坑过的人排着队。 ③ 12G 显存跑 1.7B 全参,AdamW 必 OOM。 冒烟测试只跑 3 步看到 7.6G 以为稳了,正式跑直接 17.5G 爆炸——优化器状态张量是第一步之后才创建的。换 Adafactor 才压到 7.2G。另外显存碎片会让速度悄悄劣化 4 倍,重启进程就好。 ④ 自己修 bug 的时候,把官方的 0.3 系数弄丢了。 重构 loss 计算顺手写成了 codec_0_loss + sub_talker_loss,官方是 + 0.3 *。不报错、loss 正常、练完还能用——直到对照专业配方才发现,又重训了一版。重构代码后必须和原版逐行 diff 数值。 ⑤ ASR 验收会骗人。 拿合成音频跑 ASR 对原文,只有 8/20 一致,差点以为训练失败。把原声也丢给 ASR 才发现:原声也被听成"小界""复试"——是 ASR 分不清同音词,不是模型念错。正确姿势是拿原声 ASR 结果当基线,模型和基线比。 ⑥ 模型把训练数据学得比我还彻底。 为了教它停句,给每条音频末尾补了 1 秒静音——它学会了,每次输出结尾都带 1 秒静音;游戏配音里的呼吸声它也学会了,开口先叹气(v6 那声叹气还有点重影,被我耳朵抓包)。 ⑦ 欠训练的模型不会"闭嘴"。 不会输出 EOS,就一直生成到上限:38 秒的音频里,后 29 秒全是静音。练到 5 轮以后自愈。 ⑧ 部署服务器的连环坑。 服务器是块 2016 年的老卡 P104(Pascal 架构)。本地 50 系新显卡必须装最新的 CUDA 12.8 版 PyTorch(cu128),但 cu128 编译时只打包了新显卡的计算指令,老卡的指令集根本不在里面——模型能正常加载,一推理就报 no kernel image is available。只能给服务器单独装回还带老卡指令的 cu126 版 torch,推理精度也从 bf16 降级成 fp16(老卡不支持 bf16)。这还没完:pytorch 官方源直连慢到 15 秒下不完 30MB;换国内镜像用断点续传,把 wheel 文件拼接损坏了;最后发现这台机器的 rm 删文件居然进回收站,磁盘空间死活不释放。 一句话总结 微调 TTS 的成功率 = 数据质量 × bug 修复 × 学习率 × 验收方法,四个乘数任何一个为零,结果都是零——而且它不报错。
不人云亦云,坚持自己的立场,公平的看待每一次争议! 杂种区UP主,年更鸽子UP主
客服
顶部
赛事库 课堂 2021拜年纪