Skip to content
项目

timoncool/dub-studio has 268 GitHub stars and 46 forks. GitHot measured +4 stars in 24 hours. Last checked 2026-11-13 00:33 UTC. Last push 2026-11-11.

这些数字如何统计

Free offline AI video dubbing studio for Windows — voice cloning, translation, subtitles & on-screen-text localization. 100% local, one native .exe, zero Python.

268 星标46 forks +4 24小时

可以做什么

  • Voice cloning — the original timbre is cloned and speaks the new language: Higgs Audio v3 (default), Qwen3-TTS, Fish Audio Drama 3 and Audio8 TTS clone, Supertonic 3 speaks its own voices, and OpenRouter or Google Gemini voice in the cloud. Each speaker is cloned separately, or takes a voice from the library.
  • Speakers & voices — every speaker in one row with the detected gender: create a voice from that speaker, pick a library voice or keep cloning from the video, preview it, or Pick by gender for everyone at once.
  • Voice library — the cloud catalogue of 1,600 voices with name, gender, age, language, description and length: filter, search, listen and download the picked ones or all shown; import your own voices (WAV, MP3, FLAC, M4A, OGG or a .zip).
  • Interface scale — the whole window from 90 to 150 % (Settings → Interface, Ctrl + plus / minus / 0).

实测星标增长

24小时
+4
7天
正在收集历史
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README.zh.md

原文
Dub Studio

Dub Studio

面向 Windows 的免费离线 AI 视频配音工作室 —— 用克隆的声音、翻译字幕和画面文字本地化,把任意视频重新配音成另一种语言。100% 本地运行,零 Python:一个原生 .exe(Rust + C++/CUDA),所有模型与引擎一键下载。

License Stars Latest release Downloads

English · Русский · 中文 · Español · Português · Français

🌐 在线演示与前后对比展示 →



实际效果

▶ 在网站上观看前后对比视频展示 → — 真实片段,全部在本地 GPU 上端到端完成:不同的视频、模式和语言。

dub voiceover dub CJK
🎙️ 配音 · EN→RU 🗣️ 旁白配音 · EN→ES 🈶 配音 · 画面上的中文
subtitles widescreen transcript
📝 字幕 · 原语言 🎬 配音 · 宽屏 16:9 🔤 转录 · 说话人分离

这是什么

Dub Studio 把任意视频变成另一种语言的配音版本 —— 克隆说话人本人的音色、翻译字幕、并在画面上就地本地化嵌入文字。拖入一个片段,智能自动流程先出初稿;随后实时编辑器让你掌控每一条字幕、声音、模糊框、字体和标题,即时预览。

默认一切都在你自己的电脑上本地运行 —— 无云端、无订阅:你的素材和声纹绝不离开电脑。如果电脑较弱(跑不动本地 Gemma/Higgs)或你想要更快更好的效果,繁重的部分(翻译、视觉、TTS、语音识别)可以可选地通过 OpenRouter 交给云端 —— 每个引擎单独选择(本地 ↔ 云端),并按说话人性别自动分配声音(测试版)。密钥保存在本地,默认全部关闭。

这是完全原生重写。没有内嵌 Python、没有 torch、没有 CUDA wheel。整条流水线是 Rust + 原生 C++/CUDA 引擎(GGUF/ONNX):单进程、启动快、显存占用低。模型、引擎、CUDA/VC++ 运行库和 ffmpeg 都由应用在首次运行时自行一键下载安装。本应用是为 NVIDIA 显卡构建并测试的:配音、翻译和视觉在本地通过 CUDA 运行,字幕通过 NVENC 烧录进视频。分离、说话人分离和识别可以在 CPU 上运行,繁重的阶段也可以交给 OpenRouter,但没有 NVIDIA 的机器不属于经过测试的配置——见下文各阶段运行在哪里。

面向 AI 智能体

Dub Studio 打开时会在 http://127.0.0.1:8793/mcp 提供 MCP 服务:Claude Code、Claude Desktop、Cursor、Codex 等智能体可以通过同一套代码完成窗口能做的一切——用视频文件创建项目、进行分析、逐行修改译文、时间轴和说话人、分配配音、设置字幕样式、添加标题和模糊区域、渲染、把同一视频导出为更多语言、写出 SRT 和 TXT,并把结果保存到文件夹。在设置的 智能体 (MCP) 部分可以看到智能体是否已连接,以及要粘贴到客户端的内容。

拿到这个仓库后,智能体可以自行完成安装并操控工作室:

  1. 从最新版本安装工作室并启动。
  2. 连接到它的 MCP 服务:
    claude mcp add --transport http dub-studio http://127.0.0.1:8793/mcp
    
    其他客户端:{ "mcpServers": { "dub-studio": { "type": "streamable-http", "url": "http://127.0.0.1:8793/mcp" } } }
  3. 阅读服务器提供的技能说明(资源 studio://skill,提示词 studio),内容与 docs/mcp-skill.md 相同——包含所有工具、基本规则和分步操作——然后从工具 studio_status 开始。

llms.txt 为会查找它的工具提供同样的信息。若想在 Claude Code 中长期保留该技能,请把 docs/mcp-skill.md 保存为 ~/.claude/skills/dub-studio/SKILL.md。只有本机上的智能体和工作室自己的窗口可以连接。

五种模式,随时切换

模式 作用
🎙️ 配音 完整重新配音到目标语言,克隆原始音色 —— 按说话人自动分配或自选声音
🗣️ 旁白(画外音) 翻译人声叠加在减弱的原声之上 —— 原声仍在下方可听,平衡可调
📝 字幕 烧录原语言字幕、保留原声 —— 不配音、不翻译
✨ 趣味改编 给个主题(“像海盗”“像新闻播报”)→ 模型重写整个脚本再配音
🎬 转录 干净的说话人分离转录、逐说话人排布、卡拉OK跟随播放、一键生成声音、导出 .srt/.txt

加载一次片段,即可在编辑器里送入任意模式。

功能

  • 声音克隆 —— 克隆原始音色并说出新语言:Higgs Audio v3(默认)、Qwen3-TTS、Fish Audio Drama 3 与 Audio8 TTS 可克隆,Supertonic 3 使用自带音色,云端可用 OpenRouter 与 Google Gemini。每位说话人单独克隆,或使用声音库中的声音。
  • 说话人与声音 —— 每位说话人一行并显示检测到的性别:从该说话人创建声音、选择声音库中的声音或保持从视频克隆、试听,或一键 按性别分配 给所有人。
  • 声音库 —— 云端目录收录 1600 个声音,含名称、性别、年龄、语言、描述与时长:筛选、搜索、试听,下载选中的或全部显示的声音;导入自己的声音(WAV、MP3、FLAC、M4A、OGG 或 .zip)。
  • 界面缩放 —— 整个窗口 90% 至 150%(设置 → 界面,Ctrl + 加号 / 减号 / 0)。
  • 说话人分离 —— 谁在何时说话(NVIDIA Nemotron 3 Diarization,最多 8 个声音),每个说话人不同声音。
  • 角色选角(测试版) —— 一个角色就是**「人脸 + 声音」的配对**。应用在整段视频中收集人脸、识别同一个人,并按共同出现把他绑定到某个说话人(近景出镜者获得声音,背景旁听者则否);自动挑选最清晰的一帧作头像,并为整部剧集保存选角档案 —— 声音和角色描述只需指定一次,下一集自动套用。**「真实人脸 / 卡通·动漫」**开关按内容切换人脸识别。
  • 可选 ASR 引擎 —— Parakeet-TDT v3(默认)、Parakeet Ultra 或 CrisperWhisper 2.0 turbo(99 种语言,词级时间),可在显卡或 CPU 上运行;「自动」模式下由 VoxLingua107 识别语言。
  • 导入现成字幕 —— 用你自己的 .srt/.ass 作为精确文稿:文本和时间轴直接取自文件,而非自动识别(说话人仍由声纹分离自动分配)。勾选 “字幕已是目标语言” 可连翻译一起跳过 —— 英文视频 + 你的俄语字幕 → 直接生成俄语配音,无需识别与翻译。
  • 多语言导出 —— 导出按钮旁的 ▾ 可把一个视频一次导出为多种语言;每种都继承你的全部编辑(字幕排版、样式、模糊框、克隆音色)—— 只重新翻译与配音。
  • 保存与重开项目 —— 自动保存、启动页的近期项目列表,一键回到未完成的工作。
  • 语音与语言列表可搜索 —— 输入名称的一部分即可从数百个语音或 100+ 种语言中筛选;语言也可按界面语言中的名称匹配。
  • 可组合流水线 —— 输入端独立开关:音频(原声 / 配音 / 旁白 / 转写)× 字幕(无 / 原文 / 翻译)× 是否烧录到视频 × 搞笑改写。任意组合 —— 配音但不加字幕、翻译字幕但不配音、用自己的声音做搞笑配音 —— 批量和编辑器中同样适用。
  • 画面文字本地化 —— OCR 检测嵌入文字(PP-OCR ONNX),模糊原文并以匹配风格叠印本地化标题 —— 其他工具没有的功能。
  • 翻译 + 视觉风格分析 —— 通过 Gemma-4 12B(GGUF,llama.cpp)本地翻译整段转录;视觉流程解析画面排布:字幕风格、标题、品牌、文字区域。
  • SOTA 人声分离 —— Mel-Band Roformer(CUDA 上的原生 BSRoformer.cpp)将人声与音乐分离:背景音乐得以保留,克隆锁定干净语音。
  • 26 种字幕预设 —— karaoke / 逐词 / hormozi / 霓虹等,直接在你的画面上渲染(所见即所得,JASSUB 覆盖同一份 ffmpeg 烧录的 .ass)。
  • 卡拉OK转录 —— 播放视频,转录中当前行与当前词同步高亮。
  • 实时编辑器 —— 编辑转录、声音、字幕风格、模糊框、标题;约 0.17 秒/帧预览,每次修改即时可见。
  • 智能重生成 —— 导出时只重新合成你改动过的片段,而非整段。
  • 自定义台词 —— 在转录中插入自己的短语;每句都用说话人的克隆声音配音并显示在字幕中。
  • 批量处理 —— 文件队列,统一设置,逐文件进度。
  • 前后对比 —— 原片与配音并排。
  • 100+ 种语言 —— 配音到任何主要语言(西班牙语、中文、日语、阿拉伯语、印地语等),自动检测源语言。
  • 任意视频格式 —— MP4、MOV、MKV、WEBM、AVI 等(ffmpeg 解码)。
  • 一键安装 + 应用内自动更新 —— 首次运行下载模型、引擎、运行库与 ffmpeg;应用自我更新。
  • 可续传下载 —— 大模型(10GB+)断线后从中断处续传,而非重新开始。
  • 想在哪算就在哪算 —— 分离、说话人分离和识别各自在 GPU 与 CPU 之间独立切换,识别、翻译、视觉和配音还可以交给 OpenRouter。下方的各阶段运行在哪里表列出了每个阶段实际能用什么。
  • 按硬件调优 —— 每个引擎都有多种量化(TTS Q8/Q6/Q4、翻译 Q4…Q8、分离 Q8/Q5/Q4),可在设置中切换;限制 prefill 批大小 与 参考音频长度,适配 8–12 GB 显卡和 32 GB 内存;在 8 GB 及以下的显卡上,翻译服务器会按空闲显存自行安排层数。
  • 整个应用使用你的语言 — 进度、错误、安装、选角以及智能体读取的报告都以窗口的六种语言之一显示。
  • Google Gemini 声音 — 在本地引擎和 OpenRouter 之外可选 Gemini TTS,有独立密钥和实时模型列表;Batch 价格减半,停止的渲染会接上同一个已付费批次。
  • 说话人数量 — 自动或 1 到 8 人;长录音中的声音统一匹配,录音按约 90 秒的窗口识别。
  • 响度均衡 — 默认开启的开关:各句电平一致,配音为 -14 LUFS、-1 dBTP 上限;关闭则混音保持原样。
  • 完全便携 —— 不写入用户配置;删除文件夹不留痕迹。

截图

主界面 —— 五种模式、所选视频预览、语言选择、任意视频格式:

Dub Studio 主界面

转录模式 —— 说话人分离转录、逐说话人排布、卡拉OK跟随播放、一键从每个说话人生成声音:

Dub Studio 转录模式

环境要求

  • 系统: Windows 10 / 11 (x64);Linux x86-64 为实验性版本(见 Linux(实验性))
  • 显卡: 显存 8 GB 及以上的 NVIDIA 显卡(提供 8、12、16、24 和 32 GB 的预设)及较新的驱动。本地配音(Higgs Audio)、翻译和视觉(Gemma)通过 CUDA 运行,字幕通过 NVENC 烧录。没有 NVIDIA 时,只有各阶段运行在哪里中标为 CPU 或云端的阶段可以运行,且该配置未经测试
  • WebView2 —— Windows 11 已预装;在 Windows 10 上由安装程序下载(若失败见故障排除)
  • 磁盘: 默认模型、引擎和运行库约 15 GB(首次运行时获取),另需项目空间;备用量化版本和 Whisper 模型为额外占用

在有 NVIDIA 的机器上,唯一需要手动安装的是较新的 NVIDIA 驱动。其余一切 —— 模型(Higgs Audio v3、Gemma-4 12B + vision、Parakeet-TDT、Nemotron 3 Diarization、Mel-Band Roformer)、引擎、CUDA 运行库与 ffmpeg —— 应用在首次运行时一键下载。

快速开始

  1. 从 Releases 下载便携版并解压到任意文件夹(或用 -setup.exe 安装)。
  2. 运行 Dub Studio.exe。
  3. 在首次运行面板点击全部下载 —— 应用获取模型、引擎与运行库(约 15 GB,一次)。若缺 NVIDIA 驱动,按钮会打开下载页。
  4. 拖入视频,选择目标语言 → 自动流程出初稿。在编辑器里微调后点击导出。

一切都下载并存放在应用文件夹内。模型、缓存与项目不会去别处。

改动内容与时间见 CHANGELOG.md,应用顶部的星光按钮也会显示。贡献者与编码代理的规则见 AGENTS.md。

应用会下载的全部内容

“首次运行”面板用一个按钮获取以上全部内容。若处于代理之后,或无法访问 Hugging Face,请在 设置 → 网络 中设置代理:跟随 Windows、自定义(HTTP、HTTPS、SOCKS5 或 SOCKS4;卖家给的 host:port:login:password 可以直接使用)或不使用代理。模型下载、云端请求和应用更新都会经过它。也可以自行下载直接文件,放到最后一列所示的位置(路径从应用文件夹,即包含 models\ 的文件夹算起),再点击**从文件夹导入**;以压缩包(.zip、.whl)提供的组件由应用自己下载。

位于所列位置、大小与所列大小完全一致的文件视为已安装;每次下载都会先与该文件固定的 SHA-256 核对后才使用,已经在位的文件在跳过下载前也会同样核对。从文件夹导入(在“首次运行”面板和模型设置中)会在你选择的文件夹中按文件名和精确大小查找组件的文件,并以硬链接或复制的方式放到位。以 zip 或 wheel 压缩包提供的组件(引擎、运行库)不会被导入,只有由应用自己下载时才算已安装:应用会在解压出的文件旁保存已核对压缩包的记录。大小和哈希取自应用自己的清单 crates/dub-server/src/setup.rs,本表会与其核对。

Visual C++ 运行库和 PP-OCR 模型随发行包提供,不会下载;NVIDIA 驱动需单独安装。

组件 必要性 文件(直接链接) 大小 存放位置
Higgs Audio v3 Q8_0 必需 q8_0.gguf → models\higgs-q8_0\q8_0.gguf
config.json → models\higgs-q8_0\config.json
chat_template.jinja → models\higgs-q8_0\chat_template.jinja
tokenizer.json → models\higgs-q8_0\tokenizer.json
tokenizer_config.json → models\higgs-q8_0\tokenizer_config.json
higgs_audio_v2_tokenizer_config.json → models\higgs-q8_0\higgs_audio_v2_tokenizer_config.json
5.5 GB 原样放入,路径见箭头后
audio.cpp server (Higgs, CrisperWhisper, Parakeet, Supertonic, Audio8, Nemotron) 必需 audiocpp-server-win-cuda13-x64.zip 138 MB 解压文件(不含子文件夹)到 tools\audiocpp\
Gemma-4 12B QAT q4_0 + vision 必需 gemma-4-12b-it-qat-q4_0.gguf → models\mt\gemma-4-12b-it-qat-q4_0.gguf
mmproj-gemma-4-12b-it-qat-q4_0.gguf → models\mt\mmproj-gemma-4-12b-it-qat-q4_0.gguf
7.2 GB 原样放入,路径见箭头后
Gemma-4 12B Q5_K_M + vision 可选 gemma-4-12b-it-Q5_K_M.gguf → models\mt-q5_0\gemma-4-12b-it-Q5_K_M.gguf
mmproj-F16.gguf → models\mt-q5_0\mmproj-F16.gguf
8.6 GB 原样放入,路径见箭头后
Gemma-4 12B Q6_K + vision 可选 gemma-4-12b-it-Q6_K.gguf → models\mt-q6_k\gemma-4-12b-it-Q6_K.gguf
mmproj-F16.gguf → models\mt-q6_k\mmproj-F16.gguf
10.0 GB 原样放入,路径见箭头后
Gemma-4 12B Q8_0 + vision 可选 gemma-4-12b-it-Q8_0.gguf → models\mt-q8_0\gemma-4-12b-it-Q8_0.gguf
mmproj-F16.gguf → models\mt-q8_0\mmproj-F16.gguf
12.8 GB 原样放入,路径见箭头后
Parakeet-TDT 0.6B v3 Q8_0 (transcribe.cpp) 必需 parakeet-tdt-0.6b-v3-Q8_0.gguf → models\asr-gguf-parakeet-v3\parakeet-tdt-0.6b-v3-Q8_0.gguf 740 MB 原样放入,路径见箭头后
transcribe.cpp engine (CUDA) 必需 transcribe-windows-cuda13-x64.zip 131 MB 解压文件(不含子文件夹)到 models\transcribe-engine\
transcribe.cpp engine (CPU) 可选 transcribe-windows-cpu-x64.zip 5 MB 解压文件(不含子文件夹)到 models\transcribe-engine-cpu\
transcribe.cpp engine (CUDA 12) 可选 transcribe-windows-cuda12-x64.zip 159 MB 解压文件(不含子文件夹)到 models\transcribe-engine-cuda12\
transcribe.cpp engine (Vulkan) 可选 transcribe-windows-vulkan-x64.zip 19 MB 解压文件(不含子文件夹)到 models\transcribe-engine-vulkan\
Higgs Audio v3 Q6_K 可选 q6_k.gguf → models\higgs-q6_k\q6_k.gguf
config.json → models\higgs-q6_k\config.json
chat_template.jinja → models\higgs-q6_k\chat_template.jinja
tokenizer.json → models\higgs-q6_k\tokenizer.json
tokenizer_config.json → models\higgs-q6_k\tokenizer_config.json
higgs_audio_v2_tokenizer_config.json → models\higgs-q6_k\higgs_audio_v2_tokenizer_config.json
5.0 GB 原样放入,路径见箭头后
Higgs Audio v3 Q4_K_M 可选 q4_k_m.gguf → models\higgs-q4_k_m\q4_k_m.gguf
config.json → models\higgs-q4_k_m\config.json
chat_template.jinja → models\higgs-q4_k_m\chat_template.jinja
tokenizer.json → models\higgs-q4_k_m\tokenizer.json
tokenizer_config.json → models\higgs-q4_k_m\tokenizer_config.json
higgs_audio_v2_tokenizer_config.json → models\higgs-q4_k_m\higgs_audio_v2_tokenizer_config.json
4.1 GB 原样放入,路径见箭头后
Fish Audio Drama 3 Q4 + drama_engine (24 GB+ GPU) 可选 .gitattributes → models\drama3\.gitattributes
LICENSE → models\drama3\LICENSE
NOTICE → models\drama3\NOTICE
README.md → models\drama3\README.md
codec.safetensors → models\drama3\codec.safetensors
drama.json → models\drama3\drama.json
globals.safetensors → models\drama3\globals.safetensors
layer00.safetensors → models\drama3\layer00.safetensors
layer01.safetensors → models\drama3\layer01.safetensors
layer02.safetensors → models\drama3\layer02.safetensors
layer03.safetensors → models\drama3\layer03.safetensors
layer04.safetensors → models\drama3\layer04.safetensors
layer05.safetensors → models\drama3\layer05.safetensors
layer06.safetensors → models\drama3\layer06.safetensors
layer07.safetensors → models\drama3\layer07.safetensors
layer08.safetensors → models\drama3\layer08.safetensors
layer09.safetensors → models\drama3\layer09.safetensors
layer10.safetensors → models\drama3\layer10.safetensors
layer11.safetensors → models\drama3\layer11.safetensors
layer12.safetensors → models\drama3\layer12.safetensors
layer13.safetensors → models\drama3\layer13.safetensors
layer14.safetensors → models\drama3\layer14.safetensors
layer15.safetensors → models\drama3\layer15.safetensors
layer16.safetensors → models\drama3\layer16.safetensors
layer17.safetensors → models\drama3\layer17.safetensors
layer18.safetensors → models\drama3\layer18.safetensors
layer19.safetensors → models\drama3\layer19.safetensors
layer20.safetensors → models\drama3\layer20.safetensors
layer21.safetensors → models\drama3\layer21.safetensors
layer22.safetensors → models\drama3\layer22.safetensors
layer23.safetensors → models\drama3\layer23.safetensors
layer24.safetensors → models\drama3\layer24.safetensors
layer25.safetensors → models\drama3\layer25.safetensors
layer26.safetensors → models\drama3\layer26.safetensors
layer27.safetensors → models\drama3\layer27.safetensors
layer28.safetensors → models\drama3\layer28.safetensors
layer29.safetensors → models\drama3\layer29.safetensors
layer30.safetensors → models\drama3\layer30.safetensors
layer31.safetensors → models\drama3\layer31.safetensors
layer32.safetensors → models\drama3\layer32.safetensors
layer33.safetensors → models\drama3\layer33.safetensors
layer34.safetensors → models\drama3\layer34.safetensors
layer35.safetensors → models\drama3\layer35.safetensors
layer36.safetensors → models\drama3\layer36.safetensors
layer37.safetensors → models\drama3\layer37.safetensors
layer38.safetensors → models\drama3\layer38.safetensors
layer39.safetensors → models\drama3\layer39.safetensors
tokenizer.json → models\drama3\tokenizer.json
tower.safetensors → models\drama3\tower.safetensors
drama_engine.dll → models\drama-engine\drama_engine.dll
23.0 GB 原样放入,路径见箭头后
qwen.dll + ggml (Qwen3-TTS engine) 可选 qwen-windows-x64.zip 4 MB 解压文件(不含子文件夹)到 models\qwen3-tts\
Qwen3-TTS 1.7B Q4_K_M 可选 qwen-talker-1.7b-customvoice-Q4_K_M.gguf → models\qwen3-tts\qwen-talker-1.7b-customvoice-Q4_K_M.gguf
qwen-talker-1.7b-base-Q4_K_M.gguf → models\qwen3-tts\qwen-talker-1.7b-base-Q4_K_M.gguf
2.4 GB 原样放入,路径见箭头后
Qwen3-TTS 1.7B Q8_0 可选 qwen-talker-1.7b-customvoice-Q8_0.gguf → models\qwen3-tts\qwen-talker-1.7b-customvoice-Q8_0.gguf
qwen-talker-1.7b-base-Q8_0.gguf → models\qwen3-tts\qwen-talker-1.7b-base-Q8_0.gguf
4.1 GB 原样放入,路径见箭头后
Qwen3-TTS Russian stress 可选 adapter.safetensors → models\qwen3-tts\qwen-talker-1.7b-base-ru-stress-lora.safetensors 35 MB 原样放入,路径见箭头后
Supertonic 3 int8 可选 LICENSE → models\supertonic3\LICENSE
duration_predictor.onnx → models\supertonic3\onnx\duration_predictor.onnx
text_encoder.onnx → models\supertonic3\onnx\text_encoder.onnx
vector_estimator.onnx → models\supertonic3\onnx\vector_estimator.onnx
vocoder.onnx → models\supertonic3\onnx\vocoder.onnx
tts.json → models\supertonic3\onnx\tts.json
unicode_indexer.json → models\supertonic3\onnx\unicode_indexer.json
F1.json → models\supertonic3\voice_styles\F1.json
F2.json → models\supertonic3\voice_styles\F2.json
F3.json → models\supertonic3\voice_styles\F3.json
F4.json → models\supertonic3\voice_styles\F4.json
F5.json → models\supertonic3\voice_styles\F5.json
M1.json → models\supertonic3\voice_styles\M1.json
M2.json → models\supertonic3\voice_styles\M2.json
M3.json → models\supertonic3\voice_styles\M3.json
M4.json → models\supertonic3\voice_styles\M4.json
M5.json → models\supertonic3\voice_styles\M5.json
108 MB 原样放入,路径见箭头后
Audio8 TTS Realistic-Air Q8_0 可选 Audio8-TTS-Realistic-Air-Q8_0.gguf → models\audio8\Audio8-TTS-Realistic-Air-Q8_0.gguf 1.5 GB 原样放入,路径见箭头后
RUAccent 可选 model.onnx → models\ruaccent\nn\nn_accent\model.onnx
config.json → models\ruaccent\nn\nn_accent\config.json
vocab.txt → models\ruaccent\nn\nn_accent\vocab.txt
model.onnx → models\ruaccent\nn\nn_omograph\tiny2\model.onnx
tokenizer.json → models\ruaccent\nn\nn_omograph\tiny2\tokenizer.json
accents.json.gz → models\ruaccent\dictionary\accents.json.gz
omographs.json.gz → models\ruaccent\dictionary\omographs.json.gz
yo_words.json.gz → models\ruaccent\dictionary\yo_words.json.gz
yo_homographs.json.gz → models\ruaccent\dictionary\yo_homographs.json.gz
34 MB 原样放入,路径见箭头后
RUAccent omograph big_poetry int8 可选 model.onnx → models\ruaccent\nn\nn_omograph\big_poetry\model.onnx
tokenizer.json → models\ruaccent\nn\nn_omograph\big_poetry\tokenizer.json
182 MB 原样放入,路径见箭头后
Parakeet Ultra 0.6B Q8_0 (Moondream, transcribe.cpp) 可选 parakeet-ultra-Q8_0.gguf → models\asr-gguf-parakeet-ultra\parakeet-ultra-Q8_0.gguf 740 MB 原样放入,路径见箭头后
CrisperWhisper 2.0 turbo (audio.cpp) 可选 LICENSE.md → models\crisperwhisper2-turbo\LICENSE.md
README.md → models\crisperwhisper2-turbo\README.md
added_tokens.json → models\crisperwhisper2-turbo\added_tokens.json
config.json → models\crisperwhisper2-turbo\config.json
generation_config.json → models\crisperwhisper2-turbo\generation_config.json
merges.txt → models\crisperwhisper2-turbo\merges.txt
model.safetensors → models\crisperwhisper2-turbo\model.safetensors
normalizer.json → models\crisperwhisper2-turbo\normalizer.json
preprocessor_config.json → models\crisperwhisper2-turbo\preprocessor_config.json
special_tokens_map.json → models\crisperwhisper2-turbo\special_tokens_map.json
tokenizer.json → models\crisperwhisper2-turbo\tokenizer.json
tokenizer_config.json → models\crisperwhisper2-turbo\tokenizer_config.json
vocab.json → models\crisperwhisper2-turbo\vocab.json
1.6 GB 原样放入,路径见箭头后
DPDFNet noise reduction 推荐 dpdfnet2_48khz_hr.onnx → models\dpdfnet\dpdfnet2_48khz_hr.onnx 10 MB 原样放入,路径见箭头后
Silero VAD v6.2 推荐 silero-vad-v6.2-F32.gguf → models\silero-vad\silero-vad-v6.2-F32.gguf 1 MB 原样放入,路径见箭头后
VoxLingua107 language id (transcribe.cpp) 可选 lang-id-voxlingua107-ecapa-Q8_0.gguf → models\langid-voxlingua107\lang-id-voxlingua107-ecapa-Q8_0.gguf 27 MB 原样放入,路径见箭头后
Nemotron 3 Diarization 推荐 nemotron3_diar_v3.onnx → models\nemotron-diar\nemotron3_diar_v3.onnx
LICENSE → models\nemotron-diar\LICENSE
401 MB 原样放入,路径见箭头后
Mel-Band Roformer voc_fv6 Q8_0 推荐 voc_fv6-Q8_0.gguf → models\bsroformer\voc_fv6-Q8_0.gguf 252 MB 原样放入,路径见箭头后
Mel-Band Roformer voc_fv6 Q5_0 可选 voc_fv6-Q5_0.gguf → models\bsroformer\voc_fv6-Q5_0.gguf 167 MB 原样放入,路径见箭头后
Mel-Band Roformer voc_fv6 Q4_0 可选 voc_fv6-Q4_0.gguf → models\bsroformer\voc_fv6-Q4_0.gguf 139 MB 原样放入,路径见箭头后
选角模型(人脸与声音) 推荐 model.onnx → models\faces\det_10g.onnx
LVFace-L_Glint360K.onnx → models\faces\LVFace-L_Glint360K.onnx
model_feat.onnx → models\faces\ccip\model_feat.onnx
model.onnx → models\faces\anime_face\model.onnx
xseg_1.onnx → models\faces\occluder\xseg_1.onnx
voxceleb_resnet34_LM.onnx → models\faces\wespeaker\voxceleb_resnet34_LM.onnx
1.3 GB 原样放入,路径见箭头后
BSRoformer.cpp (CUDA) 推荐 BSRoformer-windows-cuda13-x64.zip 119 MB 解压文件(不含子文件夹)到 tools\bsroformer\
BSRoformer.cpp (CPU) 可选 BSRoformer-windows-cpu-x64.zip 3 MB 解压文件(不含子文件夹)到 tools\bsroformer-cpu\
BSRoformer.cpp (Vulkan) 可选 BSRoformer-windows-vulkan-x64.zip 26 MB 解压文件(不含子文件夹)到 tools\bsroformer-vulkan\
llama.cpp server (CUDA) 必需 llama-b12248-bin-win-cuda-13.5-x64.zip 171 MB 解压文件(不含子文件夹)到 tools\llama\
ONNX Runtime 必需 onnxruntime-win-x64-1.31.1.zip 83 MB 保留文件夹结构解压到 models\runtime\
ONNX Runtime GPU (CUDA) 推荐 onnxruntime-win-x64-gpu_cuda13-1.31.1.zip 309 MB 保留文件夹结构解压到 models\runtime\
FFmpeg (static build) 必需 ffmpeg-N-128227-g4811625b5f-win64-gpl.zip 202 MB 从压缩包中取出 ffmpeg.exe 和 ffprobe.exe 放入 tools\ffmpeg\
yt-dlp + deno 可选 yt-dlp.exe → tools\yt-dlp\yt-dlp.exe
deno-x86_64-pc-windows-msvc.zip
66 MB 原样放入,路径见箭头后
解压文件(不含子文件夹)到 tools\yt-dlp\
CUDA runtime (cudart, cuBLAS, cuFFT) 必需 nvidia_cuda_runtime-13.4.92-py3-none-win_amd64.whl
nvidia_cublas-13.8.0.4-py3-none-win_amd64.whl
libcufft-windows-x86_64-12.4.0.43-archive.zip
586 MB 取出压缩包中所有 .dll 放入 models\higgs-engine\
cuDNN 9 推荐 nvidia_cudnn_cu13-9.27.0.42-py3-none-win_amd64.whl 436 MB 取出压缩包中所有 .dll 放入 models\higgs-engine\

各阶段运行在哪里

每个阶段都有各自的设备开关。是表示代码中存在该路径;本表不说明速度或测试覆盖情况,CPU 路径较慢。云端路径需要 OpenRouter 密钥(设置),默认关闭。

阶段 引擎 NVIDIA 显卡 CPU OpenRouter(云端)
分离 Mel-Band Roformer(BSRoformer.cpp) 是(CUDA 版) 是(单独的 CPU 版,较慢) 否
说话人分离 Nemotron 3 Diarization(audio.cpp) 是(CUDA 13 或 12.9;其他显卡用 Vulkan) 是 否
语音识别 Parakeet-TDT v3、CrisperWhisper(audio.cpp)、Parakeet Ultra(transcribe.cpp) 是 是 是
翻译与视觉 Gemma-4 12B(llama.cpp) 是(CUDA 版;其他显卡用 Vulkan) 是(较慢) 是
配音与声音克隆 Higgs Audio v3、Supertonic 3、Audio8(audio.cpp)、Qwen3-TTS、Fish Audio Drama 3 是(Drama 3 仅 CUDA) 是(Drama 3 除外,较慢) 是(OpenRouter、Google)
画面文字 PP-OCR 否 是 否
选角(人脸与声音) SCRFD、LVFace、anime_face、CCIP、WeSpeaker 是(ONNX Runtime CUDA) 是 否
把字幕烧录进视频 ffmpeg 是(NVENC) 否 否

没有 NVIDIA 时,配音、翻译、视觉和识别可以交给云端,分离和说话人分离可以用 CPU,但烧录没有 CPU 路径,因此这样的机器不属于经过测试的配置。

故障排除

安装程序停在 WebView2。 应用窗口运行在 Microsoft Edge WebView2 上,Windows 缺少它时由安装程序下载。连接被屏蔽或不稳定,或在拒绝微软小型引导程序的 Windows 10 版本上(错误 0x80040902),下载会失败。请使用微软的离线安装包 Evergreen Standalone x64 安装 WebView2,然后再次运行 Dub Studio 的安装程序。

下载卡住或失败。 大文件会从中断处继续,所以再按一次按钮即可。如果 Hugging Face 或 GitHub 对你被屏蔽,请在 设置 → 网络 中设置代理,或从表中手动下载直接文件,放到最后一列所示的位置,然后点击从文件夹导入。

导出因 Unrecognized option 'filter_complex_script' 而中止。 这是 ffmpeg 8 及更新版本上的故障,已在 3.1.1 中修复:请更新应用。应用使用 tools\ffmpeg 中的 ffmpeg,没有时接受 PATH 中找到的那个。报告导出错误时,请附上日志中完整的 ffmpeg 输出。

识别因 MemcpyToHost 或 Failed to allocate memory 失败。 处理较长或较大的文件时,语音识别用尽了显存(issue #4)。请关闭其他占用 GPU 的程序,或在设置中把识别阶段改为 CPU,然后重试。

CUDA execution provider is not enabled,或所有台词都归到同一个说话人。 GPU 库缺失,或对当前驱动来说太旧。请安装最新的 NVIDIA 驱动,在模型设置中点击 CUDA 运行库、cuDNN 和 ONNX Runtime GPU 的下载按钮,或把该阶段切换到 CPU。

工作原理

analyze() 是固定的第一遍:分离 → 带词级时间戳的 ASR → 说话人分离 → 上下文翻译 + 视觉(字幕风格 / 标题 / 品牌)→ OCR(排布 / 模糊框)。产出一个可编辑的 Project 文档。每次编辑都是对它的补丁,约 0.17 秒/帧预览;导出只重跑被弄脏的阶段。

技术栈: 原生 Tauri 2(Rust) 外壳在同一进程内于 127.0.0.1:8793 启动 dub-server(axum;面向智能体的 MCP 为同一端口上的 /mcp),并把窗口打开到 SPA —— React 19 + Vite + Tailwind + react-konva 覆盖 JASSUB。引擎:Parakeet-TDT 或 Whisper(ASR)· Nemotron 3 Diarization(说话人分离)· Gemma-4-12B GGUF(翻译 + 视觉,llama.cpp)· Higgs Audio v3(TTS)· Mel-Band Roformer(人声分离,BSRoformer.cpp)· PP-OCR(ONNX)· ffmpeg/NVENC。运行时没有任何 Python 进程。

从源码构建

git clone https://github.com/timoncool/dub-studio.git
cd dub-studio

cd frontend && npm install && npm run build && cd ..   # 1) SPA
cargo build --release -p dub-server                     # 2) 原生服务器 (axum)
cd desktop && npm install && npx tauri build            # 3) 桌面外壳 (Tauri)

需要 Node 20+、Rust(MSVC 工具链)与 WebView2。原生引擎无需重建 —— 应用会下载预编译二进制。

Linux(实验性)

Linux x86-64 的 .deb 和 AppImage 是实验性的。它们出自同一份代码,配的是同一批引擎的 Linux 版本(llama.cpp、ONNX Runtime、BSRoformer.cpp、ffmpeg、audio.cpp 服务器、transcribe.cpp、yt-dlp),但作者在 Windows 上工作,没有在真实的 Linux 桌面上跑过。如果你日常用 Linux,非常欢迎你把它们打磨好,再通过 pull request 把修复合回来。

  • 本地配音需要 Turing 及更新的 NVIDIA 显卡(GTX 16、RTX 20 及以上),与 Windows 相同。云端声音在任何机器上都能用。
  • NVIDIA 驱动(580 或更新)、libgomp1 和 libssl3 由系统提供;模型、引擎和 CUDA 库由应用在首次运行时下载到 ~/.local/share/dub-studio($XDG_DATA_HOME)。
  • 手动构建:Linux build (experimental) workflow(.github/workflows/release-linux.yml)或 scripts/build-release-linux.sh <含 models/ocr 的文件夹>。

匿名统计与新闻

应用在启动时向作者的服务器获取新闻,之后每小时一次。请求不带任何 id,所以无论下面如何选择,新闻都会到达:新条目显示在“新功能”顶部或窗口顶部的横条中,离线时应用显示其版本自带的新闻。

首次启动界面有一个复选框 发送匿名使用统计,默认勾选。同样的开关在 设置 → 匿名统计 中,旁边是 发送的内容(今天的确切报告)和 新的安装 ID。勾选期间,应用在启动一分钟后、每六小时、工作结束两分钟后以及关闭时发送当天的报告(同一天较晚的报告会替换较早的):

  • 在本机生成的随机安装 id,不与硬件或账户绑定;取消勾选即删除它;
  • 应用及其版本、操作系统名称和版本、界面语言;
  • 显卡:厂商、显存档位(8 及以下、12、16、24+ GB)以及 CUDA 是否可用;
  • 当天有多少任务(分析、配音、渲染、导出、下载等)完成、失败或被取消。
  • 各阶段(配音、识别、翻译、画面分析、人声分离)使用的模型及其任务数;
  • 任务失败原因,一行文字,路径、名称、链接和引号内内容在发送前于本机删除;服务器保留 30 天。

绝不发送:视频、转录、翻译、声音、文件名或路径,以及任何个人信息。服务器保存 Cloudflare 报告的连接所在国家,而不是 IP 地址。环境变量 DO_NOT_TRACK=1 或 STUDIO_TELEMETRY=0 会完全关闭统计:不会生成 id,也不计数任何内容。

参与贡献与分支

非常欢迎协作者。 我会由衷高兴看到 Dub Studio 被移植到其他平台和显卡上 —— 架构完全支持,我只是没有精力亲自做这些移植。如果你想让它跑在 AMD / Intel 显卡、macOS 或 Linux 上,尽管 fork —— 欢迎 PR。Linux 已经有实验性版本(见 Linux(实验性)):把它打磨好是最受欢迎的帮助。

额外的本地化同样欢迎:目前应用和落地页支持 6 种语言 —— 翻译语言文件(frontend/src/locales/ 及 docs/index.html 中的字典)并提交 PR 加入你的语言。

作者

致谢

支持作者

我做开源软件与 AI 研究,绝大部分成果都公开。捐助让我能做和研究更多。

所有支持方式 | dalink.to/nerual_dreming | boosty.to/neuro_art

  • BTC: 1E7dHL22RpyhJGVpcvKdbyZgksSYkYeEBC
  • ETH (ERC20): 0xb5db65adf478983186d4897ba92fe2c25c594a0c
  • USDT (TRC20): TQST9Lp2TjK6FiVkn4fwfGUee7NmkxEE7C

许可证

应用代码采用 MIT 许可。模型并非如此:每个模型保留自己的许可证,下面列出的是各模型页面目前所写的内容。发布或出售配音视频之前请先阅读。

组件 许可证 含义
Higgs Audio v3(Boson AI) Boson Higgs TTS 3 Research and Non-Commercial License 可免费用于研究和个人用途;依据 Creator Use Grant,数字创作者发布并变现自己的内容时也可免费使用,但需注明 Boson AI 的 Higgs Audio。向他人托管、再分发,或将其嵌入面向第三方的产品或服务(包括配音服务),需要 Boson 的商业许可
Parakeet-TDT 0.6B v3(NVIDIA)及其 ONNX 导出 CC-BY-4.0 需注明 NVIDIA
Parakeet Ultra(Moondream,基于 NVIDIA Parakeet-TDT) CC-BY-4.0 需注明 Moondream 与 NVIDIA
Nemotron 3 Diarization(NVIDIA) OpenMDW-1.1 需注明 NVIDIA;ONNX 导出来自 altunenes/parakeet-rs
CrisperWhisper 2.0 turbo(nyra health) nyra health non-commercial research license 仅限非商业研究
VoxLingua107 语言识别(SpeechBrain) Apache-2.0
Supertonic 3(Supertone) BigScience OpenRAIL-M 请阅读其使用限制
Audio8 TTS Realistic-Air(Edge0) Apache-2.0
Qwen3-TTS(Qwen)及其俄语重音微调 Apache-2.0
Fish Audio Drama 3 Fish Audio Research License 仅限非商业研究
WeSpeaker ResNet34 CC-BY-4.0 注明 WeSpeaker
DPDFNet(Ceva) Apache-2.0
Silero VAD v6.2 MIT
RUAccent MIT
Gemma-4 12B(Google) 模型页面为 Apache-2.0,并链接到 Google 的 Gemma 4 条款 请两者都阅读
Mel-Band Roformer voc_fv6(GaboxR67),chenmozhijin 的 GGUF 模型页面未注明许可证;引擎 BSRoformer.cpp 为 MIT 商用前请询问作者
SCRFD 人脸检测器(InsightFace buffalo_l) InsightFace:预训练模型仅限非商业研究 对真实人脸的角色选角受此限制
LVFace(ByteDance) MIT
CCIP(deepghs) OpenRAIL 请阅读其使用限制
anime_face_detection(deepghs) MIT
xseg_1 遮挡模型(FaceFusion models) 模型页面未注明许可证 商用前请询问作者
WeSpeaker ResNet34-LM CC-BY-4.0 需注明 WeSpeaker
PP-OCR(PaddleOCR) Apache-2.0
llama.cpp、ONNX Runtime、BSRoformer.cpp、JASSUB MIT
FFmpeg(BtbN 构建) FFmpeg 的 GPL 构建 作为独立程序提供,不链接进应用
NVIDIA CUDA runtime、cuBLAS、cuFFT、cuDNN NVIDIA 自己的许可条款 从 NVIDIA 和 PyPI 下载,不在仓库中

探索相关项目