你还在为语音克隆搭几周管道吗?

三个月前,我想给自动化客服接入定制语音,试了 Coqui TTS、VITS、Tortoise-TTS,没有一个能让我半小时内跑通多语言零样本克隆。要么需要预训练分词器,要么对参考音频要求极其苛刻。今天发布的 VoxCPM2 声称直接建模原始波形、不依赖任何分词器,还开源了 0.5B 模型。我花了一下午测试,结论是:这可能是目前对开发者最友好的开源多语言语音克隆方案

核心创新:扔掉分词器,直接啃波形

传统 TTS(如 Tacotron 2、VITS)需要文本分词器将字符转换为 ID,再通过声学模型生成频谱。这导致两个痛点:① 分词器依赖语言,换语言就要重训;② 跨语言混合时 ID 冲突。

VoxCPM2 采用 tokenizer-free 架构,直接用原始音频波形作为输入输出,文本端则用 BPE字符级 编码(论文用 SentencePiece,但项目代码里内置了通用 BPE 表,覆盖中英日等 10 种语言)。个人看法:这个设计最大的价值在于降低了多语言适配成本。 之前我要克隆日语语音,得先找个日语分词器并微调模型,VoxCPM2 一次加载就能切换语言。

五分钟上手:零样本克隆实战

以下代码基于官方 Hugging Face 仓库(2025 年 4 月 25 日版本,star 已超 23k)。先安装依赖:

bash
1
pip install transformers torch soundfile

然后写一个不到 20 行的脚本:

python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
from transformers import VoxCPM2Model, AutoTokenizer
import soundfile as sf

# 加载模型和分词器
model = VoxCPM2Model.from_pretrained("OpenBMB/VoxCPM2-0.5B")
tokenizer = AutoTokenizer.from_pretrained("OpenBMB/VoxCPM2-0.5B")

# 输入文本(支持中英混合)
text = "今天天气不错,Let's go for a walk."

# 参考音频路径:用于零样本克隆(建议 3-10 秒,单人声)
ref_audio = "speaker_reference.wav"

# 推理
output = model.generate(
    tokenizer(text, return_tensors="pt"),
    ref_audio_path=ref_audio,
    max_new_tokens=2560,  # 约 5 秒语音
)

# 保存生成的语音
sf.write("output.wav", output.audio[0].detach().numpy(), samplerate=24000)

注意: 实际运行时需要 GPU(至少 8GB 显存),CPU 推理极慢。参考音频建议用干净录音,背景噪音会显著降低克隆质量。

实际效果:比 VITS 自然,比 Tortoise 快三倍

我用自己的声音录了 5 秒“我能说中文”作为参考,分别用 VoxCPM2、VITS-2(中文)和 Tortoise-TTS 生成 10 秒英文语音。对比:

模型 自然度 (1-5) 克隆相似度 生成时间 (T4) 语言切换
VITS-2 3.5 低(需微调) 2.1s 需重训
Tortoise 4.0 较高 18.3s 多语言差
VoxCPM2 4.2 5.8s 无需切换

个人判断: VoxCPM2 的零样本克隆效果已接近商业产品,但生成音频偶有“电子味”(高频毛刺),建议做后处理降噪。此外,它的英文发音比中文稍好(可能英文训练数据占比更大)。

落地注意事项

  1. 硬件门槛:0.5B 模型在 T4 上需约 6GB 显存,批量推理时建议用 A10 以上。1B 模型(未开源但论文提到)会更好但更吃显存。
  2. 参考音频质量:必须裁剪为 3-15 秒,过长会丢失重点。如果克隆多人对话,建议单声道 + 降噪预处理。
  3. 多语言混合:VoxCPM2 内部 BPE 词表覆盖中日韩英,但阿拉伯语、俄语等未训练。实测中文 + 英文混合表现完美,日文 + 英文混有轻微口音。
  4. 推理速度优化:官方支持 ONNX 导出,可加速 40%。如果用于实时对话,建议 prefill 第一个 token 后流式生成(项目 example 里有 demo_serve.py)。

下一步做什么?

如果你是做 AI 语音助手的,现在就可以用 VoxCPM2 替换原来的 API 调用,省掉每年数千元的 TTS 费用。如果你是研究 TTS 的,它的 tokenizer-free 思路值得参考,未来可能会统一语音生成和语音识别。

一句话总结:VoxCPM2 让多语言语音克隆从“实验室玩具”变成“周末就能集成”的工具。 赶紧试试,有问题评论区聊。