EmoRES把情绪残差加强3倍,IEMOCAP上ρ相对升119%

EmoRES-TTS: Residual-Enhanced Vector Steering for Emotional Speech Generation

Kuan-Po Huang, Haohe Liu, Puyuan Peng, Haibin Wu, Zhaoheng Ni, Hung-yi Lee, Jinwon Lee, Neha Chachra

cs.SD, cs.CL, eess.AS

2026-09-30

把情绪转向向量拆成共享位移和类别残差,残差加强到3倍。IEMOCAP上ρ相对升119%,听者主情绪命中相对升35%。

这篇在解决什么

情绪可控 TTS 已经能吃标签、自然语言指令或情绪 embedding,但原生条件经常推不动。同一句话要听起来像在生气或难过,模型往往只给一点浅浅的风格,听感仍靠近中性。对话代理、有声书、配音都需要这件事成立,还不能把可懂度、说话人身份和自然度赔光。

再训一轮、再标一批情绪语音,贵,也难覆盖混合情绪。vector steering 冻结模型,把「情绪语音减中性语音」的激活差当成方向,推理时加进隐状态。CoCoEmo 把这条路做到了 LM-based TTS 上,但每个情绪向量被当成一根不可拆的棍子,只由一个全局强度 α 缩放。离中性的位移和指向具体情绪的对比被绑成同一比例。要把类别对比拧大,全局 α 会把共享段一起放大,两件事被绑在同一只旋钮上。

方法

情绪向量 ve 是该情绪平均激活减去中性平均激活。绕着所有非中性情绪均值的质心,它可以拆成两段。

共享分量像把旋钮从「平淡」拧到「带情绪」,残差像选哪一种。CoCoEmo 用同一只旋钮拧两件事。

EmoRES 给两段各自一个系数:vRES = λc × 共享 + λr × 残差。λc = λr = 1 时质心抵消,精确退化成 CoCoEmo。混合情绪时共享系数固定,残差按请求比例加权。加完后把隐状态范数拉回原长度,只改方向,避免大 α 把幅度顶飞。

表里默认 λc = 1、λr = 3,各方法向量范数对齐到原始 ve 的层均长度,比的是方向不是谁推得更猛。转向打在 attention 输出,层用 CoCoEmo 的情绪可分性 top-K:IndexTTS-2 semantic LM 的 1、6、8 层,CosyVoice2 text-to-token LM 的 14、17 层。向量从 ESD、CREMA-D、RAVDESS 成对句离线提取,同说话人、同文本,过 SER 与音质门。骨干冻结,原生条件保持默认。

结果

超参只在 CREMA-D 上调。IEMOCAP 不贡献说话人、不参与构向量。下列数字一律 α = 5、λc = 1。

骨干指标No-steerCoCoEmoEmoRES (λr=3)
IndexTTS-2ρ—22.0048.13
IndexTTS-2H-Rate—64.3477.29
IndexTTS-2TEP30.7636.2241.11
CosyVoice2ρ—39.1352.10
CosyVoice2H-Rate—70.9077.82

IEMOCAP 上 ρ 提升 26.13 / 12.97 点,相对 118.8% / 33.1%;H-Rate 提升 12.95 / 6.92 点,相对 20.1% / 9.8%。IndexTTS-2 的 E-SIM 从 65.32 到 67.67。S-SIM 全面高于 CoCoEmo,WER 多数更低。CREMA-D 上 ρ 从 25.24 到 45.87(IndexTTS-2)、从 32.48 到 51.94(CosyVoice2)。原生条件单独用时 TEP 和 E-SIM 都弱于加转向。

人工听辨(IEMOCAP,每条至少 9 人):

骨干Dom-hitFidelity自然度折算偏好
IndexTTS-254.72% → 73.89%60.05% → 66.32%63.80%
CosyVoice258.18% → 77.88%50.80% → 59.60%60.32%

Dom-hit 相对最高升 35.0%,Fidelity 相对最高升 17.3%。无转向时 IndexTTS-2 的 Dom-hit 只有 17.78%。IndexTTS-2 上 50.83% 的 pairwise 直接选 EmoRES,25.93% 平局,23.24% 选 CoCoEmo。

消融对齐范数后只改 λc、λr。只加共享,ρ 掉到 5.30% / 7.20%,IndexTTS-2 的中性后验从 36.51% 压到 7.49%,会离开中性但对不准类别。只加残差,ρ 和 H-Rate 升,TEP、E-SIM 低于两段合用。等权仍不是最优,λr = 3 才是表里最好的一档;λr > 3 收益递减。emotion2vec 空间里(IndexTTS-2,486 条单情绪):无转向 probe 56.9%、silhouette -0.035;CoCoEmo 82.5% / 0.335;EmoRES 86.9% / 0.460。

为什么重要

给冻结的 LM-based TTS 一条推理期旋钮:不再标情绪数据,不学新子空间,不改权重。CoCoEmo 已经能跑的栈上,残差拧到约 3 倍、共享保持 1,混合情绪排序和听者主情绪命中会动一截,自然度 pairwise 折算偏好最高 63.80%。

这是几何再加权,不是新架构。有用的场景很窄:骨干冻结、原生情绪条件偏弱、目标是混合比例。对自建转向的人,这条分解比 λr = 3 更值钱:共享管有没有情绪,残差管是哪种。

局限与存疑

作者写明的后续:句内情绪变化需要 token 或 segment 级控制;更多情绪、语言、语料和 TTS 结构还没有验证。

实验只有 angry、happy、sad、surprise 四类,两套英文骨干。λr = 3 和层号在 CREMA-D 上选定,而 CREMA-D 也在提取库里,开发集数字有泄漏风险。真正干净的留出集是 IEMOCAP。客观分绑在 SER 后验和 emotion2vec 上,向量提取也过 SER 门,同一类模型既造方向又打分。人工分部分对冲了这一点,CosyVoice2 的 Fidelity 绝对水平仍只有 59.60%。随机方向对照在附录,正文没有数字。原生条件一直开着,测的是条件加转向。没有和再训练方案比成本或上限。附录还提到单情绪请求、关掉原生条件、换 SER,正文同样没给数字。

术语

原文与代码

相关论文

全部论文解读