实测 VoxCPM1.5:无分词TTS如何用30种语言生成自然语音?

先说一个你可能不知道的事:市面上绝大多数 TTS 教程——包括很多"实测"文章——引用的参数数据都是错的。要么混淆了版本,要么直接照着其他人的二手转述写。这篇文章只说能从官方 README 和技术报告里核实的内容。


先纠正三个流传最广的误区

误区一:"VoxCPM2 支持 30 种语言"

官方 README 原文写得很清楚:

VoxCPM is trained primarily on Chinese and English data. Performance on other languages is not guaranteed and may result in unpredictable or low-quality audio.

多语言支持(Multilingual Support)还在 Roadmap 的待办列表里,尚未发布。所谓"30 种语言含方言"是对旧版本或竞品的描述,别被这个数字误导。

误区二:"模型参数量 2B,需要 RTX 4090"

目前最新版 VoxCPM1.5 参数量是 800M,上一版 VoxCPM-0.5B 是 640M。两者都远不到 2B。4090 是推荐配置,但不是硬性门槛,关键看你能接受多高的 RTF(实时因子)。

误区三:"48kHz 原生输出"

VoxCPM1.5 的 AudioVAE 采样率是 44100Hz(44.1kHz),不是 48kHz。VoxCPM-0.5B 更低,只有 16000Hz。官方文档没有"48kHz"这个数字。


它到底是什么,解决什么问题

VoxCPM 是 OpenBMB 团队(清华 & ModelBest)基于 MiniCPM-4 语言模型骨干打造的端到端 TTS 系统,论文已挂 arXiv(2509.24650)。

核心思路只有一句话:不把语音转成离散 Token,直接在连续空间里建模

传统 TTS(包括 VITS 系列、XTTS 等)的共同路径是:文本 → 离散声学 Token → 波形。离散化这一步会损失细节,也是"机械感"的主要来源。VoxCPM 用扩散自回归架构(DiTAR backbone + CosyVoice 的 Flow Matching LocDiT)跳过了这一步,让模型直接从文本预测连续语音表示,再交给 AudioVAE 解码成波形。

训练数据规模:180 万小时中英文双语语料(原文提到的"200 万小时"无出处,官方数字是 1.8M hours)。


两个版本,你该用哪个

VoxCPM-0.5B(原版) VoxCPM1.5(最新)
参数量 640M 800M
AudioVAE 采样率 16,000 Hz 44,100 Hz
LM Token Rate 12.5 Hz(patch=2) 6.25 Hz(patch=4)
RTX 4090 上的 RTF 0.17 ~0.15
权重是否开源 ✅ HuggingFace 可下载 ✅ HuggingFace 可下载
支持 LoRA 微调
支持全参数微调(SFT)

结论很简单:新项目直接用 1.5,音质更好,还能微调。0.5B 只适合你有特殊理由需要维持旧版本的场景。


三个真正值得验证的能力

1. 上下文感知语调

官方表述是"spontaneously adapts speaking style based on content"。意思是模型读到疑问句自然上扬,读到列举段落自动控制节奏,不需要你手动打标签。

这是端到端架构的直接红利。传统 TTS 把文本和声学特征分开处理,语境信息在转换中丢失;VoxCPM 的语言模型骨干全程保留了语义,所以能做到隐式的语义-声学解耦。

验证方法:准备三段不同情绪基调的文本(平铺叙述、反问句密集、技术文档列举),分别合成,对比停顿和音调变化是否符合直觉。不要用单句测试,短句效果差异不明显。

2. 零样本声音克隆

提供几秒参考音频,模型能同时复刻音色、口音、情绪基调、语速节奏。这是真正意义上的"零样本"——不需要对应文本,不需要重新训练,不需要微调。

官方描述:

capturing not only the speaker's timbre but also fine-grained characteristics such as accent, emotional tone, rhythm, and pacing

实用限制:当前版本对情绪和说话风格的主动控制还有限,可控语音生成(通过自然语言指令调节情绪)在 Roadmap 里但未上线。所以"给我生成带焦虑感的30岁女声"这类 prompt 目前不能直接实现,这点原文描述是超前于现实的。

3. 流式合成 + 低 RTF

RTF(实时因子)= 合成时间 / 音频时长。RTF 0.15 意味着合成 10 秒音频只需 1.5 秒——这个数字在 RTX 4090 上已经达到实时对话的可用门槛。

官方同时开源了 NanoVLLM 集成版(社区维护),可以进一步提升吞吐量。还有 ONNX 导出版,支持 CPU 推理——虽然速度会显著下降,但对没有 GPU 的场景是个可用的备选项。


真实安装流程(亲测可用)

原文给的是 git clone + pip install -r requirements.txt 的路径,但官方已经发布了 PyPI 包,正确姿势更简单:

# Step 1:安装主包
pip install voxcpm

# Step 2:下载模型权重(首次运行会自动触发,也可提前手动下载)
from huggingface_hub import snapshot_download
snapshot_download("openbmb/VoxCPM1.5")

# Step 3:合成语音(最小示例)
import soundfile as sf
from voxcpm import VoxCPM

model = VoxCPM.from_pretrained("openbmb/VoxCPM1.5")

wav = model.generate(
    text="这是一段测试语音,用来验证 VoxCPM 的合成效果。",
    prompt_wav_path=None,       # 留空则使用默认音色
    cfg_value=2.0,              # 越高越贴近 prompt,但可能失真
    inference_timesteps=10,     # 步数越高质量越好,速度越慢
    retry_badcase=True          # 遇到不稳定输出自动重试
)

sf.write("output.wav", wav, model.tts_model.sample_rate)

CLI 方式(不想写代码):

# 直接合成
voxcpm --text "你好,这是 VoxCPM 的语音合成测试。" --output test.wav

# 声音克隆
voxcpm --text "目标文本内容" \
  --prompt-audio your_voice.wav \
  --prompt-text "参考音频的对应文字" \
  --output cloned.wav

Web UI

python app.py  # 默认启动在 localhost,支持声音克隆和声音创建两个功能

需要提前知道的隐患

语言支持被严重高估:当前版本主要支持中英文,其他语言效果无保证。如果你的核心需求是多语言,先用 Playground 测你目标语言的实际效果,再决定是否投入。

ONNX/CPU 方案是社区维护,非官方:如果你打算在没有 GPU 的机器上部署,ONNX 版本的稳定性和更新频率需要自行评估,OpenBMB 不负责这个分支的维护。

偶发不稳定:官方在 Limitations 里明确承认:the model may occasionally exhibit instability, especially with very long or expressive inputs. 所以批量生产场景要做好异常检测和重试逻辑,代码里的 retry_badcase=True 参数不是可选项,是建议默认开启的。

克隆功能的伦理风险:README 单独开了一节警告,真实声音克隆存在被用于深度伪造的风险。OpenBMB 明确要求公开发布的 AI 生成内容需标注来源。这不是套话,是你在做产品时必须认真考虑的合规问题。

微调需要足够的数据:1.5 版本支持 SFT 和 LoRA,但官方指南没有给出最低数据量建议。如果你想训练特定人声,建议先从 LoRA 入手,成本更低,效果通常已经够用。


横向对比:该选哪个

VoxCPM1.5 CosyVoice 2 XTTS-v2 F5-TTS
架构 扩散自回归(无 Token) 流匹配 VITS 变体 扩散
主要语言 中/英 中/英/多语言 17 语言 中/英
声音克隆 零样本 零样本 零样本 零样本
可控情绪 ❌(Roadmap) ⚠️ 有限
微调支持 ✅ SFT + LoRA
最低 GPU 需求 有 ONNX CPU 版 建议 GPU 中端 GPU 中端 GPU
商用协议 Apache 2.0 Apache 2.0 CPML(限制商用) MIT

如果你的核心需求是中英文混读的自然度,VoxCPM1.5 值得一试。如果需要多语言加情绪可控,CosyVoice 2 目前更完整。如果你在意商用许可的简洁性,CosyVoice 2 和 F5-TTS 的协议更干净。


周末两小时的最小验证路径

第一步,用官方 Playground(Gradio 界面)在线测你的目标文本和语言,不需要本地环境,5 分钟内能得到直观结论。

第二步,如果 Playground 效果符合预期,在本地用 pip install voxcpm 装好,跑一个 10 句话的批量合成任务,测量实际 RTF 和偶发失败率。

第三步,如果批量合成稳定,再考虑声音克隆场景——准备一段 5-10 秒的清晰参考音频,测克隆保真度。

如果第一步就不理想,直接换工具,别在环境配置上浪费时间。


相关链接

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。