好的,这是您要求的英文文章的中文翻译,已按照规范保留格式、术语和代码块。
OpenBMB VoxCPM
VoxCPM2: 无需分词器的多语言语音生成、创意声音设计与逼真克隆系统 English | 中文
👋 加入我们的社区进行讨论和获取支持!飞书 | Discord
VoxCPM 是一个无需分词器(Tokenizer-Free)的文本转语音(Text-to-Speech)系统,它通过端到端的扩散自回归(diffusion autoregressive)架构直接生成连续的语音表征,绕过了离散分词(discrete tokenization)过程,从而实现了高度自然且富有表现力的语音合成。
VoxCPM2 是最新的主要版本——一个拥有 20 亿(2B)参数的模型,在超过 200 万小时的多语言语音数据上训练而成,现已支持 30 种语言、声音设计、可控语音克隆 以及 48kHz 录音室级音频输出。该模型基于 MiniCPM-4 骨干网络构建。
✨ 亮点
- 🌍 30 种语言多语言支持 — 直接输入任意 30 种支持语言的文本进行合成,无需语言标签
- 🎨 声音设计 — 仅凭自然语言描述(如性别、年龄、语调、情感、语速等)即可创造全新的声音,无需参考音频
- 🎛️ 可控克隆 — 从短参考片段中克隆任意声音,并可选择风格引导来控制情感、语速和表现力,同时保留原始音色
- 🎙️ 终极克隆 — 重现每一个声音细节:提供参考音频及其文本转录,模型将从参考处无缝衔接,忠实保留每一个声音细节——音色、节奏、情感和风格(与 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 许可证发布,可免费用于商业用途
🌍 支持的语言 (30 种) 阿拉伯语、缅甸语、中文、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、希伯来语、印地语、印度尼西亚语、意大利语、日语、高棉语、韩语、老挝语、马来语、挪威语、波兰语、葡萄牙语、俄语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰语、土耳其语、越南语
中文方言: 四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话、闽南话
新闻
- [2026.04] 🔥 我们发布了 VoxCPM2 — 20亿参数、30种语言、声音设计与可控语音克隆、48kHz 音频输出!权重 | 文档 | 在线体验
- [2025.12] 🎉 开源 VoxCPM1.5 权重,支持 SFT 和 LoRA 微调。(🏆 #1 GitHub Trending)
- [2025.09] 🔥 发布 VoxCPM 技术报告。
- [2025.09] 🎉 开源 VoxCPM-0.5B 权重(🏆 #1 HuggingFace Trending)
目录
- 快速开始
- 安装
- Python API
- 命令行界面 (CLI) 使用
- Web 演示
- 生产部署
- 模型与版本
- 性能
- 微调
- 文档
- 生态系统与社区
- 风险与限制
- 引用
🚀 快速开始
安装
pip install voxcpm
要求: Python ≥ 3.10 (<3.13), PyTorch ≥ 2.5.0, CUDA ≥ 12.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') # 指定保存模型的本地目录
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)
🎨 声音设计
根据自然语言描述创建声音——无需参考音频。格式:将描述放在文本开头的括号内(例如 "(你的声音描述)要合成的文本."):
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", # 可选,用于更好的相似度
)
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