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
57
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
(154)
this model