CosyVoice 是阿里通义语音团队开源的 LLM 系语音合成模型,仓库现在挂在 GitHub 的 QwenAudio/CosyVoice 下——原来的 FunAudioLLM 组织名已经改成了 QwenAudio,老链接会自动跳转,但你写在 Dockerfile 里的 git clone 地址最好一并更新。模型权重那边反而没动:HuggingFace 仍是 FunAudioLLM,ModelScope 上 1.0 与 2.0 系列仍挂在 iic 下。整个项目 Apache-2.0,推理、训练、部署全栈开放,2.2 万 star。
当前主线是 2025 年 12 月放出的 Fun-CosyVoice3-0.5B-2512。它的 llm.pt 是 2.02GB,flow.pt 1.33GB,hift.pt 83.2MB,全 fp32 加起来 3.44GB;此外还要装下 969MB 的 speech_tokenizer_v3.onnx 和 28.3MB 的 campplus.onnx。也就是说,这是一个总共不到 5GB 的模型——比它能干的事小得多。论文里把参数量从 0.5B 推到了 1.5B、训练数据从一万小时扩到一百万小时,但开源出来的权重只有 0.5B 这一档,1.5B 至今没有公开,别再去搜下载链接了。
真正劝退人的不是显存,是依赖。Matcha-TTS 是 git 子模块,忘了 --recursive 就等着 ModuleNotFoundError: No module named 'matcha';ttsfrd 只提供 cp310 的 linux_x86_64 轮子;vLLM 的版本必须和 transformers 钉死配对;CosyVoice3 上开 TensorRT fp16 官方自己在代码里警告有性能问题。这些坑在一台干净的 GPU 机器上十几分钟就能趟完,在你本地那台装了三年的机器上可能耗掉一整天。NexGPU 有 2000 多个预置镜像,PyTorch 和 vLLM 都是现成的,按秒计费,跑通了再谈下一步。
01 —
现在到底该下哪个权重
三条线并存,文件大小与采样率都不一样,别混着用
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| Fun-CosyVoice3-0.5B-2512 | 0.5B(Qwen2.5-0.5B 骨干,hidden 896) | fp32 权重 3.44GB(llm 2.02 + flow 1.33 + hift 0.08)|建议 ≥12GB | 24kHz 输出|9 语种 + 18 种中文方言 | 当前主线。零样本跨语种克隆、拼音与 CMU 音素级发音纠正、指令控制情绪语速音量。注意零样本调用要在 prompt 文本前加 You are a helpful assistant.<|endofprompt|> 前缀。 |
| Fun-CosyVoice3-0.5B-2512 RL(llm.rl.pt) | 0.5B,同架构不同 LLM 检查点 | 额外 2.02GB 权重文件|运行时占用与 base 相同 | 24kHz 输出|同基座 | 强化学习后训练版,装在同一目录里作为独立的 llm.rl.pt。test-zh 字错率 0.81% 对比 base 的 1.21%,test-en 词错率 1.68%。要发音准确度就用这个。 |
| CosyVoice2-0.5B | 0.5B | fp32 权重 2.55GB(llm 2.02 + flow 0.45 + hift 0.08)|建议 ≥8GB | 24kHz 输出|25Hz token 速率 | 2024 年 12 月的 25Hz 版本,生态最成熟,vLLM 支持从 2025 年 5 月就有了。中文 CER 1.45%、英文 WER 2.57%、说话人相似度 75.7%。求稳定、求老教程能对上,选它。 |
| CosyVoice-300M / -SFT / -Instruct | 300M | 权重体积远小于 0.5B 线|8GB 卡绰绰有余 | 22.05kHz 输出|50Hz token 速率 | 1.0 老线。注意采样率是 22050 而非 24000,和 2.0 之后的产物不能直接混剪。SFT 版内置预设音色可 list_available_spks(),Instruct 版走自然语言指令。新项目不建议从这里起步。 |
| CosyVoice 3(1.5B,论文规模) | 1.5B | —(权重未开源) | 论文 arXiv 2505.17589 | 论文把模型从 0.5B 扩到 1.5B、数据扩到一百万小时,但开源的只有 0.5B。想要 1.5B 的效果,现实路径是拿 0.5B 在自己的数据上做后训练,而不是等权重。 |
02 —
按用途挑卡,别为一个 0.5B 模型付 H100 的钱
CosyVoice 的瓶颈是延迟和并发,不是显存容量
跑通环境、试听零样本音色克隆、做效果评估
RTX 3090 24GB$0.193/卡·时
全站最便宜的 24GB,比 16GB 的 Tesla T4($0.298)还便宜且快得多,装下 3.44GB 权重加 ONNX 分词器毫无压力,趟依赖坑的性价比之选。
线上流式 TTS 服务,vLLM + TensorRT 常驻
RTX 4090 24GB$0.540/卡·时
Ada 架构的 fp16 与 TensorRT 表现是这个价位最好的,24GB 足够给 vLLM 留出像样的 KV 缓存池,首包延迟稳定在几百毫秒量级。
高并发批量配音、Triton + TRT-LLM 多路推理
A100 PCIE 80GB$0.824/卡·时
官方 Triton 基准在单张 L20 上做到 LLM batch 16、RTF 0.0501;80GB 让你把 trt_concurrent 和 vLLM 显存池同时开大,单卡吃下几十路并发。
微调自有音色、训练 flow 与 HiFiGAN 声码器
RTX A6000 48GB$0.817/卡·时
仓库 issue 里已经有人在 16GB 上训 HiFiGAN 撞显存墙。训练比推理吃得多得多,48GB 是舒适起点,价格和 A100 80GB 几乎持平可按需换。
03 —
从空机器到出第一段音频
四步,命令都是仓库里的原话
- 01
开一台 GPU,拉仓库(记得 --recursive)
在 NexGPU 控制台选 PyTorch 预置镜像开一台 RTX 3090 或 4090,SSH 进去。Matcha-TTS 是子模块,漏了递归克隆后面必炸;顺手把 sox 装上,torchaudio 读写要用。
git clone --recursive https://github.com/QwenAudio/CosyVoice.git && cd CosyVoice && git submodule update --init --recursive && sudo apt-get install -y sox libsox-dev - 02
建 Python 3.10 环境,装依赖
必须是 3.10——ttsfrd 官方只提供 cp310 的 linux_x86_64 轮子。ttsfrd 装不上不是致命的,项目会退回 WeTextProcessing 做文本正则化,中文数字和符号读法会略差一点。
conda create -n cosyvoice -y python=3.10 && conda activate cosyvoice && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com - 03
下权重,跑第一次零样本克隆
权重走 ModelScope 或 HuggingFace 都行。注意 CosyVoice3 的 prompt 文本要带 <|endofprompt|> 前缀,这是 3.0 相对 2.0 的调用差异,照着 2.0 的老教程写会得到很奇怪的结果。跨语种合成则在目标文本里打 <|en|>、<|zh|>、<|ja|> 这类语言标签。
python -c "from modelscope import snapshot_download; snapshot_download('FunAudioLLM/Fun-CosyVoice3-0.5B-2512', local_dir='pretrained_models/Fun-CosyVoice3-0.5B')" && export PYTHONPATH=third_party/Matcha-TTS && python example.py - 04
上生产:vLLM 加速或 Triton 多路服务
vLLM 的版本必须和 transformers 成对钉死,装错版本会在注册 CosyVoice2ForCausalLM 时报错。一个关键差异:官方示例里 CosyVoice2 用 fp16=True,CosyVoice3 用 fp16=False——代码里明写着 DiT 的 TensorRT fp16 引擎有性能问题,别自作主张打开。要更高吞吐就上 runtime/triton_trtllm 的 docker compose。
pip install vllm==v0.11.0 transformers==4.57.1 numpy==1.26.4 && python vllm_example.py
一小时成品音频到底多少钱
拿官方在单张 L20 上的离线基准换算:LLM batch 8 时 RTF 0.0562,也就是合成 1 秒音频只花 0.0562 秒算力。一个 GPU 小时 = 3600 ÷ 0.0562 ≈ 64,060 秒 ≈ 17.8 小时成品音频。跑在 NexGPU 的 RTX 4090 24GB($0.540/卡·时)上,折合 $0.540 ÷ 17.8 ≈ $0.030 每小时音频。换成不做批处理的 batch 1(RTF 0.1091),一个 GPU 小时约 9.2 小时音频,$0.059 每小时音频。落到真实活儿上:一本 10 万字的有声书按每分钟 250 字算约 6.7 小时音频,batch 8 下大约 $0.20 的 GPU 成本,加上下载权重的一次性时间,一杯咖啡钱有找。想再压就换 RTX 3090($0.193/卡·时),同一算法下单价还能降到三分之一——注意上面的 RTF 是 L20 实测值,换卡后实际吞吐会有出入,但量级是对的。计费按秒结算,合成完把实例停掉计算费立刻停止,只有存储会继续计到你销毁它为止(中位价 $0.414/GB·月,而这套权重不到 5GB)。没有最低消费,没有开通费,不用提配额工单。
04 —
