Free offline AI video dubbing studio for Windows — voice cloning, translation, subtitles & on-screen-text localization. 100% local, one native .exe, zero Python.
118
stars
312
commits
Rust
primary language
Sep 7, 2026
updated
Free, offline AI video dubbing studio for Windows — re-voice any video into another language with a cloned voice, translated captions, and on‑screen‑text localization. 100% local, zero Python: one native .exe (Rust + C++/CUDA); every model and engine downloads with a button.
English · Русский · 中文 · Español · Português · Français

Dub Studio turns any video into a dubbed version in another language — with the speaker's own voice cloned, captions translated, and on‑screen text localized right on the frame. Drop a clip, and a smart auto‑pass builds the first draft; then a live editor puts every caption, voice, blur box, font and title under your control with an instant preview.
By default everything runs locally on your machine — no cloud, no subscription; your footage and your voiceprint never leave your computer. And if your PC is weak (can't run the local Gemma/Higgs) or you want more speed and quality, the heavy stages (translation, vision, TTS, transcription) can optionally be offloaded to the cloud via OpenRouter — each engine picked independently (local ↔ cloud), with voices auto-cast by speaker gender (beta). The key is stored locally; everything is off by default.
It's a fully native rewrite. No embeddable Python, no torch, no CUDA wheels. The whole pipeline is Rust + native C++/CUDA engines (GGUF/ONNX): one process, fast startup, low VRAM. Models, engines, CUDA/VC++ runtime and ffmpeg are downloaded and installed by the app itself on first run. NVIDIA is recommended but not required — separation ships a CPU build, diarization and ASR run on CPU, and the heavy stages (translation, vision, TTS) go to the cloud, so a dub can be built on a machine with no NVIDIA at all.
▶ Watch the before/after video showcase → — real clips dubbed end‑to‑end on a local GPU: different videos, different modes, different languages, nothing left the machine.
![]() | ![]() | ![]() |
|---|---|---|
| 🎙️ Full dub · EN→RU | 🗣️ Voice-over · EN→ES | 🈶 Full dub · →中文, CJK on frame |
![]() | ![]() | ![]() |
| 📝 Subtitles · original-lang | 🎬 Full dub · widescreen 16:9 | 🔤 Transcript · diarized |
| Mode | What it does |
|---|---|
| 🎙️ Dub | Full re-voice into the target language with the original timbre cloned — auto-cast per speaker or pick a voice |
| 🗣️ Voice-over | Translated voice over the ducked original — the source is still audible underneath; balance is adjustable |
| 📝 Subtitles | Burn original-language captions, keep the original audio — no dubbing, no translation |
| ✨ Funny remix | Give a theme ("as a pirate", "as a news report") → the model rewrites the whole script, then re-dubs |
| 🎬 Transcript | Clean diarized transcript with per-speaker layout, karaoke play-along, one-click voice creation, .srt/.txt export |
Load a clip once and send it into any mode — right inside the editor.
.srt/.ass as the exact transcript: text and timing come straight from the file instead of auto-recognition (speakers are still auto-assigned by diarization). Tick “subtitles already in the target language” and translation is skipped too — an English clip + your Russian subs → a Russian dub straight from them, no ASR and no MT..ass that ffmpeg burns).Home — five modes, a preview of the selected video, language pickers, any video format:

Transcript mode — diarized transcript with per-speaker layout, karaoke play-along and one-click voice creation from each speaker:

On an NVIDIA machine the only thing you install by hand is a recent NVIDIA driver. Everything else — models (Higgs Audio v3, Gemma-4 12B + vision, Parakeet-TDT, Sortformer, Mel-Band Roformer), engines, CUDA runtime and ffmpeg — the app downloads with a button on first run.
-setup.exe / .msi).Dub Studio.exe.Everything downloads and lives inside the app folder. Models, caches and projects go nowhere else.
analyze() is a fixed first pass: separation → ASR with word timings → diarization → context translation + vision (caption style / titles / brands) → OCR (layout / blur boxes). The result is an editable Project document. Each edit is a patch on that Project with a ~0.17 s/frame preview; export re-runs only the dirtied stages.
Stack: a native Tauri 2 (Rust) shell spawns dub-server (axum) on a local port and opens a window onto the SPA — React 19 + Vite + Tailwind + react-konva over JASSUB. Engines: Parakeet-TDT or Whisper (ASR) · Sortformer (diarization) · Gemma-4-12B GGUF (translation + vision, llama.cpp) · Higgs Audio v3 (TTS) · Mel-Band Roformer (separation, BSRoformer.cpp) · PP-OCR (ONNX) · ffmpeg/NVENC. Not a single Python process at runtime.
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) native server (axum)
cd desktop && npm install && npx tauri build # 3) desktop shell (Tauri)
Needs Node 20+, Rust (MSVC toolchain) and WebView2. Native engines (audiocpp_engine.dll, llama.cpp, BSRoformer.cpp, ONNX Runtime) don't need rebuilding — the app downloads prebuilt binaries.
| Project | What it is |
|---|---|
| Higgs Ultimate | Native speech synthesis & voice cloning (Higgs Audio v3) |
| ACE-Step Studio | AI music studio — songs, vocals, covers, clips |
| Foundation Music Lab | Music generation + timeline editor |
| Qwen3-TTS | Portable TTS with voice cloning |
| VibeVoice ASR | Portable speech recognition |
| SuperCaption Qwen3-VL | Portable image captioning |
Collaborators are very welcome. I'd be genuinely happy to see Dub Studio forked to other platforms and GPUs — the architecture is capable of it, I simply don't have the bandwidth to do the ports myself. If you want it on AMD / Intel GPUs, macOS or Linux, fork it and go — PRs welcome.
Extra localizations are just as welcome: the app and landing ship in 6 languages today — translate the locale files (frontend/src/locales/ and the dict in docs/index.html) and open a PR to add yours.
audiocpp_engine.dll.I build open-source software and do AI research — most of what I make is freely available. Donations let me build and research more.
All the ways to support | dalink.to/nerual_dreming | boosty.to/neuro_art
1E7dHL22RpyhJGVpcvKdbyZgksSYkYeEBC0xb5db65adf478983186d4897ba92fe2c25c594a0cTQST9Lp2TjK6FiVkn4fwfGUee7NmkxEE7CApp code is MIT. Model weights keep their own licenses (Higgs Audio v3 — Boson AI research/non-commercial; Gemma — Gemma Terms; etc.) — audited before every release.
AI video dubbing · voice cloning · video translation · automatic subtitles · speaker diarization · offline · local · open source · Windows · free lip-free dubbing · voice-over · transcription
304 commits
8 commits
Rust
68.8%
TypeScript
17.6%
Python
12.2%
Free offline AI video dubbing studio for Windows — voice cloning, translation, subtitles & on-screen-text localization. 100% local, one native .exe, zero Python.
118
stars
312
commits
Rust
primary language
Sep 7, 2026
updated
Free, offline AI video dubbing studio for Windows — re-voice any video into another language with a cloned voice, translated captions, and on‑screen‑text localization. 100% local, zero Python: one native .exe (Rust + C++/CUDA); every model and engine downloads with a button.
English · Русский · 中文 · Español · Português · Français

Dub Studio turns any video into a dubbed version in another language — with the speaker's own voice cloned, captions translated, and on‑screen text localized right on the frame. Drop a clip, and a smart auto‑pass builds the first draft; then a live editor puts every caption, voice, blur box, font and title under your control with an instant preview.
By default everything runs locally on your machine — no cloud, no subscription; your footage and your voiceprint never leave your computer. And if your PC is weak (can't run the local Gemma/Higgs) or you want more speed and quality, the heavy stages (translation, vision, TTS, transcription) can optionally be offloaded to the cloud via OpenRouter — each engine picked independently (local ↔ cloud), with voices auto-cast by speaker gender (beta). The key is stored locally; everything is off by default.
It's a fully native rewrite. No embeddable Python, no torch, no CUDA wheels. The whole pipeline is Rust + native C++/CUDA engines (GGUF/ONNX): one process, fast startup, low VRAM. Models, engines, CUDA/VC++ runtime and ffmpeg are downloaded and installed by the app itself on first run. NVIDIA is recommended but not required — separation ships a CPU build, diarization and ASR run on CPU, and the heavy stages (translation, vision, TTS) go to the cloud, so a dub can be built on a machine with no NVIDIA at all.
▶ Watch the before/after video showcase → — real clips dubbed end‑to‑end on a local GPU: different videos, different modes, different languages, nothing left the machine.
![]() | ![]() | ![]() |
|---|---|---|
| 🎙️ Full dub · EN→RU | 🗣️ Voice-over · EN→ES | 🈶 Full dub · →中文, CJK on frame |
![]() | ![]() | ![]() |
| 📝 Subtitles · original-lang | 🎬 Full dub · widescreen 16:9 | 🔤 Transcript · diarized |
| Mode | What it does |
|---|---|
| 🎙️ Dub | Full re-voice into the target language with the original timbre cloned — auto-cast per speaker or pick a voice |
| 🗣️ Voice-over | Translated voice over the ducked original — the source is still audible underneath; balance is adjustable |
| 📝 Subtitles | Burn original-language captions, keep the original audio — no dubbing, no translation |
| ✨ Funny remix | Give a theme ("as a pirate", "as a news report") → the model rewrites the whole script, then re-dubs |
| 🎬 Transcript | Clean diarized transcript with per-speaker layout, karaoke play-along, one-click voice creation, .srt/.txt export |
Load a clip once and send it into any mode — right inside the editor.
.srt/.ass as the exact transcript: text and timing come straight from the file instead of auto-recognition (speakers are still auto-assigned by diarization). Tick “subtitles already in the target language” and translation is skipped too — an English clip + your Russian subs → a Russian dub straight from them, no ASR and no MT..ass that ffmpeg burns).Home — five modes, a preview of the selected video, language pickers, any video format:

Transcript mode — diarized transcript with per-speaker layout, karaoke play-along and one-click voice creation from each speaker:

On an NVIDIA machine the only thing you install by hand is a recent NVIDIA driver. Everything else — models (Higgs Audio v3, Gemma-4 12B + vision, Parakeet-TDT, Sortformer, Mel-Band Roformer), engines, CUDA runtime and ffmpeg — the app downloads with a button on first run.
-setup.exe / .msi).Dub Studio.exe.Everything downloads and lives inside the app folder. Models, caches and projects go nowhere else.
analyze() is a fixed first pass: separation → ASR with word timings → diarization → context translation + vision (caption style / titles / brands) → OCR (layout / blur boxes). The result is an editable Project document. Each edit is a patch on that Project with a ~0.17 s/frame preview; export re-runs only the dirtied stages.
Stack: a native Tauri 2 (Rust) shell spawns dub-server (axum) on a local port and opens a window onto the SPA — React 19 + Vite + Tailwind + react-konva over JASSUB. Engines: Parakeet-TDT or Whisper (ASR) · Sortformer (diarization) · Gemma-4-12B GGUF (translation + vision, llama.cpp) · Higgs Audio v3 (TTS) · Mel-Band Roformer (separation, BSRoformer.cpp) · PP-OCR (ONNX) · ffmpeg/NVENC. Not a single Python process at runtime.
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) native server (axum)
cd desktop && npm install && npx tauri build # 3) desktop shell (Tauri)
Needs Node 20+, Rust (MSVC toolchain) and WebView2. Native engines (audiocpp_engine.dll, llama.cpp, BSRoformer.cpp, ONNX Runtime) don't need rebuilding — the app downloads prebuilt binaries.
| Project | What it is |
|---|---|
| Higgs Ultimate | Native speech synthesis & voice cloning (Higgs Audio v3) |
| ACE-Step Studio | AI music studio — songs, vocals, covers, clips |
| Foundation Music Lab | Music generation + timeline editor |
| Qwen3-TTS | Portable TTS with voice cloning |
| VibeVoice ASR | Portable speech recognition |
| SuperCaption Qwen3-VL | Portable image captioning |
Collaborators are very welcome. I'd be genuinely happy to see Dub Studio forked to other platforms and GPUs — the architecture is capable of it, I simply don't have the bandwidth to do the ports myself. If you want it on AMD / Intel GPUs, macOS or Linux, fork it and go — PRs welcome.
Extra localizations are just as welcome: the app and landing ship in 6 languages today — translate the locale files (frontend/src/locales/ and the dict in docs/index.html) and open a PR to add yours.
audiocpp_engine.dll.I build open-source software and do AI research — most of what I make is freely available. Donations let me build and research more.
All the ways to support | dalink.to/nerual_dreming | boosty.to/neuro_art
1E7dHL22RpyhJGVpcvKdbyZgksSYkYeEBC0xb5db65adf478983186d4897ba92fe2c25c594a0cTQST9Lp2TjK6FiVkn4fwfGUee7NmkxEE7CApp code is MIT. Model weights keep their own licenses (Higgs Audio v3 — Boson AI research/non-commercial; Gemma — Gemma Terms; etc.) — audited before every release.
AI video dubbing · voice cloning · video translation · automatic subtitles · speaker diarization · offline · local · open source · Windows · free lip-free dubbing · voice-over · transcription
304 commits
8 commits
Rust
68.8%
TypeScript
17.6%
Python
12.2%