VoxCPM 是清华大学 OpenBMB 推出的 Tokenizer-Free TTS 系统,通过端到端扩散自回归架构直接生成连续语音表示,绕过了离散 tokenization 的限制。VoxCPM-0.5B 发表于 ICLR 2026,后续 VoxCPM2 升级至 2B 参数、30 语言、48kHz 输出。 VoxCPM_arXiv_2509.24650
核心要点
- Tokenizer-Free 范式:通过可微分量化瓶颈(Differentiable Quantization Bottleneck)实现分层语义-声学建模,无需外部语音 tokenizer
- 四阶段流水线架构:LocEnc → TSLM → RALM → LocDiT,在 AudioVAE V2 的潜空间中端到端操作
- VoxCPM2(2026.04):2B 参数,30 语言,支持 Voice Design、Controllable Cloning、48kHz 输出,RTF ~0.3(RTX 4090)
- 训练数据:VoxCPM-0.5B 基于 180 万小时双语语料;VoxCPM2 基于 200 万+小时多语言数据
- 开源:Apache-2.0 许可,权重和代码完全开源,可商用
- 生态丰富:支持 Nano-vLLM / vLLM-Omni 生产部署,VoxCPM.cpp / ONNX / ANE 等社区推理后端
详细笔记
架构创新
VoxCPM 的核心思想是分层语义-声学建模,通过半离散残差表示弥合语义与声学之间的鸿沟:
- LocEnc(Local Encoder) — 将文本编码为局部上下文表示
- TSLM(Text-Semantic Language Model) — 生成语义-韵律计划(semantic-prosodic plan),以自回归方式预测高层语义
- RALM(Residual Acoustic Model) — 恢复细粒度声学细节,建模残差信息
- LocDiT(Local Diffusion Transformer) — 基于扩散的局部解码器,生成高保真语音潜变量
整个架构在简单的扩散目标函数下端到端训练,无需依赖外部语音 tokenizer。
版本演进
| 版本 | 时间 | 参数 | 语言 | 采样率 | 亮点 |
|---|---|---|---|---|---|
| VoxCPM-0.5B | 2025.09 | 0.5B | zh, en | 16kHz | 技术报告 (ICLR 2026) |
| VoxCPM1.5 | 2025.12 | 0.8B | zh, en | 44.1kHz | SFT & LoRA 微调 |
| VoxCPM2 | 2026.04 | 2B | 30 | 48kHz | Voice Design, Controllable Cloning |
关键能力
- Voice Design(语音设计):仅凭自然语言描述即可创造全新声音(如 “a young woman, gentle and sweet voice”),无需参考音频
- Controllable Cloning(可控克隆):克隆参考音频的音色,同时通过文本控制语速、情感和风格
- Ultimate Cloning(终极克隆):提供参考音频+精确文本,完美复现每个声音细节
- 上下文感知合成:自动从文本内容推断合适的韵律和表现力
- 流式生成:支持实时流式输出
性能表现
- Seed-TTS-eval 上,VoxCPM2 在英文 WER 1.84%、SIM 75.3%,中文 CER 0.97%、SIM 79.5%
- 跨 30 语言的内部 ASR 评测平均 CER/WER 仅 1.68%
- Voice Design 在 InstructTTSEval 英文上达到 APS 84.2、DSD 83.2、RP 71.4,全面领先开源和商业方案
生产部署
- Nano-vLLM:专用推理引擎,RTX 4090 上 RTF 低至 ~0.13,支持并发请求和 FastAPI 服务器
- vLLM-Omni:官方 vLLM 多模态扩展,PagedAttention、连续批处理、OpenAI 兼容端点
引用与数据
- arXiv 论文:https://arxiv.org/abs/2509.24650(ICLR 2026)
- GitHub 仓库:OpenBMB/VoxCPM(Apache-2.0)
- Hugging Face:openbmb/VoxCPM2
- 模型版本:0.5B / 1.5 / 2(最新推荐)
VoxCPM2 架构图
VoxCPM2 架构图.excalidraw
⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
指向原始笔记的链接