Files
wehub-resource-sync 380aa18090
CI / frontend-quality (push) Has been cancelled
docs: make Chinese README the default
2026-07-13 09:54:59 +00:00

478 lines
25 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/jamiepine/voicebox) · [上游 README](https://github.com/jamiepine/voicebox/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
<p align="center">
<img src=".github/assets/icon-dark.webp" alt="Voicebox" width="120" height="120" />
</p>
<h1 align="center">Voicebox</h1>
<p align="center">
<strong>开源 AI 语音工作室。</strong><br/>
克隆任意声音。生成语音。向任意应用听写。用你拥有的声音与智能体对话。<br/>
完整的语音输入/输出(voice I/O)技术栈,在本地机器上运行。
</p>
<p align="center">
<a href="https://github.com/jamiepine/voicebox/releases">
<img src="https://img.shields.io/github/downloads/jamiepine/voicebox/total?style=flat&color=blue" alt="Downloads" />
</a>
<a href="https://github.com/jamiepine/voicebox/releases/latest">
<img src="https://img.shields.io/github/v/release/jamiepine/voicebox?style=flat" alt="Release" />
</a>
<a href="https://github.com/jamiepine/voicebox/stargazers">
<img src="https://img.shields.io/github/stars/jamiepine/voicebox?style=flat" alt="Stars" />
</a>
<a href="https://github.com/jamiepine/voicebox/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/jamiepine/voicebox?style=flat" alt="License" />
</a>
<a href="https://deepwiki.com/jamiepine/voicebox">
<img src="https://img.shields.io/static/v1?label=Ask&message=DeepWiki&color=5B6EF7" alt="Ask DeepWiki" />
</a>
</p>
<p align="center">
<a href="https://trendshift.io/repositories/21213" target="_blank"><img src="https://trendshift.io/api/badge/repositories/21213" alt="jamiepine%2Fvoicebox | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</p>
<p align="center">
<a href="https://voicebox.sh">voicebox.sh</a> •
<a href="https://docs.voicebox.sh">Docs</a> •
<a href="#download">Download</a> •
<a href="#features">Features</a> •
<a href="#api">API</a> •
<a href="docs/content/docs/overview/troubleshooting.mdx">Troubleshooting</a>
</p>
<br/>
<p align="center">
<a href="https://voicebox.sh">
<img src="landing/public/assets/app-screenshot-1.webp" alt="Voicebox App Screenshot" width="800" />
</a>
</p>
<p align="center">
<em>点击上方图片,在 <a href="https://voicebox.sh">voicebox.sh</a> 观看演示视频</em>
</p>
<br/>
<p align="center">
<img src="landing/public/assets/app-screenshot-2.webp" alt="Voicebox Screenshot 2" width="800" />
</p>
<p align="center">
<img src="landing/public/assets/app-screenshot-3.webp" alt="Voicebox Screenshot 3" width="800" />
</p>
<br/>
## 什么是 Voicebox
Voicebox 是一款**本地优先(local-first)的 AI 语音工作室**——在一个应用中免费开源地替代 **ElevenLabs****WisprFlow**。只需几秒音频即可克隆声音,通过 7 款 TTS 引擎以 23 种语言生成语音,用全局快捷键向任意文本框听写,并为任意支持 MCP 的 AI 智能体指定你想要的声音。
两家云端 incumbent 分别占据语音 I/O 循环的两端——ElevenLabs 负责输出,WisprFlow 负责输入。Voicebox 两者兼顾,通过内置本地 LLM 进行润色和按配置 persona 定制,并将整套流程运行在你的机器上。
- **完全隐私** — 模型、语音数据和录音绝不会离开你的机器
- **7 款 TTS 引擎** — Qwen3-TTS、Qwen CustomVoice、LuxTTS、Chatterbox Multilingual、Chatterbox Turbo、HumeAI TADA 和 Kokoro
- **声音克隆与预设声音** — 从参考样本零样本克隆,或通过 Kokoro 和 Qwen CustomVoice 使用 50+ 款精选预设声音
- **23 种语言** — 从英语到阿拉伯语、日语、印地语、斯瓦希里语等
- **后处理效果** — 变调、混响、延迟、合唱、压缩和滤波器
- **富有表现力的语音** — 通过 Chatterbox Turbo 使用 `[laugh]``[sigh]``[gasp]` 等副语言(paralinguistic)标签;通过 Qwen CustomVoice 以自然语言控制表达方式
- **无限长度** — 针对脚本、文章和章节自动分块并交叉淡入淡出
- **Stories 编辑器** — 用于对话、播客和叙事的多轨时间线
- **语音输入** — 全局听写快捷键,支持按住说话和切换模式,macOS 上经无障碍验证的自动粘贴,每个文本框均有应用内麦克风,基于 Whisper 的 STT
- **智能体语音输出** — 一次工具调用(`voicebox.speak`),任意支持 MCP 的智能体(Claude Code、Cursor、Cline)即可用你克隆的声音与你对话
- **声音人格(Voice personalities** — 为任意声音配置附加自由格式 persona,然后通过内置本地 LLM 进行 Compose、Rewrite 或 Respond——智能体也可通过 MCP 调用相同模式
- **API 优先** — REST API 加内置 MCP 服务器,将语音 I/O 集成到你自己的应用和智能体中
- **原生性能** — 基于 TauriRust)构建,而非 Electron
- **随处运行** — macOSMLX/Metal)、WindowsCUDA)、Linux、AMD ROCm、Intel Arc、Docker
---
## 下载
| Platform | Download |
| --------------------- | ------------------------------------------------------ |
| macOS (Apple Silicon) | [Download DMG](https://voicebox.sh/download/mac-arm) |
| macOS (Intel) | [Download DMG](https://voicebox.sh/download/mac-intel) |
| Windows | [Download MSI](https://voicebox.sh/download/windows) |
| Docker | `docker compose up` |
> **[查看全部二进制文件 →](https://github.com/jamiepine/voicebox/releases/latest)**
> **Linux** — 预编译二进制文件尚未提供。请参阅 [voicebox.sh/linux-install](https://voicebox.sh/linux-install) 了解从源码构建的说明。
> **遇到问题?** 请参阅[故障排除指南](docs/content/docs/overview/troubleshooting.mdx),了解常见的安装、生成、模型下载和 GPU 问题。
---
## 功能
### 多引擎声音克隆
七款 TTS 引擎各有优势,可按每次生成切换:
| Engine | Languages | Strengths |
| --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Qwen3-TTS** (0.6B / 1.7B) | 10 | 高质量多语言克隆,支持表达指令(如 "speak slowly"、"whisper" |
| **Qwen CustomVoice** | 10 | 9 款精选预设声音,支持自然语言表达控制——无需参考音频 |
| **LuxTTS** | English | 轻量(约 1GB VRAM),48kHz 输出,CPU 上 150 倍实时速度 |
| **Chatterbox Multilingual** | 23 | 最广语言覆盖——阿拉伯语、丹麦语、芬兰语、希腊语、希伯来语、印地语、马来语、挪威语、波兰语、斯瓦希里语、瑞典语、土耳其语等 |
| **Chatterbox Turbo** | English | 快速 350M 模型,支持副语言情感/音效标签 |
| **TADA** (1B / 3B) | 10 | HumeAI 语音-语言模型——700 秒以上连贯音频,文本-声学双对齐 |
| **Kokoro** | 8 | 50 款精选预设声音,82M 微型模型,CPU 推理速度快 |
### 情感与副语言标签
**Chatterbox Turbo** 会解析 `[laugh]`
`[sigh]` 等副语言标签。Qwen3-TTS、LuxTTS、Chatterbox Multilingual 和 HumeAI TADA 会将其字面朗读为文本。
选择 **Chatterbox Turbo** 后,在文本输入框中输入 `/` 即可打开标签插入器,在语音中内联添加表现力标签:
`[laugh]` `[chuckle]` `[gasp]` `[cough]` `[sigh]` `[groan]` `[sniff]` `[shush]` `[clear throat]`
### 后处理效果
8 种音频效果,由 Spotify 的 `pedalboard` 库驱动。生成后应用,实时预览,可构建可复用预设。
| Effect | Description |
| ---------------- | --------------------------------------------- |
| 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),并支持自定义预设。效果可按配置文件(profile)分别设为默认项。
### 无限生成长度
文本会在句子边界自动切分,每个分块独立生成,再通过交叉淡入淡出拼接在一起。适用于所有引擎。
- 可配置自动分块上限(100–5,000 字符)
- 交叉淡入淡出滑块(0–200ms),实现平滑过渡
- 最大文本长度:50,000 字符
- 智能切分会识别缩写、CJK 标点以及 `[tags]`
### 生成版本
每次生成均支持多版本,并带有来源(provenance)追踪:
- **Original(原始)** — 干净的 TTS 输出,始终保留
- **Effects versions(效果版本)** — 从任意源版本应用不同的效果链
- **Takes(重录)** — 使用新种子重新生成以产生变化
- **Source tracking(来源追踪)** — 每个版本都会记录其谱系
- **Favorites(收藏)** — 为生成结果加星标,便于快速访问
### 异步生成队列
生成过程不阻塞界面。提交后即可立即开始输入下一条。
- 串行执行队列,避免 GPU 争用
- 实时 SSE 状态流式推送
- 失败的生成可重试
- 因崩溃产生的陈旧生成任务,在启动时会自动恢复
### 语音配置文件管理
- 从音频文件创建配置文件,或在应用内直接录制
- 导入/导出配置文件,便于分享或备份
- 多样本支持,提升克隆质量
- 每个配置文件可设置默认效果链
- 通过描述和语言标签进行组织管理
### Stories 编辑器
面向对话、播客和叙事内容的多声部时间线编辑器。
- 多轨编排,支持拖放
- 内联音频裁剪与分割
- 自动播放,播放头同步
- 每个轨道片段可固定版本
### 全局听写与语音输入
语音 I/O 循环的另一半。在系统任意位置按住快捷键,说话,松手 — 在 macOS 上,转写文本会直接粘贴到当前聚焦的文本框。或在任意 Voicebox 文本输入框点击麦克风,直接在应用内听写。
- **可配置组合键绑定** — 按住说话与点按切换两种组合键,均可在应用内组合键选择器中重新绑定。按住 push-to-talk 期间点按 `Space`,可在不中断音频的情况下升级为切换会话
- **目标感知粘贴(macOS** — 经无障碍(accessibility)校验后注入到聚焦文本框,并原子化保存/恢复剪贴板,避免覆盖你的剪贴板内容
- **首次运行权限引导** — 应用内门禁会引导你完成 macOS 无障碍与输入监控授权,并提供直达系统设置的深链接
- **应用内麦克风按钮** — 每个 Voicebox 文本输入框均有:生成表单、配置文件描述、故事标题等所有可输入处
- **LLM 润色** — 粘贴前可选清理“嗯”、口吃和说错开头
- **屏幕悬浮条(pill)** — 浮动叠加层展示 `recording``transcribing``refining``speaking` 状态。与智能体对你说话时使用的同一条 pill 一致,因此语音循环双向共用同一心智模型
### 语音转文字(Speech-to-Text
Voicebox 使用 OpenAI Whisper 进行转写 — 与听写、Captures 标签页以及 `/transcribe` API 共用同一模型。根据平台在 MLXApple Silicon)或 PyTorchCUDA / ROCm / DirectML / CPU)上运行。
| Size | Notes |
| ----------------------------- | -------------------------------------------------- |
| Base / Small / Medium / Large | 标准 Whisper 质量阶梯 |
| Turbo | 比 Whisper Large 快约 8 倍,质量损失极小 |
更多引擎(Parakeet v3、Qwen3-ASR)已在规划中 — 见 [Roadmap](#roadmap)。
### Captures(采集)
每次听写、应用内录制和上传的音频文件都会进入 Captures 标签页 — 原始音频与转写文本配对保存,始终保留。
- **重放、重新转写、润色** — 可用任意 Whisper 尺寸重新运行 STT,或将原始转写文本通过本地 LLM 以不同标志重跑(填充词清理、自我纠正移除、技术术语保留)
- **内联编辑** — 调整转写文本,失焦时保存
- **作为语音配置文件播放** — 一键将任意采集转为克隆语音朗读
- **提升为语音样本** — 将采集的音频 + 转写文本用作任意语音配置文件的参考样本
- **本地采集存储** — 原始音频与转写文本保存在 Voicebox 数据目录,设置中提供文件夹快捷方式
### 智能体语音输出
每个智能体都有声音。一次工具调用,任意支持 MCP 的智能体即可用你克隆的语音对你说话 — 任务完成、提问、通知等。听写时显示的同一条 pill 在智能体说话时也会出现,因此你始终能看到机器正在输出什么。
```ts
// In any MCP-aware agent:
await voicebox.speak({
text: "Deploy complete.",
profile: "Morgan",
});
```
同时也以 `POST /speak` 形式暴露,供非 MCP 语音场景使用 — ACP、A2A、shell 脚本、自定义 harness 等。
- **双向 pill** — `recording``transcribing``refining``speaking` 均为同一操作系统级叠加层的不同状态,听写与智能体语音共用同一界面
- **按智能体绑定语音** — 在 **Settings → MCP** 中,将 Claude Code 固定为 Morgan、Cursor 固定为 Scarlett,无需看屏幕即可分辨谁在说话。各客户端的 `last_seen_at` 时间戳可确认安装是否真正生效
- **始终可见** — 无静默后台 TTS;智能体发起的每次 speak 都会在全程显示带有语音配置文件名称的 pill
- **HTTP + stdio 传输** — 在 Claude Code / Cursor / Windsurf / VS Code MCP 中安装为 URL,或让仅支持 stdio 的客户端指向捆绑的 `voicebox-mcp` 二进制
### 语音个性(Voice Personalities
可为任意语音配置文件附加自由格式的个性描述 — 这个声音是谁、如何说话、关心什么。设置个性后,生成框会出现两个操作,由捆绑的 Qwen3 LLM 完全在本地驱动。
- **Compose(创作)** — 洗牌按钮,向文本区域放入一条符合角色设定的新台词;可编辑后朗读,或再次点击换一版
- **Speak in character(角色化朗读)** — 开关将你的输入文本先经个性 LLM 改写成该角色口吻,再进行 TTS
智能体也可通过 MCP 走同一路径:向 `voicebox.speak` 传入 `personality: true`,将工具变为 文本输入 → 个性 LLM → TTS 流水线。同一 LLM 也支撑听写润色步骤 — 应用内一个 LLM、一个模型缓存、一份 GPU 显存占用。
**本地 LLM 选项:** Qwen3 0.6B / 1.7B / 4B,与 TTS 运行时共享(Apple Silicon 用 MLX,其他平台用 PyTorch)。
用例:智能体开发循环(听写提问、用克隆语音听答案)、游戏与叙事工具的交互角色、为无法以原声说话的人提供语音辅助。
### 模型管理
- 按模型卸载以释放 GPU 显存,无需删除已下载文件
- 通过 `VOICEBOX_MODELS_DIR` 自定义模型目录
- 模型文件夹迁移,带进度追踪
- 下载取消/清理 UI
### GPU 支持
| Platform | Backend | Notes |
| ------------------------ | -------------- | ---------------------------------------------- |
| macOS (Apple Silicon) | MLX (Metal) | 借助 Neural Engine,速度约为 45 倍 |
| Windows / Linux (NVIDIA) | PyTorch (CUDA) | 应用内自动下载 CUDA 二进制 |
| Linux (AMD) | PyTorch (ROCm) | 自动配置 HSA_OVERRIDE_GFX_VERSION |
| Windows (any GPU) | DirectML | 通用 Windows GPU 支持 |
| Intel Arc | IPEX/XPU | Intel 独立 GPU 加速 |
| Any | CPU | 全平台可用,速度较慢 |
---
## API
Voicebox 提供 REST API,便于将语音 I/O 集成到你自己的应用与智能体中。
```bash
# Generate speech
curl -X POST http://127.0.0.1:17493/generate \
-H "Content-Type: application/json" \
-d '{"text": "Hello world", "profile_id": "abc123", "language": "en"}'
# Agent voice output — any app or script can speak in a cloned voice
curl -X POST http://127.0.0.1:17493/speak \
-H "Content-Type: application/json" \
-H "X-Voicebox-Client-Id: my-script" \
-d '{"text": "Deploy complete.", "profile": "Morgan"}'
# Transcribe an audio file
curl -X POST http://127.0.0.1:17493/transcribe \
-F "audio=@recording.wav" \
-F "model=whisper-turbo"
# List voice profiles
curl http://127.0.0.1:17493/profiles
```
`POST /speak` 接受 `profile` 作为名称(不区分大小写)或 id,并通过与 MCP 工具相同的优先级进行解析:显式参数 → 按客户端绑定 → `capture_settings.default_playback_voice_id`
### MCP 服务器
Voicebox 内置 **Model Context ProtocolMCP** 服务器,任何支持 MCP 的智能体(Claude Code、Cursor、Windsurf、Cline、VS Code MCP 扩展)都可以进行语音合成、转录,以及浏览录制内容和配置文件。
**Claude Code 一行配置:**
```
claude mcp add voicebox \
--transport http \
--url http://127.0.0.1:17493/mcp \
--header "X-Voicebox-Client-Id: claude-code"
```
**任意 HTTP MCP 客户端**Cursor、Windsurf、VS Code 等):
```json
{
"mcpServers": {
"voicebox": {
"url": "http://127.0.0.1:17493/mcp",
"headers": { "X-Voicebox-Client-Id": "cursor" }
}
}
}
```
**Stdio 回退方案**,适用于不支持 HTTP MCP 的客户端 — 指向应用内捆绑的 `voicebox-mcp` 二进制文件:
```json
{
"mcpServers": {
"voicebox": {
"command": "/Applications/Voicebox.app/Contents/MacOS/voicebox-mcp",
"env": { "VOICEBOX_CLIENT_ID": "claude-desktop" }
}
}
}
```
内置四个工具:`voicebox.speak``voicebox.transcribe``voicebox.list_captures``voicebox.list_profiles`。按客户端的语音绑定在 **Voicebox → Settings → MCP** 中管理。有关工具签名、解析优先级、speaking-pill 合约和安全说明,请参阅[完整 MCP 指南](docs/content/docs/overview/mcp-server.mdx)。
```ts
// In any MCP-aware agent:
await voicebox.speak({
text: "Tests passing. Ready to merge.",
profile: "Morgan", // optional — falls back to the per-client binding
personality: true, // optional — rewrites text through the profile's personality LLM first
});
```
**使用场景:** 智能体开发循环(语音输入、语音输出)、游戏对话、播客制作、无障碍工具、语音助手、内容自动化。
完整 API 文档请参阅 `http://127.0.0.1:17493/docs`
---
## 技术栈
| 层级 | 技术 |
| ------------- | ------------------------------------------------------------------------------- |
| 桌面应用 | Tauri (Rust) |
| 前端 | React, TypeScript, Tailwind CSS |
| 状态管理 | Zustand, React Query |
| 后端 | FastAPI (Python) |
| TTS 引擎 | Qwen3-TTS, Qwen CustomVoice, LuxTTS, Chatterbox, Chatterbox Turbo, TADA, Kokoro |
| STT | Whisper / Whisper Turbo (PyTorch or MLX) |
| 本地 LLM | Qwen3 (0.6B / 1.7B / 4B), 与 TTS / STT 共享运行时 |
| MCP 服务器 | FastMCP 挂载于 `/mcp`Streamable HTTP+ 捆绑的 stdio shim 二进制文件 |
| 原生 Shim | Rust(Tauri 内部),用于全局快捷键、粘贴注入、焦点内省 |
| 特效 | Pedalboard (Spotify) |
| 推理 | MLX (Apple Silicon) / PyTorch (CUDA/ROCm/XPU/CPU) |
| 数据库 | SQLite |
| 音频 | WaveSurfer.js, librosa |
---
## 路线图
| 功能 | 描述 |
| ---------------------------------- | ------------------------------------------------------------------------ |
| **Windows / Linux 自动粘贴** | 听写粘贴功能对齐 — Windows 上使用 `SendInput`Linux 上使用 `uinput` / AT-SPI |
| **STT 引擎扩展** | Parakeet v3 和 Qwen3-ASR 加入 Whisper — 支持 50+ 种语言,非英语质量更佳 |
| **流水线路由** | 可配置的 source → transform → sink 链路,支持 webhook + MCP sink 及预设编辑器 |
| **流式转录** | WebSocket `/transcribe/stream`,说话时实时输出部分转录结果 |
| **端到端语音 LLM** | Moshi、GLM-4-Voice、Qwen2.5 Omni — 真正的语音到语音,中间无需文本 |
| **语音设计(Voice Design** | 根据文本描述创建新语音 |
| **长格式录制** | 双流录制器(麦克风 + 系统音频),附带摘要 LLM 转换 |
| **平台 Sink** | Apple Notes、Obsidian 及其他可选集成 |
| **插件架构** | 通过自定义模型、转换和 sink 进行扩展 |
| **移动端伴侣应用** | 用手机控制 Voicebox |
有关**完整工程状态、开放 issue 分类与优先级工作队列**,请参阅 [`docs/PROJECT_STATUS.md`](docs/PROJECT_STATUS.md) — 这是一份动态文档,跟踪已交付内容、进行中的工作、正在评估的候选 TTS 引擎,以及我们接受或暂缓特定集成的原因。
---
## 开发
详细的环境搭建与贡献指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
### 快速开始
```bash
git clone https://github.com/jamiepine/voicebox.git
cd voicebox
just setup # creates Python venv, installs all deps
just dev # starts backend + desktop app
```
安装 [just](https://github.com/casey/just): `brew install just``cargo install just`。运行 `just --list` 查看所有命令。
**前置条件:** [Bun](https://bun.sh), [Rust](https://rustup.rs), [Python 3.11+](https://python.org), [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/), 以及 macOS 上的 [Xcode](https://developer.apple.com/xcode/)。
仓库在根目录提供预配置的 `.mcp.json` — 在此代码库中运行 Claude Code 时,一旦开发版应用启动,即可自动加载 Voicebox MCP 工具。
### 本地构建
```bash
just build # Build CPU server binary + Tauri app
just build-local # (Windows) Build CPU + CUDA server binaries + Tauri app
```
### 添加新语音模型
多引擎架构使添加新 TTS 引擎变得简单。[分步指南](docs/content/docs/developer/tts-engines.mdx) 涵盖完整流程:依赖调研、后端协议实现、前端接入和 PyInstaller 打包。
该指南针对 AI 编程智能体进行了优化。[agent skill](.agents/skills/add-tts-engine/SKILL.md) 只需接收模型名称即可自主完成整个集成 — 你只需在本地测试构建。
### 项目结构
```
voicebox/
├── app/ # Shared React frontend
├── tauri/ # Desktop app (Tauri + Rust)
├── web/ # Web deployment
├── backend/ # Python FastAPI server
├── landing/ # Marketing website
└── scripts/ # Build & release scripts
```
---
## 贡献
欢迎贡献!指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
1. Fork 仓库
2. 创建功能分支
3. 进行更改
4. 提交 PR
## 安全
发现安全漏洞?请负责任地报告。详情请参阅 [SECURITY.md](SECURITY.md)。
---
## 许可证
MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。
---
<p align="center">
<a href="https://voicebox.sh">voicebox.sh</a>
</p>