跳到正文

目录

Voicebox:把语音克隆、生成与听写都留在本地的开源语音工作室

Voicebox:把语音克隆、生成与听写都留在本地的开源语音工作室

语音生意被两家云服务分成了两半:ElevenLabs 负责让机器说话,WisprFlow 负责听懂你说话。Voicebox 想做的,是把这两半合进一套开源应用,而且模型和数据都不离开你的机器。它定位成 ElevenLabs 和 WisprFlow 的本地替代,附带一个内置的本地大语言模型来润色语音和构造角色人格——这套东西不是某一家竞品的镜像,而是把「人说 → 字 → Agent 说 → 声」整条语音回路在单机上闭环的尝试。

先看它覆盖的能力边界,再进入细节:

语音回路的半边云端头号玩家Voicebox 对应能力
输出(TTS 生成与克隆)ElevenLabs7 个 TTS 引擎、零样本克隆、音效后处理
输入(听写与转录)WisprFlow全局热键听写、Whisper 转录、Captures
串联(Agent 语音、人格)各家 APIMCP voicebox.speak、本地 LLM 人格

后面 7 节依次讲:它到底是什么,7 个引擎怎么选,核心功能,技术架构,API 集成,部署方式,以及什么时候该用、什么时候不必用它。

§1 定位:它真正在解决什么问题

云 TTS 与服务型听写各有各的约束,而这些约束在本地方案里可以同时消失。

数据不出机器。 声音采样、口述内容和生成音频都留在本机,不上传第三方。对声纹敏感的用户、有保密要求的商业旁白,这一点是硬需求,而不是卖点。

成本随量不线性上升。 云 API 的计价随生成字数增长。批量做有声书、长播客时,本地推理的成本基本恒定在电费和显存占用上。

工具链可以闭环。 云方案往往输入输出各用一家。Voicebox 把 TTS、STT、本地 LLM 和 Agent 语音输出放进同一处,Cursor、Claude Code 这类 MCP 客户端叫一次 voicebox.speak 就能用克隆声线说话。

模型可选。 不同的文本长度、语言、情感要求和显存预算对应不同引擎,每次都可在音色、成本和语言覆盖之间权衡。

§2 项目概况与能力总览

属性
Stars51,000+(持续增长)
Forks6,300+
技术栈TypeScript(前端)+ Python(后端)+ Rust(桌面壳)
许可证MIT
创建时间2026-01-25
官网 / 仓库https://voicebox.sh / https://github.com/jamiepine/voicebox

能力清单可以浓缩成四条主线,避免被罗列淹没:

  1. 语音克隆与生成——几秒参考音频零样本克隆;7 个引擎按需切换;每个档案还能挂一个自由描述的人格(persona)。
  2. 无限时长与后处理——长文本自动按句切分、跨 chunk 交叉淡化拼接;8 种由 Spotify pedalboard 驱动的声音特效。
  3. 输入与编辑——全局热键在任何应用里听写;Whisper 转录;Stories 多轨时间线做播客、对话和叙事。
  4. 对外集成——REST API 加内置 MCP server,任何 MCP 客户端都能让应用「开口」。

§3 七大 TTS 引擎:按场景选,不是按名气选

Voicebox 目前接入 7 个引擎。选择的关键在语言、文本长度、表达需求和显存预算这几项,而不是谁更知名。

引擎参数量语言数主要特点
Qwen3-TTS0.6B / 1.7B10高质量多语言克隆,支持指令控制(如「慢点说」「耳语」)
Qwen CustomVoice109 个精修预设音色,用自然语言描述语速与情绪,无需参考音频
LuxTTS英语轻量(约 1 GB 显存),48 kHz 输出,CPU 可达 150 倍实时
Chatterbox Multilingual23语言覆盖最广(阿拉伯语、丹麦语、芬兰语、希腊语、希伯来语、印地语、马来语、挪威语、波兰语、斯瓦希里语、瑞典语、土耳其语等)
Chatterbox Turbo350M英语速度快,理解 [laugh][sigh] 这类副语言标签
HumeAI TADA1B / 3B10语音-语言模型,可生成 700 秒以上连贯音频,文本-声学双对齐
Kokoro82M850 个曲库预设音色,模型极小,CPU 推理快

Qwen3-TTS:可指令的多语言克隆

阿里通义千问系列的语音模型,0.6B 偏快、1.7B 偏稳。它支持指令控制语速和风格,例如让模型「说得慢一点」「用耳语」:

Speak slowly and whisper          # 控制语速与音量
Please emphasize the word IMPORTANT   # 强调某个词

支持英语、中文、西班牙语、法语、德语、韩语、俄语、葡萄牙语、意大利语、波兰语共 10 种语言。适合需要精确控制输出的产品演示和语音助手。

Qwen CustomVoice:免参考音频的预设音色

同样是通义系,但它不需要上传参考片段。内置 9 个精修预设音色,语速和情绪通过自然语言描述控制。想要快速得到一个不那么「机器味」的默认声道,这是最省事的选择。

LuxTTS:显存和 CPU 友好的英语专家

约 1 GB 显存即可跑,输出 48 kHz,CPU 上能到 150 倍实时。没有独显的开发机、或者在迭代测试阶段想快速出结果的场景,它最合适。

Chatterbox Multilingual:语言覆盖最广

覆盖 23 种语言,含阿拉伯语、希伯来语、印地语、斯瓦希里语这类较冷门的语种。做全球化的本地化配音,以它为基底,用其他引擎兜底细节。

Chatterbox Turbo:唯一理解情感标签的引擎

350M 参数,专为英语的情感表达优化。这里有一个容易踩的边界:副语言标签只有 Chatterbox Turbo 会解释成笑声、叹息;Qwen3-TTS、LuxTTS、Chatterbox Multilingual 和 TADA 会把 [laugh] 这类标签按字面读出来。 选中 Turbo 后,在文本输入框敲 / 会弹出标签插入器,可内联加入:

[laugh] [chuckle] [gasp] [cough] [sigh] [groan] [sniff] [shush] [clear throat]

例:

Hello everyone [laugh] welcome to the show! [sigh] I'm so excited to be here today.

HumeAI TADA:长文对齐

基于 Llama 3.2 的语音-语言模型,1B 侧重英语、3B 多语言。它由一个因果语言模型加流式匹配扩散解码器组成,能生成 700 秒以上的连贯音频,文本与声学的时间戳严格对齐。有声书、课程这类长文本,以及要求音素与时间精确对应的场景优先选它。

Kokoro:最小最快的曲库

82M 参数,随包带 50 个曲库预设音色,CPU 就能飞快推理。对音质要求不苛求、想开箱即用得到一堆人声时,它最低成本。

引擎选择速查

需求推荐引擎
快速原型 / 无独显LuxTTS
高质量英语配音Qwen3-TTS 1.7B
免参考音频快速成声Qwen CustomVoice
多语言覆盖Chatterbox Multilingual
情感表达丰富Chatterbox Turbo
超长文本、精确对齐HumeAI TADA
曲库音色、轻量部署Kokoro

§4 核心功能

语音克隆与档案管理

从一个音频样本克隆音色是零样本的:上传 10-30 秒的 MP3、WAV 或 M4A,或在应用里直接录一段就能得到声音档案。想提升克隆质量,可以传多个内容不同的样本(朗读、对话、不同情绪),也让每个档案绑定默认的特效链。

档案与生成记录都存在本地 SQLite,理论上不上传任何服务器。档案支持导入导出,方便备份或分享。

语音人格:让声音「有人设」

给任何一个档案附加一段自由描述——这是谁、怎么说话、在意什么。设置后生成框会出现两个动作,由一个本地 Qwen3 大模型驱动,全程不出机器:

  • Compose(写一句):点一下,模型为这个人设现写一句台词进文本框,可编辑后合成,也可再点换一句。
  • Speak in character(入戏):打开开关后,输入文本会先经人设 LLM 改写成该声音的口吻,再送进 TTS。

Agent 端通过 MCP 传 personality: true 复用同一条改写管线,等于把 voicebox.speak 变成「文本 → 人设 LLM → TTS」的三段式通道。本地 LLM 可选 Qwen3 0.6B / 1.7B / 4B,与 TTS 共用同一套推理运行时。

无限时长生成

模型对单次输入长度有上限。Voicebox 的解法是先把文本按句边界切开,每段独立生成再交叉淡化拼接:

  • 自动分 chunk,长度可在 100-5,000 字符间配置
  • 相邻 chunk 的 crossfade 时长 0-200 ms 可调
  • 单次最大 50,000 字符
  • 分句时能识别缩写(C.O.D.、Mr.)、CJK 标点,并保持 [标签] 完整

8 种音效后处理

由 Spotify 的 pedalboard 库驱动,生成后可实时预览,也能存成可复用预设:

效果说明
Pitch Shift上下最多 12 个半音
Reverb房间大小、阻尼、干湿混合可调
Delay延迟、反馈与混合比可调的回声
Chorus / Flanger金属感或丰润质感的调制延迟
Compressor动态范围压缩
Gain音量调整(-40 到 +40 dB)
High-Pass Filter切除低频
Low-Pass Filter切除高频

内置 4 套预设(Robotic、Radio、Echo Chamber、Deep Voice),支持自定义,也允许把特效链设成档案默认。

Stories 多轨时间线

做对话、播客、多角色叙事的编辑器:多轨拖拽排布、时间线上直接裁剪分割、播放头全轨同步、每个轨道片段可固定到某个版本。角色配音、旁白、背景音乐分层放置,是一次性拼出多角色对话的可视化方式。

录音、听写与 Captures

语音输入的半边是一个全局热键:在任何应用里按住键说话,松开后 macOS 上字幕会直接粘进当前聚焦的输入框(带目标感知粘贴,并原子化保存/还原剪贴板)。按住说话、点按切换两种触发方式都可重新绑定;压住 Push-to-Talk 时再拍一下空格,能把会话无缝升级成持续听写,中间不丢音频。

转录由 Whisper 驱动,按平台走 MLX(Apple Silicon)或 PyTorch(CUDA / ROCm / DirectML / CPU)。Base / Small / Medium / Large 是标准质量阶梯,Turbo 比 Large 快约 8 倍且质量损失较小。每次听写、录音和上传的文件都会落在 Captures 页:可以回放、换任意 Whisper 尺寸重新转写,或把原始转写经本地 LLM 用不同标志再清洗一遍(去掉语气词、去自我修正、保留术语)。点一个按钮,还能把某条 capture 直接转成某个克隆声线的语音样本。

生成版本与队列

每次生成都保留版本:

  • Original:干净的原始输出,始终保留
  • Effects versions:从任一源版本套不同特效链
  • Takes:换随机种子重新生成出变体
  • Source tracking:每个版本记录它的来源
  • Favorites:给常用生成加星

生成全程非阻塞:提交后立刻可以写下一条。串行执行队列避免显存争抢,SSE 流式回报状态,失败可重试,崩溃遗留的陈旧任务在下次启动时自动恢复。

§5 技术架构

三层结构

┌──────────────────────────────────────────────┐
│  桌面客户端(Tauri + React)                 │
│  生成面板 / 声音档案 / Stories 关键位置        │
├──────────────────────────────────────────────┤
│  状态层:Zustand + React Query               │
├──────────────────────────────────────────────┤
│  后端(FastAPI)                             │
│  routes(校验输入) → services(业务逻辑)    │
│  → backends(TTS/STT 推理) → utils(音频)  │
├──────────────────────────────────────────────┤
│  推理运行时:MLX / PyTorch(CUDA·ROCm·DirectML·CPU)│
└──────────────────────────────────────────────┘

用 Tauri 而不是 Electron 做桌面壳:安装包小、内存占用低、启动快,前端在系统 WebView 里跑;推理逻辑在 Python 的 FastAPI 里,利用成熟的数据科学生态。代价是跨了 Rust + Python + 前端三套工具链,首次构建配置项偏多——这是本地优先架构愿意付的成本。

请求路径很清晰:HTTP 请求进 routes/ 做校验,落到 services/ 处理业务逻辑,再由 backends/ 里的 TTS/STT 引擎接管,最后 utils/ 做音频处理。可观测的入口有 app.py(FastAPI 应用工厂)、main.py(uvicorn 入口)、server.py(Tauri sidecar 启动器与父进程看门狗)。

一次生成任务怎么过系统

把抽象结构串起来看:你在生成框输入一段话并选中档案 Morgan。

  1. 后端把请求收进串行的任务队列,返回任务 ID,界面立刻可以输入下一条。
  2. services/generation.py 若发现文本超长,按句边界切成 chunk。
  3. backends/ 里你选的引擎分 chunk 生成音频,chunk 间交叉淡化。
  4. 若该档案挂了默认特效链,utils/ 用 pedalboard 加上音效。
  5. 结果落盘并在 SQLite 里写入一条生成记录,附带原始版本、来源与时间戳。
  6. 页面经 SSE 收到完成事件,Stories 编辑器里可直接拖进时间线。

一次「说话」也能从键鼠端起头:按住全局热键说话 → Whisper 转写(可走 LLM 清洗)→ 粘回输入框 → 选引擎与档案生成语音;Agent 走同一条通道,用 MCP 调 voicebox.speak 把结果直接播给用户。

GPU 支持矩阵

平台后端说明
macOS Apple SiliconMLX(Metal)借助神经网络单元约 4-5 倍加速
Windows/Linux NVIDIAPyTorch CUDAjust setup 自动识别并配置
AMD GPUPyTorch ROCmWindows/Linux 均支持
通用 Windows/其余 GPUDirectML无专用后端时兜底
任意平台CPU通用支持,速度较慢

§6 REST API 与 MCP 集成

Voicebox 是 API-first 的。后端在本机跑起来后默认工作流的地址是 http://127.0.0.1:17493,完整字段以 /docs(OpenAPI)为准。

生成语音:

curl -X POST http://127.0.0.1:17493/generate \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello, this is a test of the Voicebox API.",
    "voice": "Morgan"
  }'

具体请求/响应字段因引擎而异,调试时打开 http://127.0.0.1:17493/docs 查看交互式 schema,比套用任何固定模板都可靠。

让 Agent 说话:

MCP 客户端(Claude Code、Cursor、Cline、Windsurf、VS Code)装好协议后,一条工具调用即可:

await voicebox.speak({
  text: "Deploy complete.",
  profile: "Morgan",
});

非 MCP 的一方(脚本、自制 harness)通过 POST /speak 拿到同样能力。每个客户端还能在 Settings → MCP 里绑定固定的声线(比如 Claude Code 用 Morgan、Cursor 用 Scarlett),靠提示浮层和 last_seen_at 判断声音到底从哪个 Agent 出来,避免静默后台发声。转录走 /transcribe,健康检查走 /health

§7 部署与安装

平台安装方式
macOS Apple Silicon / Intel官方 DMG,Apple Silicon 走 MLX
Windows官方 MSI / Setup,CUDA 或 DirectML
Linux暂无预编译包,源码编译(见 voicebox.sh/linux-install)
Docker仓库内 docker compose up

开发者环境在官方推荐 just 工作流下最省事:

git clone https://github.com/jamiepine/voicebox.git
cd voicebox
just setup   # Python venv + JS 依赖 + 开发 sidecar,自动识别平台后端
just dev     # 后端 + Tauri 桌面应用

常用命令:just dev-backend 只起后端、just build 构建、just check 做静态检查、just docs 打开 http://127.0.0.1:17493/docsjust db-reset 重置数据库。

§8 扩展:接入新 TTS 引擎

多引擎架构让接新模型成为标准动作,官方还提供了让 AI 编码助手代劳的 agent skill。手工接入的核心三步:

后端实现:

# backend/backends/my_engine.py
from .base import TTSEngine

class MyEngine(TTSEngine):
    name = "my-tts"
    supported_languages = ["en", "zh"]

    async def generate(self, text: str, voice_profile: str, **kwargs) -> bytes:
        """生成音频,返回 WAV 字节"""
        ...

    async def clone_voice(self, audio_samples: list[bytes]) -> str:
        """克隆声音,返回档案 ID"""
        ...

注册到引擎字典:

# backend/backends/__init__.py
from .my_engine import MyEngine

ENGINES = {"my-tts": MyEngine(), ...}

前端接入选择器: 在引擎下拉里加一项,并把 supported_languages、显存占用等元数据补齐。之后把「为 Voicebox 接入 XTTS v2」这类需求交给 agent skill,它会自己研究依赖、写后端协议、连前端并配置打包。

§9 常见问题

Q1:Voicebox 和 ElevenLabs 比效果如何? 定位不同。Voicebox 换的是自由与隐私:完全免费、本地运行、开源可控。音质在多数场景已经接近商业方案,但想要超越性高质量克隆时,云方案在极窄的需求下仍有优势。先跑通了自己的数据链路,再判断值不值当。

Q2:需要什么硬件? 最低:能跑 Python 的机器就能用 CPU 推理。推荐:macOS 用 Apple Silicon(MLX 加速),Windows 用 NVIDIA GPU(4 GB+ 显存,CUDA)。16 GB+ 内存、主频高一点的 CPU 体验最好。

Q3:支持中文语音克隆吗? 支持。Qwen3-TTS 与 Chatterbox Multilingual 都覆盖中文;LuxTTS 和 Chatterbox Turbo 仅英语。

Q4:长文本怎么处理? 自动按句切 chunk、chunk 间交叉淡化拼接,单次上限 50,000 字符。跨 chunk 的参数在设置里可调。

Q5:可以商用吗? Voicebox 本体是 MIT,可商用。但每套 TTS 引擎各有自己的模型许可证,接新引擎或换模型前要分别核对;克隆他人声音涉及授权与法律问题,只对自己的声音或已获授权的声音做克隆。

Q6:怎么在服务器上跑? 两种方式:docker compose up 跑完整应用;或只用后端起一个纯 API 服务(不带 GUI),暴露 /generate/speak 给下游集成。注意远程访问时后端默认只绑 127.0.0.1,需要显式绑 0.0.0.0

§10 采用建议与适用边界

Voicebox 不是所有人都该立刻迁移。判断标准看两件事:一是你的声纹数据能否出机器,二是你会不会长期做语音创作。

  • 现在就值得用的:隐私敏感的内容团队、长期做播客/有声书/H5 配音的创作者、想把固定声线交给 Cursor/Claude Code 的开发者和 Agent 用户。本地推理的回本点在于高频批量生成,量越大越划算。
  • 可以再等等的:只为偶尔一两次合成、且能接受云 MSI 账单的个人用户;对某个云模型「忠于原厂音色」有硬性依赖、不容许音质偏差的商用项目。
  • 动手顺序:先装桌面端跑通一次克隆与生成,确认音质过线;再按需试不同的引擎和音效;稳定后把 POST /speak 或 MCP 接进自己的应用。没有现成需求的,不必为「接一个框架」而接。

一句话收束:这东西不是让你换一家 TTS,而是让你把语音输入、生成和 Agent 语音都搬回自己的机器,把语音的支配权留在本地。

相关资源

资源链接
GitHubhttps://github.com/jamiepine/voicebox
官网https://voicebox.sh
文档https://docs.voicebox.sh
安装(含 Linux 源码)https://voicebox.sh/linux-install
API 文档http://127.0.0.1:17493/docs(本地启动后)

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。