VoxCPM2快速上手教程:免费多语言语音合成与声音克隆怎么用
【免费下载链接】VoxCPMVoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning项目地址: https://gitcode.com/GitHub_Trending/vo/VoxCPM
如果你遇到过这样的场景:做视频需要旁白,配音要等排期;想给老照片里的家人"留声",却找不到像的工具;产品想接多语言播报,商用授权费又高得吓人——VoxCPM2 可能是目前开源方案里值得优先试的一个。
VoxCPM2 是面壁智能联合清华人机交互实验室开源的多语言 TTS 系统:20 亿参数,原生输出 48kHz 高保真音频,支持 30 种语言 + 9 种中文方言(四川话、粤语、吴语、东北话等),并且 Apache-2.0 协议完全免费、可直接商用。它有两个别的 TTS 不常同时具备的能力——用一句话"描述"出一个不存在的新音色(音色设计),以及给几秒参考音频就能克隆并调节语速、情绪(可控声音克隆)。
下面按"先跑通、再玩透、后定制"的顺序带你走一遍。
一、先建立认知:VoxCPM2 和传统 TTS 差在哪
传统 TTS 的常见做法是先把音频切成一个个离散"音素块"(token),模型学着吐 token,再拼回声音——每切一次就丢一点细节,方言、语气这些"毛边"最容易在这一步丢掉。
VoxCPM2 走的是Tokenizer-Free(无令牌化)路线:全程在连续数值空间里直接生成语音表征,不经过离散编码。配合扩散自回归架构,韵律表现力和音色还原度都更高,这也是它能做到 30 语种 + 9 种方言"零额外语言标签"的原因——模型直接吃原始文本就能判断该用哪种语言读。
一句话总结它的能力边界:
| 能力 | 说明 | 典型用途 |
|---|---|---|
| 多语言语音合成 | 30 种语言,输入原文即可 | 有声书、跨境播报 |
| 音色设计 | 自然语言描述凭空造音色 | 给产品挑"人设声音" |
| 可控声音克隆 | 参考音频 + 风格指令 | 克隆音色再调情绪/语速 |
| 极致克隆 | 参考音频 + 音频的转写文本 | 音频续写式高保真还原 |
| 流式合成 | 边生成边输出分片 | 实时对话场景 |
显存方面,完整跑 VoxCPM2 大约需要 8GB 显存;在 RTX 4090 上实时率(RTF)约 0.3,用社区推理引擎加速后可到 0.13 左右,属于"日常使用完全够快"的级别。
二、最快上手方法:一条命令装好,三行代码出声音
环境要求:Python 3.10–3.12、PyTorch ≥ 2.5.0、CUDA ≥ 12.0(没有 GPU 也可以 CPU 跑,只是慢)。建议先建虚拟环境,然后:
pip install voxcpm国内网络下载模型较慢的话,可以先把权重拉到本地再加载,加载逻辑在 src/voxcpm/core.py 里,支持"模型 ID 或本地路径"两种写法。装好后写一个最小脚本:
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, ) # 保存为 wav 文件 sf.write("hello.wav", wav, model.tts_model.sample_rate)运行后你会得到hello.wav。load_denoiser=False是跳过参考音频降噪模块,纯文本合成时用不上它,关掉能省加载时间。
提示:固定
seed参数可以复现同一段生成结果,调参对比时很有用。
三、四种玩法:从"读出来"到"像那个人"
装好之后,model.generate(...)这一个接口就能覆盖全部四种用法,区别只在于传什么参数。
1. 纯文本转语音:只传text,模型自己判断语言和韵律,就是上面演示的那种。
2. 音色设计(不需要任何参考音频):在文本开头用括号写一段"声音描述",模型会照着描述凭空创造音色:
wav = model.generate(text="(年轻女性,声音温柔甜美)你好,我是你的语音助手。")描述里可以写性别、年龄、音色质感、情绪、语速,写得越具体越容易"画"准。
3. 可控声音克隆(给一段参考音频):传reference_wav_path指向一段 3–10 秒的干净人声,模型克隆其音色;如果还想调风格,把风格指令写进括号里,音色保持不变、只改表现力:
wav = model.generate( text="(稍快一点,语气欢快)这是一个带风格控制的克隆语音。", reference_wav_path="your_voice.wav", )4. 极致克隆(参考音频 + 转写文本):再额外提供这段参考音频里到底说了什么(prompt_wav_path+prompt_text),模型会像"接着这段音频往下说"一样续写,还原细节最接近原声,适合对相似度要求最高的场合。
不想写代码的话,src/voxcpm/cli.py 提供了命令行入口,日常批量生成更方便:
# 音色设计:括号描述风格,或直接 --control 传控制指令 voxcpm design --text "VoxCPM2 带来全新语音合成体验。" --control "温暖,略带微笑" --output out.wav # 声音克隆:指定参考音频 voxcpm clone --text "这是一个声音克隆演示。" --reference-audio your_voice.wav --output out.wav # 批量处理一个文本文件 voxcpm batch --input examples/input.txt --output-dir outs还想要图形界面?项目根目录的 app.py 自带 Web Demo:
python app.py --port 8808 # 浏览器打开 http://localhost:8808--device参数支持auto/cpu/mps/cuda,Apple Silicon 的 Mac 会自动走 MPS。
四、看懂架构:四个模块各管一段
上图是 VoxCPM2 的整体架构。模型基于 MiniCPM-4 基座构建,音频全部在 AudioVAE 的连续隐空间里流转,数据依次经过四个阶段:
- LocEnc(局部编码器):把输入音频编码成连续潜在表示,参考音频也在这里被"读"进模型;
- TSLM(文本-语义语言模型):理解文本内容,生成语义层面的规划——说什么、怎么停顿、什么情绪基调;
- RALM(残差声学语言模型):把语义规划细化成声学特征,决定音色的具体走向;
- LocDiT(局部扩散变换器):用扩散过程把特征一步步"画"成高保真波形,16kHz 输入也能直接输出 48kHz 音频(编解码器内置了非对称超分设计)。
这套分工解释了前面几个现象:为什么"描述造音色"和"克隆再调风格"可以共存——风格指令主要影响前两段,音色细节由后两段保证,互不覆盖。想深入看代码的话,语言模型基座在 src/voxcpm/modules/minicpm4/,扩散模块在 src/voxcpm/modules/locdit/,音频编解码在 src/voxcpm/modules/audiovae/。
初代 VoxCPM 的架构如下(VoxCPM1.5 沿用此路线,参数更小、只支持中英文,可作轻量替代):
五、调出好声音:两个关键参数 + 三条经验
生成质量主要由两个旋钮决定,其余保持默认即可:
| 参数 | 默认 | 作用 | 调整建议 |
|---|---|---|---|
cfg_value | 2.0 | 文本忠实度 | 漏读、读错调高(2.5–3.0);声音发硬发"炸"调低 |
inference_timesteps | 10 | 扩散步数 | 质量不够升到 20–30,代价是生成变慢 |
三条实战经验:
- 音色设计和可控克隆的结果有随机性——同一段描述多生成 1–3 次,挑最好的一条,这是官方也承认的当前特性;
- 参考音频决定了克隆上限——优先选 3–10 秒、无背景噪音、单人清晰人声,噪音大的样本会明显拖累相似度;
- 想要逐字对齐时间戳(做卡拉OK字幕、口型同步这类需求):先
pip install "voxcpm[timestamps]",CLI 加--timestamps --timestamp-level word即可,相关实现在 src/voxcpm/timestamps/。
六、进阶:用 5–10 分钟音频定制自己的专属音色
如果你的目标音色不在"30 语言通用音色"里,或者要稳定输出某个角色/品牌的固定声音,就走微调。VoxCPM 支持全参数微调(SFT)和 LoRA 微调两条路,官方说法是5–10 分钟音频就够适配一个说话人。
先准备训练数据,格式是每行一个 JSON 对象,参考 examples/train_data_example.jsonl:
{"audio": "data/sample1.wav", "text": "这条音频对应的文本内容", "duration": 3.5} {"audio": "data/sample2.wav", "text": "duration 是可选的,填了可以加快数据筛选"}然后跑训练脚本,LoRA 和全参数各有一个现成配置文件:
# LoRA 微调(参数高效,推荐先用这个) python scripts/train_voxcpm_finetune.py --config_path conf/voxcpm_v2/voxcpm_finetune_lora.yaml # 全参数微调 python scripts/train_voxcpm_finetune.py --config_path conf/voxcpm_v2/voxcpm_finetune_all.yaml训练前的关键项都在 conf/voxcpm_v2/voxcpm_finetune_lora.yaml 里:记得改pretrained_path和train_manifest两个路径;batch_size × grad_accum_steps是等效批量;lora.r控制 LoRA 秩,默认 32 一般不用动。不想敲命令的话,根目录的 lora_ft_webui.py 提供浏览器里的训练 + 推理一体化界面(默认端口 7860)。
训练相关的实现分布在 src/voxcpm/training/(数据加载、配置、状态管理等),排查训练问题时可以按目录名找。
七、常见坑与避坑清单
显存不够(CUDA out of memory):先关降噪(load_denoiser=False),再降max_batch_tokens;实在不行device="cpu"硬跑,慢但能出结果。微调时调小batch_size。
克隆出来的声音不够像:按"换更干净的参考音频 → 升级到极致克隆(补上转写文本)→ 多生成几次挑最好"的顺序排查,大多数情况前两步就能解决。
小语种效果参差:30 种官方支持语言里,欧洲主流语种普遍稳定,部分小语种(如印地语、罗马尼亚语)误差会偏高,这是当前版本的语言覆盖边界,可以拿自有数据微调来补。
一条必须说的红线:声音克隆能力足够逼真,严禁用于冒充他人、诈骗或制造虚假信息;对外发布的 AI 生成内容建议明确标注。
八、延伸:部署生态与社区
- 高吞吐服务:生产环境可用基于 vLLM 生态的推理引擎(如 Nano-vLLM、vLLM-Omni),支持并发请求、流式分块,VoxCPM-Omni 还提供 OpenAI 兼容的
/v1/audio/speech接口; - 端侧/无 Python 环境:社区已有人把 VoxCPM2 转成 GGUF 权重,跑在 CPU、Metal、CUDA 上(llama.cpp-omni、VoxCPM.cpp 等),Apple M 系芯片上 RTF 约 1.7(Q8 量化);
- 工作流集成:ComfyUI 已有多个 VoxCPM 节点工作流,适合接进已有的视频/音频生产管线。
仓库里还放了官方音频示例(examples/example.wav、examples/reference_speaker.wav)和训练示例数据,可以拿来做冒烟测试。想讨论问题或看最新动态,可以扫飞书群二维码加入社区,或浏览仓库内 README_zh.md 获取完整功能列表与版本历史。
从"读一段文本"到"克隆一个声音"再到"微调出专属音色",VoxCPM2 把这三步的门槛都压得比较低:装包、调参、换数据,都是小时级的事情。先跑通第二节的最小脚本,再顺着往上加能力,是目前上手成本最低的路径。
【免费下载链接】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),仅供参考