CoolFace
Datasetpublic

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.

sourceHugging Faceupdated 1mo agoView on Hugging Face
0likes288downloads
Dataset Card

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

stagefilter
VADSilero: trim to speech, drop clips with < 70% voiced or an internal pause > 1.2 s
Duration2–22 s after trimming (~275 codec frames at 12 Hz)
TextArabic normalisation, diacritics stripped, numbers spelled out, code-switching capped
Signaltrue bandwidth ≥ 4.5 kHz, high-band ratio ≥ −40 dB, SNR ≥ 12 dB, no clipping
QualityTorchAudio-SQUIM: estimated PESQ ≥ 2.30, STOI ≥ 0.88, SI-SDR ≥ 12 dB
SpeakerECAPA embedding of each half of a clip must agree (cosine ≥ 0.55)
Transcriptre-decoded with [Cohere Transcribe Arabic](https://huggingface.co/CohereLabs/cohere-transcribe-arabic-07-2026); CER ≤ 0.15 against the corpus transcript
Rendertrimmed, loudness-normalised to −23 LUFS (peak −1 dBFS), resampled to 24 kHz

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 a ref_uid from 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)

hspkhspk
eg60.09ps17.390
dz60.06sy16.751
ma60.03tn9.769
sa56.72iq9.43
bh40.7134ly4.115
sd27.3115
ye21.061
lb18.566

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.