F5-TTS Uzbek (experimental)

F5-TTS F5TTS_v1_Base (335M) fine-tuned for Uzbek (Latin script). This is a first experiment, not a polished release.

Training

  • Base: SWivid/F5-TTS F5TTS_v1_Base (English/Chinese). The pretrained vocabulary is unchanged: every character in the Uzbek transcripts is already in it.
  • Data: 14.6 hours, 12,327 clips from two speakers (one female, one male, both Samarqand region) of the crowd-sourced UzbekVoice corpus. Both were picked for being the cleanest among the biggest contributors. About 73% of the clips were not peer-reviewed, and transcripts were not verified against the audio.
  • Text: สป and โ€™ are folded into a plain ', so o'zbek and ma'no use the same apostrophe. Use plain ' in your input.
  • Schedule: 55,000 updates, bf16, 8-bit Adam, lr 2e-5, ~2 minutes of audio per update, on a single 8 GB RTX 4060 with activation checkpointing. The checkpoint is the EMA weights.
  • Uses the standard F5-TTS architecture and vocoder (Vocos); no code changes are needed.

Usage

F5-TTS clones the voice from a reference clip, so you supply one (a few seconds of clean speech plus its exact transcript). Install f5-tts, then:

from huggingface_hub import hf_hub_download
from f5_tts.api import F5TTS

ckpt = hf_hub_download("mrmuminov/f5-tts-uzbek", "model.safetensors")
vocab = hf_hub_download("mrmuminov/f5-tts-uzbek", "vocab.txt")

tts = F5TTS(model="F5TTS_v1_Base", ckpt_file=ckpt, vocab_file=vocab)
wav, sample_rate, _ = tts.infer(
    ref_file="reference.wav",
    ref_text="Transcript of the reference clip.",
    gen_text="Assalomu alaykum, bugun havo juda yaxshi.",
    nfe_step=16,
    file_wave="out.wav",
)

speak.py is the small script used to produce the samples (it expects local reference clips).

Evaluation (small and informal)

I synthesised 14 sentences (seven per voice, nfe_step=16; 8 texts of held-out corpus clips plus 6 fresh sentences; the held-out clips were excluded from training, but the same sentence text may appear in other clips of the corpus) and transcribed them with a separate Uzbek ASR model: relaxed WER 10.8%, CER 1.8%. This is a rough intelligibility check on a tiny sample; some of the errors come from the ASR model itself. No MOS or speaker-similarity evaluation was done.

Speed on an RTX 4060 (8 GB), about 3 s utterances: real-time factor ~0.2โ€“0.3 at nfe_step=16, ~0.15โ€“0.2 at 8, ~0.6 at 32 (after warm-up). On CPU it was far from real-time (RTF ~8โ€“25 at 32 steps).

samples/ holds the 14 synthesised clips (female_* and male_*).

Limitations

  • Trained on two voices only. Other reference voices may sound less like the target or less stable.
  • Numbers, abbreviations and foreign words are not verbalised; spell them out.
  • Occasional dropped or substituted sounds (e.g. to'liq read as tunlik).
  • Quality is about intelligibility of short sentences; long text, prosody and naturalness were not tested.

License and responsible use

Released under CC BY-NC 4.0 (non-commercial), matching the F5-TTS v1 base weights, which were trained on non-commercial data (Emilia). The UzbekVoice corpus has no license stated in the copy used here, so check its terms before any use beyond research.

The model was fine-tuned on the voices of two real contributors. Do not use it to impersonate them or anyone else without consent, and disclose that speech is synthetic.

Downloads last month
8
Safetensors
Model size
0.3B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for mrmuminov/f5-tts-uzbek

Base model

SWivid/F5-TTS
Finetuned
(153)
this model