FaresElmenshawi/quran-recitations-asr
Dataset Card for Quran Recitations ASR Dataset Summary This dataset is a collection of 581,216 ayah-level Quranic recitation recordings (2,882 hours of 16 kHz mono audio) with diacritized Arabic transcriptions, covering 44 reciters. Every recording of an ayah carries the same canonical transcript (simplified diacritized orthography), so identical speech never has conflicting text targets. It merges three public sources — tarteel-ai/everyayah, Buraaq/quran-md-ayahs… See the full description on the dataset page: https://huggingface.co/datasets/FaresElmenshawi/quran-recitations-asr.
Dataset Card for Quran Recitations ASR
Dataset Description
- Homepage: https://huggingface.co/datasets/FaresElmenshawi/quran-recitations-asr
- Point of Contact: Fares Elmenshawi
Dataset Summary
This dataset is a collection of 581,216 ayah-level Quranic recitation recordings (2,882 hours of 16 kHz mono audio) with diacritized Arabic transcriptions, covering 44 reciters. Every recording of an ayah carries the same canonical transcript (simplified diacritized orthography), so identical speech never has conflicting text targets. It merges three public sources — tarteel-ai/everyayah, Buraaq/quran-md-ayahs, and recordings collected from everyayah.com — and removes recordings that are duplicated across the sources, using acoustic fingerprint and content-hash comparison rather than metadata alone. No duration filtering is applied: clips range from under one second to several minutes, so most training setups will want to filter on the duration column.
Supported Tasks and Leaderboards
automatic-speech-recognition: the dataset can be used to train and evaluate Arabic speech recognition models, typically measured by WER or CER. Note that the transcripts are fully diacritized; WER computed on diacritized text is substantially stricter than on undiacritized text.
Languages
The audio is Quranic recitation in Classical Arabic. Transcriptions are fully diacritized, in the simplified orthography (not the Uthmani mushaf script).
How to use
from datasets import load_dataset
ds = load_dataset("FaresElmenshawi/quran-recitations-asr", split="train")The dataset is large (~296 GB). Streaming avoids downloading it in full:
ds = load_dataset("FaresElmenshawi/quran-recitations-asr", split="train", streaming=True)
sample = next(iter(ds))To reproduce a conventional ASR training subset (e.g. 0.3–20 s clips):
ds = ds.filter(lambda d: 0.3 <= d <= 20.0, input_columns="duration")The text column is a single canonical transcript per ayah in the simplified diacritized orthography — safe to train on directly. The Uthmani mushaf text is not included as a column; join on surah_id/ayah_id against any Quran text source if you need it.
Dataset Structure
Data Instances
A typical instance:
{'audio': {'path': 'validation/val_0000001.wav',
'array': array([0.0004, 0.0012, ...], dtype=float32),
'sampling_rate': 16000},
'text': 'الَّذِينَ يَظُنُّونَ أَنَّهُمْ مُلَاقُو رَبِّهِمْ وَأَنَّهُمْ إِلَيْهِ رَاجِعُونَ',
'duration': 18.782,
'reciter': 'Abdul Basit Abdus-Samad',
'reciter_raw': 'abdulsamad',
'recitation_style': None,
'riwayah': 'hafs',
'surah_id': None,
'ayah_id': None,
'source': 'tarteel-ai/everyayah'}Data Fields
- audio (dict): 16 kHz mono WAV audio; dict with
path, decodedarray, andsampling_rate. - text (string): canonical simplified diacritized transcript of the ayah — identical for every recording of the same ayah.
- duration (float64): clip duration in seconds.
- reciter (string): canonical reciter name, unified across transliteration and bitrate variants of the same person.
- reciter_raw (string): the verbatim reciter label from the source (folder name or dataset value).
- recitation_style (string):
murattal,mujawwad, ormuallimwhen the source label or a citable index states it; otherwise null. - riwayah (string):
hafsorwarsh. - surah_id (int64), ayah_id (int64): 1-based indices; null for rows (mostly from tarteel-ai/everyayah) whose transcript did not resolve to a unique ayah.
- source (string): which of the three sources the recording came from.
Data Splits
The validation split is a deterministic hold-out keyed on (surah, ayah, reciter), combined with the upstream tarteel validation split. Validation entries that acoustically matched a retained train recording were removed, so the two splits do not share recordings.
Dataset Creation
Curation Rationale
The three sources overlap heavily: all ultimately trace back to recitations distributed by everyayah.com, republished in different packagings, bitrates, and naming conventions. Training on their union without recording-level deduplication inflates the corpus with re-encodes of the same audio and leaks identical recordings across train/validation boundaries. This dataset merges the sources at the recording level, keeps every acoustically distinct recording (including multiple takes of the same ayah by the same reciter), and preserves the full duration range that per-source releases had filtered.
Source Data
Initial Data Collection and Normalization
Audio was decoded to 16 kHz mono 16-bit PCM. Mono is taken from the first channel rather than a left/right average, because several source rips carry anti-phase stereo in which averaging cancels the speech. Two recordings were considered duplicates only when they shared a (surah, ayah, canonical reciter) identity and either their content hashes matched or their Chromaprint acoustic fingerprints matched at a similarity of at least 0.97; a metadata match alone was never sufficient to drop a recording. Clips shorter than about 3 s cannot be fingerprinted by Chromaprint and were deduplicated by content hash only.
Who are the source language producers?
Professional Quran reciters (all male), recorded in studio settings across several decades. The recordings are publicly distributed; reciters are identified by name in the reciter field.
Annotations
Annotation process
Transcripts are the canonical text of the Quran assigned by (surah, ayah) index, not per-clip human transcriptions. For everyayah.com recordings the index comes from the site's fixed file-naming scheme; for Buraaq/quran-md-ayahs from its metadata; for tarteel-ai/everyayah from its shipped transcripts, resolved to ayah indices by text matching. All rows were then relabeled with a single canonical per-ayah transcript (simplified diacritized convention) so identical speech always has identical text. Reciter identities were verified against everyayah.com's and the KSU Electronic Moshaf's own listings and cross-checked acoustically with speaker embeddings; two rips whose voice does not match the named reciter are labeled "(unverified rip)" in the reciter field. A transcription-based audit with a pretrained Arabic ASR model was used to detect audio/label mismatches; the known remaining issues are listed under Other Known Limitations.
Who are the annotators?
The transcripts are the canonical Quranic text; no crowd or paid annotation was involved.
Personal and Sensitive Information
The dataset contains the voices of publicly known reciters in publicly distributed recordings, attributed by name. It contains no other personal information.
Considerations for Using the Data
Social Impact of Dataset
The Quran is a sacred text. The dataset is published for research and other non-commercial use (see Licensing); users building applications on it should handle the material respectfully, and note that ASR errors on sacred text can be sensitive in deployment contexts.
Discussion of Biases
All reciters are adult male professionals, so models trained on this data alone will not generalize to female or child speech. The recitation register (tajwid-governed, melodic, deliberate) differs substantially from conversational Arabic. The Hafs riwayah dominates; Warsh is represented by only two rips. Egyptian and Gulf reciters are over-represented relative to the wider Arabic-speaking world.
Other Known Limitations
- Transcripts use the simplified diacritized orthography, not the Uthmani mushaf script; derive Uthmani text via
surah_id/ayah_idif needed (null ids on a minority of rows). - Recordings of the first ayah of a surah usually include the spoken basmalah, which is not part of the transcript.
- Low-bitrate source rips (16–48 kbps, visible in
reciter_raw) are effectively band-limited well below the 8 kHz Nyquist of the 16 kHz container. - Two rips carry a voice that does not acoustically match their named reciter and are labeled
Muhammad Ayyub (unverified rip)andMuhammad Siddiq Al-Minshawi (unverified rip). - Sahl Yassin and Yassin Al-Jazaery are documented as distinct reciters and are kept separate, although their voices measure as unusually similar.
- The
Minshawy_Teacher_128kbpsrip (6,255 clips) was excluded: its clips contain each ayah recited twice against a single-ayah transcript. Twelve truncated fragments carrying full transcripts were also removed. - Clips longer than 20 s may contain the isti'adhah, the basmalah, or more than one ayah beyond their transcript.
- Clips shorter than about 3 s were deduplicated by content hash only, so distinct-bitrate re-encodes of the same short recording may survive in rare cases.
Additional Information
Dataset Curators
Fares Elmenshawi.
Licensing Information
This compilation is released under CC BY-NC 4.0 (non-commercial). The recordings originate from everyayah.com and datasets derived from it; consult the upstream projects for their own terms: tarteel-ai/everyayah, Buraaq/quran-md-ayahs, everyayah.com.
Citation Information
If you use this dataset, please cite this repository and credit the upstream sources listed above:
@misc{quran_recitations_asr_2026,
author = {Elmenshawi, Fares},
title = {Quran Recitations ASR: a deduplicated multi-source corpus of Quranic recitation},
year = {2026},
url = {https://huggingface.co/datasets/FaresElmenshawi/quran-recitations-asr}
}Contributions
Audio and transcripts were produced by the reciters and projects credited above; this repository contributes the merged, deduplicated, and identity-verified packaging.
