mohammedaly22/lahgtna-levantine-tts
๐๏ธ Lahgtna Levantine TTS Synthetic Levantine Arabic + English Code-Switching speech dataset. Generated using Lahgtna-OmniVoice, a fine-tuned zero-shot TTS model for Levantine Arabic dialect. ๐ Dataset Statistics Metric Value Total utterances 50,000 Total speakers 10 (5 male, 5 female) Pure Levantine Arabic 44,154 utterances Code-switching (AR+EN) 5,846 utterances Sampling rate 24,000 Hz Estimated total duration ~66.8 hoursโฆ See the full description on the dataset page: https://huggingface.co/datasets/mohammedaly22/lahgtna-levantine-tts.
๐๏ธ Lahgtna Levantine TTS
Synthetic Levantine Arabic + English Code-Switching speech dataset. Generated using Lahgtna-OmniVoice, a fine-tuned zero-shot TTS model for Levantine Arabic dialect.
๐ Dataset Statistics
Per-Speaker Breakdown
๐ Data Collection & Processing
1. Text Data Sources
The 50,000 sentences were collected from:
The Shami corpus provides authentic dialectal text from four Levantine sub-dialects:
- Syrian (
syrian.txt) โ 34,491 sentences - Lebanese (
Lebenees.txt) โ 9,905 sentences - Palestinian (
Palestinian.txt) โ 9,545 sentences - Jordanian (
jordinian.txt) โ 6,007 sentences
Code-switching sentences follow natural Levantine-English mixing patterns:
ูููููู ุนู
ุฃุดุชุบู ุนูู the project ุงููู ุญููุชูู ุนูู
ูุงููู the meeting ูุชูุฑ importantุ ูุงุฒู
ูุญุถูุฑ ู
ููููุญ2. Text Normalization & Partial Diacritization
Before synthesis, each sentence was processed through:
Step 1 โ Unicode cleanup: NFC normalization, tatweel removal, alef unification
Step 2 โ Number verbalization: Levantine Arabic number words
3 ูุชุจโุชูุงุชุฉ ูุชุจ$50โุฎู ุณูู ุฏููุงุฑ
Step 3 โ Partial diacritization on homographs only: The key design decision: instead of full diacritization, we apply diacritics only to ambiguous homographs that could be mispronounced. This makes the model robust to both diacritized and undiacritized input at inference time.
Diacritized homograph examples:
ูููููู (now โ vs ูููููู = he shaved, MSA)
ุถููู (remained, Levantine โ vs ุถูููู = went astray, MSA)
ู
ูุดู (not, Levantine negation)
ุจูุฏููู (I want, Levantine bi-imperfect)Step 4 โ ู โ ุฉ correction: Levantine Arabic informal writing uses ู where standard orthography uses ุฉ (ta marbuta). A comprehensive rule-based corrector fixes feminine nouns, adjectives, and proper names while preserving genuine ู in verb+pronoun forms and ุงููู compounds:
ูุงูุถุญูู ุงูุญูููโูุงูุถุญูุฉ ุงูุญููุฉโูุงูููโูุงููู(preserved โ contains ุงููู) โูููุ ุนูููุ ู ุนูโ preserved (pronoun suffixes) โ
Step 5 โ Levantine lexicon overrides (148 entries in CSV): Common Levantine dialect words get dialect-correct diacritization via an editable CSV file (data/levantine_lexicon.csv) โ no code changes needed to add new words.
3. TTS Synthesis โ Lahgtna-OmniVoice
Each speaker was cloned from a 5โ15 s reference recording of a real Levantine speaker. The 10 speakers were generated in parallel across 4ร NVIDIA H100 GPUs using Python multiprocessing, with each GPU handling 2โ3 speakers simultaneously.
๐ Dataset Structure
train/
audio โ Audio feature at 24 kHz
text โ Levantine Arabic transcript (partial diacritics on homographs)
speaker_id โ e.g. "spk_01_male"
speaker_nameโ e.g. "Badr"
gender โ "male" | "female"
sentence_type โ "pure_levantine" | "code_switching"๐ง Usage
from datasets import load_dataset
ds = load_dataset("mohammedaly22/lahgtna-levantine-tts", split="train")
# Play sample
sample = ds[0]
print(sample["text"]) # transcript
print(sample["speaker_name"]) # e.g. "Badr"
print(sample["sentence_type"]) # "pure_levantine" or "code_switching"
# Audio: sample["audio"]["array"] at 24000 Hz๐ License
CC BY 4.0 โ Free to use with attribution.
๐ค Author

