---
language:
- ro
license: cc-by-nc-4.0
tags:
- text-to-speech
- f5-tts
- romanian
- tts
- speech-synthesis
- voice-cloning
pipeline_tag: text-to-speech
datasets:
- eduardem/romanian-speech-v1
base_model: SWivid/F5-TTS
---
# F5-TTS Romanian
Fine-tuned [F5-TTS v1 Base](https://github.com/SWivid/F5-TTS) (335M params, 22-layer DiT) for Romanian text-to-speech. **5.1% WER** across 5 voices on 18 test sentences, measured via Whisper large-v3.
**[Demo & Audio Samples](https://eduardm.codeberg.page/f5-tts-romanian/)** | **[Source Code](https://codeberg.org/eduardm/f5-tts-romanian)**
## Audio Samples
**Costel** (male, literary narration) — 5.2% WER
> "Copiii se jucau fericiți in gradina plina de flori colorate."
**Georgel** (male, solemn delivery) — 2.5% WER
> "Ștefan cel Mare a construit manastiri și cetați in intreaga Moldova."
**Dorel** (male, conversational) — 5.2% WER
> "Romania este o țara frumoasa cu munți inalți și campii intinse."
**Marioara** (female, expressive) — 6.3% WER
> "Buna ziua, ma numesc Alexandru și sunt din București."
**Lacramioara** (female, broadcast) — 6.4% WER
> "Profesorul a explicat cu rabdare lecția dificila de matematica."
## Quick Start
### Installation
```bash
pip install f5-tts
```
### Download
```bash
# Download the full model
huggingface-cli download eduardem/f5-tts-romanian --local-dir f5-tts-romanian
# Or download just the checkpoint
python -c "
from huggingface_hub import hf_hub_download
hf_hub_download('eduardem/f5-tts-romanian', 'model_235000.pt', local_dir='.')
hf_hub_download('eduardem/f5-tts-romanian', 'vocab.txt', local_dir='.')
"
```
### Inference
```python
import soundfile as sf
from f5_tts.api import F5TTS
# Load model
tts = F5TTS(
model_type="F5TTS",
ckpt_file="model_235000.pt",
vocab_file="vocab.txt",
)
# Generate speech using one of the included reference voices
wav, sr, _ = tts.infer(
ref_file="reference_voices/costel.wav",
ref_text="Și totuși mă văd obligat să vă mai povestesc încă ceva.",
gen_text="Romania este o țara frumoasa cu munți inalți și campii intinse.",
nfe_step=64,
cfg_strength=2.0,
sway_sampling_coef=-1.0,
seed=42,
)
sf.write("output.wav", wav, sr)
```
### Voice Cloning
Use any 5-15 second Romanian audio clip as a reference:
```python
wav, sr, _ = tts.infer(
ref_file="your_reference.wav",
ref_text="Transcription of the reference audio.",
gen_text="Text you want the model to speak.",
nfe_step=64,
cfg_strength=2.0,
sway_sampling_coef=-1.0,
seed=42,
)
sf.write("cloned_output.wav", wav, sr)
```
### Generation Parameters
| Parameter | Value | Description |
|-----------|-------|-------------|
| `nfe_step` | 64 | Number of function evaluations (ODE solver steps). Higher = better quality, slower. |
| `cfg_strength` | 2.0 | Classifier-free guidance strength. Controls adherence to text. |
| `sway_sampling_coef` | -1.0 | Sway sampling coefficient for noise schedule. |
| `seed` | varies | Random seed. Different seeds produce different prosody/intonation. |
The F5-TTS default ODE method is `midpoint`. The `generation_settings.json` file included in this repo contains the exact seed and parameters used for every showcase sample, enabling full reproducibility.
## Voices
| Name | WER | Perfect | Description |
|------|-----|---------|-------------|
| Costel | 5.2% | 13/18 | Male, literary narration style (20k training clips) |
| Georgel | 2.5% | 16/18 | Male, solemn measured delivery (16k training clips) |
| Dorel | 5.2% | 13/18 | Male, conversational style (3k training clips) |
| Marioara | 6.3% | 11/18 | Female, expressive storytelling (19k training clips) |
| Lacramioara | 6.4% | 11/18 | Female, clear broadcast voice (3.7k training clips) |
Reference audio for each voice is included in `reference_voices/`.
## Training
### Dataset
[eduardem/romanian-speech-v1](https://huggingface.co/datasets/eduardem/romanian-speech-v1) — 48,401 clips (~112 hours), 5 speakers, 24kHz mono WAV.
### Infrastructure
RunPod RTX 5000 Ada (32GB VRAM), PyTorch 2.4.1+cu124, bf16 precision.
### Configuration
| Parameter | Value |
|-----------|-------|
| Base model | F5-TTS v1 Base (335M, 22-layer DiT) |
| Batch size | 4,000 frames/GPU |
| Grad accumulation | 4 |
| Learning rate | 7.5e-5 |
| Warmup | 2,000 steps |
| Epochs | 100 (~235K updates) |
| Tokenizer | Custom, 2,550 tokens (extended with Romanian diacritics) |
### Critical Details
- **Vocab extension**: Added 5 uppercase Romanian diacritics (Ă, Ș, Ț, „, ") to the default vocab. The trainer was patched to resize embedding weights when vocab size differs from checkpoint.
- **Tokenizer type**: Must use `custom` (not `char`) to match the extended vocab.
- **Full fine-tune**: All 335M parameters trained (no LoRA/adapter).
## Evaluation
WER measured via Whisper large-v3 on Romanian test sentences. Early checkpoints evaluated on 15 sentences with a single voice. Final evaluation: 18 sentences across all 5 voices with optimized generation parameters (seed search, midpoint ODE, 64 NFE steps).
| Step | WER | Notes |
|------|-----|-------|
| 15,000 | 17.4% | First checkpoint |
| 75,000 | 13.0% | Early best |
| 150,000 | 13.9% | |
| 195,000 | 12.3% | Best single-speaker |
| 230,000 | 11.8% | Best raw single-speaker |
| **235,000** | **5.1%** | **Final: 5 voices, optimized generation** |
## Model Files
| File | Size | Description |
|------|------|-------------|
| `model_235000.pt` | 5.0 GB | Fine-tuned checkpoint (step 235,000) |
| `vocab.txt` | 12 KB | Extended vocabulary (2,550 tokens) |
| `generation_settings.json` | 88 KB | Exact parameters for every showcase sample |
| `reference_voices/` | ~2 MB | 5 reference audio clips (one per voice) |
| `samples/` | ~45 MB | 90 generated samples (18 sentences x 5 voices) |
## All Samples with Generation Settings
Every sample below can be reproduced exactly using the listed parameters. All samples use `cfg_strength=2.0`, `sway_sampling_coef=-1.0`, and `pad_trick=true`. The full `generation_settings.json` file is included in this repo.
### Costel
**1.** Țara românească și-a păstrat tradițiile străvechi de-a lungul secolelor.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**2.** Ștefan cel Mare a construit mănăstiri și cetăți în întreaga Moldovă.
ODE: `midpoint` | NFE: `64` | Seed: `1234` | WER: **9.1%**
**3.** În această dimineață, bătrânul pescar și-a pregătit undițele pentru pescuit.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**4.** Fișierele și rețelele informatice sunt esențiale în științele moderne.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**5.** Așezările țărănești din câmpia Bărăganului sunt împrăștiate printre lanuri.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**6.** Bună ziua, mă numesc Alexandru și sunt din București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**7.** Bună ziua, mă numesc Alexandra și sunt din Cluj-Napoca.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**8.** România este o țară frumoasă cu munți înalți și câmpii întinse.
ODE: `midpoint` | NFE: `64` | Seed: `2024` | WER: **0%**
**9.** Copiii se jucau fericiți în grădina plină de flori colorate.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**10.** Profesorul a explicat cu răbdare lecția dificilă de matematică.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**11.** Această carte reprezintă o contribuție importantă la literatura contemporană.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**12.** S-a suit capra pe piatră, piatra a crăpat în patru, crăpai-ar capul caprei negre în patru cum a crăpat și piatra în patru.
ODE: `midpoint` | NFE: `64` | Seed: `7777` | WER: **8.7%**
**13.** Un vultur stă pe pisc cu un pix în plisc.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**14.** Sinucisul asasin Silică se suise simandicos sus pe scândura scăriței.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **20.0%**
**15.** Să sugi sucul socului sacru susține sasul sesios.
ODE: `midpoint` | NFE: `64` | Seed: `12345` | WER: **12.5%**
**16.** Bucură-te de bucuria Bucuroaiei cum s-a bucurat și ea de bucuria lui Bucurel când a venit de la București.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**17.** Ce-ntâmplare întâmplăreață s-a-ntâmplat în tâmplărie, un tâmplar din întâmplare s-a lovit cu tâmpla-n cap.
ODE: `midpoint` | NFE: `64` | Seed: `7777` | WER: **42.9%**
**18.** Cărămidarul cărămidărește cu cărămida cărămidarului din cărămidărie.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
---
### Georgel
**1.** Țara românească și-a păstrat tradițiile străvechi de-a lungul secolelor.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**2.** Ștefan cel Mare a construit mănăstiri și cetăți în întreaga Moldovă.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**3.** În această dimineață, bătrânul pescar și-a pregătit undițele pentru pescuit.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**4.** Fișierele și rețelele informatice sunt esențiale în științele moderne.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**5.** Așezările țărănești din câmpia Bărăganului sunt împrăștiate printre lanuri.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**6.** Bună ziua, mă numesc Alexandru și sunt din București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**7.** Bună ziua, mă numesc Alexandra și sunt din Cluj-Napoca.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**8.** România este o țară frumoasă cu munți înalți și câmpii întinse.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**9.** Copiii se jucau fericiți în grădina plină de flori colorate.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**10.** Profesorul a explicat cu răbdare lecția dificilă de matematică.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**11.** Această carte reprezintă o contribuție importantă la literatura contemporană.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**12.** S-a suit capra pe piatră, piatra a crăpat în patru, crăpai-ar capul caprei negre în patru cum a crăpat și piatra în patru.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **8.7%**
**13.** Un vultur stă pe pisc cu un pix în plisc.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**14.** Sinucisul asasin Silică se suise simandicos sus pe scândura scăriței.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**15.** Să sugi sucul socului sacru susține sasul sesios.
ODE: `midpoint` | NFE: `64` | Seed: `5678` | WER: **0%**
**16.** Bucură-te de bucuria Bucuroaiei cum s-a bucurat și ea de bucuria lui Bucurel când a venit de la București.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**17.** Ce-ntâmplare întâmplăreață s-a-ntâmplat în tâmplărie, un tâmplar din întâmplare s-a lovit cu tâmpla-n cap.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **35.7%**
**18.** Cărămidarul cărămidărește cu cărămida cărămidarului din cărămidărie.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
---
### Dorel
**1.** Țara românească și-a păstrat tradițiile străvechi de-a lungul secolelor.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**2.** Ștefan cel Mare a construit mănăstiri și cetăți în întreaga Moldovă.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **9.1%**
**3.** În această dimineață, bătrânul pescar și-a pregătit undițele pentru pescuit.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**4.** Fișierele și rețelele informatice sunt esențiale în științele moderne.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**5.** Așezările țărănești din câmpia Bărăganului sunt împrăștiate printre lanuri.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**6.** Bună ziua, mă numesc Alexandru și sunt din București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**7.** Bună ziua, mă numesc Alexandra și sunt din Cluj-Napoca.
ODE: `midpoint` | NFE: `64` | Seed: `9999` | WER: **0%**
**8.** România este o țară frumoasă cu munți înalți și câmpii întinse.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**9.** Copiii se jucau fericiți în grădina plină de flori colorate.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**10.** Profesorul a explicat cu răbdare lecția dificilă de matematică.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**11.** Această carte reprezintă o contribuție importantă la literatura contemporană.
ODE: `midpoint` | NFE: `64` | Seed: `9999` | WER: **0%**
**12.** S-a suit capra pe piatră, piatra a crăpat în patru, crăpai-ar capul caprei negre în patru cum a crăpat și piatra în patru.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **8.7%**
**13.** Un vultur stă pe pisc cu un pix în plisc.
ODE: `midpoint` | NFE: `64` | Seed: `22222` | WER: **0%**
**14.** Sinucisul asasin Silică se suise simandicos sus pe scândura scăriței.
ODE: `midpoint` | NFE: `64` | Seed: `55555` | WER: **20.0%**
**15.** Să sugi sucul socului sacru susține sasul sesios.
ODE: `midpoint` | NFE: `64` | Seed: `88888` | WER: **12.5%**
**16.** Bucură-te de bucuria Bucuroaiei cum s-a bucurat și ea de bucuria lui Bucurel când a venit de la București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**17.** Ce-ntâmplare întâmplăreață s-a-ntâmplat în tâmplărie, un tâmplar din întâmplare s-a lovit cu tâmpla-n cap.
ODE: `midpoint` | NFE: `64` | Seed: `5678` | WER: **42.9%**
**18.** Cărămidarul cărămidărește cu cărămida cărămidarului din cărămidărie.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
---
### Marioara
**1.** Țara românească și-a păstrat tradițiile străvechi de-a lungul secolelor.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **11.1%**
**2.** Ștefan cel Mare a construit mănăstiri și cetăți în întreaga Moldovă.
ODE: `midpoint` | NFE: `64` | Seed: `2024` | WER: **9.1%**
**3.** În această dimineață, bătrânul pescar și-a pregătit undițele pentru pescuit.
ODE: `midpoint` | NFE: `64` | Seed: `66666` | WER: **0%**
**4.** Fișierele și rețelele informatice sunt esențiale în științele moderne.
ODE: `midpoint` | NFE: `64` | Seed: `3141` | WER: **0%**
**5.** Așezările țărănești din câmpia Bărăganului sunt împrăștiate printre lanuri.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **11.1%**
**6.** Bună ziua, mă numesc Alexandru și sunt din București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**7.** Bună ziua, mă numesc Alexandra și sunt din Cluj-Napoca.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**8.** România este o țară frumoasă cu munți înalți și câmpii întinse.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **9.1%**
**9.** Copiii se jucau fericiți în grădina plină de flori colorate.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**10.** Profesorul a explicat cu răbdare lecția dificilă de matematică.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**11.** Această carte reprezintă o contribuție importantă la literatura contemporană.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**12.** S-a suit capra pe piatră, piatra a crăpat în patru, crăpai-ar capul caprei negre în patru cum a crăpat și piatra în patru.
ODE: `midpoint` | NFE: `64` | Seed: `12345` | WER: **13.0%**
**13.** Un vultur stă pe pisc cu un pix în plisc.
ODE: `midpoint` | NFE: `64` | Seed: `1234` | WER: **0%**
**14.** Sinucisul asasin Silică se suise simandicos sus pe scândura scăriței.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **10.0%**
**15.** Să sugi sucul socului sacru susține sasul sesios.
ODE: `midpoint` | NFE: `64` | Seed: `7777` | WER: **0%**
**16.** Bucură-te de bucuria Bucuroaiei cum s-a bucurat și ea de bucuria lui Bucurel când a venit de la București.
ODE: `midpoint` | NFE: `64` | Seed: `4242` | WER: **0%**
**17.** Ce-ntâmplare întâmplăreață s-a-ntâmplat în tâmplărie, un tâmplar din întâmplare s-a lovit cu tâmpla-n cap.
ODE: `midpoint` | NFE: `64` | Seed: `1234` | WER: **50.0%**
**18.** Cărămidarul cărămidărește cu cărămida cărămidarului din cărămidărie.
ODE: `midpoint` | NFE: `64` | Seed: `7777` | WER: **0%**
---
### Lacramioara
**1.** Țara românească și-a păstrat tradițiile străvechi de-a lungul secolelor.
ODE: `midpoint` | NFE: `64` | Seed: `44444` | WER: **0%**
**2.** Ștefan cel Mare a construit mănăstiri și cetăți în întreaga Moldovă.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **9.1%**
**3.** În această dimineață, bătrânul pescar și-a pregătit undițele pentru pescuit.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**4.** Fișierele și rețelele informatice sunt esențiale în științele moderne.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**5.** Așezările țărănești din câmpia Bărăganului sunt împrăștiate printre lanuri.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**6.** Bună ziua, mă numesc Alexandru și sunt din București.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**7.** Bună ziua, mă numesc Alexandra și sunt din Cluj-Napoca.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
**8.** România este o țară frumoasă cu munți înalți și câmpii întinse.
ODE: `midpoint` | NFE: `64` | Seed: `2024` | WER: **0%**
**9.** Copiii se jucau fericiți în grădina plină de flori colorate.
ODE: `midpoint` | NFE: `64` | Seed: `777` | WER: **0%**
**10.** Profesorul a explicat cu răbdare lecția dificilă de matematică.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**11.** Această carte reprezintă o contribuție importantă la literatura contemporană.
ODE: `midpoint` | NFE: `64` | Seed: `42` | WER: **0%**
**12.** S-a suit capra pe piatră, piatra a crăpat în patru, crăpai-ar capul caprei negre în patru cum a crăpat și piatra în patru.
ODE: `midpoint` | NFE: `64` | Seed: `88888` | WER: **26.1%**
**13.** Un vultur stă pe pisc cu un pix în plisc.
ODE: `midpoint` | NFE: `64` | Seed: `3141` | WER: **10.0%**
**14.** Sinucisul asasin Silică se suise simandicos sus pe scândura scăriței.
ODE: `euler` | NFE: `32` | Seed: `7777` | WER: **10.0%**
**15.** Să sugi sucul socului sacru susține sasul sesios.
ODE: `midpoint` | NFE: `64` | Seed: `7777` | WER: **12.5%**
**16.** Bucură-te de bucuria Bucuroaiei cum s-a bucurat și ea de bucuria lui Bucurel când a venit de la București.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **5.3%**
**17.** Ce-ntâmplare întâmplăreață s-a-ntâmplat în tâmplărie, un tâmplar din întâmplare s-a lovit cu tâmpla-n cap.
ODE: `midpoint` | NFE: `64` | Seed: `66666` | WER: **42.9%**
**18.** Cărămidarul cărămidărește cu cărămida cărămidarului din cărămidărie.
ODE: `midpoint` | NFE: `64` | Seed: `123` | WER: **0%**
---
## Known Issues
- **Marioara**: Occasionally prepends "Heri"/"Harry" to the beginning of generated speech. This is training data bleeding from the Harry Potter audiobook source material.
- **Lacramioara**: Occasionally prepends "Iara pe Chichi" to the beginning of generated speech. This is reference audio text leaking — the reference clip contains "iara pe Chirica".
- Both issues can often be avoided by trying different random seeds.
## Limitations
- 5 voices only — voice cloning with unseen speakers may vary in quality.
- WER is measured via Whisper large-v3 transcription, which may itself introduce errors (e.g., expanding contractions, changing capitalization).
- The model inherits F5-TTS limitations including occasional word repetition or skipping on very long sentences.
- Non-commercial use only (CC BY-NC 4.0 from base model).
## License
- **Model weights**: CC BY-NC 4.0 (inherited from F5-TTS base model)
- **Training scripts**: MIT
## Attribution
- [F5-TTS](https://github.com/SWivid/F5-TTS) by Yushen Chen et al.
- [Whisper](https://github.com/openai/whisper) by OpenAI (evaluation)
- Dataset: Romanian audiobooks and broadcasts, transcribed with Whisper large-v3
## Citation
```bibtex
@misc{f5tts-romanian-2026,
title={F5-TTS Romanian: Fine-tuned F5-TTS for Romanian Text-to-Speech},
author={Eduard Moldoveanu},
year={2026},
url={https://huggingface.co/eduardem/f5-tts-romanian}
}
```
## Links
- [Demo page](https://eduardm.codeberg.page/f5-tts-romanian/) — interactive audio samples
- [Codeberg](https://codeberg.org/eduardm/f5-tts-romanian) — training scripts and code
- [Dataset](https://huggingface.co/datasets/eduardem/romanian-speech-v1) — Romanian Speech v1