mlmihjaz/chatterbox-tts-dhivehi
ދިވެހި ވޮއިސް ކްލޯން · Dhivehi Voice Clone
Upload a short Dhivehi voice clip, type Dhivehi text, and hear the text spoken in that voice. Zero-shot — nothing is trained per voice.
How it works
Built on `alakxender/chatterbox-tts-dhivehi`, a Dhivehi finetune of Resemble AI's Chatterbox. Only the T3 stage (text → speech tokens) was finetuned for Thaana; the voice encoder and S3Gen decoder are stock, and those are the two stages that carry speaker identity. That is why an arbitrary reference clip clones cleanly while the model still reads Dhivehi.
Three T3 checkpoints ship with the model — kn_cbox, shaafiu_cbox, f01_cbox. They change pronunciation and rhythm, not who the output sounds like. Switching checkpoints swaps only the T3 tensors, so it takes a second rather than a full reload.
Getting a good clone
- 7–12 seconds of clean, continuous Dhivehi speech. The model reads at most the first 10 seconds (6s for the speech prompt, 10s for the timbre reference), so a long file buys nothing and front-loaded silence actively costs you.
- One speaker, no music, no room echo, no clipping.
- Preview what the model hears shows the trimmed and levelled clip actually used.
Settings
Long passages are split on sentence boundaries and synthesised chunk by chunk against one set of cached reference conditionings, so the voice does not drift between sentences. Chunks are stitched with a short gap.
Files
app.py— Gradio UI and the ZeroGPU synthesis pathvoice_utils.py— reference clip trimming, levelling and cachingdv_text.py— Dhivehi normalisation (viadv-normalizer) and sentence chunkingchatterbox_dhivehi.py— vendored loader that resizes T3 to the 2000-token Dhivehi vocab
Notes
Output carries the inaudible Perth watermark that Chatterbox applies to everything it generates. Only clone voices you have permission to use.
