Favicon of VoxCPM

VoxCPM

VoxCPM2 is an open-source, Apache-2.0 licensed tokenizer-free TTS model for 30-language synthesis, voice design, and voice cloning, built on MiniCPM-4.

Open Source Alternative to:
VoxCPM GitHub repository preview

VoxCPM is an open-source text-to-speech system built by OpenBMB that generates speech through a diffusion autoregressive architecture instead of discrete audio tokens. VoxCPM2, the current major release, is a 2B parameter model trained on over 2 million hours of multilingual audio. It targets developers and researchers who need multilingual speech synthesis, custom voice creation from text descriptions, or voice cloning from a short audio sample, without relying on a hosted API.

Key features

  • Tokenizer-free architecture: generates continuous speech representations directly through diffusion, skipping discrete tokenization for more natural prosody.
  • 30-language support: synthesizes speech in 30 languages plus several Chinese dialects, with no language tag required in the input text.
  • Voice Design: builds a new voice from a plain-language description (age, gender, tone, emotion, pace) with no reference audio needed.
  • Controllable Voice Cloning: clones timbre from a short reference clip while letting you steer emotion, pace, and style with text instructions.
  • Ultimate Cloning: reproduces timbre, rhythm, emotion, and style with high fidelity when given both reference audio and its transcript.
  • 48kHz output: accepts 16kHz reference audio and outputs 48kHz audio via an asymmetric encode/decode design with built-in super-resolution.
  • Streaming generation: supports chunked, real-time audio output through a streaming API.
  • Production serving paths: works with Nano-vLLM-VoxCPM and vLLM-Omni for concurrent, high-throughput serving with an OpenAI-compatible endpoint, and with llama.cpp-omni for on-device inference via GGUF weights.
  • Apache-2.0 license: weights and code are free for commercial use.

Ideal use cases

VoxCPM fits projects that need self-hosted, multilingual TTS with control over voice characteristics: audiobook and podcast narration, voice assistants that need a specific persona, dubbing pipelines across multiple languages, and product demos where a designed voice (rather than a stock TTS voice) is required. It also fits teams building voice cloning features, such as personalized narration or character voices in games and media, where a short reference clip and optional transcript are available.

It's a good fit if you have GPU access (or are willing to use the CPU/Metal/CUDA paths in llama.cpp-omni) and need production-grade throughput via Nano-vLLM or vLLM-Omni. It is less suited for teams that need a fully managed, zero-setup TTS API, or for use cases requiring guaranteed real-time performance on low-end CPUs without the GGUF quantized path. Voice cloning also raises consent and misuse concerns, so it's not appropriate for cloning voices without the speaker's permission.

Installation

Install the Python package with pip. Requirements: Python 3.10 to <3.13, PyTorch >= 2.5.0, and CUDA >= 12.0 for GPU inference.

pip install voxcpm

Load the model and generate speech:

from voxcpm import VoxCPM
import soundfile as sf

model = VoxCPM.from_pretrained("openbmb/VoxCPM2", load_denoiser=False)
wav = model.generate(
    text="VoxCPM2 is the current recommended release for realistic multilingual speech synthesis.",
    cfg_value=2.0,
    inference_timesteps=10,
    seed=42,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)

Weights can also be pulled from ModelScope with pip install modelscope and snapshot_download. A CLI is included for design, cloning, and batch processing:

voxcpm design --text "VoxCPM2 brings studio-quality multilingual speech synthesis." --output out.wav
voxcpm clone --text "This is a voice cloning demo." --reference-audio path/to/voice.wav --output out.wav

A web demo is available via python app.py --port 8808, with a --device flag supporting auto, cpu, mps, cuda, and cuda:N. For production serving, install nano-vllm-voxcpm or set up vllm-omni for an OpenAI-compatible /v1/audio/speech endpoint. For on-device inference without Python, build llama.cpp-omni and download GGUF weights.

Frequently asked questions

Share:

Stars
39.4K
Forks
4.5K
Last commit
9 days ago
Repository age
1 year
License
Apache-2.0
Self-hosted
No
Activity score
85/100
View Repository
Built with:
Ad
Favicon

 

  
 

Similar to VoxCPM

Favicon

 

  
 
Favicon

 

  
 
Favicon