8.5 KiB
8.5 KiB
🎙️ VoxCPM: 基于上下文感知和真实声音克隆的无 Tokenizer 语音合成系统
👋 在 微信 上联系我们
最新动态
- [2025.12.05] 🎉 🎉 🎉 开源 VoxCPM1.5 权重!该模型现在支持全参数微调和高效的 LoRA 微调,使您能够创建自己的定制版本。详见 发布说明。
- [2025.09.30] 🔥 🔥 🔥 发布 VoxCPM 技术报告!
- [2025.09.16] 🔥 🔥 🔥 开源 VoxCPM-0.5B 权重!
- [2025.09.16] 🎉 🎉 🎉 提供 VoxCPM-0.5B 的 Gradio PlayGround,立即试用!
项目概览
VoxCPM 是一种新颖的无 Tokenizer 文本转语音(TTS)系统,重新定义了语音合成的真实感。通过在连续空间中对语音进行建模,它克服了离散 Token 化带来的限制,并实现了两大核心能力:上下文感知语音生成和逼真的零样本声音克隆。
与将语音转换为离散 Token 的主流方法不同,VoxCPM 采用了端到端的扩散自回归架构,直接从文本生成连续的语音表示。基于 MiniCPM-4 骨干网络,通过分层语言建模和 FSQ 约束实现了隐式的语义-声学解耦,极大地增强了表现力和生成稳定性。
🚀 核心特性
- 上下文感知、富有表现力的语音生成 - VoxCPM 能够理解文本并推断出适当的韵律,生成富有表现力和自然流畅的语音。它会根据内容自发调整说话风格,基于 180 万小时的双语语料库训练,产生高度贴合的语音表达。
- 逼真的声音克隆 - 仅需一段简短的参考音频,VoxCPM 就能进行准确的零样本声音克隆,不仅能捕捉说话者的音色,还能捕捉细微的特征,如口音、情感基调、节奏和语速,从而创建一个忠实且自然的复刻。
- 高效合成 - VoxCPM 支持流式合成,在消费级 NVIDIA RTX 4090 GPU 上,实时因子(RTF)低至 0.17,使实时应用成为可能。
📦 模型版本
详见 发布说明
-
VoxCPM1.5 (最新):
- 模型参数: 800M
- AudioVAE 采样率: 44100
- LM 骨干网络 Token 率: 6.25Hz (patch-size=4)
- 单张 NVIDIA-RTX 4090 GPU RTF: ~0.15
-
VoxCPM-0.5B (原始):
- 模型参数: 640M
- AudioVAE 采样率: 16000
- LM 骨干网络 Token 率: 12.5Hz (patch-size=2)
- 单张 NVIDIA-RTX 4090 GPU RTF: 0.17
快速开始
🔧 通过 PyPI 安装
pip install voxcpm
1. 模型下载(可选)
默认情况下,首次运行脚本时会自动下载模型,但您也可以提前下载模型。
-
下载 VoxCPM1.5
from huggingface_hub import snapshot_download snapshot_download("openbmb/VoxCPM1.5") -
或下载 VoxCPM-0.5B
from huggingface_hub import snapshot_download snapshot_download("openbmb/VoxCPM-0.5B") -
下载 ZipEnhancer 和 SenseVoice-Small。我们使用 ZipEnhancer 来增强语音提示,并在 Web 演示中使用 SenseVoice-Small 进行语音提示的 ASR(自动语音识别)。
from modelscope import snapshot_download snapshot_download('iic/speech_zipenhancer_ans_multiloss_16k_base') snapshot_download('iic/SenseVoiceSmall')
2. 基本用法 (Python)
import soundfile as sf
import numpy as np
from voxcpm import VoxCPM
model = VoxCPM.from_pretrained("openbmb/VoxCPM1.5")
# 非流式生成
wav = model.generate(
text="VoxCPM 是 ModelBest 推出的一款创新型端到端 TTS 模型,旨在生成极具表现力的语音。",
prompt_wav_path=None, # 可选: 用于声音克隆的提示语音路径
prompt_text=None, # 可选: 参考文本
cfg_value=2.0, # LocDiT 的 LM 引导值,越高越贴合提示,但可能影响自然度
inference_timesteps=10, # LocDiT 推理步数,越高效果越好,越低速度越快
normalize=False, # 启用外部文本标准化工具,但会禁用原生原始文本支持
denoise=False, # 启用外部降噪工具,可能会导致一些失真并将采样率限制在 16kHz
retry_badcase=True, # 启用针对某些坏例的重试模式(不可中断)
retry_badcase_max_times=3, # 最大重试次数
retry_badcase_ratio_threshold=6.0, # 坏例检测的最大长度限制(简单但有效),对于慢节奏语音可调整
)
sf.write("output.wav", wav, model.tts_model.sample_rate)
print("已保存: output.wav")
# 流式生成
chunks = []
for chunk in model.generate_streaming(
text = "使用 VoxCPM 进行流式文本转语音非常简单!",
# 支持与上述相同的参数
):
chunks.append(chunk)
wav = np.concatenate(chunks)
sf.write("output_streaming.wav", wav, model.tts_model.sample_rate)
print("已保存: output_streaming.wav")
3. 命令行 (CLI) 用法
安装后,入口点是 voxcpm(或使用 python -m voxcpm.cli)。
# 1) 直接合成 (单条文本)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" --output out.wav
# 2) 声音克隆 (参考音频 + 文本)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" \
--prompt-audio path/to/voice.wav \
--prompt-text "参考音频的文本内容" \
--output out.wav \
# --denoise
# (可选) 声音克隆 (参考音频 + 文本文件)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" \
--prompt-audio path/to/voice.wav \
--prompt-file "/path/to/text-file" \
--output out.wav \
# --denoise
# 3) 批量处理 (每行一条文本)
voxcpm --input examples/input.txt --output-dir outs
# (可选) 批量 + 克隆
voxcpm --input examples/input.txt --output-dir outs \
--prompt-audio path/to/voice.wav \
--prompt-text "参考音频的文本内容" \
# --denoise
# 4) 推理参数 (质量/速度)
voxcpm --text "..." --output out.wav \
--cfg-value 2.0 --inference-timesteps 10 --normalize
# 5) 模型加载
# 优先使用本地路径
voxcpm --text "..." --output out.wav --model-path /path/to/VoxCPM_model_dir
# 或者从 Hugging Face 加载 (自动下载/缓存)
voxcpm --text "..." --output out.wav \
--hf-model-id openbmb/VoxCPM1.5 --cache-dir ~/.cache/huggingface --local-files-only
# 6) 降噪器控制
voxcpm --text "..." --output out.wav \
--no-denoiser --zipenhancer-path iic/speech_zipenhancer_ans_multiloss_16k_base
# 7) 帮助
voxcpm --help
python -m voxcpm.cli --help
4. 启动 Web 演示
您可以运行 python app.py 启动 UI 界面,该界面允许您执行声音克隆和声音创作。
python app.py
5. 微调 (Fine-tuning)
VoxCPM1.5 支持全参数微调 (SFT) 和 LoRA 微调,允许您在自己的数据上训练个性化的语音模型。详细说明请参阅 微调指南。
快速开始:
# 全参数微调
python scripts/train_voxcpm_finetune.py \
--config_path conf/voxcpm_v1.5/voxcpm_finetune_all.yaml
# LoRA 微调
python scripts/train_voxcpm_finetune.py \
--config_path conf/voxcpm_v1.5/voxcpm_finetune_lora.yaml
📚 文档
- 使用指南 - 关于如何有效使用 VoxCPM 的详细指南,包括文本输入模式、声音克隆技巧和参数调整。
- 微调指南 - 使用 SFT 和 LoRA 微调 VoxCPM 模型的完整指南。
- 发布说明 - 版本历史和更新。
- 性能基准 - 公共基准上的详细性能比较。
⚠️ 风险和限制
- 通用模型行为: 虽然 VoxCPM 已在大规模数据集上进行了训练,但它仍可能产生意外的、有偏见的或包含伪影的输出。
- 声音克隆滥用的可能性: VoxCPM 强大的零样本声音克隆能力可能会被滥用。

