cats7777/VoxCPM-Ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

VoxCPM2:无分词器文本转语音系统,支持多语言语音生成、创意声音设计及高保真声音克隆

英文 | 中文

项目页面 在线演示平台 文档 Hugging Face ModelScope

昇腾NPU

VoxCPM Logo

OpenBMB%2FVoxCPM | Trendshift

👋 加入我们的社区,参与讨论并获取支持!
飞书  |  Discord

VoxCPM 是一个无分词器的文本转语音(TTS)系统,它通过端到端的扩散自回归架构直接生成连续语音表示,无需经过离散分词环节,从而实现高度自然且富有表现力的语音合成。

VoxCPM2 是最新的重大版本——这是一个拥有20亿参数的模型,在超过200万小时的多语言语音数据上进行训练,目前支持30种语言、声音设计、可控声音克隆以及48kHz工作室级音质的音频输出。该模型基于 MiniCPM-4 架构构建。

✨ 核心亮点

  • 🌍 30种语言多语种支持 — 输入30种支持语言中的任意文本即可直接合成,无需语言标签
  • 🎨 语音设计 — 仅通过自然语言描述(性别、年龄、语气、情感、语速……)即可创建全新语音,无需参考音频
  • 🎛️ 可控克隆 — 从简短参考音频克隆任意语音,可选择风格引导来控制情感、语速和表达方式,同时保留原始音色
  • 🎙️ 极致克隆 — 重现每一个 vocal 细节:提供参考音频及其转录文本,模型将从参考音频无缝延续,忠实保留所有 vocal 细节——音色、节奏、情感和风格(与 VoxCPM1.5 相同)
  • 🔊 48kHz 高品质音频 — 接受16kHz参考音频,通过 AudioVAE V2 的非对称编解码设计直接输出48kHz工作室级音质音频,内置超分辨率功能——无需外部升频器
  • 🧠 上下文感知合成 — 从文本内容自动推断适当的韵律和表现力
  • ⚡ 实时流式传输 — 在 NVIDIA RTX 4090 上 RTF 低至 ~0.3,通过 Nano-vLLM 或 vLLM-Omni 加速后可达 ~0.13 —— 官方 vLLM 多模态服务支持 VoxCPM2,具备 PagedAttention 和 OpenAI 兼容 API
  • 📜 完全开源且商业可用 — 权重和代码在 Apache-2.0 许可证下发布,可免费用于商业用途

🚀 昇腾 NPU 支持

此分支已官方适配华为昇腾 NPUs。模型现在可在昇腾硬件上原生运行,具备自动设备检测和完整推理支持。

支持设备: Atlas 800I A2/A3、Atlas A2/A3 训练系列
已验证配置: CANN 8.5.0 + PyTorch 2.9.0 + torch_npu 2.9.0
使用方法: 只需传递 device="npu"(或保留为 "auto" 以自动检测 NPU)

from voxcpm import VoxCPM

model = VoxCPM.from_pretrained("openbmb/VoxCPM2", device="npu")
wav = model.generate(text="Hello Ascend NPU", max_len=200)

详见 ASCEND.md 了解详细的适配说明和性能基准测试。

🌍 支持语言(30种)
阿拉伯语、缅甸语、中文、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、希伯来语、印地语、印尼语、意大利语、日语、高棉语、韩语、老挝语、马来语、挪威语、波兰语、葡萄牙语、俄语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰语、土耳其语、越南语

汉语方言:四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话、闽南话

新闻动态

  • [2026.04] 🔥 我们发布 VoxCPM2 —— 20亿参数,支持30种语言,具备语音设计与可控语音克隆功能,可输出48kHz音频!权重 | 文档 | 在线演示
  • [2025.12] 🎉 开源 VoxCPM1.5 权重,支持SFT和LoRA微调。(🏆 GitHub 趋势榜第一名)
  • [2025.09] 🔥 发布 VoxCPM 技术报告。
  • [2025.09] 🎉 开源 VoxCPM-0.5B 权重(🏆 HuggingFace 趋势榜第一名)

目录

  • 快速开始
    • 安装
    • Python API
    • 命令行使用
    • 网页演示
    • 生产环境部署
  • 模型与版本
  • 性能
  • 微调
  • 文档
  • 生态与社区
  • 风险与限制
  • 引用

🚀 快速开始

安装

pip install voxcpm

要求: Python ≥ 3.10(<3.13),PyTorch ≥ 2.5.0,CUDA ≥ 12.0 或昇腾NPU(CANN 8.5.0,torch_npu 2.9.0)。详情请参见快速开始文档。

Python API

🗣️ 文本转语音

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,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)
print("saved: demo.wav")

如果您更倾向于先从 ModelScope 下载,可以使用:

pip install modelscope
from modelscope import snapshot_download
snapshot_download("OpenBMB/VoxCPM2", local_dir='./pretrained_models/VoxCPM2') # specify the local directory to save the model

from voxcpm import VoxCPM
import soundfile as sf
model = VoxCPM.from_pretrained("./pretrained_models/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,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)

🎨 语音设计

仅凭自然语言描述即可创建语音,无需参考音频。格式:在 text 开头的括号内填写描述(例如 "(你的语音描述)需要合成的文本。"):

wav = model.generate(
    text="(A young woman, gentle and sweet voice)Hello, welcome to VoxCPM2!",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("voice_design.wav", wav, model.tts_model.sample_rate)

🎛️ 可控语音克隆

上传参考音频。模型会克隆音色,您仍可使用控制指令调整语速、情感或风格。

wav = model.generate(
    text="This is a cloned voice generated by VoxCPM2.",
    reference_wav_path="path/to/voice.wav",
)
sf.write("clone.wav", wav, model.tts_model.sample_rate)

wav = model.generate(
    text="(slightly faster, cheerful tone)This is a cloned voice with style control.",
    reference_wav_path="path/to/voice.wav",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("controllable_clone.wav", wav, model.tts_model.sample_rate)

🎙️ 终极克隆

提供参考音频及其精确转录文本,用于基于音频延续的克隆,以重现每一个声音细节。为实现最大程度的克隆相似度,请将相同的参考片段同时传入 reference_wav_path 和 prompt_wav_path,如下所示:

wav = model.generate(
    text="This is an ultimate cloning demonstration using VoxCPM2.",
    prompt_wav_path="path/to/voice.wav",
    prompt_text="The transcript of the reference audio.",
    reference_wav_path="path/to/voice.wav", # optional, for better simliarity 
)
sf.write("hifi_clone.wav", wav, model.tts_model.sample_rate)
🔄 流式 API
import numpy as np

chunks = []
for chunk in model.generate_streaming(
    text="Streaming text to speech is easy with VoxCPM!",
):
    chunks.append(chunk)
wav = np.concatenate(chunks)
sf.write("streaming.wav", wav, model.tts_model.sample_rate)

命令行界面使用方法

# Voice design (no reference audio needed)
voxcpm design \
  --text "VoxCPM2 brings studio-quality multilingual speech synthesis." \
  --output out.wav

# Controllable voice cloning with style control
voxcpm design \
  --text "VoxCPM2 brings studio-quality multilingual speech synthesis." \
  --control "Young female voice, warm and gentle, slightly smiling" \
  --output out.wav

# Voice cloning (reference audio)
voxcpm clone \
  --text "This is a voice cloning demo." \
  --reference-audio path/to/voice.wav \
  --output out.wav

# Ultimate cloning (prompt audio + transcript)
voxcpm clone \
  --text "This is a voice cloning demo." \
  --prompt-audio path/to/voice.wav \
  --prompt-text "reference transcript" \
  --reference-audio path/to/voice.wav \ # optional, for better simliarity
  --output out.wav

# Batch processing
voxcpm batch --input examples/input.txt --output-dir outs

# Help
voxcpm --help

网页演示

python app.py --port 8808  # then open in browser: http://localhost:8808

使用 --device 选择运行时设备:

python app.py --device auto

支持的值包括 auto、cpu、mps、cuda 和 cuda:N。在 Apple Silicon 芯片的 Mac 设备上,auto 会在 MPS 可用时使用 MPS。

🚢 生产环境部署(Nano-vLLM)

若需高吞吐量服务,请使用 Nano-vLLM-VoxCPM——这是一款基于 Nano-vLLM 构建的专用推理引擎,支持并发请求和异步 API。

pip install nano-vllm-voxcpm
from nanovllm_voxcpm import VoxCPM
import numpy as np, soundfile as sf

server = VoxCPM.from_pretrained(model="/path/to/VoxCPM", devices=[0])
chunks = list(server.generate(target_text="Hello from VoxCPM!"))
sf.write("out.wav", np.concatenate(chunks), 48000)
server.stop()

在 NVIDIA RTX 4090 上 RTF 低至 ~0.13(标准 PyTorch 实现约为 ~0.3),支持批量并发请求和 FastAPI HTTP 服务器。部署详情请参见 Nano-vLLM-VoxCPM 仓库。

🏭 生产环境服务(vLLM-Omni)

对于生产环境多租户部署,请使用 vLLM-Omni——vLLM 官方项目的全模态扩展,原生支持 VoxCPM2。具备 PagedAttention KV 缓存、持续批处理功能,以及可直接替换的 OpenAI 兼容 /v1/audio/speech 端点。

# Install from source (latest main — vllm-omni is rapidly evolving)
uv pip install vllm==0.19.0 --torch-backend=auto
git clone https://github.com/vllm-project/vllm-omni.git && cd vllm-omni
uv pip install -e .

其他平台(ROCm、XPU、MUSA、NPU)和 Docker 镜像的安装方法,请参见 vLLM-Omni 安装指南。

# Launch an OpenAI-compatible TTS server (--omni enables omni-modal serving)
vllm serve openbmb/VoxCPM2 --omni --port 8000

# Call it from any OpenAI client
curl http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"model":"openbmb/VoxCPM2","input":"Hello from VoxCPM2 on vLLM-Omni!","voice":"default"}' \
  --output out.wav

基于上游 vLLM 调度器构建,支持批量并发请求、流式分片传输以及开箱即用的多 GPU 部署。完整部署方案请参见 VoxCPM2 示例。

完整参数参考、多场景示例及声音克隆技巧 → 快速入门指南 | 使用指南 | 实践手册


📦 模型与版本

VoxCPM2VoxCPM1.5VoxCPM-0.5B
状态🟢 最新版稳定版旧版
主干模型参数20 亿6 千万5 千万
音频采样率48kHz44.1kHz16kHz
语言模型令牌率6.25Hz6.25Hz12.5Hz
支持语言30 种2 种(中、英)2 种(中、英)
克隆模式独立参考与续写仅支持续写仅支持续写
声音设计✅——
可控声音克隆✅——
SFT / LoRA✅✅✅
实时因子(RTX 4090)~0.30~0.15~0.17
Nano-VLLM 实时因子(RTX 4090)~0.13~0.08~0.10
显存占用~8 GB~6 GB~5 GB
模型权重🤗 HF / MS🤗 HF / MS🤗 HF / MS
技术报告即将发布—arXiv ICLR 2026
演示页面音频示例—音频示例

VoxCPM2 基于无令牌器、扩散自回归范式构建。该模型完全在 AudioVAE V2 的 latent 空间中运行,遵循四阶段流水线:LocEnc → TSLM → RALM → LocDiT,可实现丰富的表现力和 48kHz 原生音频输出。

VoxCPM2 Model Architecture

有关完整的架构细节、VoxCPM2 特定升级以及模型对比表,请参见 架构设计。


📊 性能表现

VoxCPM2 在公开的零样本和可控 TTS 基准测试中取得了最先进或相当的结果。

Seed-TTS-eval

Seed-TTS-eval WER(↓)和 SIM(↑)结果(点击展开)
模型参数规模是否开源测试集-英文测试集-中文测试集-困难
WER/%↓SIM/%↑CER/%↓SIM/%↑CER/%↓SIM/%↑
MegaTTS30.5B❌2.7977.11.5279.0--
DiTAR0.6B❌1.6973.51.0275.3--
CosyVoice30.5B❌2.0271.81.1678.06.0875.8
CosyVoice31.5B❌2.2272.01.1278.15.8375.8
Seed-TTS-❌2.2576.21.1279.67.5977.6
MiniMax-Speech-❌1.6569.20.8378.3--
F5-TTS0.3B✅2.0067.01.5376.08.6771.3
MaskGCT1B✅2.6271.72.2777.4--
CosyVoice0.3B✅4.2960.93.6372.311.7570.9
CosyVoice20.5B✅3.0965.91.3875.76.8372.4
SparkTTS0.5B✅3.1457.31.5466.0--
FireRedTTS0.5B✅3.8246.01.5163.517.4562.1
FireRedTTS-21.5B✅1.9566.51.1473.6--
Qwen2.5-Omni7B✅2.7263.21.7075.27.9774.7
Qwen3-Omni30B-A3B✅1.39-1.07---
OpenAudio-s1-mini0.5B✅1.9455.01.1868.523.3764.3
IndexTTS21.5B✅2.2370.61.0376.57.1275.5
VibeVoice1.5B✅3.0468.91.1674.4--
HiggsAudio-v23B✅2.4467.71.5074.055.0765.6
VoxCPM-0.5B0.6B✅1.8572.90.9377.28.8773.0
VoxCPM1.50.8B✅2.1271.41.1877.07.7473.1
MOSS-TTS✅1.8573.41.2078.8--
Qwen3-TTS1.7B✅1.2371.71.2277.06.7674.8
FishAudio S24B✅0.99-0.54-5.99-
LongCat-Audio-DiT3.5B✅1.5078.61.0981.86.0479.7
VoxCPM22B✅1.8475.30.9779.58.1375.3

CV3-eval

CV3-eval 多语言 WER/CER(↓)结果(点击展开)
模型zhenhard-zhhard-enjakodeesfritru
CosyVoice24.086.3212.5811.969.1319.7-----
CosyVoice3-1.5B3.914.999.7710.557.575.696.434.4711.810.56.64
Fish Audio S22.652.439.104.403.962.762.222.006.262.042.78
VoxCPM23.655.008.558.485.965.694.773.809.854.255.21

MiniMax-Multilingual-Test

Minimax-MLS-test WER(↓)结果(点击展开)
语言MinimaxElevenLabsQwen3-TTSFishAudio S2VoxCPM2
Arabic1.6651.666–3.50013.046
Cantonese34.11151.513–30.67038.584
Chinese2.25216.0260.9280.7301.136
Czech3.8752.108–2.84024.132
Dutch1.1430.803–0.9900.913
English2.1642.3390.9341.6202.289
Finnish4.6662.964–3.3302.632
French4.0995.2162.8583.0504.534
German1.9060.5721.2350.5500.679
Greek2.0160.991–5.7402.844
Hindi6.9625.827–14.64019.699
Indonesian1.2371.059–1.4601.084
Italian1.5431.7430.9481.2701.563
Japanese3.51910.6463.8232.7604.628
Korean1.7471.8651.7551.1801.962
Polish1.4150.766–1.2601.141
Portuguese1.8771.3311.5261.1401.938
Romanian2.8781.347–10.74021.577
Russian4.2813.8783.2122.4003.634
Spanish1.0291.0841.1260.9101.438
Thai2.70173.936–4.2302.961
Turkish1.520.699–0.8700.817
Ukrainian1.0820.997–2.3006.316
Vietnamese0.8873.415–7.4103.307
Minimax-MLS-test SIM(↑)结果(点击展开)
语言MinimaxElevenLabsQwen3-TTSFishAudio S2VoxCPM2
Arabic73.670.6–75.079.1
Cantonese77.867.0–80.583.5
Chinese78.067.779.981.682.5
Czech79.668.5–79.878.3
Dutch73.868.0–73.080.8
English75.661.377.579.785.4
Finnish83.575.9–81.989.0
French62.853.562.869.873.5
German73.361.477.576.780.3
Greek82.673.3–79.586.0
Hindi81.873.0–82.185.6
Indonesian72.966.0–76.380.0
Italian69.957.981.774.778.0
Japanese77.673.878.879.682.8
Korean77.670.079.981.783.3
Polish80.272.9–81.988.4
Portuguese80.571.181.778.183.7
Romanian80.969.9–73.379.7
Russian76.167.679.279.081.1
Spanish76.261.581.477.683.1
Thai80.058.8–78.684.0
Turkish77.959.6–83.587.1
Ukrainian73.064.7–74.779.8
Vietnamese74.336.9–74.080.6

内部30种语言ASR基准测试

我们额外运行了一项内部多语言可懂度基准测试,包含30种语言×500个样本。ASR转录通过Gemini 3.1 Flash Lite API进行评估。

内部30种语言ASR基准测试(点击展开)
语言指标VoxCPM2Fish S2-Pro
ar (阿拉伯语)CER1.23%0.30%
da (丹麦语)WER2.70%3.52%
de (德语)WER0.96%0.64%
el (希腊语)WER3.17%4.61%
en (英语)WER0.42%1.03%
es (西班牙语)WER1.33%0.64%
fi (芬兰语)WER2.24%2.80%
fr (法语)WER2.16%2.34%
he (希伯来语)CER2.98%15.27%
hi (印地语)CER0.79%0.91%
id (印尼语)WER1.36%1.68%
it (意大利语)WER1.65%1.08%
ja (日语)CER2.40%1.82%
km (高棉语)CER2.05%75.15%
ko (韩语)CER0.95%0.29%
lo (老挝语)CER1.90%87.40%
ms (马来语)WER1.75%1.41%
my (缅甸语)CER1.42%85.27%
nl (荷兰语)WER1.25%1.68%
no (挪威语)WER2.49%3.76%
pl (波兰语)WER1.90%1.65%
pt (葡萄牙语)WER1.48%1.49%
ru (俄语)WER0.90%0.86%
sv (瑞典语)WER2.22%2.63%
sw (斯瓦希里语)CER1.07%2.02%
th (泰语)CER0.94%1.92%
tl (他加禄语)WER2.63%4.00%
tr (土耳其语)WER1.65%1.65%
vi (越南语)WER1.56%5.56%
zh (中文)CER0.92%1.02%
平均值(30种语言)1.68%-

InstructTTSEval

指令引导语音设计结果(点击展开)
模型InstructTTSEval-ZHInstructTTSEval-EN
APS⬆DSD⬆RP⬆APS⬆DSD⬆RP⬆
Hume–––83.075.354.3
VoxInstruct47.552.342.654.957.039.3
Parler-tts-mini–––63.448.728.6
Parler-tts-large–––60.045.931.2
PromptTTS–––64.347.231.4
PromptStyle–––57.446.430.9
VoiceSculptor75.764.761.5–––
Mimo-Audio-7B-Instruct75.774.361.580.677.659.5
Qwen3TTS-12Hz-1.7B-VD85.281.165.182.982.468.4
VoxCPM285.271.560.884.283.271.4

⚙️ 微调

VoxCPM 支持全量微调(SFT) 和LoRA 微调两种模式。仅需5–10 分钟的音频数据,即可适配特定说话人、语言或领域。

# LoRA fine-tuning (parameter-efficient, recommended)
python scripts/train_voxcpm_finetune.py \
    --config_path conf/voxcpm_v2/voxcpm_finetune_lora.yaml

# Full fine-tuning
python scripts/train_voxcpm_finetune.py \
    --config_path conf/voxcpm_v2/voxcpm_finetune_all.yaml

# WebUI for training & inference
python lora_ft_webui.py   # then open http://localhost:7860

完整指南 → 微调指南(数据准备、配置、训练、LoRA 热切换、常见问题)


📚 文档

完整文档:voxcpm.readthedocs.io

主题链接
快速入门与安装快速入门
使用指南与实用手册用户指南
VoxCPM 系列模型
微调(SFT 与 LoRA)微调指南
常见问题与故障排除常见问题

🌟 生态系统与社区

项目描述
Nano-vLLM高吞吐量快速 GPU 服务
vLLM-Omni官方 vLLM 多模态服务,支持 VoxCPM2 — 采用 PagedAttention 技术,兼容 OpenAI API
VoxCPM.cppGGML/GGUF:CPU、CUDA、Vulkan 推理
VoxCPM-ONNXONNX 导出,用于 CPU 推理
VoxCPMANEApple Neural Engine 后端
voxcpm_rsRust 重新实现
ComfyUI-VoxCPMComfyUI 节点式工作流
ComfyUI_RH_VoxCPM功能完备的 VoxCPM 2 ComfyUI 工作流,支持多说话人生成、LoRA 和自动语音识别(ASR)
ComfyUI-VoxCPMTTSComfyUI 文本转语音(TTS)扩展
TTS WebUI基于浏览器的文本转语音(TTS)扩展

请参阅文档中的完整 生态系统。社区项目不由 OpenBMB 官方维护。开发了有趣的项目?提交 issue 或 PR 来添加吧!


⚠️ 风险与局限性

  • 滥用风险:VoxCPM的语音克隆技术可生成高度逼真的合成语音。严禁将VoxCPM用于模仿、欺诈或传播虚假信息。我们强烈建议对所有AI生成内容进行明确标识。
  • 可控生成稳定性:语音设计和可控语音克隆的结果可能因每次运行而有所不同——您可以尝试生成1~3次以获得理想的声音或风格。我们正积极致力于提升可控性的一致性。
  • 语言覆盖范围:VoxCPM2官方支持30种语言。对于未在列表中的语言,欢迎您直接测试或尝试使用自有数据进行微调。我们计划在未来版本中扩展语言覆盖范围。
  • 使用说明:本模型基于Apache-2.0许可证发布。对于生产环境部署,建议针对具体使用场景进行全面的测试和安全评估。

📖 引用

如果您觉得VoxCPM对您有所帮助,请考虑引用我们的研究并为仓库点亮 ⭐ !

@article{voxcpm2_2026,
  title   = {VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning},
  author  = {VoxCPM Team},
  journal = {GitHub},
  year    = {2026},
}

@article{voxcpm2025,
  title   = {VoxCPM: Tokenizer-Free TTS for Context-Aware Speech Generation
             and True-to-Life Voice Cloning},
  author  = {Zhou, Yixuan and Zeng, Guoyang and Liu, Xin and Li, Xiang and
             Yu, Renjie and Wang, Ziyang and Ye, Runchuan and Sun, Weiyue and
             Gui, Jiancheng and Li, Kehan and Wu, Zhiyong and Liu, Zhiyuan},
  journal = {arXiv preprint arXiv:2509.24650},
  year    = {2025},
}

📄 许可证

VoxCPM 模型权重与代码基于 Apache-2.0 许可证开源。

🙏 致谢

  • 感谢 DiTAR 提供的扩散自回归主干网络
  • 感谢 MiniCPM-4 提供的语言模型基础
  • 感谢 CosyVoice 提供的基于流匹配的 LocDiT 实现
  • 感谢 DAC 提供的音频 VAE 主干网络
  • 感谢社区用户试用 VoxCPM、反馈问题、分享想法并贡献代码——您的支持是项目不断进步的动力

机构

ModelBest     THUHCSI

⭐ 星标历史

Star History Chart