CoolFace
Datasetpublic

MohamedGomaa30/EGYSpeak

EGYSpeak A curated dataset of 147,979 single-speaker Egyptian Arabic (pure dialect) audio clips with transcriptions, sourced from the fadisarwat/egyptian-arabic-lines Kaggle dataset and processed through a rigorous ASR pipeline. Quick Start 1. Download the dataset: from huggingface_hub import snapshot_download snapshot_download( repo_id="MohamedGomaa30/EGYSpeak", repo_type="dataset", local_dir="EGYSpeak", ) 2. Extract the dataset: from… See the full description on the dataset page: https://huggingface.co/datasets/MohamedGomaa30/EGYSpeak.

sourceHugging Facecc-by-4.0updated 5mo agoView on Hugging Face
1likes175downloads
Dataset Card

EGYSpeak

A curated dataset of 147,979 single-speaker Egyptian Arabic (pure dialect) audio clips with transcriptions, sourced from the fadisarwat/egyptian-arabic-lines Kaggle dataset and processed through a rigorous ASR pipeline.

Quick Start

1. Download the dataset:

python
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="MohamedGomaa30/EGYSpeak",
    repo_type="dataset",
    local_dir="EGYSpeak",
)

2. Extract the dataset:

python
from EGYSpeak.egyspeak_loader import load_egyspeak
ds = load_egyspeak("EGYSpeak", streaming=True) 

Dataset Details

  • Total samples: 147,979
  • Audio format: WAV (PCM_16, 16 kHz, mono)
  • Transcription language: Egyptian Arabic
  • Metadata delimiter: Pipe (|)
  • License: CC-BY-4.0

Dataset Structure

EGYSpeak/
├── README.md
├── metadata.csv                  # file_name|transcription (pipe-delimited, full dataset)
├── metadata.jsonl                # HF AudioFolder auto-loading format
└── train/
    ├── metadata.jsonl            # HF AudioFolder auto-loading format
    └── audio_shard_XXXX.tar      # 23 tar shards (~1GB each, 147,979 WAV files total)

Audio files are packed into 23 tar shards (~1GB each) to stay within HuggingFace Hub rate limits. Each shard contains WAV files under a wavs/ subdirectory. Use the provided egyspeak_loader.py to stream audio directly from the tars without extracting (saves ~22GB disk space).

metadata.csv Format

ColumnDescriptionExample
file_namePath to WAV filetrain/wavs/D6x81u_1.wav
transcriptionArabic transcription (Egyptian dialect)خليني ابدا الفيديو ده

Delimiter: pipe (`|`)

metadata.jsonl Format

Each line is a JSON object with file_name and transcription fields, compatible with HuggingFace AudioFolder auto-loading.

Data Preprocessing Pipeline

The raw Kaggle dataset (455,794 index entries, 408,059 MP3 files) was processed through the following pipeline:

Step 1: Duration Filter

  • Reject audio shorter than 0.8s or longer than 30s

Step 2: Audio Processing

  • Resample to 16 kHz mono
  • Loudness normalization to -16 LUFS (using pyloudnorm)
  • Save as PCM_16 WAV
  • Create padded version (0.5s silence on each side for ASR)
  • Reject completely silent files

Step 3: Speaker Diarization

Step 4: ASR Transcription

  • Model: NAMAA-Space/EgypTalk-ASR-v2 (FastConformer Hybrid Large, fine-tuned on 200+ hours of Egyptian Arabic)
  • Decoder: Beam search (beam_size=5)
  • Batch processing: 64 files per batch

Step 5: Quality Filters

Five sequential quality filters are applied to transcriptions:

#FilterCriterion
1Empty transcriptionTranscription is empty
2Unknown symbolsContains special unknown characters or ??
3One-word onlyTranscription has 1 word or less
4Short transcriptionASR word count less than original Kaggle text count
5Non-Egyptian dialectContains MSA-exclusive words (MSA + mixed dialect removed)

Configuration

ParameterValue
Min duration0.8 s
Max duration30 s
Sample rate16,000 Hz
Target loudness-16 LUFS
Silence padding0.5 s (each side, transcription only)
Transcription batch64
Beam search size5
ASR modelEgypTalk-ASR-v2
Diarization modelpyannote/speaker-diarization-3.1
Audio formatWAV, PCM_16, 16kHz, mono

Limitations

  • Transcriptions are machine-generated (ASR) and may contain errors
  • The original Kaggle text field was used as a reference only, not as ground truth
  • Numbers appear as Arabic words, not numeric digits
  • Some audio clips may contain overlapping speech fragments at boundaries

Source

Kaggle: fadisarwat/egyptian-arabic-lines

License

This dataset is released under the Creative Commons Attribution 4.0 license.