跳转至

Paper Audit 论文对账

独立于文档主体的持续跟踪页:记录论文各版本中与实验事实、代码实现不符的地方。

规则

  1. 按论文版本 + 日期开条目,一版一节,新版在上
  2. 每条问题必须带站内引用或代码位置;站内找不到引用 = 文档不够细致,先补文档再记账
  3. 新版论文到来时逐条销账:已解决 → ~~划掉~~ 并标 ✅ 与解决版本;未解决 → 保持 ⬜ 并在新版节里延续;新问题 → 新版节里追加
  4. 严重度:🔴 与代码/实验矛盾的硬伤 · 🟡 缺失或不严谨 · ⚪ 建议

未决总表

ID 严重度 一句话 首次记录 状态
P1 🔴 式(1)声称共享 t 与 ε;实际独立采样,且 ε 因形状不同不可能共享 v2026-08-25 ⬜
P2 🔴 训练条件描述成推理的 ICL 结构;实际训练无前缀、cond 全零、LM 不参与 v2026-08-25 ⬜
P3 🔴 推理 token 描述成两路;实际两分支共享同一串 gen_token v2026-08-25 ⬜
P4 🔴 L_ort 立为核心贡献;四条辩解路径全部排除,λ∈[0,10]、含从零训练 v2026-08-25
终局 08-28
⬜
P5 🟡 式(5)未提 K_c 截断,对不等长输入未定义 v2026-08-25 ⬜
P6 🟡 Figure 1 的 flow 结构画的是 CosyVoice2 v2026-08-25 ⬜
P7 🟡 A/B 命名与全部内部资料相反 v2026-08-25 ⬜
P8 ⚪ 图注 L_ort=cos(A,B) 与式(5)口径不一 v2026-08-25 ⬜

v2026-08-25 · ba436df4-iclr2026_conference.pdf

《EmoScale: Localized Emotion Intensity Control for Speech Synthesis via Dual-Forward Flow Matching》· 6 页(method 至 §3.2 + Inference,无实验节)· 审查日 2026-08-25

P1 🔴 「共享 t 与 ε」与代码矛盾,且 ε 不可能共享

论文(§3.2 Dual forward,式 1):"we sample a shared timestep t∼U[0,1] and a shared noise tensor ϵ … Because θ, the speaker identity, t, and ϵ are all shared … any discrepancy is by construction attributable to the emotion channel"

事实(见 Method §3.1 训练配置表):

  • \(t\) 各自独立采样且范围是 \(\mathcal{U}[0.05, 0.95]\) 而非 \([0,1]\) —— train_svd_flow_v4.py L110/L288-293,--shared_t 默认关,v4 训练未开
  • \(\epsilon\) 各自独立,且数学上无法共享:两分支是不同录音、长度不同 (时长比中位 1.03、可达 1.4×,见 F3 的时长测量), 同一 \(\mathcal{N}(0,I)\) 张量无法匹配两个形状
  • 说话人向量逐录音提取,两分支不同(同说话人、不同 utterance)
  • 归因语句不成立:即便全共享,\(x_t\) 仍因 ground truth 不同而不同

改法:如实写独立采样与 \([0.05,0.95]\);删除或弱化归因语句为「共享 θ 与说话人身份」。

P2 🔴 训练条件写成了推理的 ICL 结构

论文(§3.2 Paired training data):"we use its original ESD audio as reference-mel prefix µrn and µre, and two token-derived conditionings produced by the LM under a neutral prompt and under the e-conditioned prompt in Instruct mode … µ_n = [µrn; µn]"

事实(见 Method §3.1 第 1、2 行):

  • 训练时 cond = torch.zeros_like(x_1) —— 没有任何 reference-mel prefix
  • token 是该录音自己的真实 speech token(预抽缓存),LM 训练时一次都不跑
  • 「Instruct mode」从未参与训练;它只在 M8 的推理对照里测过,且结论是给不了强度
  • \([\mu_{rn};\mu_n]\) 的拼接结构只存在于推理的 ICL(见 Glossary·生成段/前缀段)

P3 🔴 推理时 token 是共享的,论文写成两路

论文暗示 µn、µe 是 LM 在两种 prompt 下生成的两路 token 流。

事实:inference_svd_alpha_v4.py L176-182 —— LM 只跑一次,两分支 共享同一串 gen_token,只有参考前缀不同。这是源–闸门的核心设计。 「两路 token」正是被否决的 M1 截断调色板方案 (长度失配,见 F1)。论文现在的描述恰好是那个被否决的版本。

P4 🔴 L_ort 立为核心贡献,但 λ=0 消融证明其无效(2026-08-26 升级为决定性)

论文(摘要 + §3.2):"We introduce a disentanglement regularizer … making disentanglement an explicit training objective … Results show that explicitly enforcing disentanglement … enables more precise and interpretable temporal control"

事实:

  • λ=0 完整重训对照(_incoming/v4_noortho_epoch5.pt,53,700 步同种子)结果无差别 —— Method §6 参数表「已证无效」行
  • M9:完全未训练的模型也能 α 控制, 受控组数还更多(F11)—— ⚠️ 此旁证已挂起,M9 重新设计中; P4 的主证据是 M11a λ 扫描,不受影响
  • F6 给出机制解释:主子空间不承载情感身份,而 L_ort 约束的正是主方向
  • 站得住的差异化在别处:F9 时变定位、F12 控制层级、 F10 instruct 给不了强度 —— 见 site/G7-claim-analysis.md

这是战略级问题:审稿人索要 λ=0 消融时,我们手里的结果是反的。

2026-08-26 升级 —— 最后一条退路被堵死:

此前对 λ=0 消融唯一站得住的辩解是「\(A\) 的定义在训练时是错的」—— v4 训练里情感支与中性支的 token、\(t\)、噪声、\(x_t\) 四重不共享, cond ≡ 0 而推理用前缀 mel,且 96.3% 的步长度不等、中位截断 12.8%。 既然训练时的 \(A\) 与推理时的 \(A\) 不是同一个数学对象,正则作用在前者、 评测量的是后者,无效也说明不了什么。

M10 把这四重全部修好并重训:

  • H1 通过:125/125 日志点 \(K_{\text{emo}}\equiv K_{\text{neu}}\equiv K_g\),截断归零
  • H2 证伪:λ=0.01 与 λ=0 的 A_energy_share 差 0.00007(相对 0.2%), 五项指标全部 <2σ;且 λ=0 组没有该项梯度,其 L_ortho 却自行降到同一水平 (0.1686 vs 0.1664)—— 说明这一项本就随 FM 损失自然下降,加不加梯度都一样

定义修好之后依然无效,故「对象错了」不再是解释。 矛头指向正则形式本身:跨通道全对正交里 \(i\neq j\) 占 98.75% 的权重, 且 \(K_g\) 均值仅 148 而 \(A,B\) 各 80 行,满秩下 \(L=0\) 几何不可行。

2026-08-26 补充 —— λ 剂量扫描,本条闭合:

「λ=0.01 剂量不足」是最后一个可能的辩解(该项仅占总损失 0.19%)。 M11a 扫了 \(\lambda\in\{0,0.01,0.1,0.5,2.0\}\):

\(\lambda\) 0 0.01 0.1 0.5 2.0
\(\mathcal{L}_{\text{ortho}}\) 0.1714 0.1698 0.1608 0.1166 0.0443
cos_A_B −0.221 −0.220 −0.208 −0.165 −0.106
delta(情感) 0.579 0.568 0.581 0.584 0.584

正则完全可优化(正交性提升近 4 倍),而情感程度纹丝不动 (λ 跨 200 倍,delta 只动 0.016)。代价是 \(\mathcal{L}_{\text{FM}}\) +8.2%、CER 0.066→0.088–0.105。

结论不再是「\(\mathcal{L}_{\text{ortho}}\) 没起作用」,而是 它精确地起了它声称的作用,而这个作用与情感可控性无关。

2026-08-28 终局 —— M14 从零训练 λ∈{0,0.1,0.5,1.0,10}: λ=10 将 L_ortho 压到 0.019(cos_A_B −0.114,L_FM 代价 +42%),下游配对仍全 <2σ 且点估计为负。 四条辩解路径至此全部排除:对象错(M10)→剂量不足(M11a)→定义域错(M13)→未从头参与训练(M14)。

论文把它立为核心贡献("explicit training objective" / "enables more precise control")不成立。 建议:降级为一个被证伪的设计选择并如实报告,或整体移除。

P5 🟡 式(5)未提 K_c 截断

80×80 通道余弦要求两分支等长,但两条录音长度不同。代码截到 \(K_c=\min(K_{emo},K_{neu})\),逐对截断中位 12.4%、最坏 49.6% (见 Method §3 训练目标 与 M4 的测量)。 式(5)现在的形式对不等长输入未定义,至少加一句 crop 说明。

P6 🟡 Figure 1 的 flow 结构画的是 CosyVoice2

图中「Causal Transformer Encoder / Causal Upsampling Transformer」在 CosyVoice3 的 flow 里不存在:cosyvoice3.yaml 只有 pre_lookahead_layer + DiT decoder,上采样是 repeat_interleave(2)(见 M9 的架构对照注: CV2 是 UNet 式 decoder,CV3 才是 DiT)。 「Lookahead PreConv, size=4」倒是对的(pre_lookahead_len=3,kernel=3+1=4)。

P7 🟡 A/B 命名与内部资料相反

论文:A=语义、B=情感、\(v=A+\alpha B\)。代码与本站全部资料:A=情感方向 (Glossary·A、A_energy_share、M5)。 论文内部自洽,可不改;但写实验节引用 F 系列数据时必串,建议统一。

P8 ⚪ 图注 L_ort=cos(A,B) 与式(5)不一致

式(5)是 80×80 归一化时间轨迹的平方余弦均值(Glossary·三种余弦口径 的口径②),图注简写成单个 cos。建议图注写 \(\overline{\cos^2}\)。

本版验证过无问题的 ✅

式(4)双 FM 目标、式(5)与 L_ortho 代码逐项一致(归一化沿时间轴/80×80/平方均值)、 λ=0.01、式(7)逐帧 α 与 M6 实现一致、 「no auxiliary encoder」表述。

讨论