好的,这是您要求的英文文章的中文翻译,已按照要求保留格式、技术术语和代码块。
OpenBMB VoxCPM
VoxCPM2: 无需分词器的多语言语音生成、创意声音设计与逼真克隆 English | 中文
👋 加入我们的社区进行讨论和支持!飞书 | Discord
VoxCPM 是一个无需分词器(Tokenizer-free)的文本转语音(Text-to-Speech)系统,它通过端到端的扩散自回归架构直接生成连续的语音表示,绕过了离散分词过程,从而实现高度自然且富有表现力的语音合成。
VoxCPM2 是最新的主要版本——一个拥有 20 亿参数、在超过 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 微调。(🏆 GitHub 趋势榜 #1)
- [2025.09] 🔥 发布 VoxCPM 技术报告。
- [2025.09] 🎉 开源 VoxCPM-0.5B 权重(🏆 HuggingFace 趋势榜 #1)
- 快速开始
- 安装
- 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