EmoShift 语音鉴伪评测集:一句话里情绪一变,检测器就集体漏判

语音鉴伪已经能测真假、能测跨域,唯独没测过一句话内部的情绪变化

检测器的能力边界几乎由评测集划定,而 EmoShift 这篇论文指出,主流评测口径全都漏掉了同一个维度:情绪在同一句话内部怎么走。论文用同说话人、同文本的配对样本把句内情感漂移单独拉出来测,七个在 ASVspoof 2019 LA 上训练好的语音深伪检测器随即集体失效。把阈值固定住之后,合成语音的漏检率最多上升 25.3 个百分点,真人语音的误报率最多上升 24.4 个百分点。这两个数字都出现在部署时真正会用到的那把阈值上,而不是一个允许逐条件挑阈值的宽松口径里。

要看懂这次失效,先要看懂检测器平时怎么被打分。ASVspoof 系列把这件事标准化成了两类指标:EER(等错误率)允许评测者为每个条件各挑一个最优阈值,它只回答分数排序还能不能把真伪分开;actDCF 在一个固定的部署阈值上计算实际代价,成立的前提是检测器输出的分数已经被校准成可解释的似然比 ASVspoof 5。ASVspoof 5 报告过一个典型案例,多数参赛系统把分数归一化到 0 到 1 而不是校准成似然比,于是 minDCF 看着不错,actDCF 却接近 1,等于几乎把所有样本都判成了同一类。分数排序好不等于部署可用,EmoShift 坚持用冻结阈值报结果,正是站在这个立场上。

评测集之外的变化让检测器掉链子,这件事早有先例。In-the-Wild 收了 58 位公众人物的 37.9 小时录音,其中 17.2 小时是伪造音频;用 ASVspoof 训练出来的十二种架构在上面重新评测,EER 普遍退化 200% 到 1000%,RawNet2 从 4.4% 掉到 33.9%,很多时候不比随机猜好 In-the-Wild。

In-the-Wild 数据集按说话人逐个收集真伪音频的结构示意图

图注:In-the-Wild 数据集的收集结构示意,约 58 行对应 58 位公众人物,每行的蓝框是该人物的真人录音,红框是用其语音生成的伪造音频。它说明这一类跨域评测是围绕说话人逐个收集真假样本的。图为数据收集示意,不含任何性能数字。In-the-Wild

但那一类漂移改的是录音环境、麦克风、说话人和内容。情绪在同一句话内部怎么走,一直没有被单独当成评测维度,EmoShift 问的就是这一格:当同一句话内部的情感状态从 A 变到 B,检测器还认不认得出伪造 EmoShift。

要证明问题出在情绪变化本身,就得让同一说话人、同一文本的 a→a 与 a→b 成对出现

只有两段语音共享说话人和文本、唯一的差别是第二段情绪有没有改变时,分数差才能归到情绪走向本身。EmoShift 的全部设计都围绕这个配对展开。每条样本被切成两个语音区段,各自带一个情绪状态:a→a 的两段情绪相同,a→b 的两段情绪不同,合成样本沿用其真人来源的文本与分段情绪目标。

配对在 controlled 设置上最干净。ESD 贡献 800 条真人样本(400 对 a→a / a→b),a→a 与 a→b 共用同一段起始录音,说话人与文本完全相同,只改第二段情绪,且只取 10 位英语说话人、20 组有序情绪转变各出现 20 次,静态情绪身份在这里被摊平。这套配对之所以做得成,前提是 ESD 本身就按同文本多情绪平行录制,20 位说话人各自用 5 种情绪念过同一批句子 ESD。

另两层语料检验的是不同假设。in-the-wild 的 OMG-Emotion 取自网络视频里的情绪独白,a→a 与 a→b 来自不同源语句、文本也不同,它问的是这个现象在非受控素材上还成不成立。naturalistic 层换成 IEMOCAP 与 MSP-Podcast,两者都带 VAD(效价、唤醒度、支配度)三维连续标注,漂移幅度因此可以用三维坐标上的欧氏距离 d_VAD 来量化,不必依赖离散标签 IEMOCAP。

语料设置真人 + 合成漂移如何定义与量化
ESDcontrolled800 + 2,400离散情绪标签,20 组有序转变各 20 对
OMG-Emotionin-the-wild440 + 1,320离散情绪标签,a→a 与 a→b 来自不同源语句
IEMOCAPnaturalistic1,600 + 1,600连续 VAD 距离,0.00–0.13 对 0.84–1.09
MSP-Podcastnaturalistic4,400 + 4,400连续 VAD 距离,0.00–0.14 对 0.55–1.40

基准总量 16,960 条,其中真人 7,240 条、合成 9,720 条。文本、时长、静态情绪身份与拼接位置这几类混淆项在设计阶段都被压住,每个数据集每一类里 a→a 与 a→b 的平均时长差最多 0.49 秒。设计上是否真的压住了,答案在结果那一章给出。

七个检测器共用同一份 ASVspoof 2019 LA 训练权重,评价必须同时看 EER 和冻结阈值下的错误率

只看 EER 会漏掉部署视角的失效,因为 EER 允许每个条件各自挑最优阈值,而真实系统手里只有一把冻结的阈值。论文因此同时报三样东西:EER、logit 空间里的分数漂移,以及在 a→a 的 EER 点上校准后冻结、再原样套到 a→b 上的错误率变化。三者回答的是三个不同的问题,混为一谈就会误判检测器还能不能用。

被测的七个检测器全部训练在 ASVspoof 2019 LA 上。RawNet2、AASIST、XLS-R-SLS、XLS-R-Mamba、ProsDD 用公开 checkpoint,SLIM 与 Alethia 需要额外微调才能接入。它们盯的声学线索并不相同。RawNet2 直接吃原始波形,用一组 sinc 卷积加残差块自己学滤波器;AASIST 把特征拆成谱图与时序两张异质图,然后用注意力读出 AASIST。后文会看到,正是这两个从波形与局部声学细节出发的检测器,对唤醒度是升还是降特别敏感。

RawNet2 编码器与 AASIST 的谱图、时序异质图结构

图注:AASIST 的整体框架图。左侧 encoder 是从原始波形取特征的 RawNet2 式编码器,中间由谱图与时序两路图模块构成异质图,右侧两支并行的图注意力分支经逐元素取最大后,与最大池化、平均池化和 stack node 拼接输出。该图只展示网络结构,不含性能数字。AASIST

伪造端由四个表达性 TTS 生成,情绪注入方式各不相同。IndexTTS2 按区段分别合成再拼接,它的说话人条件与情绪条件走两条被梯度反转层解耦的通道,因此拼接之后不会在说话人空间里留下明显指纹 IndexTTS2。TED-TTS 单次生成、把情绪标签分配给对应文本段,HybridEmo 用一句自然语言指定整段的情绪序列,EmoTra-TTS 按源语音的连续 VAD 轨迹单次生成。IndexTTS2 是四个里唯一拼接式的,这一点在排除拼接痕迹假设时会派上用场。

指标阈值怎么取回答什么问题会漏掉什么
EER每个条件各自挑最优分数排序还能不能分开真伪部署阈值固定时是否已经失效
ΔFNR / ΔFPR在 a→a 的 EER 点校准后冻结换成 a→b 后错误率涨了多少个百分点不反映错误率的绝对水平
logit 分数漂移 ΔSP / ΔBF不需要阈值漂移的方向与统计显著性不直接等价于错误率

分数漂移记作 $s(x)=\log\frac{p(x)}{1-p(x)}$,其中 p 截断在 $[10^{-6}, 1-10^{-6}]$ 之间,负值表示 a→b 看起来更像真人。统计不确定性用 1,000 次 bootstrap 重采样估计,95% 置信区间不含零才算数。

伪造语音在 OMG-Emotion 上漏检涨 9.7 到 25.3 个百分点,真人语音在 IEMOCAP 上误报涨 24.4 个百分点

同一个失效模式换一种语料就会掉头,有情绪并不等于会失效,真正绑住检测器的是情绪从 A 走到 B 的方式。这是这篇论文最反直觉的地方。在 OMG-Emotion 上,七个检测器集体把情绪变化的合成语音判得更像真人;在 IEMOCAP 上,一批检测器却把情绪变化的真人语音判得更像合成,同一批模型在两个语料上朝着相反方向出错。

in-the-wild 的结果最干净。OMG-Emotion 上七个检测器都给 a→b 的合成语音显著更低的 spoof 分数,而真人语音的分数基本没动。把在 a→a 上校准的阈值原样冻结、再套到 a→b,漏检率的涨幅从 SLIM 的 9.7 个百分点一路到 XLS-R-Mamba 的 25.3 个百分点,中间依次是 AASIST 13.6、ProsDD 18.2、Alethia 18.5、RawNet2 20.3、XLS-R-SLS 22.0。这里的单位是百分点,不是 EER 数值。

固定阈值下的漏检与误报变化热力图

图注:阈值在 a→a 语音上校准后冻结、再套到 a→b 时,各检测器在各语料上的错误率变化,单位为百分点;正值表示情绪变化语音的错误率更高,突出显示的格子表示 95% bootstrap 置信区间不含零。它画的是固定阈值下的错误变化,不是 EER。EmoShift

controlled 语料上出现了体检指标正常、功能已经坏掉的一幕。ESD 上五个检测器给 a→b 合成语音更低的分数,但幅度不大,EER 的变化看起来也小。XLS-R-SLS 和 XLS-R-Mamba 的漏检率分别涨了 6.8 和 4.3 个百分点,而 EER 只变了 1.1 和 1.6 个百分点,且统计上不显著。同一批数据,只看 EER 会得出没事的结论,看冻结阈值才会发现漏检已经变多,这就是论文坚持两套指标并报的直接理由。

naturalistic 层把方向翻了过来。IEMOCAP 上七个检测器里有六个给 a→b 的合成语音更高的 spoof 分数,看起来更像合成,XLS-R-SLS 的 EER 甚至从 48.6% 降到 39.7%,类别可分性反而变好。真正出事的是真人语音:AASIST 和 RawNet2 把 a→b 真人样本的 spoof 分数抬高了 1.66 和 1.54 个 logit,在固定阈值下对应 24.4 和 18.6 个百分点的误报涨幅 EmoShift。MSP-Podcast 上合成语音的分数基本没动,倒是 ProsDD、SLIM、Alethia 对情绪变化的真人语音给出了明显更高的分数,分别高出 0.83、0.39、0.92 个 logit。

七个检测器在四个语料上的分数漂移与置信区间

图注:从 a→a 到 a→b 的检测器分数漂移。左侧是七个检测器在四个语料上合成语音与真人语音的平均 logit 分数差,右侧是同一批漂移的点估计与 95% bootstrap 置信区间,区间不含零的用粗体标出。负值表示 a→b 得到的 spoof 分数更低。EmoShift

同一批 XLS-R 系检测器在 ESD 和 OMG-Emotion 上下调合成语音分数,到了 IEMOCAP 反而分得更开,说明失效不是无条件的,它绑在情绪变化被实现出来的方式上。为什么不同检测器的反应还不一样,论文给出两条解释。一是稳定语音上的情绪基线差别极大:SLIM 在悲伤语音上的 EER 是 4%,到惊讶语音变成 42%,Alethia 从 4% 涨到 20%,光看这句话带着什么情绪,难度就已经差了一个量级。二是它们盯的情绪量不同:XLS-R 系主要看终点情绪,非中性终点的转变会让它们整体下调合成分数;RawNet2 和 AASIST 看的是唤醒度是升还是降,在 ESD 上对悲伤终点下调、对愤怒终点上调,两个方向互相抵消,所以 RawNet2 在 ESD 上的总变化近乎为零。到了 IEMOCAP,这两者在唤醒度升高的真语音上把分数抬高 1.9 和 2.2 个 logit,唤醒度降低时只有 0.8。

按情绪基线、终点情绪与唤醒度方向拆分的检测器响应

图注:情绪相关的检测器响应。(a) 稳定 ESD 语音上按情绪统计的 EER;(b) ESD 上按终点情绪统计的合成分数漂移;(c) IEMOCAP 与 MSP-Podcast 上按唤醒度升高或降低拆分的真语音分数漂移。误差条为 95% bootstrap 置信区间。EmoShift

两个最容易被想到的解释都站不住。一是静态情绪身份:ESD 上二十组转变已经摊平,仍有 5/7 检测器显著下调;OMG-Emotion 上把起点与终点情绪匹配掉之后,7/7 检测器依然显著负向,范围从 −0.41 到 −3.42。二是拼接痕迹:如果失效来自拼接,未拼接的生成器应该更安全,事实相反,ESD 上不拼接的 TED-TTS 让 5/7 检测器显著下调,拼接式的 IndexTTS2 只有 3/7。时长同样解释不了,每个数据集每一类里 a→a 与 a→b 的平均时长差最多 0.49 秒。

这项结果把情绪动态变成了评测维度,但论文只揭示问题、不给修复方案

EmoShift 把评测维度从是不是假的推进到了情绪怎么走的,它本身不提供修复方案,引出的几条后续线索也都还没有被验证。它是一份诊断报告,不该被当成药方来读。

最直接的对照是 AffectDF。它把情绪当成整句标签,规模做到 21 种攻击 × 5 种情绪状态 × 约 260 小时,是目前这一维度上最完整的基准 AffectDF。它测的是整句都是愤怒的合成语音还能不能被识破,EmoShift 测的是同一句内部情绪发生变化时还能不能被识破,一个测广度,一个测走向。它在情绪数据能不能把问题训练掉这个问题上的答案并不乐观:在情绪数据上训练并不稳定地改善跨域泛化,大模型类检测器在 AffectDF 上接近随机,Voxtral 在 AffectDF 上微调后在域内是 26.09% EER,换到 ASVspoof5 上仍有 56.54% EER。这里要留意口径差异,AffectDF 报的是 EER,EmoShift 报的是固定阈值下的百分点变化,两者校准点不同,数字不能直接比大小。

两条被论文点到却没走的路,方向都在别处。SER 一侧,SISER 用 wav2vec 2.0 编码器加 ECAPA-TDNN 说话人对抗判别器,通过熵最大化的两步交替训练把说话人维度从情绪表征里挤出去,在 IEMOCAP 上把 10 折平均 UA 做到 62.73%,这提示 emotion-aware 的缓解并非没有技术路线,只是没有人验证过它能不能补上深伪检测 SISER。attribution 一侧的信号更有意思:把情绪 prompt 从中性改成高兴、悲伤或愤怒之后,逐生成器的归因准确率几乎不动,CosyVoice2 上约 1%,HiggsAudioV3 上不超过 4%;反倒是听不出来的量化扰动能把归因准确率打掉最多 48.2%。情绪能骗过是不是假的这层判断,却几乎不影响是哪个生成器造的这层判断 Perceptible or Not?。

论文自己列的边界也很实在:只覆盖四种语料、四个生成器、七个检测器;categorical 与 VAD 两种设置用的生成方式不同,两个方向相反的结果无法单独归因到漂移类型上;SLIM 与 Alethia 只能靠微调接入;阈值的校准点只有 a→a 的 EER 点这一种,换成别的校准方式数字会变。

把这些放在一起,结论是情绪动态应当成为语音深伪检测的标准评测维度,而怎么训练出不被情绪走向骗到的检测器仍然是开放问题。对做语音伪造检测和语音生成的人来说,这份评测集最实际的用处是提供了一把新尺子:在把模型放进真实部署之前,先用它量一量模型在情绪变化的那句话上会不会松手。

想深入可以读原文:Too Emotional to Be Fake? Intra-Utterance Emotion Shifts Expose Failure Modes in Speech Deepfake Detectors(arXiv:2610.22832)。

参考文献

  • Too Emotional to Be Fake? Intra-Utterance Emotion Shifts Expose Failure Modes in Speech Deepfake Detectors — arXiv:2610.22832
  • ASVspoof 5: Crowdsourced Speech Data, Deepfakes, and Adversarial Attacks at Scale — arXiv:2408.08739
  • AASIST: Audio Anti-Spoofing using Integrated Spectro-Temporal Graph Attention Networks — arXiv:2110.01200
  • IndexTTS2: A Breakthrough in Emotionally Expressive and Duration-Controlled Auto-Regressive Zero-Shot Text-to-Speech — arXiv:2506.21619
  • AffectDF: The Most Comprehensive Benchmark for Speech Deepfake Detection against Emotionally Expressive Attacks — arXiv:2608.05507
  • Emotional Voice Conversion: Theory, Databases and ESD — arXiv:2105.14762
  • IEMOCAP: Interactive Emotional Dyadic Motion Capture Database — https://sail.usc.edu/iemocap/
  • Does Audio Deepfake Detection Generalize? — arXiv:2203.16263
  • SISER: Speaker-Invariant Speech Emotion Recognition with Entropy-Based Adversarial Training — arXiv:2609.02941
  • Perceptible or Not? Diagnosing Passive Fingerprints for Speech Deepfake Attribution — arXiv:2609.00765
EmoShift 语音鉴伪评测集:一句话里情绪一变,检测器就集体漏判