VoiceStudio 深度评测:10.3 万 Star 的本地语音工作室,646 种语言本机跑,70 个模型许可却一个没清

VoiceStudio 深度评测:10.3 万 Star 的本地语音工作室,646 种语言本机跑,70 个模型许可却一个没清

如果你做短视频翻译、给课程配音,或者只是想用自己声音念一段稿子,那你一定被 ElevenLabs 的账单劝退过:按字符计费,一小时音频就是一笔钱,配音要重复付费,还要求你先把声音样本传到别人服务器上。VoiceStudio(本地语音工作室)就是冲着这件事来的——10.3 万 Star,646 种语言,声音克隆、配音、听写全在你自己电脑上跑,不上传、不按次收费。

它到底能不能替代,我用了一晚上的时间把仓库扒开看了:它的真实成本不在订阅费上,在显卡和硬盘上;它最想让你相信的那个卖点,恰好是它自己在文档里承认没做完的地方。

它是什么:16 个引擎挤在一张显卡门口

简单说,VoiceStudio 是一个 Electron 桌面应用加一个 Python 后端,后端再往下挂 16 个「引擎」(也就是真正把文字变成声音的模型适配层)。每个引擎是一个独立目录,前端只跟后端说话,后端负责挑一个引擎、排队、把音频吐回来。

它的第一个设计决策很有意思:引擎不共用一套 Python 环境。代码里有一个统管调度与资源分配的排队模块(就是把要显卡的活排成一条队,文件位置见表),注释写得很直白——语音合成、说话人分离、人声分离、转写、音视频合流都在抢同一份显卡和文件句柄,没有闸门,第二个任务就能把显存吃爆。所以所有吃显卡的活都排成一条队,前端能看到「你前面还有 2 个任务」。

第二个决策更狠:依赖打架的引擎单独跑一个进程。仓库里有一段专门管这件事的基础类(1207 行的进程隔离骨架),它让不同引擎跑在各自版本的 Python 解释器里,父子之间走带长度前缀的结构化数据通信。原因写在同一份注释里:IndexTTS 要求旧版 transformers,主程序要求新版,两个印不在一本账上,只能各开各的进程。它甚至明确写了「不用 multiprocessing」——因为那玩意只能复制当前解释器,恰好不能解决版本冲突。

第三件事是「在哪跑」。机器能力探测模块不做任何网络请求,只读驱动和系统信息,然后把家底分成六类:英伟达显卡、AMD 显卡、苹果自家芯片、英特尔核显、国产加速卡和纯 CPU。路由模块拿这份家底去匹配每个引擎声明的兼容性和显存下限,输出一句话解释「这台机器会怎么跑、为什么」。它有一条自我约束:不静默降级——AMD 显卡配了 N 卡驱动包,它会明确告诉你「卡在,但 PyTorch 用不了」,而不是悄悄退回 CPU。

拷贝与设计:两条路,两种思路

声音克隆(voice cloning)和声音设计(voice design)是它并列的两个主打功能,实现路子完全不同,这点值得单独说。

克隆走的是「给样例、照葫芦画瓢」:你先录 5–15 秒干净音频,它的参考音频处理模块要求这段音频必须是同一个人、没有背景音乐,长度低于 3 秒它就直接判为不可靠。放在配音场景里更讲究——先用人声分离切出干净人声,再按说话人分段,挑每个人最长那段干净片段当参考,长句和短句还有两套下限(整场 5 秒、单句 3 秒),连「参考片段边缘离另一个说话人太近」都要降权,怕把两个人的声音混成一个。

设计走的是「用话描述」:不给你样例,让你选性别、年龄、音调高低,中文还能选河南话、四川话、东北话这类方言,英文能选美音、英音、印度口音,然后模型按这套描述生成一条从来没存在过的声音。它把描述词做成互斥的四个大类加两个独立集合,中文和英文的描述词互相翻译,校验不过就不发出去。

两条路汇到同一个出口:生成的音频都走同一条导出通道,导出精度分三档(16 位标准、24 位剪辑用、32 位浮点原样),每档都给了每分钟的实际体积——2.9 MB、4.3 MB、5.8 MB。这套细节是它的可信度来源:它不吹「无损」,而是告诉你哪一档会变大、变大多少、并且明确说「提高精度不会补回模型已经丢掉的信息」。

实证:能上手核的我都核了

这台机器只有 1.9G 内存、6G 磁盘余量,真跑 2.4G 的语音模型立刻内存耗尽,所以下面的结论全部来自代码、配置、文档和能跑得动的测试,跑不了的我标「未实测」。所有操作都在隔离沙箱里做,clone 用浅克隆。

核实动作 命令 / 文件 结果
代码规模 统计 .py 行数 全仓 32.8 万行;后端 14.1 万行;桌面前端 16.3 万行;模型包 1.5 万行
模块切分 数目录 后端 44 个路由、117 个业务模块、16 个引擎目录
测试体量 数 test_*.py 868 个测试文件,其中 744 个在 tests/ 根下
语言数 导入 omnivoice/utils/lang_map.py 实数 646 个语言名,646 个唯一语言码,与项目主页宣称一致
模型清单 backend/config/models.yaml 50 条已知模型,单条 0.025–9.8 GB
许可记录 backend/config/model_licenses.json 70 条记录、7 类未决资产,商业可用标记为真的:0 条
许可自查脚本 python scripts/check_model_licenses.py 自报「70 个模型、7 类未决」通过
许可测试 pytest tests/test_model_licenses.py 18 条全过
设备探测测试 pytest tests/test_device_caps.py 21 条全过
路由测试 pytest tests/test_engine_routing.py 42 过 1 挂,挂的那条是因为沙箱没装 torch(环境缺件,不是逻辑错)
克隆相关测试 逐个跑 5 个 test_clone_* 能收集的都过;依赖 torch 的 4 个收集失败,标未实测
提交节奏 GitHub 接口 近 30 天 2,508 次提交;当前版本 0.5.7,10 月 26 日发布
贡献集中度 GitHub 接口 第一贡献者 4,662 次提交,第二 1,005 次,第三 63 次
issue 面 GitHub 接口 累计 1,409 个 issue,当前 84 个开着

几个数字要翻译一下。

868 个测试文件对 32.8 万行的仓库算密,但真正让我停住的是「50 条模型里仅 1 条是必需」。配置里把 k2-fsa/OmniVoice(2.4 GB)标成唯一必需,其余全是可选引擎的附件。这意味着你装完能用(657 MB 到 2.4 GB 就有声音),但想用第二、第三个引擎,就得再下 3–10 GB。这是它和 ElevenLabs 最本质的差别:那边按字符收费,这边按硬盘收费。

近 30 天 2,508 次提交、10 月 26 日发 0.5.7 版,这个节奏不像「周末项目」,像一个全职团队在推。但贡献者分布要看清楚:第一贡献者 4,662 次、第二 1,005 次,第三名直接掉到 63 次。646 种语言、16 个引擎、44 个路由的工程量,压在两个人身上,第三名开始就是零星补丁——这解释了为什么 84 个 issue 一直开着,其中一条「Radeon 显卡跑不起来」的 bug 讨论到 14 楼才关。

它最想让你信的那句话,自己拆了台

VoiceStudio 的招牌是「完全本地、开源替代 ElevenLabs」。这两半我分开验,结论不一样。

「本地」是真的。模型下载全走 Hugging Face 缓存,代码里有一句明写的约束:只有用户点下载按钮或第一次生成时才联网,别的时候一个字节都不出去。语音克隆的参考音频处理也全在本机:人声分离用的是本地跑的 Demucs,连「这段音频是不是同一个人」都靠本地判断。内存门槛写得很细:CPU 上准备一段克隆参考大约要 0.75 GB 加每秒 0.07 GB,不够就提前拒绝,而不是跑到一半崩。

「开源」的一半更微妙。应用本体用的是 AGPL-3.0(一种要求改后代码同样开源的许可)——商用是可以的,官方许可声明里明确写了「包括商业和内部业务使用」。但如果你把它改完挂到网上提供服务,必须把改后的源码用同样的协议公开。想闭源嵌进自己的产品,得买商业授权。这一条很多「开源替代」产品都藏着,VoiceStudio 反而写在许可文件第一屏。

真正的问题是模型和代码不是一回事。仓库里有一份商品化审查清单(就是逐个模型登记上游条款的账本),70 条模型记录,每一条都有一个「商业可用」标记——全部是假。其中 65 条的状态是「未审查」,5 条直接标了「非商业」。默认那个 2.4 GB 的必需模型,模型卡上写着「代码用 Apache 许可、权重是非商业许可」——也就是不能商用。它自己的许可声明里也承认:VoiceStudio 的商业授权,不覆盖任何模型的条款。

具体说:你可以合法地把这套软件装在公司电脑上用它做内部演示,但你用它生成的内容能不能拿去卖,取决于你装的是哪个模型,而官方到现在没有给任何一个模型开出「可商用」的结论。这条不是我在挑刺,是它自己文档里的一句话:目前没有任何一个生产模型具备完成审查所需的证据。

和站内测过的同类比,它站在哪

同类里我最近验过三件东西,摆在一起才看得清它的位置。

前作那篇自动剪片工具 MoneyPrinterTurbo 是同类问题的另一面:测试全绿,字体和音乐却没授权。VoiceStudio 走的是相反的路——它把授权问题写进测试,18 条许可测试全过,但结论是「一个都没清」。一个是没查,一个是查了并如实说没清,后者更值得信,也更该让人警惕。

deepagents 那篇 的教训是「全绿的前提是照它自己的依赖清单装」。VoiceStudio 在这一点上做对了:它知道依赖会打架,于是给打架的引擎各开一个进程、各装一套环境,而不是装好一个版本就宣称兼容。代价是你磁盘上可能同时有三份 transformers。

第三个坐标看它站在哪个位置。Enjoy 那篇 讲的是「内容装在仓库里,桌面版却停更」。VoiceStudio 两样都占:内容(模型)不在仓库里而在你硬盘上,应用本身更新极勤(近 30 天 2,508 次提交)。它的陈旧风险不在代码,在权重——模型版本被固定在某个提交上,而权重的条款随时可能变。

所以三个场景可以直接对号。

该用:你手上有一段视频要翻译配音,不想把原始音频传到国外服务器;或者你要批量生成旁白但不接受按字符计费;或者你的机器有一块 8 GB 以上的显卡、并且你只做内部用。它的自动配音流程是完整的:人声分离、说话人识别、按人切参考音频、逐句克隆、把译文塞回时间轴,还得让嘴型和声音对上(它用 WhisperX 做逐词时间戳,误差 10–30 毫秒,比原生 Whisper 的 100–300 毫秒细一个量级)。

别用:你打算拿生成的声音去做付费有声书、商业广告或客户交付物。除非你能自己把每个模型的条款逐条清干净——这不是 VoiceStudio 的锅,是这类本地 TTS 共同的坑,但它把坑挖在了显眼处。

看机器决定:只有 CPU 也能跑,压缩档位表写得清楚(把模型权重从高精度压成低精度,换更小的显存占用)——最低一档 659 MB 显存、纯 CPU 也用它;4–12 GB 显卡用 945 MB 的中档;12 GB 以上用 1.6 GB 的满血档。它的整套设计都在回答「我这台机器能跑到什么程度」,而且答案会给得足够具体。

判断

如果你要的是「不上传、不按字符付费」,它现在就能用,而且理由充分:646 种语言是我亲手数出来的,不是照抄项目主页;设备探测、引擎选择、任务排队都过了测试;配音的每个环节都能在代码里找到对应实现。

但它的「ElevenLabs 替代」叙事只成立一半。替代的是计费方式(从按字符变成按硬盘和显卡),不是法律风险。70 个模型、0 条商业可用结论,这不是遗漏,是它自己在文档里反复强调的现状。它的诚实值得加分:很多同类产品会把「AGPL 允许商用」当成「可以随便商用」来讲,它反而在许可文件里写明「应用授权不覆盖模型条款」。

最该警惕的不是功能,是贡献集中度。两个人撑起 32.8 万行和 646 种语言,第三名贡献者只有 63 次提交。短期这不是问题——近 30 天 2,508 次提交就是证据;长期这是单点风险,尤其是当它想同时维护 16 个引擎、4 个平台和 646 种语言的时候。

本次的局限:这台机器 1.9G 内存、6G 磁盘,模型没跑,音频质量和克隆相似度我一个字都不下判断;依赖 torch 的 4 个克隆测试收集失败,标了未实测;路由测试里那条失败是沙箱缺库,不是仓库的错。所有数字取自 2026 年 11 月 7 日的仓库快照与 GitHub 接口,模型条款随时可能变,动手买或动手上线前请自己再核一遍。

相关阅读: