每日一个开源项目(第139篇):Voicebox - 本地运行的开源 ElevenLabs 替代品

0 阅读9分钟

引言

"免费的本地 ElevenLabs + WisprFlow,合二为一。"

这是"每日一个开源项目"系列的第139篇文章。今天的主角是 Voicebox——一款本地优先的开源 AI 语音工作室,由独立开发者 Jamie Pine 构建。

ElevenLabs 的语音克隆效果很好,但每月 $22 起的订阅费、按字符计费的限制,以及你的声音数据上传到他们服务器,是很多人的痛点。WisprFlow 解决的是语音听写问题,但同样依赖云端。

Voicebox 把这两个功能整合进一个本地运行的桌面应用:7 个 TTS 引擎、零样本声音克隆、全局听写热键、多音轨 Stories 编辑器、以及通过 MCP 给 AI Agent 提供语音能力。所有模型在设备上运行,声音数据不发出去。

32.3k Stars,MIT 协议,Tauri + Rust 构建。

你将学到什么

  • 7 个内置 TTS 引擎的特点和适用场景(从超轻量的 Kokoro 到 Qwen3-TTS 高质量克隆)
  • 零样本声音克隆的工程实现:几秒音频如何变成可复用的声音模型
  • Voice Personality 功能:如何让 AI 在特定人设下发声
  • Stories 编辑器:多轨时间线生产播客对话
  • MCP 集成:给 Claude Code 等 Agent 装上说话能力
  • Apple Silicon 上的 MLX 加速优势

前置知识

  • 了解 TTS(文字转语音)和语音克隆的基本概念
  • 使用过 ElevenLabs 或类似语音 AI 工具更容易对比
  • Claude Code 或 MCP 使用经验(了解 Agent 语音集成部分)

项目背景

项目简介

Voicebox 是一个本地优先的 AI 语音工作室,定位是"ElevenLabs 和 WisprFlow 的免费开源替代品"。

它把两类功能整合在一起:语音输出(TTS + 声音克隆)和语音输入(听写 + STT)。这两个方向通常是分开的工具,Voicebox 把它们放进同一个桌面应用,共用本地模型基础设施。

项目的技术核心是 Qwen3-TTS 的集成——阿里巴巴在 2025 年发布的开源 TTS 模型,在零样本声音克隆质量上接近甚至超过 ElevenLabs,让本地级别的声音克隆第一次变得实用。

作者介绍

  • 作者: Jamie Pine(jamiepine)
  • 官网: voicebox.sh
  • License: MIT
  • 版本: v0.5.0,25 个 Release,588 次提交

项目数据

  • ⭐ GitHub Stars: 32,300+
  • 🍴 Forks: 3,900+
  • 📄 License: MIT
  • 💻 技术栈: TypeScript 55% / Python 34% / Rust 9%

主要功能

7 个 TTS 引擎

Voicebox 内置 7 个引擎,按使用场景选择:

引擎语言数核心特点
Qwen3-TTS10高质量多语言声音克隆,阿里开源
Qwen CustomVoice109 个预设音色,自然语言控制音调
LuxTTS英语极轻量,CPU 上 150 倍实时速度
Chatterbox Multilingual23最广语言覆盖(含阿拉伯语、斯瓦希里语等)
Chatterbox Turbo英语支持副语言情绪标签([laugh][sigh]
TADA(HumeAI)10支持 700 秒以上的长音频连贯生成
Kokoro882M 超小模型,50 个预设音色

引擎的差异化很明显:LuxTTS 在没有 GPU 的笔记本上也能跑得很快;Chatterbox Turbo 能表达笑声和叹气;TADA 适合长有声书;Kokoro 是最小的选择。

声音克隆

零样本克隆:上传几秒钟的参考音频,Voicebox 提取音色特征,生成可复用的声音档案(Voice Profile)。

操作流程:
1. 录制或上传参考音频(3-10 秒效果足够好)
2. 创建 Voice Profile(命名、添加描述)
3. 在任何 TTS 任务里选择这个 Profile
4. 多段样本可以合并,提升克隆精度

支持在应用内直接录制参考音频,不需要找外部录音文件。

Voice Personality(声音人设)

这是一个在 TTS 工具里少见的功能:给声音档案绑定一个人格描述,然后让 LLM 在发声前先把文本改写成这个人格的表达风格。

例子:
Voice Profile: "Alex - 科技播客主持人"
Personality: "活泼、对技术话题热情、偶尔用行话、喜欢用类比解释复杂概念"

输入文本: "量子计算机使用量子比特处理信息。"
LLM 改写后: "量子计算机这玩意儿有意思——它不用普通的 0 和 1,
              而是用量子比特,可以同时是 0 又是 1,有点像薛定谔的猫。"
然后才发给 TTS 引擎生成语音

本地 Qwen3(0.6B/1.7B/4B 可选)负责改写,整个流程不离开设备。

Stories 编辑器

多音轨时间线编辑器,用于制作对话式内容(播客、角色扮演、有声书对话):

  • 每个轨道对应一个声音档案(不同说话人)
  • 按时间线排列音频片段
  • 直接在编辑器里调整顺序和时长
  • 生成完整的多人对话音频文件

全局听写热键

STT 部分基于 Whisper(Base 到 Large,以及 Turbo 变体):

  • 全局热键(任意应用下触发)
  • Push-to-Talk 和 Toggle 两种模式
  • 识别结果直接输入到当前激活的文本框
  • 所有录音存进 Captures 标签页,带完整文字稿
  • 支持在文字稿上直接编辑,重新生成语音

后期处理效果

基于 Spotify Pedalboard 库,生成后可以对音频叠加效果:

  • 音高偏移(Pitch Shift)
  • 混响(Reverb)、延迟(Delay)
  • 合唱(Chorus)、压缩(Compression)
  • 高通/低通滤波
  • 支持效果预设,方便复用

MCP Agent 语音集成

四个 MCP 工具,让 Claude Code 等 AI Agent 能开口说话:

# 添加 MCP 服务器到 Claude Code
claude mcp add voicebox \
  --transport http \
  --url http://127.0.0.1:17493/mcp \
  --header "X-Voicebox-Client-Id: claude-code"
MCP 工具功能
voicebox.speak用指定声音档案朗读文本
voicebox.transcribe转录音频文件
voicebox.list_captures列出已保存的录音
voicebox.list_profiles列出可用的声音档案

REST API 方式同样可用:

# 直接调用生成语音
curl -X POST http://127.0.0.1:17493/generate \
  -H "Content-Type: application/json" \
  -d '{"text": "部署完成", "profile_id": "abc123", "language": "zh"}'

项目详细剖析

技术架构

前端(React + TypeScript + Tailwind)
    ↓
Tauri 桥(Rust)
    ↓
FastAPI 后端(Python)
    ├── TTS 引擎(Qwen3-TTS / LuxTTS / Kokoro...)
    ├── Whisper STT
    ├── Qwen3 LLM(Personality 改写)
    ├── Pedalboard 后期处理
    └── SQLite 数据存储

Tauri + Rust 保持桌面应用轻量(不带 V8 引擎),Python FastAPI 后端负责模型推理的重活。这个分工在 AI 桌面应用里越来越常见:UI 层用 Web 技术做,推理层用 Python 做,Tauri 桥接两者。

推理后端选择

硬件推理后端特点
macOS Apple SiliconMLX / MetalNeural Engine 加速,比 CPU PyTorch 快 4-5 倍
Windows/Linux NVIDIAPyTorch CUDA标准 GPU 推理
Linux AMDPyTorch ROCmAMD GPU 支持
Windows 任意 GPUDirectML微软通用 GPU 接口
Intel ArcIPEX/XPUIntel GPU 支持
无 GPUCPU fallbackLuxTTS 在 CPU 上 150x 实时速度

Apple Silicon 上的 MLX 加速是个实质优势:M 系列芯片的 Neural Engine 专门处理矩阵运算,TTS 推理比 CPU PyTorch 快 4-5 倍,对实时听写和快速生成很关键。

Captures 系统

所有语音交互都存档:

Captures 标签页
    ├── 录音文件(听写 + 主动录制)
    ├── 自动生成文字稿(Whisper)
    ├── 内联编辑(直接修改文字稿)
    ├── 重新生成语音(用新的声音档案)
    └── 导出音频

这个设计把 Voicebox 从"一次性生成工具"变成了"语音内容工作台":旧的录音可以随时用新声音重新生成,文字稿可以编辑后再发音,相当于一个轻量级的语音内容管理系统。

无限时长生成

TTS 模型通常有单次生成的长度限制(通常几百字)。Voicebox 的处理方式:

  1. 把长文本按句子/段落分块
  2. 对每个块单独调用 TTS 引擎
  3. 用交叉淡入淡出(Crossfade)平滑拼接
  4. 输出完整的长音频文件

TADA 引擎本身支持 700 秒以上的连贯生成,对有声书场景特别有价值——不需要分段处理,语调和情绪可以保持连贯。


快速开始

安装前置依赖(macOS):

# 安装 Bun(前端包管理)
curl -fsSL https://bun.sh/install | bash

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Python 3.11+(建议用 pyenv)
pyenv install 3.11.9 && pyenv global 3.11.9

# Tauri 前置(macOS)
xcode-select --install

克隆和启动

git clone https://github.com/jamiepine/voicebox.git
cd voicebox
just setup   # 创建 Python venv,安装所有依赖(首次需要下载模型)
just dev     # 启动后端 + 桌面应用

项目地址与资源

官方资源

相关技术

  • Qwen3-TTS: 阿里巴巴开源 TTS 模型
  • Kokoro TTS: hexgrad/kokoro
  • Chatterbox: Resemble AI 开源 TTS
  • Spotify Pedalboard: Python 音频效果库

总结

Voicebox 把本地语音 AI 里分散的几个工具整合进了一个应用:TTS 引擎、声音克隆、听写、音频后处理、多轨编辑、Agent 语音接口。

32.3k Stars 的增长速度和项目年龄对应,说明这个场景有很强的需求——ElevenLabs 的订阅模式让很多用户一直在找替代品,Qwen3-TTS 发布后本地克隆质量才第一次在实用层面对齐了云端方案。

技术选型(Tauri + MLX + 多引擎架构)对这类应用是合适的:UI 轻量,推理快,可以按硬件选择最优后端。Voice Personality 和 Captures 系统说明作者不只是在做"能用"的工具,而是在思考"工作流"。

对于需要大量生成配音内容、有隐私顾虑不想上传音频、或者想给 AI Agent 配上说话能力的开发者,Voicebox 值得装一下试试。


探索 PrimeSkills —— 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。