Pashto Ghag TTS | پښتو غږ
Pashto Ghag TTS is an open-source multi-speaker Pashto text-to-speech model built from a curated 44.15-hour Pashto speech set covering 11 speakers.
This release is based on a YourTTS / VITS-style architecture and is intended as a strong public Pashto TTS baseline that can:
- synthesize Pashto from text
- generate speech in one of the included speaker identities
- serve as a better starting point for later single-speaker adaptation
This is not a final “one person only” voice model. It is a multi-speaker support model designed to improve Pashto pronunciation, coverage, and general TTS quality before a later speaker-specific adaptation stage.
Model Summary
- Architecture: YourTTS-style VITS
- Language: Pashto (
ps) - Output sample rate:
22050 Hz - Speakers:
11 - Best public checkpoint source:
best_model_192014
In this repo it is published asbest_model.pth - Training stop condition: early stopping after no meaningful eval-loss improvement
The name Pashto Ghag means Pashto Voice. It matches the STT release branding while keeping the project culturally grounded and recognizable.
What Was Trained
This model was trained on a curated Pashto multi-speaker dataset built from:
- one personal Pashto speaker set
- ten carefully selected Common Voice Pashto speakers
The goal was to create a stronger Pashto TTS base that learns from multiple speakers without collapsing into a single voice identity.
In concrete terms, the work behind this release was:
- build a curated Pashto multi-speaker dataset
- clean transcript text and remove unsupported-character issues
- train a multi-speaker YourTTS support model
- restart safely from the best stable checkpoint after an unstable run
- stop by early stopping and publish the best clean checkpoint
Training Data
Dataset scale:
| Split | Samples | Hours | Speakers |
|---|---|---|---|
| train | 49,977 | 42.463 | 11 |
| eval | 984 | 0.825 | 11 |
| test | 1,010 | 0.859 | 11 |
| total | 51,971 | 44.148 | 11 |
Dataset audit highlights:
- missing audio:
0 - duplicate rows:
0 - speaker overlap across splits: expected and allowed for this support-base design
Audio and text preparation highlights:
- grapheme-based Pashto text cleaner
22050 Hzaudio- clip duration roughly
1.5sto8.0s - silence trimming and clip-quality filtering
- weighted sampling by speaker
Best Checkpoint
The best model from the stable restart was:
best_model_192014
The training run then continued until early stopping and wrote a later final checkpoint, but the best public release is the earlier best model snapshot.
Run summary:
- best eval loss:
18.139206204334467 - total steps completed in the stable run:
229,178 - epochs completed:
73
Evaluation Notes
Unlike ASR, TTS does not have a single universally meaningful public metric like WER. The most important signals here are:
- stable finite training
- improving eval loss
- actual listening quality
This release finished cleanly without nan instability and produced working synthesis outputs across all 11 speakers.
Included Files
This repo includes the inference artifacts needed for practical local use:
best_model.pthconfig.jsonspeakers.pthmodel_se.pthconfig_se.jsonKNOWN_SPEAKERS.jsonhf_infer_pashto_ghag_yourtts.pyREADME.mdUSAGE.md
Known Speakers
This is a multi-speaker model. The repo includes a friendly speaker map in:
KNOWN_SPEAKERS.json
Use these labels instead of the original raw speaker IDs. For example:
speaker_01_nasim_baharspeaker_02_cv_c647e403f395speaker_03_cv_c90278821a23
Intended Use
This model is intended for:
- Pashto TTS research
- Pashto voice demos
- building downstream Pashto voice products
- fine-tuning or adapting toward a specific target speaker
Limitations
- This is a multi-speaker support model, not a final single-speaker personal-voice model.
- Best quality still needs listening-based evaluation, not just loss inspection.
- Speaker identity quality depends on whether you use a built-in speaker ID or a reference audio clip.
- This model was trained on curated but still mixed-source speech, so it is not equivalent to a full studio-grade single-speaker corpus.
Quick Start
The simplest path is to:
- download the repo with
huggingface_hub - use the bundled helper script
Example:
from huggingface_hub import snapshot_download
from pathlib import Path
import subprocess
import sys
model_dir = Path(snapshot_download("Nasimbahar/pashto-ghag-yourtts"))
subprocess.run(
[
sys.executable,
str(model_dir / "hf_infer_pashto_ghag_yourtts.py"),
"--model-dir",
str(model_dir),
"--text",
"سلامونه، دا د پښتو غږ د ماډل ازموينه ده۔",
"--speaker-id",
"speaker_01_nasim_bahar",
"--output-wav",
"pashto_ghag_demo.wav",
],
check=True,
)
For detailed usage, including speaker_wav cloning and direct Python examples, see USAGE.md.
Acknowledgements
- Coqui TTS / YourTTS ecosystem
- Mozilla Common Voice
- the Pashto recordings and curation work that made the dataset possible
Project Direction
This release is a strong Pashto multi-speaker support base. The next natural step after this model is:
- adapt from this checkpoint to a single target speaker
That is the recommended route if the goal is a final personalized Pashto voice.
- Downloads last month
- 29