VoxCPM2 上手与调参:多语言语音合成、声音克隆,30 秒出第一条音频
【免费下载链接】VoxCPMVoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning项目地址: https://gitcode.com/GitHub_Trending/vo/VoxCPM
VoxCPM2 是一款开源的多语言语音合成模型,主打声音克隆和 48kHz 高保真输出。它不依赖离散音素或语音令牌,直接生成连续语音表征,覆盖 30 种语言和 9 种中文方言。本文按「适合谁 → 怎么跑起来 → 怎么调」的顺序,带你 15 分钟跑通第一条音频,并讲清音色设计、可控克隆和 LoRA 微调几个关键点。
🎯 这三类场景,VoxCPM2 比较对口
- 多语言内容生产:一条脚本要配成中、英、日、韩,甚至粤语、川话的旁白,模型不用加语言标签,直接输入文本就能合成,属于面向中文方言 TTS 的少数选择之一。
- 给应用加语音:接 Nano-vLLM、vLLM-Omni 这类服务化引擎,或直接用流式接口挂进产品,做免费的在线语音合成后端。
- 个人声音复刻:用几秒参考音频克隆某个人的音色,或写一句话描述「设计」一个全新音色,走开源声音克隆路线。
🚀 最快上手路径:装好到克隆一条人声
安装一条命令搞定:
pip install voxcpm环境要求 Python ≥ 3.10(<3.13)、PyTorch ≥ 2.5.0、CUDA ≥ 12.0;没有 GPU 时用 CPU 也能跑,只是慢一些。
跑通第一条音频,从openbmb/VoxCPM2拉权重再调用generate()即可:
from voxcpm import VoxCPM import soundfile as sf model = VoxCPM.from_pretrained("openbmb/VoxCPM2", load_denoiser=False) audio = model.generate( text="今天先合成一段多语言示范音频。", cfg_value=2.0, inference_timesteps=10, ) sf.write("first.wav", audio, model.tts_model.sample_rate)load_denoiser=False会跳过参考音频的降噪器,少一次下载;sample_rate输出是 48000,直接写盘就行。
想换成某个人的声音,把参考音频路径传给reference_wav_path,几秒片段足够:
audio = model.generate( text="这是用参考音频克隆出来的声音。", reference_wav_path="examples/reference_speaker.wav", )到这里,「安装 → 合成 → 克隆」三步已经走通,后面都是在它上面做风格控制和微调。
🧩 核心能力与原理:四段流水线
整条链路可以一句话概括:LocEnc → TSLM → RALM → LocDiT,即局部编码、文本-语义语言模型、残差声学模型,最后由局部扩散变换器出音频,全程在 AudioVAE 的连续潜空间里完成,不做离散化,这也是它能保留音色和情绪细节、且无需外部上采样器(16kHz 进、48kHz 出)的原因。
- LocEnc:把音频压成连续潜表征
- TSLM / RALM:负责语义与声学特征生成
- LocDiT:用扩散过程还原出 48kHz 波形
选型时重点看这几项指标:
| 指标 | VoxCPM2 |
|---|---|
| 采样率 | 48kHz 输出,16kHz 参考音频可自动上采样 |
| 语言 | 30 种 + 9 种中文方言 |
| RTF(RTX 4090) | ~0.3;Nano-vLLM 加速后 ~0.13 |
| 显存 | ~8 GB |
🎛️ 调参与进阶玩法:克隆前先看这几个参数
音色设计(不需要参考音频):把描述放进text开头的括号里,就能凭空造一个音色。
audio = model.generate(text="(年轻女声,语速偏慢,带一点笑意)欢迎体验。")可控克隆:克隆音色的同时用括号控制风格,音色不变、语气可调,这是 TTS 参数调优里最常用的一招。
audio = model.generate( text="(语速稍快,语气轻快)这是一段带风格控制的声音克隆。", reference_wav_path="your_voice.wav", )极致克隆:同时给参考音频和它的文本,模型从参考处无缝续写,连节奏、情绪都尽量保留。
audio = model.generate( text="接下来这段延续参考音频的语气。", prompt_wav_path="your_voice.wav", prompt_text="参考音频对应的原文。", reference_wav_path="your_voice.wav", # 可选,进一步提高相似度 )两个关键旋钮:
cfg_value(默认 2.0):引导强度,调高更贴合文本、调低更自由,2.0~3.0 之间最常用。inference_timesteps(默认 10):扩散步数,调大质量更细但更慢,一般 10~20。
另外max_len(默认 4096)限制生成长度,seed固定随机种子方便复现结果。
想长期固定一个说话人,可以做 LoRA 微调,5~10 分钟音频就够,LoRA 比全量更省显存:
python scripts/train_voxcpm_finetune.py \ --config_path conf/voxcpm_v2/voxcpm_finetune_lora.yaml配置里r/alpha默认 32,enable_lm和enable_dit分别控制是否给语言模型和扩散变换器挂 LoRA;训练数据每行一个{"audio", "text", "duration?"},格式见 examples/train_data_example.jsonl。
🛠️ 踩坑与排错
- 显存爆(CUDA out of memory):调小
max_len/max_batch_tokens,或把device设为cpu先跑通再调优。 - 苹果 Mac(MPS)出杂音、反复重试:默认会自动切到 float32 保证稳定,属正常现象,不要强开 bf16/fp16。
- 克隆不像、音色漂移:换 3~10 秒、无底噪的参考音频,并改试「极致克隆」同时给音频和文本。
📂 代码与资料入口
- 主接口与
generate()全参数:src/voxcpm/core.py - 模型实现:src/voxcpm/model/voxcpm2.py
- 微调配置(全量 + LoRA 两套):conf/voxcpm_v2/
- 示例音频与训练样例:examples/
VoxCPM2 的权重和代码都是 Apache-2.0,可以商用,建议先在自己的用例里做充分测试再上线。声音克隆的还原度很高,务必只用于已获授权的声音,并给 AI 生成内容打上明确标注,避免冒充或欺诈。
【免费下载链接】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),仅供参考