whatmodel.sh / tts / Fasih-TTS-V1
Fasih-TTS-V1
↗ share
+ contribute
Fasih-TTS-V1 is an open-weights text-to-speech model from NightPrince (Yahya Elnawasany), released July 2026. Its published size is 0.467B parameters. Licence: coqui-public-model-license.
Catalogue identity notes
NightPrince/Fasih-TTS-V1 @ 348f715a4fe52fd4dd39240f420ace2ea29150a3 (created 2026-07-07): single-speaker Modern Standard Arabic TTS, fine-tuned from coqui/XTTS-v2 (GPT only), voice shipped as precomputed latents; weights under the Coqui Public Model License (non-commercial). model.pth was slimmed to inference-only weights on 2026-10-02; the card states all 963 tensors and the generated audio are bit-identical to the original. Arena identity: Arabic TTS Arena model_id fasih_tts_v1, model_url https://huggingface.co/NightPrince/Fasih-TTS-V1 (wrapper models/fasih_tts_v1.py loads this repo). Distinct from xtts-v2 (base).
Model information sources
Release date ↗ · Weights licence ↗ · Parameter count ↗
Card: 'Fasih has 466.9M parameters' (GPT 441.0M fine-tuned + HiFi-GAN decoder 25.9M).
Score within the Vapi Humanness · Bradley–Terry rating, 2026-09-25 snapshot comparison set only.
$ how it compares
The text-to-speech models ranked either side of Fasih-TTS-V1, out of 148 with a score.
| # | model | score | where |
|---|---|---|---|
| 65 | 55±9 | comparison only | |
| 66 | 55±3 | local | |
| 67 | Fasih-TTS-V1 | 55±10 | local |
| 68 | 54±3 | local | |
| 69 | 54±10 | local |
see all text-to-speech models · find the ones that fit your machine
$ what it's good at
other tests1 not in a task · 62% of its score
| test | result | vs the others in its run | counts |
|---|---|---|---|
| Arabic TTS Arena · community blind A/B rating, 2026-09-24 snapshot | 1049.8 ✎ | ▂▂··▃·█▅···▂ beats 6/12 | 62% |
$ where to run it
Other ways to run it
- Run it as published · needs ~1.88 GB, NVIDIA only · from huggingface.co/NightPrince (official)
pip install "coqui-tts==0.27.5" torch torchaudio torchcodec && python -c "import torch, soundfile as sf; from huggingface_hub import snapshot_download; from TTS.tts.configs.xtts_config import XttsConfig; from TTS.tts.models.xtts import Xtts; path = snapshot_download('NightPrince/Fasih-TTS-V1'); config = XttsConfig(); config.load_json(f'{path}/config.json'); model = Xtts.init_from_config(config); model.load_checkpoint(config, checkpoint_path=f'{path}/model.pth', vocab_path=f'{path}/vocab.json', use_deepspeed=False); model.cuda().eval(); lat = torch.load(f'{path}/speaker_latents.pt', map_location='cuda'); out = model.inference('السَّلَامُ عَلَيْكُمْ وَرَحْمَةُ اللَّهِ', 'ar', lat['gpt_cond_latent'], lat['speaker_embedding'], temperature=0.65, repetition_penalty=2.0, enable_text_splitting=False); sf.write('fasih.wav', out['wav'], 24000)"
Official weights and documentation: huggingface.co/NightPrince ↗
$ how the score was worked out · Arabic TTS Arena (Navid AI) ·… 62%
Each result implies a score on its own, after adjusting for how hard its test is and who ran it. The score is their weighted average, with a small pull toward the middle for thinly tested models. Each test's weight is its counts column above; here it's added up by who ran the tests. How it works
| source | results | share of the score |
|---|---|---|
| 1 | 62% | |
| prior · pull toward the middle | 38% | |
| weighted average | = 54.7 |
$ improve this page
Use a short GitHub form or edit the data through a pull request. Every number needs a source; here's which ones we can use.
data updated · sources and licences · json