---
license: other
license_name: coqui-public-model-license
license_link: https://coqui.ai/cpml
language:
- ar
library_name: coqui
pipeline_tag: text-to-speech
base_model: coqui/XTTS-v2
datasets:
- NightPrince/Arabic-professional-original-voice
- NightPrince/Fasih-TTS-Benchmark
tags:
- text-to-speech
- tts
- arabic
- arabic-tts
- fusha
- msa
- xtts
- xtts-v2
- speech-synthesis
- voice-cloning
- coqui
metrics:
- cer
model-index:
- name: Fasih-TTS-V1
results:
- task:
type: text-to-speech
name: Text-to-Speech (Arabic MSA)
dataset:
name: Arabic Professional Original Voice
type: NightPrince/Arabic-professional-original-voice
metrics:
- type: cer
value: 1.3
name: CER (%) — held-out synthesis vs Whisper-large-v3
- type: cer
value: 1.8
name: Human-recording ASR floor (%)
---
# Fasih-TTS-V1 — Arabic (MSA / Fusha) Professional Male TTS
**▶ Try the live demo (ZeroGPU): https://huggingface.co/spaces/NightPrince/Fasih-TTS**
**Fasih** (فَصِيح, *"eloquent"*) is a single-speaker **Modern Standard Arabic** text-to-speech
model with a **professional male "news-anchor" voice**, fine-tuned from
[Coqui XTTS v2](https://huggingface.co/coqui/XTTS-v2). It voices the *"Muslim"* religious-Q&A
assistant, and reaches **human-level intelligibility** with **broadcast-grade consistency**.
## In the wild
- **[Arabic TTS Arena](https://huggingface.co/spaces/Navid-AI/Arabic-TTS-Arena)** — Fasih-TTS-V1
has been submitted for blind A/B voting against other Arabic TTS models.
PR: [Navid-Gen-AI/arabic-tts-arena#6](https://github.com/Navid-Gen-AI/arabic-tts-arena/pull/6)
(pending maintainer review at time of writing).
## Samples
| Greeting | Fiqh explanation |
|---|---|
| | |
| *السَّلَامُ عَلَيْكُمْ... أَنَا مُسْلِم، مُسَاعِدُكَ الصَّوْتِيُّ* | *الْوُضُوءُ شَرْطٌ لِصِحَّةِ الصَّلَاةِ...* |
---
## Capabilities
- **Human-level intelligibility** — **1.3% CER** (ASR-measured), matching the **1.8%** error
floor of the *original human recordings*. The synthetic voice is as understandable as the actor.
- **Broadcast consistency** — the same sentence synthesized **4× gave identical CER**, and across
24 stress generations there were **zero** autoregressive failures (no loops, skips, or early
cut-offs) — the classic XTTS weakness, eliminated.
- **True Fusha, correct iʿrāb** — trained on **fully-diacritized** text and paired with a built-in
**CATT** diacritizer, so even **bare, undiacritized** Arabic is pronounced correctly, case-endings
and all.
- **Production-ready text handling** — auto-expands **numbers to words**, applies a **sacred-term
pronunciation lexicon**, and **chunks long passages** — raw assistant text becomes speech-ready
in a single call.
- **Real-time and streaming** — **RTF ≈ 0.60**, streaming **first-audio ≈ 675 ms**, clean **24 kHz**
output — suitable for live conversational agents.
---
## Benchmarks
CER between the intended text and a **Whisper-large-v3** transcription of the synthesized audio
(both diacritics-stripped and orthography-normalized), judged against the ASR floor on the human
originals.
| Test set | Clips | Mean CER | Worst CER |
|----------|:----:|:--------:|:---------:|
| Varied MSA sentences | 8 | **1.3%** | 2.2% |
| Same sentence ×4 (variance) | 4 | **2.0%** | 2.0% |
| Long text (auto-chunked) | 2 | **0.8%** | 0.9% |
| Hard stress (numbers, lists, terms) | 6 | 2.1% | 8.2% |
| **Human originals (ASR floor)** | 8 | *1.8%* | *4.8%* |
| Efficiency (1× RTX 2080 Ti, FP32) | Value |
|--|--|
| Real-time factor | **~0.60** |
| Streaming time-to-first-audio | **~675 ms** |
| Output | 24 kHz mono |
---
## SILMA open-source Arabic TTS benchmark
Evaluated on [SILMA's Open-Source Arabic TTS Benchmark](https://huggingface.co/spaces/silma-ai/opensource-arabic-tts-benchmark)
(MSA, 10 fixed sentences), scored by **two independent ASR judges** — Whisper-large-v3 and
NVIDIA NeMo Arabic FastConformer — plus **UTMOS** naturalness. Two judges keep the ranking honest.

| Model | WER · Whisper | WER · NeMo | UTMOS |
|--|:--:|:--:|:--:|
| **Fasih-TTS-V1 (ours)** | **6.5** | **2.5** | 3.16 |
| xtts (base) | 10.3 | 2.5 | 2.99 |
| chatterbox | 12.8 | 5.4 | 3.20 |
| silma_tts | 11.1 | 5.8 | 3.15 |
| omnivoice | 15.3 | 7.3 | 3.62 |
| habibi_specialized | 21.9 | 23.3 | 2.33 |
**Fasih is top-tier on intelligibility** — the best-or-tied lowest WER across *both* ASR judges
(tied with base XTTS at 2.5% on the stronger Arabic ASR, NeMo). On **naturalness (UTMOS) it is
mid-pack (#3)** — the smoothest model (omnivoice) is also the least accurate, and Fasih is tuned
toward pronunciation correctness, which is what matters most for a religious agent. WER measures
intelligibility, not naturalness; SILMA's own benchmark is a **human auditory** comparison.
Full per-clip provenance and all clips live in the companion dataset
**[NightPrince/Fasih-TTS-Benchmark](https://huggingface.co/datasets/NightPrince/Fasih-TTS-Benchmark)**.
Reproduce: `scripts/silma_compare.py` (Whisper), `scripts/nemo_compare.py` (NeMo),
`scripts/utmos_compare.py` (UTMOS).
---
## Architecture

---
## Quick start
```python
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()
gpt_cond, spk = model.get_conditioning_latents(audio_path=["reference.wav"])
out = model.inference("السَّلَامُ عَلَيْكُمْ وَرَحْمَةُ اللَّهِ", "ar", gpt_cond, spk,
temperature=0.65, repetition_penalty=2.0)
# out["wav"] -> 24 kHz mono waveform
```
Feed **diacritized** Fusha for correct iʿrāb. The included front-end (diacritization, number
expansion, sacred-term lexicon, ≤166-char chunking) turns raw text into speech-ready input
automatically.
---
## Intended use and ethics
**In scope:** voicing **MSA / Fusha explanatory** religious and educational content that has been
authored or reviewed by a qualified human.
**Out of scope / prohibited**
- **Qur'anic recitation** — requires *tajwīd* and human reciters; route āyāt to real audio.
- **Autonomous religious rulings** — the model only voices text; it does not verify content.
- **Impersonation / misinformation** — do not synthesize false statements in this voice.
---
## Training
Fine-tuned from **`coqui/XTTS-v2`** on **`NightPrince/Arabic-professional-original-voice`**
(1297 clips, ~2.4 h, one male speaker, fully diacritized — plain transcripts diacritized with
**CATT**, verified ≈ human gold). **FP32** (Turing has no bf16; XTTS's GPT is unstable under FP16
autocast), single RTX 2080 Ti, batch 1 × grad-accum 24, gradient checkpointing, LR 5e-6.
**Best validation loss: 2.622.**
## Limitations
- Feed **diacritized** text for correct iʿrāb (the front-end handles it).
- **Number gender-agreement** (`خمسة` vs `خمس`) is not always correct.
- Source audio is **128 kbps MP3** — a soft ceiling on fidelity.
- ~2.4 h single-speaker; auto-diacritization of 371 training clips is ~95%+ (not fully human-verified).
## License
Fine-tuned from **Coqui XTTS v2** under the **Coqui Public Model License (CPML)** —
**non-commercial**, attribution required; derivatives inherit these terms. Diacritization: **CATT** (MIT).
## Copyright
Copyright 2026 **Yahya Elnawasany (NightPrince)**. The Fasih-TTS-V1 model, its voice and generated
audio, and the "Fasih / فَصِيح" name and branding are copyright the author. The model is distributed
under the **Coqui Public Model License** (non-commercial, attribution); the accompanying code is MIT.
Do not use the model or its outputs to impersonate, misrepresent, or generate misleading religious
content. Full terms: `COPYRIGHT` and `THIRD_PARTY_NOTICES.md` in the repository.
## Source and citation
Full pipeline, evaluation and serving code: **https://github.com/NightPrinceY/Fasih-TTS-V1**
Author and portfolio: **Yahya Elnawasany (NightPrince)** — https://nightprincey.github.io/Portfolio-App/
```bibtex
@software{fasih_tts_v1_2026,
author = {Yahya Elnawasany (NightPrince)},
title = {Fasih-TTS-V1: Arabic Fusha Professional-Male Text-to-Speech},
year = {2026},
url = {https://github.com/NightPrinceY/Fasih-TTS-V1},
note = {Fine-tuned from Coqui XTTS v2}
}
```