Automation4 min read

Running a Bengali voice and video pipeline on free Kaggle GPUs

By Mitu Akter Monita · September 24, 2026

I did not train a voice model from scratch. I picked one, and then spent most of my time on everything around it.

People ask how the Bengali voice-overs and videos on my projects get made, and the honest answer is that I did not train a voice model from scratch. I picked OmniVoice, an open model from Xiaomi released under Apache 2.0. It clones a voice from a short reference clip and it supports Bengali, which was the deciding factor for me. The work I actually did was everything around it.

The first problem was the hardware. Kaggle gives you a GPU for a limited session and takes the machine back when the session ends. So I split the job in two. The GPU session only does the part that needs a GPU, which is generating speech from the script in the cloned voice. Alignment, rendering and assembly happen afterwards on the CPU side. Keeping the GPU phase short and narrow means no session time gets spent on work that never needed it.

Model weights were the second problem. Pulling them down at the start of every session was slow and easy to break, so the weights and the reference audio now live in Kaggle Datasets that persist between runs. A new session starts with the files already sitting there.

The third piece is the one I would copy first if I were starting again: resuming. Scripts are processed in batches, and after every batch the pipeline writes its progress to a small state.json file. If a session dies halfway, the next one reads that file and continues from the last finished batch instead of starting over. It is a small piece of code, and it changes how the whole thing feels to run, because a crash stops being a disaster.

Once the audio exists, WhisperX does forced alignment, which gives me the timing of every word. Remotion takes those timings and renders captions and scenes from code, so a change in the script means running a build again, not dragging things around on a timeline.

None of this is glamorous. Most of the pipeline is bookkeeping: where files live, what state a batch is in, what happens when a step fails. If you are building something similar, spend your first week on the boring parts. The model is the easiest piece to swap later.