EchoraEchora
返回模型

CosyVoice:重新思考“语音 token”定义的模型

2026年8月27日
阅读约 6 分钟

把文字和录音,做成能听的作品

配音、分轨、翻唱和音效,都在浏览器里完成。

  • 文字转语音,也能克隆音色
  • 分离音轨,或直接生成翻唱
  • 注册就能试听,先听再决定
免费开始创作

到 2024 年,包括 VALL-E 在内的大多数基于 LLM 的零样本 TTS 模型,都有一个共同的底层假设:将语音表示成以无监督方式学习到的 token,再让语言模型像预测文本一样预测这些 token。阿里巴巴 FunAudioLLM 团队审视了这一假设,并直接提出了挑战。CosyVoice 转而从多语言语音识别模型中构建其语音 token;由此带来的内容准确性和声音克隆保真度提升,让该模型受到关注,也奠定了后来 CosyVoice 2 和 3 所延续的架构基础。

什么是 CosyVoice?

CosyVoice 是由阿里巴巴语音 AI 研究团队 FunAudioLLM 开发的开源多语言零样本文本转语音模型。它以 3 亿参数规模发布,提出了一种可扩展、基于 LLM 的声音克隆方法:无需任何微调,就能从一段简短的参考片段复现说话人的声音——在其发布时,这种能力在开源 TTS 中仍相对新颖。

CosyVoice 支持五种语言——中文、英语、日语、粤语和韩语——并针对不同需求提供三个独立的 checkpoint:

  • CosyVoice-300M——基础的零样本和跨语言模型,最适合从参考片段克隆任意声音。
  • CosyVoice-300M-SFT——在一组固定的高质量声音上进行监督微调,以克隆灵活性换取已知声音库上更一致、可用于生产的输出。
  • CosyVoice-300M-Instruct——通过自然语言指令增加对说话风格的控制,让你能借助描述性文本提示控制语速、情绪和方言,而不只依赖参考音频片段。

核心创新:受监督语义 token

这正是解释 CosyVoice 为何能呈现当前表现的关键细节,值得理解,而不是略过。

早期基于 LLM 的 TTS 系统使用以无监督方式提取的 token 表示语音——本质上,模型学习将音频压缩为离散单元,但不会被告知这些单元在语言学上代表什么。CosyVoice 的研究团队采取了另一种做法:他们从多语言语音识别模型的内部表示中导出语音 token,并在其编码器中插入向量量化步骤。由于源模型经过训练以理解语音内容,生成的 token 带有无监督 token 不具备的明确语义和文本对齐。

团队公开评估确认了这种做法带来的两项实际收益:与 VALL-E 等无监督 token 方法相比,内容一致性显著更好(生成语音能更可靠地说出文本实际写的内容),零样本克隆中的说话人相似度也更高。在与同期、规模相近的 ChatTTS 进行正面对比时,CosyVoice 的插入和删除错误也明显更少——尤其避免了“说话人泄漏”问题,即另一位说话人声音的片段会渗入生成输出。

从架构上看,生成分两步进行:自回归语言模型将文本转换为这些语义 token,条件流匹配模型再将 token 转换为 mel 频谱图,最后由声码器将其渲染为最终波形。

开始使用 CosyVoice

  1. 连同子模块一起克隆。 CosyVoice 将 Matcha-TTS 项目作为 git 子模块依赖,因此请使用 git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git——普通 clone 会缺少所需组件。
  2. 配置环境并安装依赖。 创建专用 Python 环境(推荐 Conda),并运行 pip install -r requirements.txt;若在中国境内安装,使用阿里巴巴的 PyPI 镜像会明显更快。
  3. 为任务选择正确的 checkpoint。 零样本或跨语言克隆请选择 CosyVoice-300M;固定的高质量声音库已足够时选择 CosyVoice-300M-SFT;需要自然语言风格控制时选择 CosyVoice-300M-Instruct
  4. 可选安装文本前端资源。 CosyVoice-ttsfrd 包会改善文本规范化(数字、日期、缩写);如果输入文本尚未是干净的口语形式,值得添加。
  5. 集成前先启动 WebUI 测试。 运行 python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300M 会打开一个 Gradio 界面,你可以上传参考片段并输入目标文本,直接测试声音克隆。

获得更好结果的技巧

  • 让 checkpoint 匹配任务,而不是反过来。 强行让 SFT 模型做任意声音克隆,或让基础模型承担固定高质量旁白,都会违背各 checkpoint 实际调校的目标——应先根据使用场景选择 checkpoint。
  • 当风格比某个特定克隆声音更重要时,使用 Instruct 模型。 如果优先目标是控制呈现方式——节奏、情绪、口音——而不是复现某一位具体人物的声音,CosyVoice-300M-Instruct 的自然语言风格提示会比试图从仅克隆模型中诱导风格更直接。
  • 提供干净、录制良好的参考片段。 CosyVoice 的受监督 token 对真实语音内容很敏感,因此有噪声或低质量的参考音频会比纯声学 token 方法更明显地降低克隆准确度。
  • 对数字和日期使用 ttsfrd 包预处理文本。 含有数字、缩写或日期的原始文本,适合先使用可选文本规范化前端处理,而不是直接原样传给模型。
  • 将 CosyVoice 1.0 视为非流式基线。 如果项目特别需要低延迟流式生成,这项能力是在 CosyVoice 2 中引入的;原始版本更适合无需受整句延迟约束的离线生成。

CosyVoice 的定位

CosyVoice(2024)VALL-E 风格模型ChatTTS
语音 token 类型受监督(来自 ASR 模型)无监督(如 Encodec)无监督
内容一致性强,具有语义 token 优势容易发生内容漂移CER 相当,但插入/删除错误更多
说话人泄漏未观察到可能发生在评估中出现更频繁
参数量3 亿各不相同规模相近
风格控制Instruct 变体(自然语言提示)有限有限
流式不支持(CosyVoice 2 引入)各不相同并非重点

CosyVoice 的贡献不在于规模——即使按 2024 年的标准,3 亿参数也不算大——而在于证明了语音 token 的表示方式与模型大小同样重要。正是这一架构判断,构成了后续 CosyVoice 2 和 CosyVoice 3 继续构建的基础。

常见问题

CosyVoice 是谁开发的?

CosyVoice 由阿里巴巴集团内部的语音 AI 研究团队 FunAudioLLM 开发,并作为 GitHub 上的开源项目发布。

CosyVoice 的语音 token 与其他 TTS 模型有什么不同?

CosyVoice 从多语言语音识别模型中导出 token,而不是以无监督方式学习 token,从而让 token 与文本具有明确的语义对齐;与无监督 token 方法相比,这提高了内容准确度和说话人相似度。

我应该使用哪个 CosyVoice checkpoint?

零样本或跨语言声音克隆请选择基础模型 CosyVoice-300M;需要一组预调校的固定高质量声音时选择 CosyVoice-300M-SFT;如果需要使用自然语言控制说话风格,则选择 CosyVoice-300M-Instruct

CosyVoice 支持流式生成吗?

不支持,至少原始版本不支持。CosyVoice 2 在这个模型 token 架构的基础上,通过面向分块的设计引入了流式合成,从而实现更低延迟的输出。

CosyVoice 可以免费商用吗?

可以。CosyVoice 的代码和模型权重已在 GitHub 和 Hugging Face 上公开,可用于本地部署和进一步开发。

体验类似的声音克隆功能

CosyVoice 可通过其开源实现和社区工具使用。如果你想在浏览器中体验声音克隆,可以试试声音克隆这一类似功能。它不是 CosyVoice,也不运行 CosyVoice 模型,但无需在本地配置模型,即可测试类似的声音克隆流程。

请只克隆你拥有或已获得明确授权的声音。

探索声音克隆 →