VoxCPM2
VoxCPM 语音系列
VoxCPM2 面向多语言语音生成、 声音设计与可控声音克隆,让文字以更丰富的声音表达。模型支持 30 种语言及 9 种中文方言,原生输出 48kHz 音频;你可以用自然语言描述设计音色,也可以提供参考音频保留说话人音色,并按需调整情绪、语速与表达风格。配合流式生成及 LoRA、全参数微调,可进一步探索交互式语音应用与个性化声音。
获取 VoxCPM2 的模型权重与运行代码。请使用本版本的权重和配置,下载前查看模型页中的许可与使用说明。
VoxCPM2 是 VoxCPM 语音系列当前主推版本。它基于 MiniCPM-4 构建,采用无离散音频分词器的扩散自回归架构,在超过 200 万小时多语言语音上训练,面向多语言文本转语音、音色设计、可控声音克隆和流式生成。
模型下载
| 模型 | Hugging Face | ModelScope | 许可证 |
|---|---|---|---|
| VoxCPM2 | openbmb/VoxCPM2 | OpenBMB/VoxCPM2 | Apache-2.0 |
模型信息
| 项目 | 官方说明 |
|---|---|
| 参数量 | 2B |
| 架构 | Tokenizer-Free Diffusion Autoregressive;处理链路为 LocEnc、TSLM、RALM、LocDiT。 |
| 音频表示 | AudioVAE V2。参考音频按 16kHz 编码,模型原生输出 48kHz 音频。 |
| 语言 | 30 种语言,另支持四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话和闽南话等 9 种中国方言。 |
| 最大序列长度 | 8192 tokens |
| 推理显存 | 官方模型卡参考值约 8 GB;实际占用随设备、并发、是否加载降噪器和采样设置变化。 |
| RTX 4090 RTF | 标准 PyTorch 路径约 0.30;Nano-vLLM 参考值约 0.13。 |
支持语言与方言
30 种语言:阿拉伯语(Arabic)、缅甸语(Burmese)、中文(Chinese)、丹麦语(Danish)、荷兰语(Dutch)、英语(English)、芬兰语(Finnish)、法语(French)、德语(German)、希腊语(Greek)、希伯来语(Hebrew)、印地语(Hindi)、印度尼西亚语(Indonesian)、意大利语(Italian)、日语(Japanese)、高棉语(Khmer)、韩语(Korean)、老挝语(Lao)、马来语(Malay)、挪威语(Norwegian)、波兰语(Polish)、葡萄牙语(Portuguese)、俄语(Russian)、西班牙语(Spanish)、斯瓦希里语(Swahili)、瑞典语(Swedish)、他加禄语(Tagalog)、泰语(Thai)、土耳其语(Turkish)和越南语(Vietnamese)。输入文本时不需要额外指定语言标 签。
9 种中国方言:四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话和闽南话。
官方评测摘要
| 测试集 | 可懂度指标 | 说话人相似度(SIM) | 口径 |
|---|---|---|---|
| 内部 30 语种测试集 | 平均 1.68% | — | 每种语言 500 条;各语种按语言特征采用 WER 或 CER,技术报告将汇总值表述为平均 WER。 |
| Seed-TTS-eval test-EN | WER 1.84 | 75.3 | 零样本声音克隆 |
| Seed-TTS-eval test-ZH | CER 0.97 | 79.5 | 零样本声音克隆 |
| Seed-TTS-eval test-ZH-Hard | CER 8.13 | 75.3 | 更具挑战性的中文子集 |
以上数值是官方技术报告在指定数据集、参考音频和评测流程下发布的结果,用于理解模型能力边界与横向比较,不代表所有语言、音色、硬件或生产输入都能达到相同表现。
核心能力
| 能力 | 输入 | 适用场景 |
|---|---|---|
| 基础文本转语音 | 目标文本 | 多语言内容生成和本地集成。 |
| Voice Design | 在 目标文本前加入括号中的自然语言音色描述 | 无需参考音频的角色音色设计。 |
| 可控声音克隆 | 目标文本、参考音频;可选控制描述 | 保留音色,同时调整情绪、语速或表达风格。 |
| 极致克隆 | 目标文本、提示音频及其准确转写;可选同一参考音频 | 通过音频续写保留参考语音的细节。 |
| 流式合成 | 同生成接口 | 边生成边返回音频片段的交互式应用。 |
环境要求
官方 Python 包要求 Python >=3.10, <3.13、PyTorch >=2.5.0;NVIDIA GPU 路径要求 CUDA >=12.0。CLI 与 Web Demo 也支持显式选择 cpu、mps、cuda 或 cuda:N,但实际性能和可用内存须在目标设备上验证。
已知限制与使用边界
- Voice Design 与 Style Control 的结果可能随运行而变化;官方模型卡建议在需要时生成 1–3 次后选择合适结果。
- 不同语言的表现会随训练数据覆盖度而变化,使用前应针对目标语言和业务文本建立独立评测集。
- 很长或高度表现性的输入偶尔可能出现不稳定,应结合文本切分、失败重试和质量回归进行验证。
- 严禁用于冒充、欺 诈或虚假信息传播;AI 生成音频应清晰标识,并遵守说话人授权、隐私和适用法律要求。
快速上手
从安装环境到生成第一段 48kHz 音频,依次体验文本转语音、声音设计、可控克隆与流式输出。按需选择 Python 或命令行方式,先跑通基础示例,再调整声音和生成参数。
准备环境
| 项目 | 要求或说明 |
|---|---|
| Python | >=3.10, <3.13 |
| PyTorch | >=2.5.0 |
| CUDA | NVIDIA GPU 路径要求 >=12.0 |
| 模型 | openbmb/VoxCPM2;首次加载会从 Hugging Face 下载。 |
| 输出 | VoxCPM2 原生输出 48kHz;始终使用 model.tts_model.sample_rate 保存音频。 |
pip install voxcpm soundfile
基础文本转语音
from voxcpm import VoxCPM
import soundfile as sf
model = VoxCPM.from_pretrained(
"openbmb/VoxCPM2",
load_denoiser=False,
)
wav = model.generate(
text="你好,欢迎使用 VoxCPM2。",
cfg_value=2.0,
inference_timesteps=10,
seed=42,
)
sf.write("output.wav", wav, model.tts_model.sample_rate)
播放 output.wav,确认文本内容、音量、停顿和语速正常。首次验证建议固定 seed,便于比较后续参数变化。
声音设计
无需参考音频。将音色、年龄、情绪或语速描述放在目标文本开头的圆括号中。
wav = model.generate(
text="(年轻女性,声音温柔甜美,语速适中)你好,欢迎使用 VoxCPM2!",
cfg_value=2.0,
inference_timesteps=10,
seed=42,
)
sf.write("voice_design.wav", wav, model.tts_model.sample_rate)
可控声音克隆
只提供 reference_wav_path 即可克隆参考音色;在目标文本前加入括号描述,可进一步控制情绪、语速或表达风格。
wav = model.generate(
text="(稍快一点,欢快的语气)这是带风格控制的克隆语音。",
reference_wav_path="speaker.wav",
cfg_value=2.0,
inference_timesteps=10,
seed=42,
)
sf.write("controlled_clone.wav", wav, model.tts_model.sample_rate)
极致克隆
该路径把提示音频作为语音前缀续写,必须提供提示音频的准确转写。为提高相似度,可将同一片段同时传给 prompt_wav_path 与 reference_wav_path。
wav = model.generate(
text="这是 VoxCPM2 的极致克隆演示。",
prompt_wav_path="speaker_reference.wav",
prompt_text="参考音频的准确文本转写。",
reference_wav_path="speaker_reference.wav",
)
sf.write("ultimate_clone.wav", wav, model.tts_model.sample_rate)
流式输出
import numpy as np
chunks = []
for chunk in model.generate_streaming(
text="这是 VoxCPM2 的流式语音合成演示。",
):
chunks.append(chunk)
wav = np.concatenate(chunks)
sf.write("streaming.wav", wav, model.tts_model.sample_rate)
命令行验证
# 音色设计
voxcpm design --text "你好,欢迎使用 VoxCPM2。" --control "年轻女声,温暖柔和" --seed 42 --output design.wav
# 可控声音克隆
voxcpm clone --text "这是克隆后的声音。" --reference-audio speaker.wav --output clone.wav
# 极致克隆
voxcpm clone --text "这是音频续写式克隆。" --prompt-audio speaker.wav --prompt-text "参考音频的准确文本转写。" --reference-audio speaker.wav --output ultimate.wav
# 每行一条文本的批量生成
voxcpm batch --input texts.txt --output-dir outputs
可选时间戳
CLI 可以通过 stable-ts 在生成后输出时间戳。该能力是可选依赖,不改变 VoxCPM2 的语音生成路径。
pip install "voxcpm[timestamps]"
voxcpm design \
--text "欢迎使用 VoxCPM2。" \
--output out.wav \
--timestamps \
--timestamp-level word \
--timestamp-language zh
字符级时间戳由词级对齐结果尽力推导,不是模型原生逐字符边界;涉及字幕切分或精确同步时,应抽样检查并在业务侧允许校正。
参数与效果
| 参数 | 官方默认或建议 | 影响 |
|---|---|---|
cfg_value | 默认 2.0,CLI 推荐范围 1.0–3.0 | 更高通常加强文本或控制遵循,但过高可能使声音紧张或失真。 |
inference_timesteps | 默认 10 ,CLI 接受 1–100,推荐 4–30 | 步数增加通常提升细节,也会增加推理时间。 |
seed | 可选 | 固定随机种子便于复现和参数对比。 |
normalize | 默认关闭 | 启用外部文本规范化;会改变原始文本处理路径。 |
denoise | 仅对参考或提示音频按需启用 | 可降低噪声,但可能造成失真;1.x 模型卡还提示降噪会限制采样率。 |
常见问题
| 现象 | 排查 |
|---|---|
| 模型下载慢或内网无法访问 | 使用 ModelScope snapshot_download("OpenBMB/VoxCPM2") 预下载,再将本地目录传给 from_pretrained。 |
| 克隆相似度低 | 换用清晰、单人、低噪声片段;极致克隆必须保证 prompt_text 与音频逐字一致。 |
| 控制效果波动 | 官方模型卡说明 Voice Design 与 Style Control 在不同生成间可能变化,可固定 seed 并生成 1–3 次对比。 |
| 长文本不稳定 | 先按句子或自然段切分;官方模型卡提示超长或高表现力输入偶尔会不稳定。 |
| 显存不足 | 关闭降噪器、降低并发并确认没有重复加载模型;官方模型卡的单实例参考值约 8 GB。 |
长期服务、并发与端侧路径见 VoxCPM2 部署指南。
相关资源
| 主题 | 入口 |
|---|---|
| 部署 | VoxCPM2 部署指南 |
| 微调 | VoxCPM2 微调指南 |
| 技术报告 | 知识库内嵌技术报告 / arXiv 原文 |
| 代码仓库 | OpenBMB/VoxCPM |
| 官网 | voxcpm.com |
| 完整文档 | ReadTheDocs |
| 在线体验 | 国内 Demo / Hugging Face Spaces |
| 音频示例 | VoxCPM2 Demo Page |