实测 VoxCPM1.5:无分词TTS如何用30种语言生成自然语音?
先说一个你可能不知道的事:市面上绝大多数 TTS 教程——包括很多"实测"文章——引用的参数数据都是错的。要么混淆了版本,要么直接照着其他人的二手转述写。这篇文章只说能从官方 README 和技术报告里核实的内容。
先纠正三个流传最广的误区
误区一:"VoxCPM2 支持 30 种语言"
官方 README 原文写得很清楚:
VoxCPM is trained primarily on Chinese and English data. Performance on other languages is not guaranteed and may result in unpredictable or low-quality audio.
多语言支持(Multilingual Support)还在 Roadmap 的待办列表里,尚未发布。所谓"30 种语言含方言"是对旧版本或竞品的描述,别被这个数字误导。
误区二:"模型参数量 2B,需要 RTX 4090"
目前最新版 VoxCPM1.5 参数量是 800M,上一版 VoxCPM-0.5B 是 640M。两者都远不到 2B。4090 是推荐配置,但不是硬性门槛,关键看你能接受多高的 RTF(实时因子)。
误区三:"48kHz 原生输出"
VoxCPM1.5 的 AudioVAE 采样率是 44100Hz(44.1kHz),不是 48kHz。VoxCPM-0.5B 更低,只有 16000Hz。官方文档没有"48kHz"这个数字。
它到底是什么,解决什么问题
VoxCPM 是 OpenBMB 团队(清华 & ModelBest)基于 MiniCPM-4 语言模型骨干打造的端到端 TTS 系统,论文已挂 arXiv(2509.24650)。
核心思路只有一句话:不把语音转成离散 Token,直接在连续空间里建模。
传统 TTS(包括 VITS 系列、XTTS 等)的共同路径是:文本 → 离散声学 Token → 波形。离散化这一步会损失细节,也是"机械感"的主要来源。VoxCPM 用扩散自回归架构(DiTAR backbone + CosyVoice 的 Flow Matching LocDiT)跳过了这一步,让模型直接从文本预测连续语音表示,再交给 AudioVAE 解码成波形。
训练数据规模:180 万小时中英文双语语料(原文提到的"200 万小时"无出处,官方数字是 1.8M hours)。
两个版本,你该用哪个
| VoxCPM-0.5B(原版) | VoxCPM1.5(最新) | |
|---|---|---|
| 参数量 | 640M | 800M |
| AudioVAE 采样率 | 16,000 Hz | 44,100 Hz |
| LM Token Rate | 12.5 Hz(patch=2) | 6.25 Hz(patch=4) |
| RTX 4090 上的 RTF | 0.17 | ~0.15 |
| 权重是否开源 | ✅ HuggingFace 可下载 | ✅ HuggingFace 可下载 |
| 支持 LoRA 微调 | ❌ | ✅ |
| 支持全参数微调(SFT) | ❌ | ✅ |
结论很简单:新项目直接用 1.5,音质更好,还能微调。0.5B 只适合你有特殊理由需要维持旧版本的场景。
三个真正值得验证的能力
1. 上下文感知语调
官方表述是"spontaneously adapts speaking style based on content"。意思是模型读到疑问句自然上扬,读到列举段落自动控制节奏,不需要你手动打标签。
这是端到端架构的直接红利。传统 TTS 把文本和声学特征分开处理,语境信息在转换中丢失;VoxCPM 的语言模型骨干全程保留了语义,所以能做到隐式的语义-声学解耦。
验证方法:准备三段不同情绪基调的文本(平铺叙述、反问句密集、技术文档列举),分别合成,对比停顿和音调变化是否符合直觉。不要用单句测试,短句效果差异不明显。
2. 零样本声音克隆
提供几秒参考音频,模型能同时复刻音色、口音、情绪基调、语速节奏。这是真正意义上的"零样本"——不需要对应文本,不需要重新训练,不需要微调。
官方描述:
capturing not only the speaker's timbre but also fine-grained characteristics such as accent, emotional tone, rhythm, and pacing
实用限制:当前版本对情绪和说话风格的主动控制还有限,可控语音生成(通过自然语言指令调节情绪)在 Roadmap 里但未上线。所以"给我生成带焦虑感的30岁女声"这类 prompt 目前不能直接实现,这点原文描述是超前于现实的。
3. 流式合成 + 低 RTF
RTF(实时因子)= 合成时间 / 音频时长。RTF 0.15 意味着合成 10 秒音频只需 1.5 秒——这个数字在 RTX 4090 上已经达到实时对话的可用门槛。
官方同时开源了 NanoVLLM 集成版(社区维护),可以进一步提升吞吐量。还有 ONNX 导出版,支持 CPU 推理——虽然速度会显著下降,但对没有 GPU 的场景是个可用的备选项。
真实安装流程(亲测可用)
原文给的是 git clone + pip install -r requirements.txt 的路径,但官方已经发布了 PyPI 包,正确姿势更简单:
# Step 1:安装主包
pip install voxcpm
# Step 2:下载模型权重(首次运行会自动触发,也可提前手动下载)
from huggingface_hub import snapshot_download
snapshot_download("openbmb/VoxCPM1.5")
# Step 3:合成语音(最小示例)
import soundfile as sf
from voxcpm import VoxCPM
model = VoxCPM.from_pretrained("openbmb/VoxCPM1.5")
wav = model.generate(
text="这是一段测试语音,用来验证 VoxCPM 的合成效果。",
prompt_wav_path=None, # 留空则使用默认音色
cfg_value=2.0, # 越高越贴近 prompt,但可能失真
inference_timesteps=10, # 步数越高质量越好,速度越慢
retry_badcase=True # 遇到不稳定输出自动重试
)
sf.write("output.wav", wav, model.tts_model.sample_rate)
CLI 方式(不想写代码):
# 直接合成
voxcpm --text "你好,这是 VoxCPM 的语音合成测试。" --output test.wav
# 声音克隆
voxcpm --text "目标文本内容" \
--prompt-audio your_voice.wav \
--prompt-text "参考音频的对应文字" \
--output cloned.wav
Web UI:
python app.py # 默认启动在 localhost,支持声音克隆和声音创建两个功能
需要提前知道的隐患
语言支持被严重高估:当前版本主要支持中英文,其他语言效果无保证。如果你的核心需求是多语言,先用 Playground 测你目标语言的实际效果,再决定是否投入。
ONNX/CPU 方案是社区维护,非官方:如果你打算在没有 GPU 的机器上部署,ONNX 版本的稳定性和更新频率需要自行评估,OpenBMB 不负责这个分支的维护。
偶发不稳定:官方在 Limitations 里明确承认:the model may occasionally exhibit instability, especially with very long or expressive inputs. 所以批量生产场景要做好异常检测和重试逻辑,代码里的 retry_badcase=True 参数不是可选项,是建议默认开启的。
克隆功能的伦理风险:README 单独开了一节警告,真实声音克隆存在被用于深度伪造的风险。OpenBMB 明确要求公开发布的 AI 生成内容需标注来源。这不是套话,是你在做产品时必须认真考虑的合规问题。
微调需要足够的数据:1.5 版本支持 SFT 和 LoRA,但官方指南没有给出最低数据量建议。如果你想训练特定人声,建议先从 LoRA 入手,成本更低,效果通常已经够用。
横向对比:该选哪个
| VoxCPM1.5 | CosyVoice 2 | XTTS-v2 | F5-TTS | |
|---|---|---|---|---|
| 架构 | 扩散自回归(无 Token) | 流匹配 | VITS 变体 | 扩散 |
| 主要语言 | 中/英 | 中/英/多语言 | 17 语言 | 中/英 |
| 声音克隆 | 零样本 | 零样本 | 零样本 | 零样本 |
| 可控情绪 | ❌(Roadmap) | ✅ | ⚠️ 有限 | ❌ |
| 微调支持 | ✅ SFT + LoRA | ✅ | ✅ | ✅ |
| 最低 GPU 需求 | 有 ONNX CPU 版 | 建议 GPU | 中端 GPU | 中端 GPU |
| 商用协议 | Apache 2.0 | Apache 2.0 | CPML(限制商用) | MIT |
如果你的核心需求是中英文混读的自然度,VoxCPM1.5 值得一试。如果需要多语言加情绪可控,CosyVoice 2 目前更完整。如果你在意商用许可的简洁性,CosyVoice 2 和 F5-TTS 的协议更干净。
周末两小时的最小验证路径
第一步,用官方 Playground(Gradio 界面)在线测你的目标文本和语言,不需要本地环境,5 分钟内能得到直观结论。
第二步,如果 Playground 效果符合预期,在本地用 pip install voxcpm 装好,跑一个 10 句话的批量合成任务,测量实际 RTF 和偶发失败率。
第三步,如果批量合成稳定,再考虑声音克隆场景——准备一段 5-10 秒的清晰参考音频,测克隆保真度。
如果第一步就不理想,直接换工具,别在环境配置上浪费时间。
相关链接
- GitHub 仓库:https://github.com/OpenBMB/VoxCPM
- 技术报告(arXiv):https://arxiv.org/abs/2509.24650
- Demo 页面:https://openbmb.github.io/VoxCPM-demopage/
- HuggingFace 模型:https://huggingface.co/openbmb/VoxCPM1.5

评论(0)