M15 · 单路分解器:DiT1 + DiT2 一次前向出双速度
|
|
| 状态 |
❌ 负结果(2026-08-28)——中立化支未能生成可用语音 |
| 一句话 |
单一情感 reference、单一 LLM token 序列;DiT1 出 v(不监督),级联 DiT2 分解出同一空间里的 \(v_A\)(情感)与 \(v_B\)(中立),\(v(\alpha)=(1-\alpha)v_B+\alpha v_A\) |
| 上游 |
← M14 §4.7:token 不一致是中段 α 音质塌陷的原因;共用骨架后塌陷消失 |
| 对照 |
v4 · M14-λ0(own 双路) |
TL;DR
负结果:情感端可用,中立化支崩坏。
- ❌ α=0 端 MOS 1.27(v4 3.74 / M14-λ0 3.69)——\(v_B\) 从纯噪声积分出的"中立语音"
不可用,整体 CER 0.34、SECS 无法计算
- ✅ 情感端正常:α=1.0–1.5 的 MOS 2.81–2.97(≥v4 同段),delta 0.529、受控 7/12
- 🔍 机制:\(\mathcal{L}_B\) 明显欠收敛(1.76→1.30,同预算下 M14 的 L_fm ≈0.45)——
"从情感条件凭空生成中立版"是生成任务而非回归任务,比双条件难一个量级;
探针 rank_A 5.4(双路方案 30+)、cos(A,GT) 0.71–0.84(M14 0.90–0.95)——
\(A\) 塌成低秩方向,分解质量全面低于双条件方案
- 📌 判据回看:§4.7 那个"中段 α 塌陷"确实没有出现(MOS 沿 α 单调上升不再是 V 形),
同空间加减的思路本身兑现了——但代价是 \(v_B\) 端整体不可用,得不偿失
1 目的
双路推理的根本问题是两支条件不同、不在同一空间(M14 §4.7:
own 双路中段 α MOS 塌到 1.30,共用 token 后无谷)。本实验把"分解"从推理时的条件工程
改为网络能力:单一前向内输出可直接加减的 \(v_A/v_B\)。
2 实验设置
2.1 架构
一条链(训练与推理同构):
情感 reference ─→ LLM ─→ token(唯一骨架)
DiT1(y, mask, μ, t, spks, cond) ─→ v ∈ R^{80×K} ← 不监督,联训
DiT2(y, [cond‖v], μ, t, spks) ─→ Δ ∈ R^{160×K} ─→ Δ_A, Δ_B
v_A = v + Δ_A, v_B = v + Δ_B ← 残差参数化
| 项 |
值 |
| DiT1 |
CosyVoice3 DiT 原架构(331M),基座 flow.pt 初始化,权重放开 |
| DiT2 |
同架构克隆(331M):v 沿通道并入 cond(cond 80→160),InputEmbedding.proj 320→400 维(v 对应列零初始化,其余列按原位复制);proj_out 80→160(整体零初始化);其余权重从基座 flow.pt 复制 |
| 输出参数化 |
残差:\(v_A = v+\Delta_A\)、\(v_B = v+\Delta_B\)。init 时 \(\Delta\equiv 0\) → 整个级联在任意 α 下 ≡ 基座模型;DiT1 从第 0 步经残差连接获得梯度(隐式目标为 \((u_e+u_n)/2\) 均值速度) |
| 可训参数 |
≈662M(两网全开;LLM / hift 冻结) |
| 中间 v |
无损失项 |
2.2 训练
数据复用 data/m13_cache(21,301 条,只取情感骨架侧:gen_token_e、
情感前缀 pre_token_e / pre_feat_e / xvec_e;中性前缀字段不使用)。每步:
1. 取 batch,单支输入:token = pre_token_e ⊕ gen_token_e,条件 = 情感前缀 + xvec_e
2. 采样 t ~ U[0.05, 0.95] 与 α ~ U[0, 1];
插值目标 x_α = (1−α)·x1_neu + α·x1_emo(生成段;前缀段用 pre_feat_e)
3. CFM 构造 y = (1−(1−σ)t)·z + t·x_α ← x_t 取自 α 混合轨迹,覆盖推理分布
4. v = DiT1(y, …);(v_A, v_B) = DiT2(y, v, …)
5. 损失(生成段):L = ‖v_A − u_e‖² + ‖v_B − u_n‖²,
u_e = x1_emo − (1−σ)z,u_n = x1_neu − (1−σ)z
6. AdamW 联合更新 DiT1 + DiT2,grad_clip=1.0
| 参数 |
值 |
| 并行 |
DDP 4 卡 × per-rank batch 2(torchrun,全局 batch 8 不变——与 v4/M14 的步数、lr、梯度逐步等价) |
| epochs / 步数 |
6 / ≈12,768(全局 batch 8,样本见次数 ≈102k,对齐 v4 的 0.95×) |
| lr / 优化器 |
1e-5 / AdamW(两网同一学习率) |
| grad_clip / seed |
1.0 / 1234 |
| 日志 |
每 100 步:L_A、L_B、grad_norm、K、‖v_A−v_B‖ 相关诊断(A_share / cos_A_B,A=v_A−v_B、B=v_B) |
| 输出 |
outputs/m15/,每 epoch 存 ckpt |
2.3 推理与评测
1. LLM 一遍(情感 reference)→ token;构造唯一一套 flow 输入(情感 prompt,自然音频)
2. 每个 Euler 步(10 步):v = DiT1(y);(v_A, v_B) = DiT2(y, v);
生成段 v_ctrl = (1−α)·v_B + α·v_A,前缀段用 v
3. HiFT 声码
| 项 |
值 |
| 测试集 / 规模 |
p6_test_zh.jsonl,12 组 × 7 α = 84 条(同 M14 选样种子) |
| 指标 |
同 M14(delta / 受控 / 负向 · CER · SECS · UTMOS 含 α=0 列) |
| 对照 |
v4 · M14-λ0(own 双路)· M14 §4.7 单组三策略 |
| 探针 |
M5 A-结构探针,A = v_A − v_B(单前向即得,无需双条件) |
3 资源
训练 DDP 4 卡(卡 0–3)约 2 小时;推理每步 DiT1+DiT2 级联两次前向,84 条约 20 分钟;评测 30 分钟;探针 20 分钟。
4 结果
🎧 M15 音频全量对照(v4 / M14-λ0 / M15 三臂 × 84 条)
4.1 主表
| 臂 |
delta |
受控 |
负向 |
CER |
SECS |
MOS |
MOS@α=0 |
| v4 |
0.454 |
6/12 |
1 |
0.043 |
0.724 |
2.95 |
3.74 |
| M14-λ0(own 双路) |
0.733 |
9/12 |
0 |
0.107 |
0.573 |
2.75 |
3.69 |
| M15 |
0.529 |
7/12 |
3 |
0.340 |
无法计算 |
2.07 |
1.27 |
按 α 分列的 UTMOS:
|
0 |
0.25 |
0.5 |
0.75 |
1.0 |
1.25 |
1.5 |
| v4 |
3.74 |
3.45 |
2.04 |
3.14 |
2.76 |
2.77 |
2.74 |
| M14-λ0 |
3.69 |
2.41 |
1.29 |
2.06 |
3.21 |
3.32 |
3.31 |
| M15 |
1.27 |
1.27 |
1.31 |
1.97 |
2.91 |
2.97 |
2.81 |
M14 的失败模式是中段塌陷(V 形,α=0.5 谷底);M15 的失败模式是中立端崩坏
(单调上升,α=0 谷底)——同空间加减消除了 V 形,但 \(v_B\) 端自身不可用。
4.2 训练曲线

|
首 5 → 末 50 |
| L_A(情感支) |
1.294 → 0.825 |
| L_B(中立化支) |
1.755 → 1.297(M14 同预算 L_fm ≈0.45——差 ~3×,明显欠收敛) |
| A_share |
0.014 → 0.057(GT 参照 0.095,未达) |
| grad_norm |
末 50 均值 33.7(M14 约 3–6——级联梯度大一个量级) |
4.3 探针
|
M14-λ0(双条件) |
M15(分解器) |
| rank_A |
34.3 |
5.4(塌成低秩) |
| cos(A, x1_emo−x1_neu) 中位(t=0.1/0.5/0.9) |
0.90 / 0.93 / 0.95 |
0.71 / 0.82 / 0.84 |
| ‖A‖/‖GT‖ 中位 |
0.92–1.02 |
0.72–0.87(收缩) |
| 专一性 gap |
−0.022 |
−0.004(同样 ≈0) |
5 结论
| 项 |
结论 |
| 同空间加减 |
✅ 思路兑现:M14 的中段 α V 形塌陷在 M15 中不存在(MOS 沿 α 单调) |
| 中立化支 |
❌ 失败。"从情感条件凭空生成中立版"是生成任务而非回归任务:L_B 欠收敛 3×、A 塌成 rank 5.4、α=0 端 MOS 1.27 不可用 |
| 净判定 |
负结果。分解器换掉了 M14 的失败模式(中段塌陷 → 中立端崩坏),没有净收益 |
| 后续 |
→ M15-E 五路探索(条件dropout / 随机重置诊断 / MLP head / 课程式 / 续训加权) |
| 记录 |
残差初始化与 DDP 4×2 工程上均验证可用(init 级联 ≡ 基座、逐步等价),可复用于后续实验 |