2.1 Supervised Semantic Tokens for Speech
CosyVoice 从多语种的ASR模型中获取tokens, 作者认为这种做法比之前基于无监督的策略, 如Hubert等纯自监督的方法提取特征,更能编码语义等信息。
简单的来说,这里就是采用了类似于 Whisper 的 encoder-decoder 结构,只不过在编码器中插入了一个额外的量化模块,对特征进行量化。此外,额外的量化损失也被引入。值得注意的是,这里的量化损失不是基于VQ-VAE范式的,在反向传播过程中,不更新码本,码本通过 EMA 进行更新,类似流式的K-means。
2.2 Large Language Model for TTS
LLM部分和VALL-E比较类似,由文本编码器对文本进行编码获得文本token,音频编码器 (2.1部分)对语音进行编码。区别主要在于以下几点:
-
引入了额外的标记token S, T, 分别标记序列的开始以及从文本切换到语音;
-
利用声纹模型,提取说话人嵌入向量 v,以单独提供说话人信息。引入声纹token的原因可能是,由于speech token 是通过ASR模型提取的,说话人信息可能有丢失;
-
文本不是像VALLE那样转成音素后传入,而是先通过Byte Pair Encoded (BPE) tokenizer 转成子词,再通过文本编码器编码:
\[\bar{Y} = \text{TextEncoder}(\text{BPE}(Y))\] 2.3 Optimal-transport Conditional Flow Matching
在笔记 Flow 中,已经对 OT-CFM做了介绍。这里模型预测的是场。这里需要额外注意的有三点:
-
生成过程采用说话人嵌入 v, speech tokens u, 掩码的频谱 $\widetilde{X}$ (通过将从随机起点到终点的连续帧设置为零) 作为条件,条件被以加法的形式嵌入到了$X_t$ 中;
-
考虑到一开始的生成过程比接下来的更难,作者为时间步长 t 加入了一个余弦调度器(scheduler), 从而使在预定的scheduler下,开始时会有更多的生成步骤。
\[t:=1-\cos (\frac{1}{2}t\pi)\] - Classifier-free guidance (CFG) 技巧在这里被使用,以提高生成样本的多样性。
2.3 跨语种合成
CosyVoice支持跨语种合成,如下图所示,其中LID token控制了目标语种。当提示语音和输入文本在语言上有所不同时,需省略与提示相关的文本和标记,以防止原始语言的韵律特征影响目标语言。
2.4 指令微调
为了进一步提高 CosyVoice 的可控性,作者尝试整合额外的指令微调。CosyVoice-instruct 扩展了 CosyVoice-base,增强了指令遵循能力。具体来说,它支持对
- 说话者身份(即说话者的特征)
- 说话风格(包括情绪、性别、说话速度和音调)
- 细粒度副语言特征(fine-grained paralinguistic features, 包括笑声、呼吸、边笑边说和强调某些单词的)
等各个方面的控制。CosyVoice使用这些训练数据对 CosyVoice-base 进行了微调,代替了自回归语言模型中的说话人嵌入。
3 实验
3.1 数据集
- Small-scale Single-lingual dataset LibriTTS, which contains 585 hours from 2,456 English speakers ;
- 作者团队构造了一个大型的多语种数据集,并依靠一套自动标注流程对无标签数据打伪标签;
3.2 实验设置
模型结构如下所示。值得注意的是,论文中居然没具体交代Flow Matching 的结构设计和参数设置…
3.3 实验
- 实验结果表明了从ASR模型中提取token的有效性。实验中量化会导致ASR的词错误率上升,但上升的并不多;
- LibriTTS 测试集的结果表明了 BPE token以及基于ASR+量化的语音编码器的有效性 。这里评估是采用第三方的ASR模型 Paraformer-en 来判断合成音频的词错误率,以评价模型合成的内容一致性,以及采用声纹模型提取embedding,计算余弦相似度的方式来评价说话人一致性。
- 为了验证情绪可控性,作者团队使用了公开的语音情绪识别模型 emo2vec3进行测评。我们为六种情绪(高兴、愤怒、悲伤、惊讶、恐惧和厌恶)分别生成并评估了 100 句英语话语。合成文本的内容旨在与目标情绪相匹配。然后,我们测量合成语音对每种情绪的预测情绪的准确率。下表显示了 CosyVoice-base 和 CosyVoice-instruct 的情绪控制准确率比较。对于 CosyVoice-instruct,输入包括内容文本和说话风格指令(例如,"Happy.<endofprompt>Content Text")。相比之下,CosyVoice-base 仅接收内容文本作为输入。结果表明,带有情绪指令的 CosyVoiceinstruct 比不带有情绪指令的 CosyVoice-base 和 CosyVoice-instruct 表现出显着的改进。

- CosyVoice 的一个直接应用是作为数据生成器来增强其他任务的训练数据。以 ASR 任务为例,我们在 Librispeech 语料库上进行了实验,以评估 CosyVoice 生成高质量数据的能力。实验结果如下表所示,其中"Librispeech"表示原始的 960 小时数据。"Syn on LS text"和"Syn on MLS text"分别表示使用 Librispeech 和 MLS 训练集中的文本生成的数据。从表中我们可以看到,仅对合成数据进行训练,ASR 模型就可以实现与原始 Librispeech 训练集相当的结果。将它们整合在一起后,可以观察到识别准确率的显着提高。一个有趣的发现是,将合成数据用于 MLS 文本可以显著提高识别性能。这可能表明文本多样性对于 ASR 任务比语音本身的持续时间更为重要。这种改进可以归因于 CosyVoice 合成样本引入的多样化语言内容。我们的评估结果强调了 CosyVoice 生成的样本的高质量。
2023-2025, cai525 Revision
c8be808