Replace the Functional Source License with the GNU Affero General Public License v3 across the project, with a paid commercial license retained for proprietary/closed-source use without AGPL obligations (open-core, like Firecrawl). - LICENSE: verbatim AGPL-3.0 text under an AGPL Notice + Scope header; drops the FSL "Competing Use" framing and the 2-year Apache-2.0 conversion. The bundled omnivoice/ TTS model stays Apache-2.0 upstream (AGPL-compatible). - Manifests now declare SPDX AGPL-3.0-only: pyproject.toml, Cargo.toml (normalized from bare AGPL-3.0), and both package.json (added license field). - README.md / README_CN.md: badge, pricing, commercial-use FAQ, License section. - en.json: in-app Commercial License copy reworded to AGPL; the false "converts to Apache 2.0" FAQ removed (+ its renderer block in SupportPage.jsx). Non-English locale strings still describe the old FSL model and are left for a follow-up translation pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 KiB
OmniVoice Studio
开源版 ElevenLabs 替代品
实时听写、零样本语音克隆、电影级视频配音——全部在桌面端完成。
开源、无需 API 密钥、完全本地运行。支持 646 种语言。
快速开始 · 功能 · 为什么选择 OmniVoice Studio? · TTS 引擎 · 参与贡献 · Discord · English
Warning
OmniVoice Studio 正处于活跃 Beta 阶段。 各版本之间可能出现不兼容。如需最新功能和修复,建议克隆仓库并从源码运行,而非使用预构建安装程序。欢迎提交 Bug 报告和 PR——提交 Issue 或 加入 Discord。
功能
🎙️ 语音克隆3 秒音频 → 复制任何声音。 |
🎨 声音设计性别、年龄、口音、音高、语速、 |
🎬 视频配音YouTube 链接或文件 → 转录 → |
⌨️ 听写工具从任何应用中按 |
🔊 人声分离基于 Demucs。从背景音乐中 |
👥 说话人分离Pyannote + WhisperX。 |
📦 批量队列一次拖入 50 个视频,然后离开。 |
🤖 MCP 服务器从 Claude、Cursor 或 |
🛡️ AI 水印AudioSeal(Meta)。不可见, |
🔐 完全本地无需密钥、云端、账号。 |
⚡ GPU 自动检测CUDA · MPS · ROCm · CPU。 |
🧩 可扩展继承 |
快速开始
选择你的方式——从零安装到完整开发者环境:
🖥️ 方式 1 — 桌面应用
预构建安装程序(约 6–8 MB)在 Releases 页面。下载、安装、启动。应用会自动引导 Python 环境并下载模型——开屏画面会显示进度。
macOS — "应用已损坏,无法打开"
macOS 会隔离从 App Store 外下载的应用。拖入 /Applications 后执行:
xattr -cr /Applications/OmniVoice\ Studio.app
之后正常打开即可。一次性修复。
Windows — 首次启动需 5–10 分钟
应用首次运行时会引导 Python 虚拟环境、安装依赖并下载 ffmpeg。开屏画面会显示每一步的进度。后续启动仅需数秒。
Linux — AppImage 需要 FUSE
如果没有 FUSE,可使用 .deb 包或解压运行:
chmod +x OmniVoice.Studio_*.AppImage
./OmniVoice.Studio_*.AppImage --appimage-extract-and-run
Linux — Fedora 44 / Ubuntu 24.04 白屏
部分新发行版自带的 WebKit/GTK 版本存在合成问题。尝试:
WEBKIT_DISABLE_COMPOSITING_MODE=1 ./OmniVoice.Studio_*.AppImage
如果仍然无效,请改用 .deb 包或从源码运行。
防火墙内 / 俄罗斯地区安装失败
桌面应用首次启动时会从 GitHub 下载 Python。如果你的网络屏蔽了 GitHub:
- 从 python.org 手动安装 Python 3.11
- 启动前设置
UV_PYTHON_PREFERENCE=system,或从源码运行bun run dev - PyPI 镜像:设置
UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
🐳 方式 2 — Docker
从 GitHub Container Registry 拉取预构建镜像:
docker pull ghcr.io/debpalash/omnivoice-studio:latest
运行:
# CPU 模式
docker run -d --name omnivoice \
-p 127.0.0.1:3900:3900 \
-v omnivoice-data:/app/omnivoice_data \
ghcr.io/debpalash/omnivoice-studio:latest
# NVIDIA GPU 模式
docker run -d --name omnivoice --gpus all \
-p 127.0.0.1:3900:3900 \
-v omnivoice-data:/app/omnivoice_data \
ghcr.io/debpalash/omnivoice-studio:latest
或使用 Docker Compose:
# CPU
docker compose -f deploy/docker-compose.yml up -d
# GPU
docker compose -f deploy/docker-compose.yml --profile gpu up -d
健康检查通过后打开 localhost:3900。首次运行下载约 4 GB 模型权重——进度在 docker compose logs -f 中查看。
从源码构建而非拉取
docker compose -f deploy/docker-compose.yml up --build -d
网络访问: 容器仅绑定
127.0.0.1。如需暴露到局域网,将端口映射改为"0.0.0.0:3900:3900"。OmniVoice 没有内置认证——请将其置于反向代理之后并添加认证(Caddybasic_auth、nginx + htpasswd、Tailscale 等)。
⚡ 方式 3 — 源码运行
git clone https://github.com/debpalash/OmniVoice-Studio.git && cd OmniVoice-Studio
bun install && bun run dev
打开 localhost:3901 开始克隆声音。前端和后端均启用热重载。
bun run desktop # 从源码构建原生桌面应用
| 服务 | 地址 | 技术栈 |
|---|---|---|
| 后端 | localhost:3900 |
FastAPI · 97 个端点 · WhisperX · Demucs · OmniVoice |
| 前端 | localhost:3901 |
React · Vite · 波形时间线 · 毛玻璃 UI |
| API 文档 | localhost:3900/docs |
Scalar — 交互式 API 参考 |
Note
首次运行下载模型权重(约 2.4 GB)。无需账号。如需加速下载,可选在环境中设置
HF_TOKEN=hf_...(在此获取免费 Token)。遇到问题? 加入我们的 Discord 获取安装帮助和故障排查。
截图
为什么选择 OmniVoice Studio?
ElevenLabs 收费 $5–$330/月,并在其服务器上处理你的音频。OmniVoice Studio 在你的硬件上运行,没有使用限制。
| ElevenLabs | OmniVoice Studio | |
|---|---|---|
| 价格 | $5–$330/月,按字符计费 | 个人免费 · 商业许可证 面向企业 |
| 语音克隆 | ✅ 3 秒音频 | ✅ 3 秒音频,零样本 |
| 声音设计 | ✅ 性别、年龄 | ✅ 性别、年龄、口音、音高、风格、方言 |
| 语言 | 32 | 646 |
| 视频配音 | ✅ 仅云端 | ✅ 完全本地 |
| 数据隐私 | 音频发送到云端 | 数据不离开你的设备 |
| API 密钥 | 需要 | 不需要 |
| GPU 支持 | 不适用(云端) | CUDA · Apple Silicon · ROCm · CPU |
| 桌面应用 | ❌ | ✅ macOS · Windows · Linux |
| 可定制 | ❌ 闭源 | ✅ 可 Fork、扩展、发布 |
OmniVoice Studio 为你提供专业级 AI 工具,无需订阅或依赖云端。
系统要求
| 最低配置 | 推荐配置 | |
|---|---|---|
| 操作系统 | Windows 10, macOS 12+, Ubuntu 20.04+ | 任意现代 64 位操作系统 |
| 内存 | 8 GB | 16 GB+ |
| 显存(GPU) | 4 GB(自动将 TTS 卸载到 CPU) | 8 GB+(NVIDIA RTX 3060+) |
| 硬盘 | 10 GB 可用空间(模型 + 缓存) | 20 GB+ SSD |
| Python | 3.10+(由 uv 管理) |
3.11–3.12 |
| GPU | 可选——CPU 可用 | NVIDIA CUDA · Apple Silicon MPS · AMD ROCm |
Tip
对于显存 ≤8 GB 的 GPU,OmniVoice 会在转录期间自动将 TTS 卸载到 CPU——无需配置。不需要专用 GPU;整个流程可在 CPU 上运行(只是速度较慢)。
TTS 引擎
OmniVoice 配备多引擎 TTS 后端。默认引擎(OmniVoice)始终可用;其他引擎可选装并自动检测。在 设置 → TTS 引擎 中切换引擎,或通过 OMNIVOICE_TTS_BACKEND 环境变量设置。
| 引擎 | 语言 | 克隆 | 指令 | Linux | macOS ARM | Windows | 许可证 |
|---|---|---|---|---|---|---|---|
| OmniVoice(默认) | 600+ | ✅ | ✅ | ✅ CUDA/CPU | ✅ MPS | ✅ CUDA/CPU | 内置 |
| CosyVoice 3 | 9 + 18 种方言 | ✅ | ✅ | ✅ CUDA/CPU | ✅ MPS | ✅ CUDA/CPU | Apache-2.0 |
| MLX-Audio(Kokoro, Qwen3-TTS, CSM, Dia 等) | 多语言 | 因引擎而异 | 因引擎而异 | ❌ | ✅ 原生 | ❌ | 因引擎而异 |
| VoxCPM2 | 30 | ✅ | ✅ | ✅ CUDA/CPU | ✅ MPS | ✅ CUDA/CPU | Apache-2.0 |
| MOSS-TTS-Nano | 20 | ✅ | ❌ | ✅ CUDA/CPU | ✅ CPU | ✅ CUDA/CPU | Apache-2.0 |
| KittenTTS | 英语 | ❌ | ❌ | ✅ CPU | ✅ CPU | ✅ CPU | MIT |
CUDA = GPU 加速 · MPS = Apple Silicon Metal · CPU = 随处可运行,大模型较慢 · KittenTTS 和 MOSS-TTS-Nano 可在 CPU 上实时运行 · MLX-Audio 仅限 Apple Silicon。
架构
┌─────────────────────────────────────────────────┐
│ 前端 (React) │
│ DubTab · VoicePreview · BatchQueue · Gallery │
├─────────────────────────────────────────────────┤
│ 后端 (FastAPI) │
│ 97 个 API 端点 · SSE 流式 · SQLite │
├──────────┬──────────┬──────────┬────────────────┤
│ WhisperX │ Demucs │OmniVoice │ Pyannote │
│ 语音识别 │ 音源分离 │ TTS │ 说话人分离 │
└──────────┴──────────┴──────────┴────────────────┘
CUDA / MPS / ROCm / CPU(自动检测)
路线图
✅ 已发布
| 分类 | 功能 |
|---|---|
| 配音 | 完整流水线(转录→翻译→合成→封装)、场景感知分割、唇同步评分、流式 TTS |
| 声音 | 零样本克隆、声音设计、A/B 比较、声音预览控件、带收藏/标签的声音库 |
| 音频 | Demucs 人声分离、逐段增益、选择性轨道导出、SRT/VTT/MP3 导出 |
| 多语言 | 多语言批量选择器、批量配音队列(顺序 GPU 执行) |
| 说话人分离 | Pyannote 机器学习分离、自动说话人克隆提取、逐说话人声音分配 |
| 基础设施 | Docker 部署、CUDA/MPS/ROCm 自动检测、cuDNN 8 兼容、显存感知模型卸载 |
| AI 溯源 | AudioSeal 不可见水印(类似 SynthID)、视频徽标叠加、水印检测 API |
| 用户体验 | 撤销/重做、键盘快捷键、拖放、会话持久化、毛玻璃设计系统 |
| 实时事件 | WebSocket 事件总线——数据变更时即时刷新侧边栏、指数退避重连 |
| 状态管理 | Zustand 状态管理迁移——uiSlice、pillSlice、dubSlice、generateSlice、prefsSlice、glossarySlice |
| 桌面 | 跨平台 Tauri 安装程序(macOS DMG、Windows MSI、Linux deb/AppImage)、自动更新基础设施 |
| Windows 加固 | 跨平台日志路径、Triton 兼容方案、HF 符号链接绕过、300 秒健康检查超时 |
| 听写 | 全局系统热键(⌘+⇧+Space)、无边框浮动控件、WebSocket 流式语音识别、自动粘贴 |
| 批量流水线 | 完整批量 TTS:提取 → 转录 → 翻译 → 生成 → 混音 → 导出,带实时进度追踪 |
🔜 即将推出
- 🎬 唇同步 v2 — 使用 wav2lip 进行视觉语音时间对齐
- 📖 有声书编辑器 — 按章节感知的长篇叙述
- 🌐 在线演示 — 无需安装即可体验 OmniVoice
- 🔌 插件市场 — 社区贡献的 TTS 引擎和特效
参与贡献
我们欢迎各种形式的贡献——Bug 修复、新的 TTS 引擎适配器、UI 改进、文档和翻译。
- 📖 阅读 贡献指南 了解设置、代码风格和 PR 工作流
- 🐛 浏览 good first issues
- 💬 加入我们的 Discord 讨论创意或寻求帮助
常见问题
真的能和 ElevenLabs 一样好吗?
在语音克隆和配音方面,是的——OmniVoice 使用最先进的扩散 TTS 模型,支持 646 种语言(ElevenLabs 仅支持 32 种)。在大多数用例下质量相当。ElevenLabs 的优势在于其完善的云 API 和预制声音库。OmniVoice 在隐私、成本、语言覆盖和可定制性方面胜出。
能在 Apple Silicon(M1/M2/M3/M4)上运行吗?
可以。MPS 加速会被自动检测。在 Apple 硬件上,MLX 优化的 Whisper 模型可提供更快的转录速度。
需要多少显存?
最低 4 GB。 显存 ≤8 GB 时,TTS 模型会在转录期间自动卸载到 CPU。8 GB 以上时,所有组件同时在 GPU 上运行。没有 GPU?CPU 模式也能用——只是速度较慢(TTS 约慢 3 倍)。
可以用于商业用途吗?
可以——商业使用免费。OmniVoice Studio 是基于 GNU AGPL-3.0 的自由开源软件。个人、教育、研究以及商业/企业用途均免费:运行它、出售用它生成的音频、为自己或客户的视频配音、在团队中部署。由于 AGPL 是网络著佐权(copyleft)许可证,如果你修改了 OmniVoice Studio 并通过网络向他人提供该修改版本,你必须依据相同的 AGPL 条款向这些用户提供你修改版本的源代码。希望将 OmniVoice 嵌入闭源或专有产品而不受这些义务约束?可获取商业许可证——参见许可证。
支持哪些语言?
通过 OmniVoice 模型的 TTS 支持 646 种语言。转录(WhisperX)支持 99 种语言。翻译覆盖范围取决于目标语言对。
可以添加自己的 TTS 引擎吗?
可以。OmniVoice 使用内置后端注册表。约 50 行代码即可添加引擎:在
backend/services/tts_backend.py 中继承 TTSBackend,然后将其添加到底部的 _REGISTRY 字典中。内置六个引擎:OmniVoice、CosyVoice、MLX-Audio(14+ 子引擎)、VoxCPM2、MOSS-TTS-Nano 和 KittenTTS。详情请参见 TTS 引擎部分。
许可证
OmniVoice Studio 是基于 GNU Affero 通用公共许可证 v3.0(AGPL-3.0) 的自由开源软件。
可免费用于任何用途——包括商业和企业内部用途。 运行它、出售用它生成的音频、为自己或客户的视频配音、在团队中推广——全部免费,无需许可证。作为网络著佐权(copyleft)许可证,AGPL 增加了一项义务:如果你修改了 OmniVoice Studio 并通过网络向他人提供该修改版本,你必须依据相同的 AGPL-3.0 条款向他们提供该修改版本的完整对应源代码。
希望将 OmniVoice Studio 嵌入闭源或专有产品或服务、又不受 AGPL-3.0 著佐权义务约束的组织,可获取商业许可证。定价方案即将推出。 如有疑问:OmniVoice@palash.dev。
捆绑的 omnivoice/(由朱涵开发的 TTS 模型)在上游仍为 Apache-2.0 许可。完整且具约束力的条款请参见 LICENSE。
参见 LICENSE 查看完整条款。
致谢
OmniVoice Studio 建立在优秀的开源工作之上:
| 项目 | 作用 |
|---|---|
| OmniVoice (k2-fsa) | 零样本扩散 TTS 引擎——核心语音合成模型 |
| WhisperX | 词级别语音识别和时间对齐 |
| Demucs (Meta) | 音乐源分离,用于人声隔离 |
| Pyannote | 说话人分离——谁说了什么 |
| CTranslate2 | CPU 和 GPU 上的优化 Transformer 推理 |
| AudioSeal (Meta) | AI 溯源的不可见神经音频水印 |
| Tauri | 原生桌面应用框架 |







