You are here

autodub-local 2.0: Local and Cloud-Assisted Video Dubbing

Translate this articleSpeak this article

I had already introduced my first version of autodub-local on this blog in this Italian post. That first release was mainly an experiment: a Bash-based workflow to dub videos locally, without depending on cloud services. Version 2 is now ready, and it is a much more complete tool.

The goal is still the same: take a video file, transcribe the speech, translate it, generate a new spoken track in the target language, and mux it back into an MP4 file. It is designed especially for talks, interviews, webinars, lectures, meetings, and long recordings where perfect lip-sync is not the main requirement, but intelligible and reasonably timed dubbing matters.

The new version no longer assumes a default input file or a default language pair. The user must explicitly choose the input file, source language, target language, translation method, and TTS engine. The input can be any format readable by ffmpeg, not only MP4: for example WebM, MKV, MOV, or audio-only files can also be processed.

One of the biggest changes is that autodub-local 2.0 can now be used in two broad modes. The fully local mode uses local models for transcription, diarization, translation, LLM-based text adaptation, and speech generation. This is the privacy-oriented path, but it needs a suitable machine, many gigabytes of disk space, and patience.

There is also a cloud-assisted mode, enabled with --only-cloud, for users who do not have the hardware or disk space needed for a fully local run. In that mode the heavy AI stages can use online services for transcription, diarization, and LLM adaptation, while Microsoft Edge TTS can generate natural-sounding voices without a local GPU. This is not meant to replace the local mode for privacy-sensitive use cases, but it makes the program practical on older computers.

Version 2 also adds better voice handling. It supports multiple TTS engines: XTTS for local voice cloning, Kokoro for local non-cloning voices, and Microsoft Edge TTS for online neural voices. Speakers can be detected automatically, and voices can be mapped explicitly to speakers when the user wants precise control. The script can also list and sample available voices, which makes it easier to choose a voice before running a long dubbing job.

Another important improvement is timing. Translated text often does not fit the original speech window, especially when translating between languages with different sentence length and speaking rhythm. autodub-local 2.0 can use an LLM to shorten or adapt translated lines when they are too long, and it applies only limited time-stretching to avoid damaging the generated voice too much.

The command-line interface has been cleaned up as well. There is now a proper --help screen, a clean command for removing temporary per-video work folders, checkpoint/resume support, explicit CPU-only mode with --no-gpu, and clearer options for ASR, diarization, translation, TTS, speaker count, voice mapping, and LLM adaptation.

The repository includes example dubbed outputs for comparison, generated with both the cloud-assisted workflow and the fully local workflow. On my old, underclocked test machine, the fully local workflow was about 9.5 times slower than the cloud-assisted one on the short test video. That is a reasonable tradeoff: local processing is heavier, but it avoids sending the media content to cloud services.

autodub-local remains free software, released under CC0. The project is available on GitHub: https://github.com/jsfan3/autodub-local.

Version 2 is not a magic dubbing studio. Quality still depends on the original audio, the transcription and diarization quality, the translation backend, the chosen TTS engine, and the timing constraints of the source video. But compared with version 1, it is far more flexible, more automated, and much more usable in real workflows.

(August 6, 2026)

Classificazione: