TTS 大模型的「解剖刀」:用稀疏自编码器看清语音生成的黑箱
> 当文本和语音token在同一个残差流里跳舞,你分得出谁在领舞吗?这篇论文把稀疏自编码器(SAE)第一次插进 TTS 语言模型的 backbone,发现了一条从「文本前缀」到「音频承诺」再到「文本回归」的奇异分层轨迹。
---
一、为什么需要解剖 TTS 大模型?
文本到语音(TTS)系统越来越依赖语言模型作为 backbone。CosyVoice3 用 Qwen2.5-0.5B 做骨干,把文本前缀和离散语音token塞进同一个自回归序列里,让模型逐 token 生成语音。
但这里有一个根本问题:文本和语音在同一个残差流里混合。模型到底在每一层编码了什么?是文本的句法语义?是语音的声学韵律?还是两者之间的某种映射关系?
在此之前,没有人系统回答过这个问题。稀疏自编码器(SAE)在文本 LLM 上的可解释性研究已经很多,但生成式 TTS 模型的 mechanistic interpretability 几乎是空白。
这篇由 T-Tech AI Foundation 的 Nikita Koriagin 等人完成的论文(arXiv:2606.10029),第一次把 SAE 插进了 CosyVoice3 的 24 层 backbone,做了全层扫描、自动标注、因果控制,把 TTS 模型的内部结构翻了个底朝天。
---
二、实验设置:BatchTopK SAE 插进 Qwen2.5-0.5B
2.1 基础模型:CosyVoice3
| 属性 | 规格 |
|---|---|
| LM 骨干 | Qwen2.5-0.5B |
| 隐藏维度 | 896 |
| 层数 | 28 层(分析 0-23 层) |
| 文本分词器 | BPE |
| 语音 token 速率 | 25 Hz(离散语音 token) |
| 生成方式 | 自回归 |
输入文本/语音 prompt → 分词器 → Qwen2.5 LLM → 离散语音 token → DiT 流匹配 → HiFi-GAN 声码器 → 波形
序列布局:[sos | instruct | text | task | speech],其中 task 是标记文本到语音转换点的单个特殊 token。
2.2 SAE 训练参数
| 参数 | 设置 |
|---|---|
| 字典大小 | 16,384 |
| 每 token 活跃特征数 | 50 |
| 训练数据 | Emilia 数据集,~2.5 亿 token |
| SAE 变体 | BatchTopK |
| 训练目标 | 重建 + 稀疏性 + 辅助死亡特征损失 |
| 分析层 | 全层扫描(0-23 层)+ 第 20 层详细定性分析 |
三、奇异的分层轨迹:从混合到音频再到文本
这是论文最核心、最反直觉的发现。
3.1 重建质量趋势
| 层 | 总体 EV | 文本-音频差距 |
|---|---|---|
| 0-8 | 0.97-0.99 | 音频 > 文本(-0.006) |
| 16 | - | 0.065(文本 > 音频) |
| 20 | 0.82(最低) | 0.080(最大差距) |
| 23 | 0.945(反弹) | 0.015(差距缩小) |
3.2 特征模态组成:一条 U 型曲线
| 层 | 文本模态 | 音频模态 | 混合模态 |
|---|---|---|---|
| 0 | 12.3% | 45.1% | 42.6% |
| 12 | - | - | 47.3%(混合峰值) |
| 14 | - | - | 40.9% |
| 16 | - | 76.1% | - |
| 20 | - | 74.3% | 4.1% |
| 23 | 83.1% | 14.3% | 2.6% |
1. 早期和中期层(0-14):混合 + 音频主导。文本模态只占 12-33%,混合特征在 L12 达到峰值 47.3%。模型在这一阶段同时处理文本和语音信息。
2. 晚期层(16-20):「音频承诺区」。音频模态从 76.1%(L16)到 74.3%(L20),混合特征从 40.9% 崩溃到 4.1%。模型在这里「下定决心」生成什么样的语音。
3. 最终层(23):「文本回归」。文本模态从几乎消失急剧反弹到 83.1%,音频跌到 14.3%,混合仅 2.6%。最终残差流在输出头之前重新投影到与文本词汇对齐的子空间——因为输出头需要生成文本 token(包括语音 token 的离散表示)。
这像什么?像一个人先读稿(文本),然后酝酿情绪(混合),再开口说话(音频承诺),最后把说的话整理成文字记录(文本回归)。
---
四、模态感知自动标注:让 Gemini 3.0 Pro 当「解剖学教授」
训练完 SAE 后,有 16,384 个字典原子,每个都是一个特征方向。怎么知道它们代表什么?
4.1 模态分类
对每个特征,看它在哪些 token 位置激活最强:
- 文本模态:语音 token 占比 ≤ 0.2(主要在文本前缀激活)
- 音频模态:语音 token 占比 ≥ 0.8(主要在语音 token 激活)
- 混合模态:其他情况
4.2 模态感知标注策略
| 特征模态 | 提供的证据 | 标注内容 |
|---|---|---|
| 文本 | 文本上下文、token 位置、激活值 | 词汇、标点、语言、prompt 风格 |
| 音频 | 1 秒语音片段(以激活位置为中心) | 声学、语音、韵律属性 |
| 混合 | 文本示例 + 语音片段 | 跨模态关系 |
4.3 标注质量评估
用「检测式评估」验证:标注用 top-5 激活,评估用排名较低的激活(避免评分者看到相同示例)。评分量表 0-10,阈值 5。
| 模态 | L20 AUROC | 跨层范围 |
|---|---|---|
| 文本 | 0.921 | 0.90-0.94 |
| 音频 | 0.653 | 0.65-0.72 |
| 混合 | 0.558 | 0.53-0.69 |
4.4 代表性特征示例
文本特征(精准得像字典):
- 1376:"British"(BAcc 1.0 / AUROC 1.0)
- 1443:子串 "ang"(如 angry, anger, hanging)(BAcc 1.0)
- 1305:描述说话者音调为 "shrill"(BAcc 1.0)
- 1330:四位数年份(2019, 1936)(BAcc 1.0)
- 233:人类笑声(BAcc 0.75)
- 288:尖叫、大喊和沉重呼吸(BAcc 0.917)
- 1225:清软腭塞音 /k/(BAcc 1.0)
- 1294:音素序列 /if/ 或 /ef/(BAcc 1.0)
- 164:口吃、错误开始和犹豫标记(跨转录和音频)
- 661:文本和语音中的 "middle" 一词
- 5543:文本和语音中的音素序列 /ohl/
五、探测实验:概念在 L8 前就「暴露」了
研究团队用下游探测实验来验证:这些声学概念(笑声、情感、口音)在模型内部是「分布式」编码的,还是「局部化」在少量 SAE 特征上?
5.1 层-wise 可解码性
| 概念 | L0 | L4 | L8 | L12 | L16 | L20 | L23 |
|---|---|---|---|---|---|---|---|
| 笑声(原始残差) | 0.885 | 0.980 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| 笑声(SAE 潜变量) | 0.866 | 0.948 | 0.998 | 1.000 | 1.000 | 1.000 | 0.999 |
| 情感(原始残差) | 0.966 | 0.998 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| 口音(原始残差) | 0.896 | 0.986 | 0.998 | 1.000 | 1.000 | 1.000 | 1.000 |
5.2 Top-1 单语义性测试
只用「最强的一个 SAE 特征」做探测,测试概念是否集中在单个字典原子上:
| 概念 | 峰值层 | 峰值 ROC-AUC |
|---|---|---|
| 笑声 | L12-16 | 0.929 |
| 情感 | L12-16 | 0.928 |
| 口音 | L8-12 | 0.925 |
---
六、因果控制:不只是看懂,还能动手
论文最实用的一部分:证明这些 SAE 特征不仅能被解释,还能被用来因果控制生成结果。
干预方法:在生成过程中,对选定语音 token 位置的残差向量进行 SAE 编码→扰动特定特征激活值→解码回残差流。不修改输入文本或 prompt。
6.1 笑声控制(Feature 14834)
| 指标 | 基线 | α = +60 | 提升 |
|---|---|---|---|
| 平均笑声概率 | 0.015 | 0.791 | 53 倍 |
6.2 性别控制(Feature 11402)
| 条件 | P(male) |
|---|---|
| 基线 | 0.629 |
| α = -50(推向男性) | 0.944 |
| α = +50(推向女性) | 0.063 |
6.3 语速控制(Feature 3024)
| 条件 | 有声时长 | 变化 |
|---|---|---|
| 基线 | 3.96 秒 | - |
| α = -50(变慢) | 10.57 秒 | 延长至 2.67 倍 |
| α = +50(变快) | 2.75 秒 | 缩短至 69% |
---
七、六项局限:诚实比炫技重要
论文在 Section 7 明确列出了六项局限,这种诚实值得 Respect:
1. 单一模型:结果仅针对 CosyVoice3-0.5B,可能无法迁移到更大 TTS 模型。 2. 循环评估:标注器和评分器都用 Gemini,系统性幻觉会虚高分数——需要人工评估和评分器模型消融。 3. 部分扫描:模态和重建统计跨层报告,但自动解释分数仅适用于已完成的部分层。 4. 子词起始点:25Hz 语音 token 无法定位子 token(40ms)的声学起始点。 5. 负采样:负样本从其他特征抽取,测试标签特异性但不测试对表示邻域混淆的鲁棒性。 6. 操控范围:需要进一步探索 α 系数的有效范围和边界效应。
---
八、结语:可解释性不是终点,是控制的起点
这篇论文的价值不止于「看懂 TTS 模型内部发生了什么」。它证明了:SAE 特征既是可解释性对象,也是实用控制方向。
传统 TTS 控制靠修改 prompt 文本("用欢快的语气说"),但效果不可预测。SAE 控制直接在残差流上操作特定特征,精准、可量化、可插拔。
未来方向:
- 把这套方法扩展到更大 TTS 模型(如 GPT-SoTTS 等)
- 用人工评估替代循环评估,验证标注质量
- 探索更多可控制维度(情绪强度、口音强度、音高变化)
- 把 SAE 控制集成到产品级 TTS 系统的实时调节中
---
参考
- 论文:Koriagin et al., "Interpreting and Steering a Text-to-Speech Language Model with Sparse Autoencoders", arXiv:2606.10029 (2026)
- 模型:CosyVoice3 (Qwen2.5-0.5B), 25Hz 离散语音 token
- 数据:Emilia 数据集 (~250M token), VocalSound, ESD, VCTK, LJSpeech
- 标注:Gemini 3.0 Pro
- 探测:二元逻辑回归 + 5 折交叉验证
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens