VoxCPM 实用指南:五步跑通零样本 TTS 与语音克隆
【免费下载链接】VoxCPMVoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning项目地址: https://gitcode.com/GitHub_Trending/vo/VoxCPM
VoxCPM 是一个无分词器(tokenizer-free)的 TTS 系统,用扩散自回归架构直接生成连续语音表示,支持多语种语音合成和零样本语音克隆。这篇文章带你用三条命令跑出第一段语音,再覆盖 CLI、调优参数和生产部署要点。
🚀 3 分钟跑通第一个 Demo
环境要求一张表说清:
| 项目 | 要求 |
|---|---|
| Python | 3.10 – 3.12(>=3.10, <3.13) |
| PyTorch / CUDA | >=2.5.0/>=12.0 |
| 显存 | VoxCPM2 约 8 GB,VoxCPM1.5 约 6 GB |
安装就一行:
pip install voxcpm然后用最少的代码跑一次 TTS,首次运行会自动下载openbmb/VoxCPM2权重:
import soundfile as sf from voxcpm import VoxCPM model = VoxCPM.from_pretrained("openbmb/VoxCPM2", load_denoiser=False) wav = model.generate(text="VoxCPM 是一个无分词器的 TTS 系统。") sf.write("demo.wav", wav, model.tts_model.sample_rate)打开demo.wav就能听到结果,命令行侧用voxcpm --help确认 CLI 可用即可。
📦 日常使用姿势
Python API
Python API 覆盖三种主要形态,其中 Voice Design 不需要任何参考音频,把音色描述放在文本开头的括号里就行:
# 语音设计:括号内是音色描述,无需参考音频 wav = model.generate( text="(年轻女声,温柔甜美)你好,这是 VoxCPM。", cfg_value=2.0, seed=42, ) # 零样本语音克隆:传一段参考音频即可 wav = model.generate(text="这是克隆出的声音。", reference_wav_path="speaker.wav") sf.write("clone.wav", wav, model.tts_model.sample_rate)如果还想复刻参考音频的节奏和情绪,把参考音频及其转录文本传给prompt_wav_path/prompt_text,即 Ultimate Cloning 模式,相似度最高。
命令行
CLI 按功能拆成了design/clone/batch三个子命令:
# 语音设计:--control 指定音色风格 voxcpm design \ --text "VoxCPM2 brings studio-quality multilingual speech synthesis." \ --control "Young female voice, warm and gentle" \ --seed 42 \ --output out.wav # 零样本克隆:--reference-audio 传参考音频 voxcpm clone \ --text "这是语音克隆演示。" \ --reference-audio speaker.wav \ --output clone.wav批量场景用voxcpm batch --input input.txt --output-dir outs,输入文件每行一条文本。
Web 界面
仓库自带 Gradio 界面,适合快速试效果:
python app.py --port 8808 # 浏览器打开 http://localhost:8808 python app.py --device auto # auto 自动选 CPU / MPS / CUDA界面里可以直接体验语音克隆和 Voice Design,不用写代码。
⚙️ 调优与进阶玩法
默认参数效果不满意时,主要动这三个旋钮:
cfg_value:引导强度,取值 0.1–10.0,官方推荐 1.0–3.0。越高越贴风格指令,过高会发闷。inference_timesteps:扩散步数,取值 1–100,推荐 4–30。越大质量越好,速度越慢。seed:随机种子。Voice Design 和可控克隆的结果每次运行可能不同,固定种子保证可复现。
wav = model.generate( text="(稍快一点,语气轻快)这是带风格控制的克隆语音。", reference_wav_path="speaker.wav", cfg_value=3.0, # 调高,加强风格贴合度 inference_timesteps=20, # 调高,质量更好但更慢 seed=42, )实时场景用流式接口,音频分块产出,边生成边播:
import numpy as np chunks = [c for c in model.generate_streaming(text="流式合成让实时应用成为可能。")] wav = np.concatenate(chunks)另外,5–10 分钟音频就能适配一个特定说话人,LoRA 是推荐入口:
python scripts/train_voxcpm_finetune.py \ --config_path conf/voxcpm_v2/voxcpm_finetune_lora.yaml🚢 上生产前必须知道的事
- 版本选择:VoxCPM2(2B、48kHz、30 种语言、支持 Voice Design 与可控克隆)适合大多数场景;只做中英且显存紧张选 VoxCPM1.5(0.6B、44.1kHz);0.5B 是 16kHz 的轻量档。
- 显存占用:VoxCPM2 约 8 GB、VoxCPM1.5 约 6 GB、0.5B 约 5 GB,单卡即可跑。
- 吞吐与并发:RTX 4090 上标准实现 RTF 约 0.30;高并发用 Nano-vLLM 或 vLLM-Omni,RTF 可到约 0.13,vLLM-Omni 还提供 OpenAI 兼容的
/v1/audio/speech接口。 - 流式 vs 非流式:
generate一次性产出,适合批量离线任务;generate_streaming分块返回,适合直播、语音助手这类低延迟场景。 - 参考音频质量:参考音频要干净、单声道、少背景音;追求高相似度克隆时额外提供参考音频的逐字转录(Ultimate Cloning)。
🔍 踩坑速查
- 模型下载卡住或失败→ 网络无法直连 HuggingFace → 先通过 ModelScope 下载权重到本地,
from_pretrained传本地目录。 - 加载或推理时显存不足(OOM)→ VoxCPM2 需要约 8 GB → 换
openbmb/VoxCPM1.5(约 6 GB)或 0.5B(约 5 GB)。 - 克隆相似度不够高→ 只传了参考音频 → 再传
prompt_wav_path和参考音频的逐字prompt_text,走 Ultimate Cloning。 - Voice Design 风格不稳定→ 官方说明可控生成结果有波动 → 换 2–3 个
seed多生成几次,挑最贴近描述的一条。
VoxCPM 把多语种 TTS 和零样本语音克隆收进一个开源模型,装完voxcpm,三条命令就能出声。
【免费下载链接】VoxCPMVoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning项目地址: https://gitcode.com/GitHub_Trending/vo/VoxCPM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考