3.7 万星的本地语音克隆:像不像赢了 22 项,准不准只赢 2 项

GitHub 趋势 · 第 101 期

3.7 万星的本地语音克隆:像不像赢了 22 项,准不准只赢 2 项

#VoxCPM2#语音克隆#本地模型#Apache2.0#TTS

这一族里少见的许可干净的一份:代码和权重都走 Apache-2.0,README 的亮点清单里直接写着 free for commercial use。但有两个前提得先摆上来 —— 它的头条速度数字是按 RTX 4090 量出来的,而 pip install 拿到的是 5 月 11 日那版,不是仓库现在这版。

前面写过的那个本地语音 GUI(VoiceStudio),是把模型套在一层壳里:应用 AGPL-3.0、默认权重 CC-BY-NC,本地跑通不等于能拿去商用。这次回到模型本身。它自己是什么许可、在不是 4090 的机器上能跑多快、装到的是哪一版,才是决定你要不要在这个上面搭产品的东西。

这个项目是什么

VoxCPM2 来自 OpenBMB,一个组织账号而不是个人仓库。GitHub 上 37,107 star、4,215 fork、117 个未关 issue。按 API 的 subscribers_count 算,star 与 watcher 的比例是 226:1 —— 收藏它的人很多,订阅它动态的人很少;未关 issue 对 star 的比值是 0.32%。

它冲着语音合成那条主流路线来的:主流做法先把语音切成离散 token 再建模,VoxCPM 不做 tokenization,直接在连续语音表示上生成,走 diffusion autoregressive 的路子。VoxCPM2 是 2B 参数、官方自述用 200 万小时以上多语种数据训练、30 种语言、48kHz 输出;语言模型底座是 MiniCPM-4,整条链路压成四段:LocEnc → TSLM → RALM → LocDiT。

五种用法,一种比一种重

它把语音这件事拆成了四档加一个流式接口,分档依据是你要给它多少东西:

用法你给它什么它做什么
直接合成一段文字30 种语言直接读,不用加语言标签
Voice Design一句自然语言描述从零造一个音色,不需要参考音频
Controllable Cloning参考音频,可选加风格指令克隆音色,同时改情绪、语速、表达
Ultimate Cloning参考音频加它的逐字转写从参考音频续写,保留音色、节奏、情绪
流式一段文字generate_streaming 逐块吐,用来做实时对话

一个仓库里同时活着三代模型

它的 README 用三档状态把三个版本并排列出来:

VoxCPM2VoxCPM1.5VoxCPM-0.5B
官方状态LatestStableLegacy
主干参数2B0.6B0.5B
输出采样率48kHz44.1kHz16kHz
语言3022
克隆模式隔离参考 + 续写仅续写仅续写
显存约 8 GB约 6 GB约 5 GB

这三代不是躺在 git 历史里,是躺在根目录里。v2 的模型实现 54,715 字节和 v1 的 43,178 字节并排放;两代音频 VAE 一起在,19,201 对 10,871(1.77 倍);conf/ 下三套微调配置各一份;连 Web Demo 都留了个 app_old.py(12,572 字节)在 app.py(24,384 字节)旁边。

顺带一处对不上的地方:同一个 VoxCPM1.5,在版本表里主干参数写 0.6B,在下面那张 Seed-TTS-eval 基准表里写 0.8B;而名字里带着 0.5B 的那个,基准表里又写成 0.6B。两张表都没跟着对方改。

上手:README 原文命令

最省事的一行就是包管理器:

pip install voxcpm

然后是最短的 Python 调用,照着 README 的 Quick Start 抄:

from voxcpm import VoxCPM
import soundfile as sf

model = VoxCPM.from_pretrained(
  "openbmb/VoxCPM2",
  load_denoiser=False,
)

wav = model.generate(
    text="VoxCPM2 is the current recommended release for realistic multilingual speech synthesis.",
    cfg_value=2.0,
    inference_timesteps=10,
    seed=42,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)

不想写代码就走 CLI,这条克隆命令也是 README 原文:

voxcpm clone \
  --text "This is a voice cloning demo." \
  --reference-audio path/to/voice.wav \
  --output out.wav

代码一直在动,版本停在 114 天前

GitHub 上 14 个 tag、14 个 Release,PyPI 上 14 个版本 —— 三处数字完全对得上。三处的最新一个也都是 2.0.3,2026-05-11。

而仓库最后一次推送是 2026-09-02,中间隔着 114 天。GitHub 的 compare 接口给的是 total_commits: 33ahead_by: 33behind_by: 0 —— 33 个提交全部在 tag 前面,一个都没落后。

这 33 个提交里有实东西:可复现生成的 seed(PR #327)、生成后时间戳对齐(PR #332)、LoRA 配置自动加载(PR #329)、Docker 部署与反代流式(PR #380)、Mac MPS 支持(PR #298)、本地推理引擎文档(PR #348)、checkpoint 加载加固(PR #347)。

原因写在一个 1,302 字节的工作流文件里 ——

on:
  release:
    types: [created]

发版动作绑在 Release 被创建这个事件上,不是绑在打 tag 上。没人去点那个按钮,PyPI 就停在 5 月 11 日。配套还有两件事:14 个 Release 的 assets 全都是空数组,一个二进制附件都没有,装它只能走包管理器或者源码;而 pyproject.toml 里版本号是动态的,靠 setuptools_scm 从 git tag 反推。所以你要么等有人建 Release,要么直接从源码装。

它自己的性能表里,赢的是哪一列

README 里那张 MiniMax-MLS-test 表按语言列了 24 行,两列指标:WER 是念得对不对,SIM 是像不像。我把两列的加粗逐个点过一遍,结果是 WER 表里它只在 2 行最优(芬兰语 2.632、泰语 2.961),而 SIM 表里它是 22 行最优,只有捷克语和罗马尼亚语旁落。

语言VoxCPM2 的 WER同行最好差多少
芬兰语2.6322.632(它自己)——
泰语2.9612.961(它自己)——
印地语19.6995.8273.4 倍
乌克兰语6.3160.9976.3 倍
阿拉伯语13.0461.6657.8 倍
捷克语24.1322.10811.4 倍
罗马尼亚语21.5771.34716.0 倍

直接说结论:音色这件事它做到了第一档,但念得准这件事在相当多语言上排在后面。做配音、做有声书的人不太受影响,因为人耳听的是像不像;做电话客服、做播客转写回环的人,这几行就是硬伤。

还有一张它自己跑的内部 30 语言基准,均值 1.68%。但那张表的对比列只填了一半:VoxCPM2 一列有均值,对手那格是空的 —— 这个 1.68% 目前没有同行参照。

许可:代码和权重同一套 Apache-2.0

这是它相对前面那份本地语音 GUI 最实在的差异。

三个未核实项要说清:模型权重放在 HuggingFace 与 ModelScope 上,本轮抓取不到,没纳入核实范围,相关结论一律没写进正文;llama.cpp-omni 用的 GGUF 权重挂在第三方账号下,不是 OpenBMB 自己发布的;PyPI 上 2.0.3 的元数据里许可字段是空的,是旧版打包没带上。另外 README 的 Risks 一节写着严禁用于冒充、欺诈与虚假信息 —— 那是伦理声明,不是许可证。

我的判断

适合谁:要在自己机器上跑语音克隆、并且打算拿去做商用的人;做中文内容的,因为 30 种语言里有中文加 9 种方言;需要原创音色但手上没有参考音频的,Voice Design 那一档不需要任何音频输入;手上有 8GB 以上显存,或者愿意走 llama.cpp-omni 上 Mac 的。

不适合谁:显存 8GB 以下的;要做阿拉伯语、捷克语、罗马尼亚语、印地语这类语言的,它在那种表里排在后面;要一次生成就定稿的,官方自己写了可控克隆与音色设计每次结果会有起伏,可能得生成 1 到 3 次;以及只想 pip 装完就用上最新特性的人。

上手之前,这四处值得先看清楚:

仓库:github.com/OpenBMB/VoxCPM(https://github.com/OpenBMB/VoxCPM)

Star:37,107(REST API,2026-09-14 抓取);Trending 日榜同期显示 37,192、今日 +204

Fork 4,215 · 未关 issue 117 · watcher 164 · 仓库 size 4,120 KB · Python · 默认分支 main · 未归档

许可:Apache-2.0,覆盖代码与权重(LICENSE 11,298 字节标准全文,无追加条款);HuggingFace 与 ModelScope 上的权重页本轮抓取失败,未纳入核实范围

版本:最新 Release 与最新 PyPI 版本均为 2.0.3(2026-05-11);14 个 tag / 14 个 Release / 14 个 PyPI 版本,Release 附件全为空

体量:文件级合计约 5.68 MB,其中图片与两段示例音频占 72.0%,uv.lock 占 18.5%,代码约占 7.9%

抓取时间:2026-09-14

想在本地跑语音克隆、又在意许可的人,这一份的许可是这十几期里最干净的一份之一;但别只看 README 的头条数字,先把 pip 拿到的版本号对一遍。已经在跑 VoxCPM2 的,说说你在什么机器上、RTF 是多少 —— 那比一张只有一个硬件锚点的性能表有用。

下期预告:短视频方向,继续按方向的实时榜单找没写过的新面孔;更早预告过的开源替代 SaaS 合集不在给定方向内,继续欠着。

#VoxCPM2#语音克隆#本地模型#Apache2.0#TTS