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。

只有 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 搬它 比搬条件破坏更大)。全部收益来自内容对齐。
⚠️ 边界 1:这条只说「字重新听得清了」,不蕴含「混合可用」 —— 混合配方 UTMOS 1.26–1.44 vs 纯情感 3.29,音质全线不可用(→ F7)。
⚠️ 边界 2:混合配方的情感分(0.31–0.39)读不出结论, 因为指标在该区间饱和(→ F5)。
⚠️ 边界 3:n=3 句,按约定 属弱样本量;定性结构(DTW 远好于其余)可信,具体数值不可信。
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:混合音质为何仍不可用。