DiffRO(可微奖励优化)

CosyVoice 3 提出的在离散语音 token 级别直接优化奖励的后训练方法,通过 Token2Text 模型将 ASR 后验概率作为可微奖励信号,避免完整波形合成的计算开销。

是什么

DiffRO(Differentiable Reward Optimization)是一种针对 LLM-based TTS 系统的后训练方法。与传统的 RLHF/DPO 不同,它不合成完整音频来评估奖励,而是训练一个 ASR-like Token2Text 模型,直接在 LLM 输出的离散 token 上计算奖励。使用 Gumbel-Softmax 使采样可微,通过反向传播直接优化。

为什么重要

  1. 计算效率:传统 RL 需要完整前向传播(LM → CFM → Vocoder → 波形 → 评估),而 DiffRO 只需 LM 前向 + Token2Text 前向,免去了下游 CFM 和 Vocoder 的推理开销。
  2. 规避奖励信号不可靠问题:合成的高相似度音频使得正负样本难以区分(“hacking”),而 Token2Text 直接判断 token 的语义完整性,信号更干净。
  3. 多任务奖励(MTR):可同时优化 ASR + SER + MOS + AED 等多个维度,按需平衡。
  4. 泛化能力强:相比 DPO 在 hard case 上的退化,DiffRO 在分布外场景(OOD)表现更稳健。

工作原理

步骤

  1. 训练 Token2Text 模型:在 ASR 训练数据上训练一个 transformer 模型,将语音 token 序列解码为文本
  2. Gumbel-Softmax 采样:使 LLM 输出的 token 概率分布可微
    μ̃_t = GumbelSoftmax(P_πθ(μ_t | μ_{1:t-1}; Y))
    
  3. 计算奖励:Token2Text 对采样 token 预测文本的后验概率
    R_ASR(Y) = log P_ASR(Y | μ̃_{1:T})
    
  4. 直接优化
    θ* = max_θ E[R(Y)] - β·D_KL[π_θ(μ|Y) || π_ref(μ|Y)]
    
    KL 散度在 token 级别计算(而非序列级别),每个 token 位置的 logits 分布与参考模型比较

多任务奖励(MTR)

R_MTR(Y, {A_i}) = Σ_i log P_task_i(Ã_i = A_i | μ̃)

支持联合优化:

  • ASR 任务 → 发音准确性
  • SER 任务 → 情感表达准确性
  • MOS 预测 → 整体语音质量
  • AED 任务 → 音频事件检测

实验结果

  • WER/CER 相对改善 20%-50%
  • 跨语言场景收益最大(韩语 +68.7%,日语 +50%)
  • 情感控制(DiffRO-EMO)大幅提升 text-unrelated 情感准确率
  • 略微降低说话人相似度(hacking 效应)
  • 比 DPO 在 OOD 场景(SEED hard)表现更好

与相邻概念的区别

方法优化目标奖励来源是否需要波形合成采样方式
DPO偏好对ASR WER + SS随机采样
RLHF (PPO)奖励最大化奖励模型随机采样
DiffRO奖励最大化Token2Text 后验Gumbel-Softmax(可微)
CosyVoice 2 DPO偏好对ASR WER + SS随机采样
On-Policy DistillationReverse KL 最小化教师 token log-prob否(仅 LLM 前向)学生随机采样

常见误解

  • “DiffRO 就是 DPO”:DPO 通过偏好对优化,需要多次完整合成。DiffRO 无需合成波形,直接在 token 级别做可微优化。
  • “DiffRO 只提升发音”:通过 MTR 机制可以同时优化情感、MOS、事件检测等多个维度。

相关