CosyVoice2:快到足以用于真实对话的语音合成
原始 CosyVoice 证明,与早期无监督 token 模型相比,受监督语义 token 能实现更准确、更一致的零样本声音克隆。但它无法实时回应你——与大多数第一代基于 LLM 的 TTS 一样,它必须拿到完整文本后才能开始生成音频。CosyVoice2 正是为弥合这一差距而构建:它将相同的底层方法重构为流式架构,使首包延迟低到足以用于实时语音聊天。
CosyVoice2 的新变化
由阿里巴巴通义语音团队开发的 CosyVoice2 保留了让原始模型得以发挥作用的受监督语义 token 基础,但围绕三项具体工程改动重建了整个管线:
有限标量量化。 原始模型的语音 tokenizer 没有充分使用部分码本。CosyVoice2 以有限标量量化替代它,提高码本利用率,并让模型能够使用更高效、覆盖更充分的语音表示。
简化的文本-语音语言模型。 通过精简 LM 架构,CosyVoice2 可以直接使用预训练大语言模型作为骨干,而不再需要定制架构——这项改变既简化了训练,也继承了基础 LLM 的通用语言理解能力。
块感知的因果流匹配。 这才是真正实现流式生成的部分。CosyVoice2 不再在生成 mel 频谱图之前等待完整输入,而是按因果顺序分块处理语音,将流式和非流式合成统一到一个框架中,而不是将它们作为两个独立模型发布。团队公布的结果表明,这种流式模式的输出质量几乎与完整离线生成无法区分——这与流式 TTS 通常不得不接受质量权衡的结果有本质不同。
重要数据
- 150ms 首包延迟。 CosyVoice2 在收到文本后大约 150 毫秒即可开始生成音频——在语音聊天管线中(LLM 负责生成回答文本),即使两个模型串行工作,用户感知到的延迟仍然很低。
- 相比原始 CosyVoice,发音错误减少 30–50%,这是改进后的 tokenizer 与简化 LM 架构直接带来的结果。
- MOS 评分从 5.4 提升到 5.53,既反映了在人类评分下自然度的提升,也与延迟收益并存——CosyVoice2 并非以速度交换质量,而是同时提升两者。
- 在发布时参与比较的模型中,在 Seed-TTS hard 测试集上达到最低字符错误率;这个基准专门用于严苛测试困难发音情形。
这些数据背后还有一个值得了解的训练细节:CosyVoice2 在微调中使用强化学习,以说话人相似度和 ASR 测得的词错误率作为奖励信号——直接推动模型更像目标说话人,并把文字说对,而不仅仅优化通用重建损失。
与克隆统一的指令式生成
CosyVoice2 还合并了原始版本中彼此独立的两项能力:零样本声音克隆和基于指令的风格控制。在第一代 CosyVoice 系列中,你必须在基础克隆模型和独立的 Instruct checkpoint 之间二选一。CosyVoice2 将两者整合到同一个模型中,因此可以从参考片段克隆声音,并通过指令独立控制情绪、口音和角色化表达——不必再根据当次所需能力切换 checkpoint。
开始使用 CosyVoice2
- 使用 submodule 克隆仓库。 与原始 CosyVoice 一样,使用
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git——CosyVoice2 共享同一仓库及 Matcha-TTS 依赖。 - 下载 CosyVoice2-0.5B checkpoint。 它可通过 Hugging Face 和 ModelScope 获取,与原始 CosyVoice-300M checkpoint 不同;如果你需要流式生成,请确认拉取的是 2.0 权重。
- 明确选择流式或离线模式。 CosyVoice2 将两种模式统一到同一框架中,因此运行哪条路径由你的推理调用决定——交互场景使用流式,延迟无关紧要且追求最高质量的批量生成使用离线模式。
- 结合克隆测试指令式生成。 在同一次调用中组合参考音频片段与风格指令(情绪、口音或角色),即可看到统一能力的效果;不要把克隆与指令控制分开测试。
- 在自己的硬件上测试首包延迟。 公布的 150ms 数据反映的是团队自身测试环境;在围绕实时架构做决策前,请先在部署 GPU 上验证实际延迟。
获得更好效果的技巧
- 专门将流式模式用于对话管线。 如果你正在构建由 LLM 文本输出直接驱动 TTS 的语音智能体,流式模式才能保持端到端响应时间低;离线模式会重新引入 CosyVoice2 所要消除的整句等待。
- 不要假定流式意味着更低质量。 CosyVoice2 的块感知流匹配专门用于让流式输出接近离线质量;请在实际内容上测试两种模式,而不要因为谨慎就默认选择离线模式。
- 用指令控制语气,不要反复录制参考片段。 如果你需要同一个克隆声音呈现不同情绪,修改指令比重新寻找已带有所需情绪的参考片段迭代得更快。
- 在特定领域词汇上验证发音。 30–50% 的错误减少是在通用基准上测得;技术术语或领域专用术语在投入生产前仍应抽查。
- 构建语音聊天时搭配快速 LLM。 CosyVoice2 的低延迟面向聊天式管线,但整体响应时间仍取决于上游 LLM 输出文本的速度——缓慢的文本生成器会削弱快速 TTS 阶段的优势。
CosyVoice2 与 CosyVoice(原始版)对比
| CosyVoice2 | CosyVoice(2024) | |
|---|---|---|
| 参数量 | 5 亿 | 3 亿 |
| 流式生成 | 支持,与离线模式统一 | 不支持 |
| 首包延迟 | 约 150ms | 未针对该指标优化 |
| 零样本克隆 + 指令式风格 | 统一于一个模型 | 独立 checkpoint(基础版 vs. Instruct) |
| 发音准确性 | 错误减少 30–50% | 基准 |
| MOS 评分 | 5.53 | 5.4 |
| 训练方法 | RL 微调(说话人相似度 + WER 奖励) | 监督训练 |
CosyVoice2 的升级路径很明确:如果项目需要实时或近实时生成——语音智能体、实时聊天、交互式应用——它就是为此构建的版本。如果你离线生成音频且没有延迟限制,差距没有那么重要,不过准确性和质量提升仍然适用。
常见问题
CosyVoice 和 CosyVoice2 的主要区别是什么?
CosyVoice2 新增了首包延迟约 150ms 的流式合成,将零样本克隆与指令式风格控制统一到单个模型中,并将发音准确性相对原始版本提升 30–50%;同时它没有以速度交换质量,MOS 反而从 5.4 提升到 5.53。
CosyVoice2 足够快,可以用于实时语音聊天吗?
是的,这正是它的主要设计目标。150ms 的首包延迟足以让它与语音聊天管线中的 LLM 配合,而不会由 TTS 阶段本身带来明显延迟。
CosyVoice2 会为了流式速度牺牲音频质量吗?
不会。块感知因果流匹配的设计目标就是让流式输出保持接近离线质量;公布的 MOS 评分相较非流式原始版本实际上还提高了。
CosyVoice2 仍然可以进行零样本声音克隆吗?
可以,而且有所改进——声音克隆和基于指令的风格控制(情绪、口音、角色风格)现在已整合到单个模型中,无需像原始 CosyVoice 一样使用独立 checkpoint。
CosyVoice2 是开源的吗?
是的。模型权重和推理代码可通过同一个 FunAudioLLM/CosyVoice GitHub 仓库公开获取,Hugging Face 和 ModelScope 也提供托管。
体验类似的声音克隆功能
CosyVoice2 可通过 FunAudioLLM/CosyVoice 的开源实现及模型托管平台使用。如果你想在浏览器中体验声音克隆,可以试试声音克隆这一类似功能。它不是 CosyVoice2,也不运行 CosyVoice2 模型,但无需在本地配置模型,就能让你测试类似的声音克隆流程。
请只克隆你拥有或已获得明确授权的声音。