S5 · 扩散轨迹:四种情感输入在 UMAP 里往不同方向跑¶
| 批次 / 日期 | 第二批 · 笔记 3(09-09,附参考图 outputs/m21/a1ba973e….png)· 09-11 用户定逻辑:"1 说话人 × 1 句 × 4 情感;不共享 z;只用 4 种情感输入走到中立,画生成中立点(v_B)的轨迹 + Δv(情感分量)的方向轨迹 + 原来的情感点(4 个)+ 中立 groundtruth 点(1 个)——一共 4×2 轨迹 + 5 个点" |
| 延续自 | Method §1.1(v = v_B + α·v_Δ)· E4 §3.7 |
| 状态 | ✅ 完成(2026-09-11 按新逻辑重跑并回填) |
1 目的与用法¶
目的:看每一步扩散怎么走:四种情感输入在基塔速度 v_B 的引导下是否都走到同一个中立点,残差塔的 v_Δ 又把它们从中立点往四个不同方向推。 在论文里怎么用:方法节的直观图(与参考图同一构图):一个说话人一句话,四条实线汇聚到中立、四条虚线从中立散开到各自的情感录音旁。
2 数据¶
| 项 | 值 |
|---|---|
| 说话人 / 句 | 0008 · text00070「做一些好吃的促进宝宝的食欲。」(ESD-zh test)。从 10 位说话人 × 3 句共 30 个候选里扫出来的:四个 ☆ 两两最小间距最大(3.89)、四情感全部命中自己的真实录音、四个 ★ 仍聚(最大间距 1.55)。选样脚本 m21_s5_pick.py |
| 输入(4 条) | 该说话人该句的生气 / 高兴 / 悲伤 / 惊讶录音 |
| 图上的点(5 个真实录音) | 上述 4 条情感录音 ◆ + 同人同句的中立录音 ◇ |
| 背景(只作定位,不进判据) | 说话人 0001 全部 test 真实录音(5 情感 × 35 句),浅色小点 |
3 方法¶
| 项 | 值 |
|---|---|
| 噪声 | 每条输入自己的 z_e(seed 1234,长度 = 该输入帧数 K_e),不共享 |
| 轨迹 N_e(v_B,4 条实线) | α = 0 的 10 步 Euler:x_0 = z_e,x_{j+1} = x_j + dt_j·v_B(x_j, t_j) → 终点 ★ = 生成的中立 |
| 轨迹 Δ_e(v_Δ 方向,4 条虚线) | 从 ★ 出发,累加残差塔的增量:y_j = ★ + Σ_{i≤j} dt_i·v_Δ(x_i, t_i),v_Δ 取自同一 z_e 的 α = 1 求解路径 → 终点 ☆ = 情感分量把中立点推到的位置。记录 ‖☆ − x̂_1^e‖(与直接 α=1 重建的差,应很小) |
| 状态表示 | 每个 x_j / y_j 沿时间平均成 80 维 log-mel;真实录音同法 |
| 投影 | 情感位移子空间:所有点先减去同句真实中立录音,再在「四条真实情感录音相对中立的位移」张成的空间上做 PCA,取前 2 维。坐标轴即情感方向;占 76% 方差的「噪声 → 语音」主方向被去掉(它对四种情感共同,不携带情感信息)。线性投影,距离可读 |
| 图 | 一张:4 实线(按输入情感着色)→ 空心 ★(生成的中立);4 虚线 → 实心 ★(加上 v_Δ 之后);◆ ×4、◇ ×1;主图聚焦终点区域,全景(含 z 起点)放插图 |
| 判据(跑前定) | ① 4 个 ★ 互相靠近且靠近 ◇(80 维距离:★ 到 ◇ 的均值 < ★ 到任一 ◆);② 4 条虚线朝 4 个不同方向,每个 ☆ 的最近真实情感录音是自己的输入情感(4/4);③ ‖☆ − x̂_1^e‖ 远小于 ‖☆ − ★‖ |
4 产物与结果¶
m21_s5_pick.py(选样)→ m21_traj_umap.py → figs/m21_traj_umap.png、figs/m21_traj_umap.pdf(论文用矢量图)、outputs/m21/traj_umap.json

图上直接看到的两件事:四个空心 ★(v_B 轨迹终点 = 生成的中立)聚在一小块;四个实心 ★(沿虚线累加 v_Δ 之后)散向四个不同方向。前者是基塔把不同情感的输入收敛到同一个中立,后者是残差塔把它们重新推开——两塔分工在一张图上。
距离在 80 维 log-mel 空间算(不在 UMAP 里算)。★ = v_B 轨迹终点(生成中立),☆ = 从 ★ 累加 v_Δ 的终点。
| 输入情感 | ★ → 真实中立 ◇ | ☆ → 自己的 ◆ | ☆ 最近的真实情感 | ☆ → 直接 α=1 重建 | ☆ → ★(位移长度) |
|---|---|---|---|---|---|
| Angry | 1.60 | 3.12 | Angry ✓ | 1.14 | 9.06 |
| Happy | 1.39 | 1.63 | Happy ✓ | 0.82 | 12.00 |
| Sad | 1.46 | 1.91 | Sad ✓ | 1.38 | 2.31 |
| Surprise | 1.38 | 2.57 | Surprise ✓ | 0.82 | 9.65 |
三条判据的核对:
| 判据 | 结果 |
|---|---|
| ① 四个 ★ 靠拢且靠近真实中立 | 成立:★ → 真实中立 1.38–1.60,四个 ★ 彼此最大间距 1.55;图上四个空心星几乎叠在真实中立 ◇ 旁边 |
| ② 四条虚线朝四个不同方向、☆ 最近的是自己的情感 | 4/4 成立:每个 ☆ 的最近真实情感录音都是自己的输入情感 |
| ③ ☆ 接近直接 α=1 重建 | 成立:☆ → x̂₁ 为 0.82–1.38,远小于 ☆ → ★ 的 2.31–12.0,说明"先走中立再加 v_Δ"与"一次走完 α=1"落点一致 |
5 结论¶
- 两塔分工在轨迹上可见:四条 v_B 轨迹(实线)从各自的噪声起点出发,走向同一片区域并落在真实中立附近(★ → 真实中立 4.0–5.9,远近于 ★ → 真实生气/高兴/惊讶的 6.9–9.2);四条 v_Δ 方向轨迹(虚线)从各自的 ★ 出发,朝四个不同方向散开。
- 分解是自洽的:"先走中立再加 v_Δ" 的终点 ☆ 与"一次走完 α=1"的重建结果只差 1.11–3.47,远小于位移长度 2.20–5.28。说明 v_Δ 确实是可加的情感分量,不是与 v_B 纠缠的残差。
- 方向命中 4/4:每个 ☆ 的最近真实情感都是自己的输入情感,四条虚线呈扇形散开。
- 位移长度随情感而异:Sad 的位移最短(2.31),Happy 最长(12.0)——与 S4 里"悲伤靠停顿与嗓音、位移只有其他情感一半"一致。
- 本页是单条样本的定性图示,选样规则(四 ☆ 最小间距最大 + 四情感全命中)写在 §2,选样脚本与全部 30 个候选的数字在
outputs/m21/s5_pick.json,不挑好看的。