M9 · 不训练的模型能不能直接用 α 调情感?(重新设计)¶
| 状态 | 🔄 重新设计中 · 旧版结果已作废并删除(2026-08-27) |
| 日期 | 初版 2026-08-17 跑完 → 2026-08-27 判定不可用,重写设计 |
| 一句话 | 旧版用一个 93–95% 饱和的二值指标、n=12 组,得出了「未训练更强」这个足以推翻核心 claim 的结论;定性证据完全没有验证它 |
| 上游 | ← 用户想法「用其他论文的模型不训练直接加权调 α,佐证我们训练的有效」 |
| 下游 | → F11 已挂起 · OPEN G7 的「必须换重心」降级为「待定」 |
TL;DR¶
- ❌ 旧版 M9 作废。结论「未训练模型受控组数更多(7/6/5)」建立在噪声级差异上: 指标饱和率 93–95%、n=12、干净对照(frozen vs v4)只差 1 组,页面自己就写了「属噪声」
- ⚠️ 定性与定量矛盾:定量给出了名次,定性只放了 3 对音频、2 个 α, 结论是「三档都听得出」——这根本无法验证名次,却被当成了旁证
- 🔁 重设计的核心:把问题从「能不能调」(二值)换成「调得好不好」(连续), 指标全部绕开分类器 softmax,样本量 12 → 60 组,定性改为盲测强制选择
- 🗑️ 已删除:
outputs/m7_untrained/(252 wav / 42 MB)、站内 6 个对照 wav、三份report.json - 📌 重要后果:在 M9-R 跑完之前,「α 控制不需要我们的训练」这个结论没有可靠证据支撑, 引用它的地方(P4 的旁证、G7)都要标注为待定
1 为什么作废旧版¶
1.1 定量说了什么¶
| 档 | 受控组>0.5 | delta 均值 | 饱和率 |
|---|---|---|---|
cv2(他方,未训练) |
7/12 | 0.553 | 94% |
cv3_frozen(未训练) |
6/12 | 0.468 | 93% |
cv3_v4(我们的) |
5/12 | 0.382 | 95% |
由此得出 F11「α 机制不需要我们的训练」,并进一步推动 「novelty claim 必须收窄」。
1.2 这个结论撑不住¶
四个问题叠在一起
- 指标近二值。三档饱和率 93–95% ——
emo_score几乎只输出 0.000 或 1.000。delta = emo(α=1.5) − emo(α=0)于是退化成「有没有翻过分类器」的 0/1 指示量, 不是强度。这一点在 M11a 的口径警告里被再次确认。 - 样本量不足。n=12 组。
- 干净对照的差异 = 1 组。
cv3_frozen6/12 vscv3_v45/12 —— 旧页 §6.4 自己写了「属噪声」,但结论段仍按名次叙述。 - 定性完全没有验证名次。只放了 1 句 × 1 情感 × 2 个 α × 3 档 = 6 条音频, 结论是「三档都听得出 α=0 → α=1 的变化」。 这句话对三档一视同仁,无法分辨谁更强 —— 它验证的是「α 机制能用」, 不是「未训练的更好」。
合起来:一个足以推翻核心 claim 的强结论, 建立在一个饱和指标上 1 组的差异,而配套的定性证据与该结论无关。 这是「弱证据支撑强结论」的典型,必须重做。
1.3 旧版做对了什么(保留)¶
- 跨模型接口的三层差异(estimator / flow 外壳 / 声码器 / LLM prompt)已提炼进 方法论 §5.8,这部分知识保留,不作废
cv2这一档同时变了「是否训练」与「骨干架构」,旧页已正确标注为非单变量消融
2 重设计:换问题¶
| 旧 M9 | M9-R | |
|---|---|---|
| 问题 | 未训练能不能调 α | 训练是否让 α 控制变好 |
| 性质 | 二值 | 连续 |
| 主指标 | delta(分类器后验之差) |
参考锚定投影 + 声学相关量 |
| 判据 | 受控组数(阈值化) | 分布 + 配对效应量 |
| n | 12 组 | 60 组 |
| 定性 | 6 条音频,无协议 | 盲测强制选择,含一致性检验 |
2.1 假设¶
H1(单调性):情感强度沿 \(\alpha\) 连续单调上升,而非阶跃。
H2(中性端纯度):\(\alpha=0\) 的输出应当接近中性参考。
H3(训练的作用):
cv3_v4在 H1、H2 上优于cv3_frozen。
H3 才是原始问题。H1/H2 是它的前提 —— 若两臂都不满足 H1,H3 无从谈起。
2.2 臂¶
| 臂 | 模型 | ckpt | 角色 |
|---|---|---|---|
A1 cv3_frozen |
CosyVoice3 基座 | 无 | 未训练对照 |
A2 cv3_v4 |
CosyVoice3 + v4 | _incoming/v4_epoch5.pt |
我们的 |
A3 cv2(可选) |
CosyVoice2-0.5B | 无 | 跨架构,混杂变量,仅作参考 |
主对照是 A1 vs A2,同基座、同架构、同推理路径,唯一变量是那份 ckpt。 A3 只用来说明「α 机制在别的模型上也成立」,不参与 H3 的判定。
2.3 样本¶
- 从
manifests/p6_test_zh.jsonl(342 个 key)中固定种子随机抽 15 句 - × 4 情感(Happy / Angry / Sad / Surprise)= 60 组
- × 7 个 \(\alpha \in \{0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5\}\)
- = 420 条 / 臂,两臂 840 条(含 A3 则 1,260 条)
3 指标:全部绕开分类器 softmax¶
3.1 M1 参考锚定投影(主指标)¶
设 \(e(\cdot)\) 为 emotion2vec 的句级 embedding(分类头之前,帧平均)。 对每一组,用该组真实的中性与情感参考录音定出方向:
- \(\text{proj}=0\) → 与中性参考同样中性
- \(\text{proj}=1\) → 达到情感参考的强度
- 连续、逐组归一化、没有 softmax —— 这是它相对
delta的全部意义
3.2 M2 声学相关量(不依赖任何情感模型)¶
| 量 | 提取 |
|---|---|
| \(F_0\) 均值 / 标准差 / 范围(5–95 分位) | pyworld harvest,仅取浊音帧 |
| RMS 能量均值 / 动态范围 | 波形 |
| 语速 | 字数 / 有效时长 |
| 谱倾斜 | 低频段与高频段能量比 |
M2 的作用是交叉验证 M1。若 M1 说强度随 \(\alpha\) 上升而 \(F_0\) 范围、能量毫无变化, 那 M1 测到的可能只是 embedding 空间的漂移,不是声学上的情感。
3.3 M3 形状量(由 M1/M2 逐组导出)¶
| 量 | 定义 | 回答什么 |
|---|---|---|
| \(\rho\) | Spearman\((\alpha,\ \text{proj})\) | 单调吗(连续版,取代 mono) |
| \(R^2\) | proj 对 \(\alpha\) 线性回归 | 成比例还是只是单调 |
| 阶跃度 | \(\max_k \lvert\Delta_k\rvert \big/ (\text{proj}_{\max}-\text{proj}_{\min})\) | 渐变(→1/6≈0.17)还是翻转(→1.0) |
| 中性端偏差 | \(\lvert \text{proj}(0) \rvert\) | \(\alpha=0\) 真的中性吗(H2) |
| 崩溃点 | 首个 UTMOS<2.5 或 CER>0.3 的 \(\alpha\) | 可用范围到哪 |
3.4 次级指标¶
CER(paraformer)、SECS(campplus)、UTMOS —— 口径不变,用于代价核算。
预注册:不再使用「受控组数」
任何形如「\(\Delta > 0.5\) 的组数」的阈值化统计一律不作为判据。 它把连续量压成 0/1,正是旧版翻车的地方。改为报告分布(中位、四分位、全部 60 个点) 与配对效应量。
4 判定规则(跑之前定死)¶
前提检查
| 通过条件 | 不通过则 | |
|---|---|---|
| H1 | 两臂各自 \(\text{median}(\rho) > 0.6\) | H3 不成立也不成不了,直接报「α 控制在两臂上都不单调」 |
| H2 | 报告 \(\lvert\text{proj}(0)\rvert\) 的分布,不设阈值 | —— |
H3 的判定 —— 60 组逐组配对(同句同情感,仅换 ckpt):
对 \(\rho\)、\(R^2\)、阶跃度、\(\lvert\text{proj}(0)\rvert\) 四项分别做 Wilcoxon 符号秩检验, 报 中位差 + 95% bootstrap CI + Cliff's delta。
- H3 成立:至少两项的 CI 不跨 0 且方向有利于 A2
- H3 不成立:四项 CI 全部跨 0 → 结论是「在这套连续指标下,训练对 α 控制质量没有可检测影响」
- ⚠️ 不允许再出现「A1 名次高于 A2 所以未训练更强」这类基于点估计名次的叙述
5 定性:盲测强制选择¶
音频不再是"放几条听听",而是一份可统计的协议。生成 blind_test.csv,
每行一对,左右顺序随机、文件名脱敏(pair007_A.wav / pair007_B.wav)。
| 组 | 配对方式 | 问题 | 对数 |
|---|---|---|---|
| B1 单调性 | 同臂内 \(\alpha=0.5\) vs \(\alpha=1.0\) | 哪个情感更强? | 30(两臂各 15) |
| B2 跨臂强度 | 同 \(\alpha\in\{0.5,1.0\}\),A1 vs A2 | 哪个情感更强? | 30 |
| B3 跨臂自然度 | 同上配对 | 哪个更自然? | 30 |
| 一致性 | 从上述中随机重复 10% | —— | 9 |
读法
- B1 正确率显著 >50% → α 确实在调强度(人耳确认 H1)
- B2 偏向 A2 → 训练让情感更强;偏向 A1 → 旧版结论在人耳上也成立;≈50% → 无差异
- B3 与 B2 分开问:旧版可能把"更自然"误当成"情感更强"
- 一致性 <70% → 该受试者的判断不稳定,B1–B3 的结论需降权
这一条是给用户执行的
我无法听音频。协议、配对、脱敏、统计脚本由我产出, 判断由用户填 CSV,我再跑统计。这是旧版最缺的东西。
6 预期产出¶
| 产物 | 内容 |
|---|---|
| 音频 | 840 条(两臂)或 1,260 条(含 A3),P6 held-out 中文 |
metrics.jsonl |
逐条:proj、F0 三项、能量两项、语速、谱倾斜、CER、SECS、UTMOS |
groups.jsonl |
逐组 60 行:\(\rho\)、\(R^2\)、阶跃度、中性端偏差、崩溃点 |
h3_test.json |
四项配对检验的中位差、95% CI、Cliff's delta |
| 图 1 | 60 组的 proj–α 曲线族(两臂并排),叠加中位轨迹 |
| 图 2 | 四项形状量的配对差分布(小提琴 + 逐组连线) |
| 图 3 | M1 与 M2 的相关性散点(交叉验证) |
blind_test/ |
99 对脱敏音频 + CSV 模板 + 揭盲脚本 |
| 站内页 | 按情绪分节的音频对照(同 M10 音频页 格式) |
算力:两臂 840 条推理 + 评测,8 卡并行约 1.5 小时;A3 再加 45 分钟。
7 风险与打脸出口¶
最可能的结果是「还是测不出」
如果 M1/M2 在两臂之间仍然分不出差异,正确的结论不是「训练没用」,而是:
我们至今没有一把能测量情感强度的尺子。
那样的话 G1 立刻升为最高优先级,
并且所有依赖 delta/mono 的横向比较都要重估 ——
包括 M10 §8.5、M11a §9.2
以及本页旧版。这是一个比「训练有没有用」更根本的问题。
其他风险
| 风险 | 处理 |
|---|---|
| M1 的方向 \(u\) 由单条参考录音定出,噪声大 | 每组用同说话人多条参考取平均;报告 \(\lVert u\rVert\) 的分布,过小的组剔除 |
| 60 组仍不够 | 判据用配对检验而非独立样本,配对能吃掉句间方差;不够就扩到 120 组 |
| 盲测只有一位受试者 | 明确标注 n=1;一致性检验作为内部效度下限 |
| A1/A2 的推理路径若有任何不一致 | 复用 _M9_old_untrained_baseline/ 里已验证的跨模型适配代码 |
8 已删除的资产¶
| 路径 | 内容 | 处置 |
|---|---|---|
outputs/m7_untrained/ |
252 wav(3 档 × 84)+ 3 份 report.json + summary.json,42 MB | 已删 |
site/docs/media/audio/m7_cv{2,3_frozen,3_v4}_a{0.0,1.0}.wav |
6 条定性对照 | 已删 |
emo/exp/M7_untrained_baseline/ |
生成与评测代码 | 改名保留为 emo/exp/_M9_old_untrained_baseline/ |
为什么代码保留
代码不是"结果资产",而且它承载了 §1.3 里那份跨模型接口知识 (CV2/CV3 的 flow 外壳、声码器签名、LLM prompt 三层差异)—— M9-R 要复用它,删掉等于把这部分工作重做一遍。加下划线前缀标明它属于旧版。
9 下游影响¶
| 位置 | 原状态 | 现状态 |
|---|---|---|
| F11 | 已确立 | 挂起,等 M9-R |
| Paper Audit P4 | 闭合 | 仍闭合 —— P4 的主证据是 M11a λ 扫描,不依赖 M9 |
| OPEN G7 | 「必须换重心」 | 降级为「待定」 |
| G5 | 已完成(由 M9) | 退回未完成 |
注意 P4 不受影响
P4 靠的是 λ 扫描(正则可优化但与情感无关)与 M10(训推一致后仍无效), M9 只是旁证。作废 M9 不会让 P4 松动。