Rabe3/lahgtna-arabic-tts-24khz
Lahgtna Arabic TTS — cleaned, 24 kHz A TTS-ready filtering of oddadmix/dialectal-arabic-lahgtna-v2, prepared for finetuning Qwen/Qwen3-TTS-12Hz-0.6B-Base on Arabic dialects. 162,641 utterances · 591.4 hours · 13 dialects · 24 kHz mono — the survivors of a nine-stage cascade applied to the full 608,121-utterance / 2,934-hour source corpus. Overall yield: 26.7%. The source is an ASR corpus. ASR models learn to ignore noise, reverb and overlapping speech; TTS models learn to… See the full description on the dataset page: https://huggingface.co/datasets/Rabe3/lahgtna-arabic-tts-24khz.
Lahgtna Arabic TTS — cleaned, 24 kHz
A TTS-ready filtering of `oddadmix/dialectal-arabic-lahgtna-v2`, prepared for finetuning `Qwen/Qwen3-TTS-12Hz-0.6B-Base` on Arabic dialects.
162,641 utterances · 591.4 hours · 13 dialects · 24 kHz mono — the survivors of a nine-stage cascade applied to the full 608,121-utterance / 2,934-hour source corpus. Overall yield: 26.7%.
The source is an ASR corpus. ASR models learn to ignore noise, reverb and overlapping speech; TTS models learn to reproduce them. Everything here exists to bridge that gap.
What was done
Speakers were recovered by clustering ECAPA embeddings per dialect (none are labelled in the source): 688 speakers.
Fields
uid · audio (Audio, 24 kHz) · text (normalised, dialect-tagged) · transcript_raw · asr_text · dialect · speaker_id, plus the scores each clip was judged on: duration_s, squim_pesq, squim_stoi, squim_sisdr, snr_db, bandwidth_hz, highband_db, lufs, spectral_tilt_db, asr_cer, spk_halves_cosine, vad_speech_ratio.
The scores travel with the audio deliberately: you can re-filter to a stricter bar without redoing any of this work.
text carries a plain-text dialect prefix — [EG] إزيك يا صاحبي — so dialect is selectable at inference. No vocab surgery, no untrained token IDs.
Training manifests
manifests/ holds ready-made splits referencing uid (not file paths):
stage_a_train_raw.jsonl— 101,607 utts / 401.5 h, dialect-balanced, each paired with aref_uidfrom the same speaker but a different clip.stage_a_eval.jsonl— 2,797 utts from speakers held out of training.stage_b_<speaker>.jsonl— 5 single-speaker voices for voice SFT.speakers.json,manifests.json— per-cluster stats and the build summary.
Hours per dialect (stage A, after balancing)
Limitations — read these
The source is 16 kHz; this is upsampled to 24 kHz. Qwen3-TTS-Tokenizer-12Hz requires 24 kHz input, but there is no real content above 8 kHz. A model trained on this will sound veiled no matter how long it trains. Clips that were already band-limited (telephone audio upsampled to 16 kHz) were removed, but the ceiling itself cannot be removed by filtering — only by bandwidth extension or better source audio.
Speaker diversity is uneven. Moroccan is 60 h from 3 speakers and Saudi 56.7 h from 2, because those dialects come from a few very prolific sources. Those clusters are genuinely single speakers (within-cluster cosine p50 0.78), but a model may bind dialect identity to a handful of timbres. Dialects sourced from many speakers (bh 134, sd 115, ps 90) do not have this problem.
Transcripts are dialectal orthography and were verified, not corrected. CER was measured after aggressive orthographic normalisation, so it reflects "did the speaker say this" rather than spelling agreement. Clips above CER 0.15 were dropped rather than re-transcribed.
Diacritics are stripped. The source is partially diacritized, which is the worst case — a model cannot tell "no diacritic" from "not annotated". Stripping everywhere is consistent, at the cost of vowel information.
Provenance and rights
Derived from oddadmix/dialectal-arabic-lahgtna-v2, which declares no licence. This is scraped speech from identifiable people, and a TTS model trained on it can reproduce their voices. Check the rights before redistributing or shipping voices built from it.
