跳转至

M21 · 方法验证与机理分析(八项子实验)

状态 ✅ 全部完成(2026-09-05)——E2/E7 于 09-02/03 重做;E3/E4/E5/E8 于 09-05 按同一标准重做(随机 n=160、16 kHz、有出处指标 + 真实录音锚点);E1 并入 E4;E6 按用户意见搁置;首轮 P6 11 条的数字全部作废
一句话 当前方法(M20@420k + 音高对齐混合)已具备成文条件;本轮不再改方法,转向指标可信度、机理解释、泛化边界三类验证
上游 ← M20@420k:CER .046 / MOS 2.09 / MOS@α0 2.80 / delta .911 · 音高对齐混合:中段 α=0.5 的 MOS 1.58→2.21
基座模型 outputs/m20d/ckpts/step160000.pt(全部子实验共用,除 E6)

TL;DR

按用户 2026-09-01 修订收窄范围:E1 后置、E6 搁置、E8 只切两段做定性、 E2 改为"找新指标"而非只做诊断、E3 增加外部数据集。

序 子实验 状态 一句话结果
E2 强度指标 ✅ 三轮 正式口径 = 相对属性排序(主)+ arousal(副),CREMA-D 真人标注 76%/72%、valence 54% 阴性对照;per-α 刻度表(n=160):α=0 与真实中立不可区分(0.091 vs 0.082)、α=1 达 89% 跨度,但 α=0.25 只兑现 66%;arousal 在 α≥0.5 后饱和
E7 声学归因与达成率 ✅ 二轮 模型复现目标位移 cos 0.934 / 幅度 1.02 / 逐维中位 0.90;载体排序 响度>谱斜率>MFCC>F0(推翻首轮的 F0 主导——那是循环产物);悲伤 d′ 最低已归因为架构天花板
E5 v_Δ 编码了什么 ✅ 二轮 1020 个 v̄_Δ:同人同情感 0.83 ≫ 不同人同情感 0.36,与 GT 一致;四臂(n=160):压成常向量 UTMOS 2.66→1.36、CER 0.04→0.39,self_avg≈cross≈centroid ⇒ 丢的是时间结构
E4 α 区间·路径·质量体系 ✅ 二轮 严格可用区间仅 [1.0, 1.5](宽松 [0.5, 1.5]);α=0 CER 0.221,14% 乱说、按说话人 0.04–0.44——首轮"已治愈"是 P6 说话人构成的假象;音高对齐只在 0.25/0.5 有效(+0.21/+0.47),α≥1 反伤;路由端到端 +0.10
E8 分段 α ✅ 二轮 时间定位精确((0,1) 前/后半 RA 0.08/0.89,无串扰);GT 2.1 万对:句尾 1/4 残差最少;UTMOS 收益全部来自避谷,分段本身代价 0.04–0.35,CER 无额外代价
E3 泛化边界 ✅ 二轮 单调性三域成立;未见说话人(CREMA-D)上低强度输入被抬高(低档 0.15→0.62,高档 1.10→1.13)、中立化到不了该库中立(0.16 vs −0.20)、SECS 0.78 < 同人中立 0.82;英文 α=0 CER 0.09 好于中文 0.22
E1 质量评分体系 ✅ 并入 E4 四指标各有出处(UTMOS / Paraformer CER / WavLM SECS / RA),全部配真实录音锚点;UTMOS 对情感语音系统性低 1 分,参考取真实情感录音 2.76
E6 强度可控的重训 ⏸ 搁置 用户表示先放着

验收清单(2026-09-09 起,逐个验收)

补充实验 S1–S8 已改为提案页(问题 / 设计 / 判据 / 结果占位),用户逐页验收后再回填结果:总表。

# 实验 设计书 状态 验收要点
1 ESD 全量 test 重评 S7 📝 提案待验收 待回填
2 3 说话人 × 5 情感 × 3 句分布图 S2 📝 提案待验收 待回填
3 从噪声出发的轨迹图 S5 📝 提案待验收 待回填
4 E7 维度选择(最明显 / 最不变) S4 📝 提案待验收 待回填
5 λ 消融补 RA@0.5 S6 📝 提案待验收 待回填
6 基线对比(关键) S8 → M23 📝 提案待验收 待回填
7 负 α / v̄_Δ UMAP、E8 mel S1 / S2 / S3 ✅ 第一批(合作者 09-06)

六条最值得带进文章的结论(二轮):

  1. 强度可量、可控、刻度基本对:α=0 与真实中立不可区分(RA 0.09 vs 0.08),α=1 达真实情感的 89%; 模型复现目标声学位移 cos 0.93 / 幅度 1.02(E2 · E7)
  2. 但编辑区 α<1 的音质与内容不完全可用:严格可用区间只有 [1.0, 1.5];α=0 有 14% 样本乱说且强绑定说话人(E4)
  3. 音高对齐只治中段谷(α=0.25/0.5 各 +0.21/+0.47),两端反伤;路由端到端 +0.10(E4)
  4. 分段 α 的时间定位精确,无串扰;收益全来自避谷,分段本身有 0.04–0.35 代价(E8)
  5. v_Δ 是逐帧位移场:压成常向量音频即崩,与方向来源无关(E5)
  6. 泛化边界:相对控制跨域成立;绝对刻度、中立化深度、说话人身份出了训练说话人就漂移—— 未见说话人上低强度输入被抬向高强度(E3);悲伤受节奏通道锁死是架构天花板(E7)

共用约定

项 值
模型 outputs/m20d/ckpts/step160000.pt(M20@420k)
缓存 data/m20_cache(DTW + R3 对齐目标)
评测集 P6 中文 11 组(与 M20 全线同批,outputs/m20d/eval_final/manifest_11.jsonl)
α 网格 默认 {0, 0.25, 0.5, 0.75, 1, 1.5, 2};E4 另加负数与超尺度
推理 单条轨迹积分,v(α)=v_B+α·v_Δ;音高对齐仅在 0<α<1 启用(依据)
结果目录 outputs/m21/<eN>/;文档 04-experiments/m21/<eN>.md

资源盘点(影响设计,先记在案)

资源 现状
ESD 本地说话人 17 位:中文 0001–0010、英文 0011 / 0015–0020(0012–0014 本地缺失)
ESD 训练覆盖 全部 17 位均在训练集内 ⇒ 本地无"未见说话人"
IEMOCAP manifests/iemocap_transfer.jsonl 存在(12 条),但音频路径指向已失效挂载 ⇒ 需重新获取
openSMILE 未安装,需 pip install opensmile(走 HK 代理)
磁盘 /data-phy 剩 3.4 T

⇒ OOD 必须引入外部语料。首选 CREMA-D(7442 条、91 位演员、6 情感、 自带 low/medium/high 三档强度标注)——它同时解决 E3 的泛化与 E2/E7 的 "强度指标需要真值"问题;备选 RAVDESS(自带 normal/strong 两档)。


E2 · 强度指标失效诊断

目的:把"emotion2vec 测不出强度"从印象变成可量化的结论,并给出替代指标的验收标准。

1. 构造真值强度阶梯:GT 中立与情感音频,按 α∈{0,.25,.5,.75,1} 做音高对齐混合
   (该路径已验证 MOS 单调、无双梳齿伪影)→ 强度真值 = α
2. 对每条计算:emotion2vec 分类概率 / emotion2vec 嵌入在「中立→情感」方向上的投影
3. 报告:分数对 α 的单调性(Spearman ρ)、分数分布(是否二值化)、
   区分相邻 α 的能力(AUC of α=0.25 vs 0.5)
判据 通过条件
单调性 Spearman ρ > 0.8
非二值 落在 [0.05, 0.95] 区间的比例 > 50%
相邻区分 α 相差 0.25 的两组 AUC > 0.7

预期:分类概率不通过(历史观察 83–87% 的分数落在 <0.05 或 >0.95); 嵌入投影可能通过——若通过则它是零成本的替代方案。


E7 · openSMILE 声学强度指标

目的:构建一个对 α 单调、跨情感可比的强度指标,取代 emotion2vec 做强度读数。

1. pip install opensmile(HK 代理);提取 eGeMAPSv02(88 维功能量)
2. 定义强度方向:对每个(说话人, 情感),d = 均值(情感) − 均值(中立),在 z-score 空间
3. 强度分 = 待测样本在 d 上的投影(对 |d| 归一化)
4. 验证三关:
   ① ESD 真值阶梯(同 E2 的 α 阶梯):Spearman ρ
   ② CREMA-D 的 low/medium/high 三档标注:能否排序正确
   ③ 跨情感可比性:四种情感的强度分是否落在同一量纲
5. 附:单项声学量(F0 均值/范围、响度、谱斜率、jitter/shimmer/HNR)各自的 ρ,
   给出"哪些声学量承载强度"的解释
判据 通过条件
α 单调性 ρ > 0.8(对比 E2 的 emotion2vec)
CREMA-D 三档 排序准确率 > 70%
可比性 四情感的 ρ 均 > 0.7

产出:emo/eval/intensity.py,后续所有实验的强度读数统一走它。


E1 · 质量评分体系

目的:现有 UTMOS 对情感语音有系统性偏置(实测:自然中立原录音 3.55 vs 情感原录音 2.54, 差约 1.0 分),直接跨 α 比较 MOS 会把"情感强"误读为"音质差"。

1. 天花板归一化:对每个 α,以「GT 音高对齐混合 → HiFT」为该 α 的可达上限,
   报告 达成率 = MOS_模型 / MOS_上限(上限已在探针页测得 α=0/1 处 2.81/2.61)
2. 多指标交叉:UTMOS + DNSMOS(eval_suite 已有分支,需接通)+ 谐波清晰度 CPP
3. 人工 A/B 协议:固定 20 组对拍(同句同 α,随机左右),记录偏好与置信度
判据 通过条件
偏置量化 给出 UTMOS 对情感/中立的系统性差值及置信区间
归一化有效 达成率在 α 上的方差显著小于原始 MOS
人工一致性 A/B 偏好与达成率排序的一致率 > 70%

E4 · α 负数与超尺度

目的:确定 α 的可用区间,并检验"负 α = 反情感"这一外推语义是否成立。

α 网格扩展为 {−1, −0.5, −0.25, 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 5}
两条路径各跑一遍:① 直接混合  ② 音高对齐混合(F0 同步外推 / F0 钳位两种变体)
指标:E7 强度分、CER、MOS、达成率
观察点 说明
负 α 强度分是否低于中立(真"去情感")还是仅是伪影
F0 钳位 α>1 时把 F0 钳在情感值上,能否救回音高对齐在外推档的崩坏(实测 α=1.5 掉 0.68)
可用区间 以「CER < 0.15 且 达成率 > 0.6」界定

E5 · v_Δ 的条件依赖

目的:解释残差 v_Δ 到底编码了什么——是"情感的通用方向",还是"这条录音的个体差"。

teacher-forced 探针采集 v_Δ(协议同 M18/M20 探针,t=0.5,held-out)
分三组配对比较余弦相似度:
  A 同人同话不同情感   (0001_text00010 的 Angry / Happy / Sad / Surprise)
  B 不同人不同话同情感 (各说话人的 Angry)
  C 同人不同话同情感   (0001 的多条 Angry)
另做:把 v_Δ 投到 PCA/UMAP,按情感、说话人、文本三种着色
若观察到 解释
B 组相似度高、A 组低 v_Δ 主要编码情感类别,是可迁移的方向
C 组高、B 组低 v_Δ 主要编码说话人,情感成分次要
三组都低 v_Δ 以逐句个体差为主,α 旋钮的语义靠个例支撑

这一项不需要新训练,只需探针,是解释性文章最需要的一节。


E8 · 分段 α 放缩

目的:情感强度在句内并非均匀(重音、句末往往更强)。测量 GT 的逐段残差能量分布, 据此给出前段/后段的 α 放缩比例,并验证分段 α 是否优于全局 α。

1. 测量:把每对 (中立, 情感) 按 DTW 锚点切成 N 段(N=4),
   计算每段的 GT 残差能量占比 → 得到"自然强度包络"
2. 施加:推理时按段施加 α_i = α · w_i(w 由第 1 步统计得到),
   与全局常数 α 对照
3. 指标:E7 强度分、MOS、CER;另做听感对拍
判据 通过条件
分布非均匀 各段残差能量占比的极差 > 1.5×
分段有收益 同等平均强度下 MOS 或强度分优于常数 α

E6 · 强度可控的重训(最贵,放最后)

目的:把中段的正确插值从推理端 DSP 搬回模型内部——这是 M20 §5 指出的正统路线,也是当前架构的已知限制(v=v_B+α·v_Δ 只能表达 α 的仿射函数, 实测 α=0.5 输出与端点线性混合的相关系数 0.9976)。

1. 造中段伪标签:用音高对齐混合为每个训练对生成 α∈{0.25,.5,.75} 的目标 mel
2. 改架构:α 作为条件进网络(时间步嵌入旁加一路 α 嵌入),单塔预测 v(α)
3. 训练:与 M20 同数据同预算(100k 步、8 卡、全局 batch 8),对照 M20@100k
4. 判据:中段 MOS 是否达到音高对齐混合的水平(α=0.5 ≈ 2.21)而无需推理端 DSP

⚠️ 风险登记:伪标签自带 WORLD 往返损耗(实测 UTMOS −0.79), 模型可能学到这层损耗;需以 E1 的天花板归一化读数评估,而非绝对 MOS。


E3 · OOD 泛化

目的:界定方法的适用边界。本地无未见说话人 ⇒ 需引入外部语料。

三个层次,由易到难:
  L1 语言迁移:ESD 英文(0011/0015–0020,训练见过说话人,但评测口径此前只有中文)
  L2 未见说话人:CREMA-D(91 位演员,全部未见)
  L3 未见录音条件:CREMA-D 的自发式表达 vs ESD 的朗读式
下载:CREMA-D(约 2 GB,GitHub 公开);走 HK 代理 proxycn
指标:E7 强度分、CER(英文用 whisper ASR)、E1 达成率
判据 说明
L1 英文的 α 曲线形状是否与中文一致
L2 未见说话人上 α=0 是否仍为可用中立(SECS、CER)
L3 自发式表达上方法是否失效(最可能的失败点)

执行顺序与产出

E2 → E7 → E1 → E4 → E5 → E8 → E3 → E6

每项完成后在对应子页填结果,并在本页表格标记状态。结果目录 outputs/m21/<eN>/。

讨论