M12 · TSM 等长对 + 完整双路:去掉 DTW 的缺陷¶
| 状态 | ✅ 完成(2026-08-27) |
| 一句话 | 用保音高变速(TSM)把中性录音对齐到情感时长,两支各用各的 token 与 GT训练;推理走完整双路(LLM 跑两遍),末端用多种 resize 方式对齐长度 |
| 上游 | ← M10 的 α=0 音质代价(UTMOS 3.74→3.22,DTW 帧间插值所致)· 用户提出 TSM 方案(2026-08-27) |
| 对照 | M10 λ=0(DTW 目标 + 共享 token) |
TL;DR¶
H1 部分通过 / H2 通过 / H3 有排序,外加一个计划外的强发现。
- ✅ TSM 训练目标修复了 DTW 的代价(E1 vs M10-λ0):CER 0.066→0.046、SECS 0.660→0.705、 MOS@α=0 3.17→3.35 —— 三项全部向 v4 回收大半,长度断言 0 失败
- 🚨 计划外发现:推理时把参考 prompt 换成 TSM 音频是毁灭性的: 仅此一项改动(E1→E2)就让 MOS@α=0 3.35→1.36、CER 0.046→0.220。 E3–E5 首轮全军覆没即因此;换回自然 prompt(E3n–E5n)后 MOS@α=0 回到 3.48–3.81。 训练侧 TSM 前缀无害(E1 就是这么训的),坏的只是推理时的 TSM 条件
- ✅ 完整双路可行:E3n/E4n/E5n 的 delta 0.586、受控 7/12、负向 0 —— 与 M10 持平; E4n 的 MOS@α=0 3.81 超过 v4 的 3.74
- ⚠️ 双路的代价在可懂度:CER 0.107–0.152(E1 只有 0.046)、SECS 0.46–0.57 —— 中性支 resize 伤内容
- 📊 H3 排序:token 重采样(E3n) ≈ μ插值(E5n) > 状态warp(E4n)(后者 MOS@α=0 最高但其余全最差)
- 规模:缓存 21,301 条(断言失败 0)· 训练 2×10,640 步 · 推理评测 8 臂 672 条 wav · 探针 36 测量
1 动机:M10 的两个残留问题¶
- DTW 目标的音质代价。M10 的
x1_neu是中性 mel 经 DTW 路径做帧间线性插值得到的 —— log-mel 上插值抹糊瞬态,α=0 的 UTMOS 从 3.74 掉到 3.22(§8.5)。 - 共享 token 抹掉了节奏情感。M10 两支共享情感的
gen_token, 中性支被迫用情感的时序骨架。但 token 的节奏本身就是情感的体现 (LLM 决定说多快、哪里停顿)——共享骨架等于把这部分信号焊死。
用户决策(2026-08-27):回到完整双路。训练两支各用各的 token 与 GT; 推理 LLM 跑两遍,长度不一致在末端用 resize 解决(成本低,可多方案并测)。
2 设计¶
2.1 数据构造(替代 DTW)¶
对每个 (key, emotion) 训练对:
中性录音波形 ──TSM(保音高变速)──> 时长 = N_e/25 秒(精确到 40ms 整数倍)
└──> 重新过 speech tokenizer → gen_token_n(assert 恰好 N_e 个)
└──> 重新提 mel → x1_neu (assert 恰好 2N_e 帧)
- 情感支完全不动(原始录音的 token + mel)
- 两支都是"真实音频 + 自洽的 (token, mel) 对"——M10 的中性支是 「情感 token + 插值 mel」,两样都不是真的;这是本实验最大的改进
- 中性前缀录音同样 TSM 到情感前缀的时长 → 两支总长相等、
RoPE 绝对位置对齐(DiT 用
arange(seq_len)的绝对位置,前缀不等长时 生成段在两支中落在不同位置,A里会混入纯位置分量) - 形变过滤沿用 M10:
|N_e/N_n − 1| ≥ 0.40剔除
2.2 TSM 方法选择(冒烟已完成 ✅)¶
50 条 (key,emo) 对、比例覆盖 0.6–1.7×,两种方法对比:
| 方法 | token 数精确命中 | CER(原始 0.0066) | 听感判定 |
|---|---|---|---|
| librosa 相位声码器 | 50/50 | 0.0137 | ❌ 用户否决(发虚) |
| pytsmod WSOLA | 50/50 | 0.0262 | 未送听 |
| 直接缩放(重采样) | —(时长精确) | — | ❌ 变调,说话人身份被破坏 |
| Rubber Band R3(追加) | 50/50 | 0.0051 ← 低于原始 | ⬜ 待用户判定(§4) |
~~选 librosa 相位声码器~~ → 本轮 M12 用的是相位声码器(追加发现时训练已完成)。 R3 重建已立项为 M13(含 λ 平行扫描),主要预期收益: E1 的 MOS@α=0(3.35)继续向 v4(3.74)回收——§5.3 已证明推理条件端对 TSM 伪影极其敏感, 训练目标端更干净的 mel 理应同样受益。
2.3 训练:两个臂(λ_ortho = 0,8 卡中的卡 0/1)¶
| 臂 | 中性支 token | 中性支目标 | 隔离的变量 |
|---|---|---|---|
| M12a | 共享情感 gen_token_e(= M10 做法) |
x1_neu(TSM) |
vs M10-λ0:只有 DTW→TSM |
| M12b | 自己的 gen_token_n |
x1_neu(TSM) |
vs M12a:只有共享→自有 token |
其余与 M10 完全相同:同起点 v4_epoch5.pt、epochs 5、batch 8、lr 1e-5、seed 1234、
共享 \(t\)、共享生成段噪声(\(K_g\) 两支相等,天然可共享)。
λ 取 0 依据 M11a(正交正则与情感可控性无关)。
2.4 推理:五个评测臂¶
LLM 跑两遍时长度会不同(B0:采样噪声地板 1.288×),在末端用三种 resize 对齐:
| 臂 | ckpt | token 来源 | 长度对齐方式 |
|---|---|---|---|
| E1 | M12a | 共享情感 token | 无需(= M10 评测配置,逐项可比) |
| E2 | M12a | 共享情感 token | + 中性参考TSM 到情感参考时长(测前缀对齐的作用) |
| E3 | M12b | 双 LLM | 中性 token 最近邻重采样到 \(N_e\)(C1 式) |
| E4 | M12b | 双 LLM | 状态 warp 混合(D0 式,\(K^\*=\alpha K_e+(1-\alpha)K_n\),时长随 α 连续变化) |
| E5 | M12b | 双 LLM | 中性 \(\mu\) 生成段线性插值到 \(2N_e\)(C2 式) |
E3/E4/E5 共用同一批 LLM 输出(种子固定:情感 seed、中性 seed+100), 中性参考均 TSM 到情感参考时长(与训练一致)。 评测同 M10:P6 held-out 中文、12 组 × 7 α、eval_suite 原口径。
2.5 判据¶
| 假设 | 指标 | 通过条件 |
|---|---|---|
| H1 TSM 修复 α=0 音质 | MOS@α=0 | E1 相对 M10-λ0 的 3.17 显著回升(目标 ≥3.5;v4 基线 3.74) |
| H2 自有 token 保住情感控制 | delta / 负向组数 | E3–E5 不劣于 E1 |
| H3 resize 方式的排序 | 全指标 | E3 vs E4 vs E5 互比,选出后续默认 |
⚠️ 口径警告继续生效:delta 近二值(M10 §8.5),
读数以「负向组数、MOS@α=0、CER」为主,delta 只作参考。
3 已知不确定点(跑前登记)¶
- 推理端 token 重采样 vs 训练端重新 tokenize 的分布差:训练的
gen_token_n是 TSM 音频重新过 tokenizer 的真实序列;推理 E3 是对 LLM 输出重复/丢弃。 真实慢速语音的 token 不是同一 token 复制两遍。若 E3 差,这是首要怀疑对象 (完全对称的替代:中性支先合成音频→TSM→重新 tokenize,贵 2.5×,本轮不做)。 xvec_n用 TSM 后音频重提的 campplus 向量(frontend 一并输出)。 campplus 对时长鲁棒,预期无影响,但未单独验证。- E4 在 α>1 时权重外推(\(w_{neu}=1-\alpha<0\)),K* 随之外推。 M3 的 α 扫描已用过同机制(时长连续变化未垮),但那是在基座模型上。
- 相位声码器的"phasiness" 冒烟 CER 只涨 0.007,但 UTMOS 未在冒烟中测—— 最终以 E1 的 MOS@α=0 为准。
- 训练两臂 λ=0 单臂无正交正则对照——依据 M11a 的结论省略,若被质疑需补。
4 TSM 效果定性展示¶
6 个样本覆盖压缩/拉伸全区间(比例 = 情感时长 / 中性时长,即 TSM 的目标倍率)。
2026-08-27 追加:用户听感否决相位声码器(发虚)与直接缩放(变调)后,
换 Rubber Band R3 引擎(pylibrb,ENGINE_FINER —— Audacity/Ardour 同款专业变速)。
冒烟 50 条:token 50/50 精确命中,CER 0.0051,低于原始录音的 0.0066 ——
三种方法里唯一不伤可懂度的。
| 倍率 | 文本 | 中性原始 | 相位声码器(旧) | Rubber Band R3(新候选) | 直接缩放(变调) | 情感原始 |
|---|---|---|---|---|---|---|
| 0.60× | 「哪天我也许得和他谈谈。」 | 音高 +8.9 半音 |
||||
| 0.80× | 「但是有时夏天比其它季节更迷人。」 | 音高 +3.7 半音 |
||||
| 0.95× | 「他们将于今年夏天结婚。」 | 音高 +0.9 半音 |
||||
| 1.05× | 「我遇到了一位漂亮的女孩。」 | 音高 −0.8 半音 |
||||
| 1.25× | 「是个冰淇淋,桃花确实很漂亮。」 | 音高 −3.9 半音 |
||||
| 1.55× | 「如果她拒绝我,我会死的。」 | 音高 −7.6 半音 |
冒烟定量(50 条):token 数精确命中 50/50;CER 0.0066 → 0.0137; 全量构建(21,301 条):长度断言失败 0 例。
4.1 数据构建结果¶
| 数 | |
|---|---|
| 保留 | 21,301(M10 为 25,207) |
| 形变过滤(≥40%) | 1,583(6.9%,与 M10 的 6.3% 一致) |
| raw wav 缺失 | 4,012 —— 说话人 0012/0013/0014 的原始 wav 在两个卷上都不存在(迁移前即缺,esd_features 里有其特征但无音频)。M12 因需重新走 tokenizer 而受此限,M10 只用特征缓存故不受影响 |
| TSM 断言失败(token 数 ≠ N_e 或 mel ≠ 2N_e) | 0 |
与 M10 的训练集因此不完全相同
M12 比 M10 少 3 个说话人(17 vs 20)。评测集 P6 不含这三人,直接影响有限, 但「M12 vs M10」的对比里混入了这个次要变量,已记入 §3 不确定点。
5 结果¶
5.1 总表(P6 held-out 中文,12 组 × 7 α = 84 条/臂)¶
| 臂 | ckpt | 推理 | delta | 受控 | 负向 | CER | SECS | MOS | MOS@α=0 |
|---|---|---|---|---|---|---|---|---|---|
| v4 基线 | v4 | 旧 | 0.454 | 6/12 | 1 | 0.043 | 0.724 | 2.95 | 3.74 |
| M10-λ0 | DTW+共享tok | 旧 | 0.579 | 7/12 | 0 | 0.066 | 0.660 | 2.85 | 3.17 |
| E1 | M12a | 旧 | 0.308 | 5/12 | 2 | 0.046 | 0.705 | 2.93 | 3.35 |
| E2 | M12a | 旧+TSM前缀 | 0.616 | 7/12 | 0 | 0.220 | 0.574 | 2.30 | 1.36 |
| E3 | M12b | 双LLM+token重采+TSM前缀 | 0.577 | 7/12 | 0 | 0.114 | 0.529 | 2.22 | 1.59 |
| E4 | M12b | 双LLM+状态warp+TSM前缀 | 0.579 | 7/12 | 1 | 0.133 | 0.441 | 1.65 | 1.49 |
| E5 | M12b | 双LLM+μ插值+TSM前缀 | 0.563 | 6/12 | 0 | 0.111 | 0.531 | 2.21 | 1.52 |
| E3n | M12b | 双LLM+token重采+自然前缀 | 0.586 | 7/12 | 0 | 0.112 | 0.567 | 2.61 | 3.55 |
| E4n | M12b | 双LLM+状态warp+自然前缀 | 0.586 | 7/12 | 0 | 0.152 | 0.465 | 2.06 | 3.81 |
| E5n | M12b | 双LLM+μ插值+自然前缀 | 0.586 | 7/12 | 0 | 0.107 | 0.563 | 2.57 | 3.48 |
(E3n–E5n 为发现 E2 问题后补跑的自然 prompt 版本,除 prompt 外与 E3–E5 完全相同。)
5.2 H1:TSM 训练目标 —— 修复成立,幅度未到目标线¶
E1 与 M10-λ0 唯一的差别是训练目标从 DTW 插值换成 TSM 真实提取(推理完全相同):
| M10-λ0 | E1 | v4 | |
|---|---|---|---|
| CER | 0.066 | 0.046 | 0.043 |
| SECS | 0.660 | 0.705 | 0.724 |
| MOS@α=0 | 3.17 | 3.35 | 3.74 |
M10 引入的三项代价被回收了 55–85%。MOS@α=0 未到预注册的 3.5 线(差 0.15), 判为部分通过——方向确凿,幅度略欠。
E1 的 delta 0.308 看似崩塌,逐组看是二值指标的双向翻转
(0002_text00020/Angry 1.000→0.000、0002_text00150/Angry −0.004→+0.708、
0002_text00120/Angry 两端同时被判反)——G1 口径问题的又一例,
以受控数(5 vs 6/12)读作情感控制与 v4 同层,无可检测差异。
5.3 计划外发现:TSM prompt 在推理端是毁灭性的¶
E1→E2 唯一的改动是把中性参考 prompt 换成 TSM 后的音频:MOS@α=0 3.35→1.36,CER 0.046→0.220。 E3–E5 vs E3n–E5n 重复出同样的差(MOS@α=0 1.5 档 → 3.5 档)。
机制解读:推理时 prompt mel 作为 in-context 条件,模型延续 prompt 的声学风格—— 相位声码器的"发虚"被当成风格复制了。而训练时的 TSM 前缀无害(E1 就是用 TSM 前缀训练的, 自然 prompt 推理完全正常):训练只把它当回归条件,不做风格延续。
操作结论:TSM 只能用于构造训练目标,绝不能出现在推理的条件里。 (§2.1 里"前缀 TSM 保 RoPE 对齐"的推理端对应设计因此作废;训练端保留无妨。)
5.4 H2/H3:完整双路可行,代价在可懂度¶
E3n/E4n/E5n 三臂 delta 全部 0.586、受控 7/12、负向 0 —— 情感控制与 M10 持平, 且 E4n 的 MOS@α=0 = 3.81,超过 v4(双 LLM 下中性支真的是"自己说的中性话")。
代价集中在内容:CER 0.107–0.152(共享 token 的 E1 只有 0.046),SECS 0.46–0.57。 中性支 token 被重采样/状态被 warp 之后,两支在逐帧混合时内容不完全对齐,可懂度受损。
H3 排序:
| E3n token重采 | E5n μ插值 | E4n 状态warp | |
|---|---|---|---|
| CER | 0.112 | 0.107 | 0.152 |
| SECS | 0.567 | 0.563 | 0.465 |
| MOS | 2.61 | 2.57 | 2.06 |
| MOS@α=0 | 3.55 | 3.48 | 3.81 |
E3n ≈ E5n 为可用档,E4n 只在 α=0 端占优(其时长随 α 连续变化的特性保留观赏价值, 综合质量最差)。后续默认推荐 E3n(token 重采样)——实现最简单、指标不输。
5.5 训练侧与探针¶
| L_fm_emo 末50 | L_fm_neu 末50 | A_share | cos_A_B | |
|---|---|---|---|---|
| M10-λ0 | 0.4505 | 0.4633 | 0.0376 | −0.221 |
| M12a | 0.4683 | 0.5119 | 0.0771 | −0.289 |
| M12b | 0.4602 | 0.4483 | 0.0789 | −0.290 |
- M12b 的 L_fm_neu 是三者最低——自有 token 与自有目标自洽,中性支好学了 (M12a 的中性支要用情感 token 去拟合 TSM 中性 mel,最难学,0.5119)
- A_share 翻倍(0.038→0.077~0.079):两支条件真正不同了,A 承载的差异变大
- 探针(m12_b,36 测量):情感专一性依旧缺席 (同情感/异句 0.2028 vs 同句/异情感 0.2367,gap −0.034)—— 与 v4/M10 同号,F6 的结论在完整双路下仍成立
6 结论¶
| 项 | 结论 |
|---|---|
| H1 | ⚠️ 部分通过。DTW 三项代价回收 55–85%(CER 0.066→0.046、SECS 0.660→0.705、MOS@α=0 3.17→3.35),未到 3.5 预注册线 |
| H2 | ✅ 通过。完整双路的情感控制与 M10 持平(0.586/7/0),E4n 的 α=0 音质还超了 v4 |
| H3 | ✅ E3n(token 重采样)为默认;E5n 相当;E4n 仅 α=0 占优、综合最差 |
| 计划外 | 🚨 TSM 禁止进推理条件(§5.3)——只能用于训练目标构造 |
| 遗留 | 双路的 CER 代价(0.046→0.11)未解决;怀疑 resize 破坏两支内容对齐,§3.1 预判的分布差是候选解释(训练重 tokenize vs 推理重复/丢弃) |
| 探针 | 情感专一性 gap 仍 ≈0(−0.034)——换训练方式救不了 F6,第三次确认 |
下一步候选(未排期):① 中性支"合成→TSM→重新 tokenize"的全对称推理(贵 2.5×,直接检验 §3.1) ② E1 路线继续打磨 α=0 端(还差 0.39 到 v4)③ 双路 CER 的归因消融。
不确定点核销(对照 §3)¶
| §3 登记 | 结果 |
|---|---|
| 1 token 重采样分布差 | 仍是首要怀疑:双路 CER 0.11 vs E1 0.046,方向吻合,未直接验证 |
| 2 xvec 用 TSM 音频重提 | 未见异常(E1 SECS 0.705 反而回升),维持低风险 |
| 3 E4 α>1 外推 | 未垮(负向 0),但 E4n 综合最差 |
| 4 相位声码器 phasiness | 训练目标端无害,推理条件端毁灭性(§5.3)——比预判的分化更极端 |
| 5 λ=0 单臂 | 未被挑战 |
| (新)17 vs 20 说话人 | E1 与 v4/M10 的对比含此混淆;评测集不含缺失三人,判为次要 |