Skip to content

VoxCPM — 免分词 TTS 语音合成,30 种语言开箱即用

[!info] 视频信息 - 频道:GitCovery - 时长:约 7 分钟 - GitHub:https://github.com/OpenBMB/VoxCPM - 官网:https://voxcpm.net - 论文:https://arxiv.org/html/2509.24650v1


一句话总结

VoxCPM2 用 扩散自回归(Diffusion Autoregressive) 架构绕过传统离散 tokenization,在 2B 参数规模上实现了 30 种语言、48kHz 录音室级音质、完全免费商用的端到端 TTS。


为什么值得关注

维度 VoxCPM2 的表现
语言覆盖 30 种语言 + 9 种中文方言
音质 48kHz 录音室级
延迟 RTF ~0.3 (PyTorch) / ~0.13 (Nano-vLLM)
许可 Apache-2.0,可商用
硬件门槛 VRAM ~8GB(消费级显卡可跑)
训练数据 200 万+小时多语言语音

传统 TTS 模型(如 VITS、Bark)的痛点在于:离散 token 会导致音质损失、多语言扩展困难。VoxCPM2 直接在连续潜变量空间生成语音,从根本上解决了这个问题。

传统 TTS Pipeline:
  Text --> [Tokenizer] --> Discrete Tokens --> [Vocoder] --> Waveform
               ^^^ 信息瓶颈

VoxCPM2 Pipeline:
  Text --> [MiniCPM-4 LLM] --> Continuous Latents --> [AudioVAE V2] --> 48kHz Waveform
               ^^^ 无信息瓶颈,端到端优化

架构解析

VoxCPM2 的核心创新在于分层语言建模 + FSQ 约束连续潜变量,整体架构如下:

┌─────────────────────────────────────────────────────┐
│                     VoxCPM2                         │
│                                                     │
│  ┌───────────┐    ┌──────────────────┐              │
│  │ Input Text │───>│  MiniCPM-4 LLM   │              │
│  │            │    │  (语言模型骨干)    │              │
│  └───────────┘    └───────┬──────────┘              │
│                           │                          │
│                    ┌──────▼──────┐                   │
│                    │ FSQ Encoder │  ← 约束连续潜变量  │
│                    └──────┬──────┘                   │
│                           │                          │
│               ┌───────────▼───────────┐              │
│               │  Diffusion Autoregressive  │          │
│               │  (扩散自回归生成)           │          │
│               └───────────┬───────────┘              │
│                           │                          │
│               ┌───────────▼───────────┐              │
│               │   AudioVAE V2         │              │
│               │   16kHz → 48kHz 上采样 │              │
│               └───────────┬───────────┘              │
│                           │                          │
│                    48kHz Waveform                   │
└─────────────────────────────────────────────────────┘

关键组件说明

组件               作用                    优势
─────────────────────────────────────────────────────
MiniCPM-4          语言模型骨干             强大的语义理解与上下文感知
FSQ (Finite       约束连续潜变量           避免 token 化的信息损失
 Scalar Quant.)
Diffusion AR       逐步精炼音频质量         比 AR 更稳定,比纯扩散更快
AudioVAE V2        高分辨率上采样           16kHz → 48kHz 保真度极高

[!tip] 核心设计理念 语义与声学的隐式解耦:不需要显式分离"说什么"和"怎么说",模型通过连续表示隐式学习两者关系,让 Context-Aware 表现力成为自然涌现。


核心功能详解

功能全景

┌────────────────────────────────────────────────────────────┐
│                    VoxCPM2 功能矩阵                        │
├──────────────┬─────────────────────────────────────────────┤
│              │  需要参考音频?  需要转录文本?  需要风格描述?  │
├──────────────┼─────────────────────────────────────────────┤
│ Voice Design │      ❌           ❌           ✅            │
│ Controllable │      ✅           ❌           ✅            │
│   Cloning    │                                              │
│   Ultimate   │      ✅           ✅           ❌            │
│   Cloning    │                                              │
│ Context-Aware│      ❌           ❌           ❌ (自动推断) │
└──────────────┴─────────────────────────────────────────────┘

1. Voice Design — 文本创造声音

纯文本描述即可生成特定音色,无需任何参考音频:

from voxcpm import VoxCPM
import soundfile as sf

model = VoxCPM.from_pretrained("openbmb/VoxCPM2")

# 括号内描述声音特征,括号外是实际朗读内容
wav = model.generate(
    text="(A young woman, gentle and sweet voice)Hello, welcome to our show!"
)
sf.write("voice_design.wav", wav, model.tts_model.sample_rate)

[!example] 描述语法 格式为 (描述)正文,描述支持: - 性别与年龄:A middle-aged manAn elderly woman - 音色特征:warm and deep voiceclear and bright - 情感风格:excitedcalmprofessional

2. Controllable Cloning — 可控声音克隆

提供参考音频 + 风格引导,灵活控制输出:

wav = model.generate(
    text="这是可控克隆的示例",
    prompt_audio="reference.wav",       # 参考音频
    prompt_style="excited, fast-paced"   # 风格引导
)

3. Ultimate Cloning — 终极声音克隆

参考音频 + 转录文本 → 忠实复制所有声音细节(包括呼吸、停顿、语调):

wav = model.generate(
    text="这是新的朗读内容",
    prompt_audio="reference.wav",
    prompt_transcript="这是参考音频的转录文本"
)

4. 流式合成 — 实时输出

chunks = []
for chunk in model.generate_streaming(text="流式语音合成示例,适合实时应用场景"):
    chunks.append(chunk)
    # 每个 chunk 可立即播放/发送

环境配置与安装

依赖要求

┌──────────────────────┬──────────────────┐
│     组件              │    最低版本       │
├──────────────────────┼──────────────────┤
│ Python               │ ≥ 3.10          │
│ PyTorch              │ ≥ 2.5.0         │
│ CUDA                 │ ≥ 12.0          │
│ GPU VRAM             │ ≥ 8 GB          │
└──────────────────────┴──────────────────┘

安装与快速开始

# 安装
pip install voxcpm

# 验证安装
python -c "from voxcpm import VoxCPM; print('OK')"
from voxcpm import VoxCPM
import soundfile as sf

# 加载模型
model = VoxCPM.from_pretrained("openbmb/VoxCPM2")

# 生成语音
wav = model.generate(
    text="Hello! VoxCPM makes your app speak.",
    cfg_value=2.0,              # Classifier-Free Guidance 值
    inference_timesteps=10      # 扩散步数(质量 vs 速度权衡)
)

# 保存为 WAV
sf.write("output.wav", wav, model.tts_model.sample_rate)

参数调优决策树

需要更高质量?
├── YES → 提高 inference_timesteps (10 → 20)
│         ⚠️ 速度会下降约 2 倍
└── NO  → 保持默认 10

音频听不准/发音错误?
├── YES → 提高 cfg_value (2.0 → 3.0)
│         ⚠️ 过高可能导致音质失真
└── NO  → 保持默认 2.0

生成太慢?
├── YES → 切换到 Nano-vLLM 推理
│         RTF 从 ~0.3 降至 ~0.13
└── NO  → 保持 PyTorch 推理

版本对比与选型

                     VoxCPM2              VoxCPM1.5            VoxCPM-0.5B
                    ═════════            ═══════════           ════════════
 参数规模             2B                   0.6B                  0.5B
 采样率               48kHz                44.1kHz               16kHz
 语言数量             30+方言               2                     2
 Voice Design         ✅                   ❌                    ❌
 终极克隆             ✅                   ✅                    ❌
 VRAM 需求           ~8GB                 ~6GB                  ~5GB
 音质评级             ★★★★★               ★★★★                 ★★★
 适用场景             生产级部署            轻量应用               嵌入式/原型

选型建议

你的场景?
│
├── 生产环境、高质量要求
│   └── VoxCPM2(48kHz + 30 语言)
│
├── 资源受限、只需要中英文
│   └── VoxCPM1.5(性价比之选)
│
└── 快速原型验证 / 嵌入式设备
    └── VoxCPM-0.5B(5GB VRAM 即可)

生产部署方案

部署路径对比

┌────────────┬──────────────────┬──────────────────┬──────────────────┐
│   方案      │   PyTorch 直接   │   Nano-vLLM      │   vLLM-Omni      │
├────────────┼──────────────────┼──────────────────┼──────────────────┤
│ RTF (4090) │   ~0.3           │   ~0.13          │   ~0.13          │
│ 并发支持    │   单线程          │   批量并发        │   多租户          │
│ API 兼容    │   自定义          │   FastAPI HTTP   │   OpenAI 兼容    │
│ KV Cache   │   无              │   无              │   PagedAttention │
│ 适用场景    │   开发/测试       │   中等规模生产     │   大规模多租户    │
│ 部署复杂度  │   ★               │   ★★             │   ★★★            │
└────────────┴──────────────────┴──────────────────┴──────────────────┘

Nano-vLLM 快速部署

# 安装
pip install nano-vllm

# 启动服务(FastAPI HTTP)
python -m nano_vllm.serve \
    --model openbmb/VoxCPM2 \
    --host 0.0.0.0 \
    --port 8000

Fine-Tuning — 定制化声音

仅需 5-10 分钟的参考音频即可微调:

微调方式选择:
│
├── 数据充足(>1小时) → SFT 全量微调
│   └── 效果最好,需要更多资源
│
└── 数据有限(5-10分钟) → LoRA 低秩适配
    └── 资源友好,效果仍然优秀

最佳实践

1. 音质优化清单

  • cfg_value 设为 2.0-3.0,过高会失真
  • inference_timesteps 设为 10-20,按需权衡
  • ✅ 使用 48kHz 输出,避免二次重采样
  • ✅ 长文本建议分段合成再拼接
  • ❌ 不要在 CPU 上运行(太慢且音质下降)

2. 多语言注意事项

中文:
├── 普通话 → 直接使用
├── 粤语 / 台湾话 / 客家话等方言 → 模型原生支持
└── 混合中英文 → 可在 text 中直接混合

其他语言:
├── 标注 ISO 代码可提升准确率
└── 复杂专有名词 → 考虑 Ultimate Cloning 用参考音频兜底

3. 与其他 TTS 方案对比

┌──────────────────┬───────────┬──────────┬──────────┬──────────┐
│     特性          │  VoxCPM2  │   Bark   │  VITS    │  ChatTTS │
├──────────────────┼───────────┼──────────┼──────────┼──────────┤
│ 开源许可          │ Apache-2 │ MIT      │ MIT      │ MIT      │
│ 可商用            │ ✅        │ ✅        │ ✅        │ ✅        │
│ 采样率            │ 48kHz     │ 24kHz    │ 可变      │ 24kHz    │
│ 语言数            │ 30+       │ 多语种   │ 依训练   │ 中/英    │
│ Voice Design      │ ✅        │ ❌       │ ❌       │ ❌       │
│ 声音克隆          │ ✅        │ 有限     │ ❌       │ ✅       │
│ VRAM              │ ~8GB     │ ~4GB     │ ~2GB     │ ~4GB     │
│ Tokenizer-Free    │ ✅        │ ❌       │ ❌       │ ❌       │
└──────────────────┴───────────┴──────────┴──────────┴──────────┘

相关资源

  • 📦 GitHub:https://github.com/OpenBMB/VoxCPM
  • 🌐 官网:https://voxcpm.net
  • 📄 论文:https://arxiv.org/html/2509.24650v1
  • 🎥 视频:https://youtu.be/PRfoDcoPGOw
  • 🏗️ MiniCPM:https://github.com/OpenBMB/MiniCPM

[!quote] 总结 VoxCPM2 的 tokenizer-free 路线是 TTS 领域的一次重要进步:通过连续潜变量空间直接生成语音,兼顾了音质、多语言覆盖和可商用许可。2B 参数 + 8GB VRAM 的硬件门槛使其对个人开发者和中小企业都很友好。Voice Design 功能尤其值得关注——它让"用文字描述声音"成为可能,极大降低了语音合成的使用门槛。