AI Intern · Tiximax JSCJul – Aug 2026
AutoDub Studio: short-video dubbing
A solo-built pipeline that transcribes, translates and re-voices short videos into 12+ languages, with desktop and web interfaces.
- 12+
- target languages
- 5
- automated pipeline stages
- 2
- UIs: desktop and web
- 100%
- built solo
Context
The company wanted to reuse short Douyin and TikTok videos for its markets abroad. Doing that by hand means downloading, transcribing, translating, recording a voice-over that fits the original timing and remuxing, for every video and every language.
What I did
I built this alone (all commits in the repository are mine).
- Restructured the code into a package with separate config, downloaders, services and media modules, and one workspace folder for all output.
- Extended the pipeline from Vietnamese only to 12+ target languages, including Taglish, Japanese, Korean, Indonesian and Swiss variants of German, French and Italian.
- Loaded the voice list from Edge-TTS at runtime and added a fallback when a locale has no voice (for example it-CH falls back to it-IT).
- Added an all-in-one tab that runs every step automatically, a FastAPI web UI next to the CustomTkinter desktop app, and fixed a 44.1 kHz audio resampling bug.
How it works
- Download the source video from Douyin or TikTok.
- Transcribe locally with Whisper into an SRT file.
- Translate with Gemini, keeping a one-to-one mapping to the original timeline.
- Synthesize speech with Edge-TTS, adjusting speaking rate and grouping short lines so the voice fits each segment.
- Mux the new audio with FFmpeg; optionally run Wav2Lip and GFPGAN for lip-sync.
Results
- 12+ target languages, up from one.
- Two interfaces: desktop (CustomTkinter) and web (FastAPI).
- Each step starts automatically when the previous one succeeds, and a running job can be cancelled.
What I'd do next
I did not measure output quality: there is no translation accuracy or voice-quality score, and the project has only one test file. Before calling it production-ready I would add tests for each pipeline stage and a small human-rated sample per language to see where timing or translation breaks down.
AutoDub Studio: lồng tiếng video ngắn
Pipeline tôi làm một mình: trích lời, dịch và lồng tiếng lại video ngắn sang 12+ ngôn ngữ, có giao diện desktop và web.
- 12+
- ngôn ngữ đích
- 5
- bước pipeline tự động
- 2
- giao diện: desktop và web
- 100%
- tự làm một mình
Bối cảnh
Công ty muốn tận dụng video ngắn trên Douyin và TikTok cho các thị trường nước ngoài. Làm tay thì với mỗi video, mỗi ngôn ngữ đều phải tải về, trích lời, dịch, thu giọng khớp nhịp gốc rồi ghép lại.
Phần việc của tôi
Tôi làm một mình (toàn bộ commit trong repo là của tôi).
- Tổ chức lại code thành package với các module cấu hình, tải video, dịch vụ và xử lý media riêng, mọi output gom về một thư mục workspace.
- Mở rộng từ chỉ tiếng Việt lên 12+ ngôn ngữ đích, gồm Taglish, Nhật, Hàn, Indonesia và các biến thể Thuỵ Sĩ của tiếng Đức, Pháp, Ý.
- Lấy danh sách giọng trực tiếp từ Edge-TTS và thêm fallback khi locale không có giọng (ví dụ it-CH chuyển sang it-IT).
- Thêm tab chạy toàn bộ pipeline tự động, giao diện web bằng FastAPI bên cạnh app desktop CustomTkinter, sửa lỗi resample audio 44,1 kHz.
Cách hoạt động
- Tải video gốc từ Douyin hoặc TikTok.
- Trích lời bằng Whisper chạy local, xuất file SRT.
- Dịch bằng Gemini, giữ khớp một-một với timeline gốc.
- Đọc bằng Edge-TTS, tự chỉnh tốc độ nói và gộp câu ngắn để giọng vừa từng đoạn.
- Ghép audio mới bằng FFmpeg; tuỳ chọn chạy Wav2Lip và GFPGAN để khớp khẩu hình.
Kết quả
- 12+ ngôn ngữ đích, từ chỗ chỉ có một.
- Hai giao diện: desktop (CustomTkinter) và web (FastAPI).
- Mỗi bước tự chạy khi bước trước thành công, có thể huỷ tiến trình đang chạy.
Nếu làm tiếp
Tôi chưa đo chất lượng đầu ra: chưa có điểm độ chính xác bản dịch hay chất lượng giọng, và dự án mới có một file test. Trước khi coi là sẵn sàng dùng thật, tôi sẽ thêm test cho từng bước và cho người chấm một mẫu nhỏ ở mỗi ngôn ngữ để biết chỗ nào lệch nhịp hoặc dịch sai.