S³ Tokenizer(监督语义语音分词器)

通过在 ASR 模型的编码器中插入量化层,利用 ASR 损失显式监督学习离散语音 token,使 token 天然与文本语义对齐,区别于无监督 tokenizer(EnCodec、HuBERT 等)。

是什么

S³(Supervised Semantic Speech)tokenizer 是 CosyVoice 系列提出的离散语音表示方法。核心做法是在预训练 ASR 模型(如 SenseVoice、MinMo)的编码器中间插入向量量化(VQ)或有限标量量化(FSQ)层,保持 ASR 解码器的训练目标不变,从而使量化后的 token 强制保留语义信息。

  • 输入:梅尔频谱
  • 输出:离散 token 序列(25Hz),每个 token 对应一个码本索引
  • 监督信号:ASR 的交叉熵损失(encoder + quantizer + decoder 端到端训练)

为什么重要

  1. 解决无监督 token 的信息缺失:EnCodec 等声学 token 不包含语义对齐,导致 LLM-based TTS 的内容一致性差(发音错误、漏词/多词)。
  2. 天然解耦说话人信息:ASR 任务需要忽略说话人差异,因此 S³ token 天然具有说话人无关性,使 LLM 专注语义、流匹配模型专注音色。
  3. 跨语言泛化:基于多语言 ASR 模型训练的 tokenizer 对未见语言具有零样本能力。
  4. 可扩展:随 ASR 基础模型的升级(SenseVoice → MinMo),tokenizer 能力也随之提升。

工作原理

CosyVoice 1: VQ-SenseVoice

  1. SenseVoice Encoder1(6 层 Transformer)→ 中间表示 H
  2. 向量量化(VQ):对每帧 h_l 找码本 C 中最近邻 → token μ_l
  3. Encoder2(剩余层)+ ASR Decoder → 预测文本后验概率
  4. 训练时码本通过 EMA 更新

CosyVoice 2: FSQ-SenseVoice

  1. 将 VQ 替换为 FSQ:H → Proj_down → bounded_round → Proj_up → Ĥ
  2. FSQ 实现 100% 码本利用率(VQ 仅 23%)
  3. token 数 = (2K+1)^D,如 K=2, D=4 → 625 个有效 token

CosyVoice 3: FSQ-MinMo

  1. 基础模型升级为 MinMo(1.4M 小时预训练的多模态语音理解 LLM)
  2. 在 Voice Encoder1(12 层 Transformer + RoPE)后插入 FSQ
  3. 多任务监督训练:ASR + 语言识别(LID) + 情感识别(SER) + 音频事件检测(AED) + 说话人分析(SA),总计 53 万小时
  4. 使 token 不仅保留语义,还捕获情感、发音风格等副语言信息

历史与演进

版本基础模型量化方式码本利用率训练数据特点
CosyVoice 1SenseVoice-LargeVQ (4096)23%ASR 数据首次引入监督 token
CosyVoice 2SenseVoice-LargeFSQ100%20 万小时更丰富语义信息
CosyVoice 3MinMo LLMFSQ100%53 万小时多任务捕获副语言特征

与相邻概念的区别

  • vs. EnCodec/SoundStream(声学 token):无监督 RVQ-VAE 量化波形重建,不保证语义对齐 → 内容一致性差
  • vs. HuBERT(自监督 token):掩码预测学习,保留部分语义但无文本对齐 → 跨语言能力受限
  • vs. 传统音素:连续表示,需要 duration predictor 和 forced aligner → 流程复杂

常见误解

  • “监督 token 就是做 ASR”:不对。ASR 任务只用于训练 tokenizer,目标是产出离散 token 而非识别文本。最终的文本来自 LLM 的输入,不依赖 ASR 输出。
  • “FSQ 只是换了个量化器”:不完全是。FSQ 的 100% 码本利用率意味着传输的信息量更大,直接影响下游 TTS 质量。

相关