Large-scale multi-dialect Arabic speech dataset — 3,000+ hours across 13 Arabic dialects — for training and evaluating dialectal Arabic ASR systems. Part of the Lahgtna (لهجتنا) project for dialect-aware Arabic speech AI.
| Split | Rows |
|---|---|
| train | 608,100 |
| test | 3,100 |
language columnEach row contains:
| Column | Type | Description |
|---|---|---|
audio | Audio (16 kHz) | Speech segment |
transcript_text | string | Dialectal Arabic transcript |
language | string | Dialect code (see below) |
| Code | Language / Dialect | Region |
|---|---|---|
bh | Bahraini | Bahrain |
dz | Algerian | Algeria |
eg | Egyptian | Egypt |
iq | Iraqi | Iraq |
lb | Lebanese | Lebanon |
ly | Libyan | Libya |
ma | Moroccan (Darija) | Morocco |
ps | Palestinian | Palestine |
sa | Saudi | Saudi Arabia |
sd | Sudanese | Sudan |
sy | Syrian | Syria |
tn | Tunisian | Tunisia |
from datasets import load_dataset
ds = load_dataset("oddadmix/dialectal-arabic-lahgtna-v2", split="train", streaming=True)
sample = next(iter(ds))
print(sample["language"], "-", sample["transcript_text"])
The train split is ~337 GB in parquet —
streaming=Trueis recommended unless you need the full dataset on disk.
Filter to a single dialect:
eg_only = ds.filter(lambda x: x["language"] == "eg")
[exhale]) are annotated inlineBuilt for fine-tuning ASR models on dialectal Arabic — e.g. Whisper, omniASR CTC, and Qwen3-ASR variants — and as training/eval data for spoken dialect identification. The test split is held out for evaluation.
@misc{lahgtna_dialectal_arabic_v2_2026,
author = {oddadmix},
title = {Dialectal Arabic Lahgtna v2: A Multi-Dialect Arabic Speech Dataset},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/oddadmix/dialectal-arabic-lahgtna-v2}
}