dublab / README.md
khantbhko's picture
DubLab on Hugging Face (Dockerfile + Flask app, Nara Mini voices)
475d141 verified
|
Raw History Blame Contribute Delete
3.75 kB
---
license: mit
language:
- en
- my
tags:
- burmese
- myanmar
- video-dubbing
- dubbing
- text-to-speech
- faster-whisper
- flask
- edge-tts
- gemini
---
# DubLab — English ↔ Burmese Video Dubbing
**Upload a short video, get it back dubbed in the other language.**
DubLab is a self-hosted web app that dubs short videos between **English and
Burmese (Myanmar)**. It transcribes the speech (faster-whisper, local),
translates it (Gemini API), synthesizes a new voice track (Nara Mini local
ONNX voices Shoon + Ko Banyar by default, Edge-TTS / Gemini TTS as options),
syncs it to the picture, and returns a finished MP4.
🌐 **Live demo:** https://dublab.kbko.qzz.io
📄 **License:** MIT — Source: https://github.com/khantbhoneko36-commits/dublab
## Features
- 🎬 **Video dubbing** — upload a video (≤ 10 min, ≤ 250 MB) or paste a link
(YouTube, TikTok, Instagram, Facebook, X, Vimeo, Bilibili…), download the dubbed MP4
- 🗣️ **Burmese + English voices** — Nara Mini local voices, free, no API key
- 🎙️ **Local transcription** — faster-whisper on your own machine
- 🌏 **Translation** — Gemini API (free tier works), with NLLB local fallback
- ⏱️ **Sync engine that never cuts a sentence** — speech is time-fitted up to a
capped speed-up (1.65×); overflow cascades into the next slot
- 💧 **Credit watermark** — small lower-right watermark (configurable text)
- 🛡️ **Abuse protection built in** — job queue cap, per-IP upload rate limit,
24 h result retention
## Quick start
Requirements: Python 3.11+, `ffmpeg`, and a free
[Gemini API key](https://aistudio.google.com/apikey).
```bash
git clone https://github.com/khantbhoneko36-commits/dublab.git
cd dublab
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # put your GEMINI_API_KEY in .env
set -a; source .env; set +a
waitress-serve --listen=127.0.0.1:8092 --threads=8 app:app
```
Open http://127.0.0.1:8092, drop in a short video, pick a direction and a
voice, and download the dubbed result.
### Docker
```bash
docker build -t dublab .
docker run -d --name dublab -p 127.0.0.1:8092:8092 --env-file .env dublab
```
> ⚠️ Dependency pins matter: `requirements.txt` pins `av==15.1.0` and
> `huggingface_hub<1` — newer versions break faster-whisper 1.2.x. The Nara
> Mini voices (Shoon + Ko Banyar) are downloaded at Docker build time from
> `YeeNyunn/nara-mini-v1` on the Hub.
## Configuration
| Variable | Required | Purpose |
|---|---|---|
| `GEMINI_API_KEY` | ✅ | Translation (and TTS fallback if no TTS keys set) |
| `GEMINI_TTS_API_KEYS` | — | Comma-separated keys for Gemini TTS rotation |
| `DUBLAB_ADMIN_KEY` | — | Password for the `/admin` reviews page |
## မြန်မာဘာသာ အကျဉ်းချုပ်
DubLab ဆိုတာ ဗီဒီယိုအတိုတွေကို **အင်္ဂလိပ် ↔ မြန်မာ** အပြန်အလှန်
အသံသွင်း (dub) လုပ်ပေးတဲ့ open-source web app တစ်ခုပါ။ ဗီဒီယိုတင်လိုက်ရင်
စကားပြောကို စာသားအဖြစ်ပြောင်း၊ ဘာသာပြန်၊ မြန်မာအသံ (ကျား/မ) နဲ့
အသံအသစ်ဖော်ပြီး၊ စာကြောင်းမပြတ်အောင် အချိန်ကိုက် ညှိပေးကာ
dub လုပ်ပြီးသား MP4 ပြန်ချပေးပါတယ်။
## Maintainer
Built and maintained by **Khant Bhone Ko** —
sole maintainer: releases, issue triage, and the production deployment.
More projects: https://pro.kxant.org