跳转至

M3 · 调色板六臂:条件侧 vs 状态侧 × 对齐方式

状态 ✅ 成立
日期 2026-08-14
一句话 DTW 内容对齐使混合 CER 降低 8–12 倍,而「改条件还是改状态」本身无关紧要
上游 M1 截断失败、M2 挑参考证伪
下游 M4 训练期能否根治、M5 A 到底长什么样

1 动机

M1/M2 排除了截断与挑参考。 剩下的路是在混合阶段处理长度失配,有两个可改的地方:

  • 条件侧:把 token / \(\mu\) 重采样到共同长度 —— 模型看到被改造过的输入
  • 状态侧:只搬运积分变量 \(x\),条件保持原生

原始立论:状态侧应当更好,因为模型只见训练时见过的输入。

2 假设

H-a:内容对齐(DTW)优于均匀拉伸。 H-b:状态侧优于条件侧(因条件保持原生)。

若 H-b 不成立,说明「模型看到原生条件」不是关键因素,收益另有来源。

3 设计

自变量 ① 改条件 / 改状态 ② 对齐方式(无 / 均匀 / DTW)
控制量 同一套 LLM 种子、同 ckpt、同 11 配方、wav 同名
对照 截断臂(已否决基线)+ 纯情感自检臂(理论上六臂必须完全相同)
判据 混合配方的 CER(字是否听得清)为主;UTMOS / SECS 辅
n 3 句 × 11 配方 × 6 臂 = 219 条(D1 另含 21 条 α 扫描)
改造对象 对齐
C_truncate 条件(砍到最短)
C_warp_token 条件(token 重采样) 均匀
C_warp_feat 条件(μ 插值) 均匀
D0_uniform 状态 均匀
D1_dtw 状态 DTW
D1_dtw_nearest 状态(最近邻搬运) DTW

4 运行

bash emo/exp/launch_palette_v2.sh          # 六臂并行,~3 min
bash emo/eval/run_eval_v2.sh paraformer    # 评测,~6 min
python emo/eval/compare_arms.py            # 对照表
产物:outputs/palette_v2/(219 条)、_eval/(报告 + 九类分布存档)

5 结果

自检臂 —— 纯情感配方(15 条/臂)

全部六臂 情感 CER SECS UTMOS
0.7799 0.0172 0.8493 3.2861

六臂逐条完全相同。 单分支走恒等 warp,理应如此 —— 这证明后面所有差异确实只来自混合配方,而非别的扰动。

混合配方(18 条/臂,单位:比例;n=3 句)

情感 CER ↓ SECS ↑ UTMOS ↑
C 截断(基线) 0.368 0.662 0.466 1.35
C token 重采样 0.351 0.430 0.544 1.40
C μ 线性插值 0.364 0.447 0.549 1.37
D 均匀 warp 0.310 0.562 0.342 1.26
D DTW 0.365 0.053 0.613 1.44
D DTW + 最近邻 0.389 0.077 0.618 1.43

天花板参照:纯情感配方 CER 0.017、UTMOS 3.29。

六臂混合 CER 对比

只有 DTW 内容对齐把 CER 拉回天花板附近。 均匀 warp 无论作用在条件侧(橙,0.430/0.447) 还是状态侧(橙,0.562)都停在 0.4–0.6 区间;换成内容对齐(绿)直接掉到 0.053。 蓝色的截断基线最差 —— 与 M1 的听感一致。

定性 —— 只差对齐方式,听得出量级差别

同一句、同一配方(mix_Hap.5_Ang.5,Happy 180 帧 vs Angry 260 帧,失配最重的一对)、 同一种子,只换对齐方式:

截断(CER 0.662) 均匀 warp(0.562) DTW 内容对齐(0.053)

前两条听不清在说什么,第三条能听清字。 但三条的音质都远不如纯情感参照: —— 这正是边界 1要说的:对齐解决了可懂度,没解决音质。

趋势 —— 时长随 α 连续变化

0003_text00030(Neutral 170 帧 / Sad 238 帧):

α 0.00 0.25 0.50 0.75 1.00 1.25 1.50
\(K^*\) 170 187 204 221 238 255 272
时长 s 3.40 3.74 4.08 4.42 4.76 5.10 5.44
CER 0 0 0 0 0 0.083 0.083

α 与输出时长

时长随 α 严格线性,外推段(α>1)仍在同一条直线上。 这是构造保证的(\(K^*=\sum_e w_e K_e\) 是凸组合),图的作用是确认实现无误、 且 α>1 时未被 \(K^*\) 夹紧规则截断。

定性 —— 时长变化直接可听(α = 0 / 0.5 / 1.0 / 1.5):

α=0.00(3.40s) α=0.50(4.08s) α=1.00(4.76s) α=1.50(5.44s)

语速逐档变慢,且 α>1 时继续变慢而没有垮掉。 ⚠️ 但情感强度是否也逐档变强,现有指标读不出(见 F5): emotion2vec 在 α=0/0.25/0.5 一律判「中立 1.00」,α≥0.75 一律判「难过 1.00」, 是个阶跃而非渐变 —— 而时长明明在连续变化。

6 结论

H-a 成立,H-b 不成立。

均匀 warp 时: D 改状态 (CER 0.562)  比  C 改条件 (0.430)  更差
DTW  warp 时: D 改状态 (CER 0.053)  远好于两者

改状态本身没有优势,反而更危险(状态就是正在成形的信号,用错的 warp 搬它 比搬条件破坏更大)。全部收益来自内容对齐。

⚠️ 边界 1:这条只说「字重新听得清了」,不蕴含「混合可用」 —— 混合配方 UTMOS 1.26–1.44 vs 纯情感 3.29,音质全线不可用(→ F7)。

⚠️ 边界 2:混合配方的情感分(0.31–0.39)读不出结论, 因为指标在该区间饱和(→ F5)。

⚠️ 边界 3:n=3 句,按约定 属弱样本量;定性结构(DTW 远好于其余)可信,具体数值不可信

→ 升格为 F1F2F7

7 坑

  • 启动脚本把 set -u 放在 source env.sh 之前 → 六臂一个都没起来(静默退出)。 env.sh:$LD_LIBRARY_PATH,新 shell 里该变量无绑定。
  • mix3 三情感权重和为 1 → Neutral 权重 0 被剔出有效分支,但它正是 DTW 锚点。 修法:锚点只定义共同时钟,允许权重为 0
  • 六臂并发各下载一份 392 MB 的 UTMOS 权重(2.7 GB 冗余,抢同一条代理带宽)。 已加串行预热
  • M1 的口径差异:本轮按 |w|>1e-8 过滤有效分支, 故纯情感配方不再被截断 —— 这正是自检臂能完全一致的原因。

8 引出

M4:训练期做时间归一化能否根治? → M5:\(A\) 到底长什么样,为什么对齐这么关键? → OPEN G2:混合音质为何仍不可用。