CoolFace
Datasetpublic

snapwre/afaan-oromoo-speech

Dataset.ET Afaan Oromoo Speech — v0.1.0 9.843 hours · 3,594 clips · 74 speakers · 3,283 distinct prompts Dataset Summary Read speech in Afaan Oromoo, crowdsourced from volunteer contributors in Ethiopia through a Telegram bot, peer-validated by other contributors, and screened acoustically before release. Afaan Oromoo has very little open speech data; this corpus exists to change that. Contributors read a displayed prompt aloud, other contributors listen and vote… See the full description on the dataset page: https://huggingface.co/datasets/snapwre/afaan-oromoo-speech.

sourceHugging Facecc-by-4.0updated 28d agoView on Hugging Face
6likes347downloads
Dataset Card

Dataset.ET Afaan Oromoo Speech — v0.1.0

9.843 hours · 3,594 clips · 74 speakers · 3,283 distinct prompts

Dataset Description

  • —Curated by: Snapwre Technologies PLC (Addis Ababa, Ethiopia)
  • —Homepage: https://dataset.et
  • —Repository: https://github.com/snapwre/dataset-et-release
  • —Point of Contact: https://huggingface.co/snapwre

Dataset Summary

Read speech in Afaan Oromoo, crowdsourced from volunteer contributors in Ethiopia through a Telegram bot, peer-validated by other contributors, and screened acoustically before release. Afaan Oromoo has very little open speech data; this corpus exists to change that.

Contributors read a displayed prompt aloud, other contributors listen and vote on whether the recording matches, and contributors earn mobile airtime for accepted work. The corpus is built by the community it serves, and published by Snapwre Technologies PLC.

Supported Tasks

  • —automatic-speech-recognition — the primary use. Each clip pairs audio with the exact prompt text that was read.
  • —Speaker and demographic analysis, within the limits described below.

Languages

Afaan Oromoo (om), written in Qubee, a Latin orthography.

Dataset Structure

Data Instances

python
from datasets import load_dataset
ds = load_dataset("snapwre/amharic-speech", split="train")
ds[0]
{
  "audio": {"array": array([...]), "sampling_rate": 16000},
  "sentence": "…",
  "speaker_id": "spk_1a2b3c4d5e6f",
  "duration_s": 9.29,
  "speech_start_s": 0.31, "speech_end_s": 9.29,
  "gender": "male", "age_band": "18-24", "region": "addis_ababa",
  ...
}

Data Fields

FieldTypeDescription
audioAudio(16 kHz)16 kHz mono FLAC
clip_idstringRelease-local identifier
sentencestringThe prompt the contributor was asked to read
speaker_idstringPseudonymous, salted per release; not linkable across releases
languagestringISO code
duration_sfloat32Total clip duration, measured from the audio
speech_sfloat32Duration excluding detected silence
speech_start_s, speech_end_sfloat32Where speech begins and ends. Audio is not trimmed — slice it yourself if you want silence removed
lufsfloat32Integrated loudness (EBU R128)
gender, age_band, regionstringSelf-reported, optional. null may mean not stated or withheld for privacy — see Personal and Sensitive Information
sample_rateint32Always 16000
up_votes, down_votesint16Peer validation votes

Data Splits

Splits are speaker-disjoint and prompt-disjoint. No voice and no sentence appears in more than one split, so evaluation is not inflated by a model recognising a speaker or having memorised a prompt.

SplitClipsHoursSpeakersPrompts
test3160.85330299
validation2460.71716237
train3,0328.273282,754

metadata.csv carries every field except the audio, for inspecting the corpus without downloading it.

Dataset Creation

Curation Rationale

Selected conservatively: a first release that holds up matters more than a large one. Only clips with unanimous peer approval were considered, and those were then screened acoustically.

Source Data

Recordings are original contributions captured through the Dataset.ET Telegram bot as Opus voice messages, losslessly transcoded to 16 kHz mono FLAC. Each was made by a contributor reading a displayed prompt aloud.

Annotations

The prompt text is the transcript — contributors read a known sentence rather than transcribing free speech, so transcripts are exact by construction. Peer validators voted on whether each recording matched its prompt.

Personal and Sensitive Information

Speech is biometric. Contributors granted an explicit licence to publish their recordings in open datasets, and that consent is the basis for this release. Everything published alongside the voice has been treated as follows:

  • —Database identifiers never ship. speaker_id and clip_id are salted hashes, and the salt is not published.
  • —Demographic fields satisfy k-anonymity at k=5: every published combination of gender, age band and region describes at least five contributors. Rarer combinations were suppressed to null, so a null may mean withheld rather than not stated.
  • —Prompt text was scanned for phone numbers, email addresses and URLs.

Residual risk worth stating plainly: no automated check has verified that no contributor spoke identifying information aloud within a recording.

Considerations for Using the Data

Discussion of Biases

GenderClipsShare
male3,45296.0%
female1393.9%
(not stated)30.1%
Age bandClipsShare
18-242,69475.0%
25-3474720.8%
(not stated)1534.3%
RegionClipsShare
oromia3,27091.0%
addis_ababa1714.8%
(not stated)1534.3%

Contributors are overwhelmingly young and urban. Models trained on this will perform worse on older and rural speakers. Do not treat this as a representative sample of Afaan Oromoo speakers.

Other Known Limitations

  • —Read speech, not conversation. Prosody, disfluency and turn-taking are unlike spontaneous speech.
  • —Narrow prompt domain. Prompt vocabulary skews formal and toward current affairs, so coverage of casual and conversational registers is thin.
  • —Telegram Opus origin. Captured through Telegram voice messages, carrying that codec's artefacts and whatever processing contributors' devices applied. Not studio audio.
  • —Not loudness-normalised. Normalisation is a training-time choice; the lufs column lets you do it deterministically.
  • —Peer validation is imperfect. During the period this data was collected, validators were paid per validation rather than per correct validation, which rewards approving quickly. Clips with any reject vote were excluded and the acoustic screening below exists to compensate, but expect residual noise.

Selection and Screening

Starting from every clip that passed peer validation, these were excluded:

ReasonClips
not needed to reach target hours3,187
fewer than 3 accept votes2,770
contested (at least one reject vote)66
longer than 30.0s53
shorter than 1.5s50
duplicate audio2

Survivors were screened acoustically. 300 of 4,043 clips (7.4%) failed at least one check and were dropped:

CheckClips failing it
clipped194
prompt not fully read105
mostly silence57
too quiet to recover53
almost no speech36
recorded duration disagrees with the audio4
far longer than the prompt predicts1

A clip can fail several checks at once, so the column above sums to more than 300.

Additional Information

Licensing Information

Audio: CC BY 4.0. Contributors granted Dataset.ET a perpetual, irrevocable, worldwide, royalty-free licence to publish and distribute their recordings as part of open datasets, and consented to release under a permissive open data licence. Those rights are held by Snapwre Technologies PLC, which operates Dataset.ET, and are exercised here to publish the corpus openly.

Citation Information

bibtex
@misc{datasetet_om_0_1_0,
  title  = {Dataset.ET Afaan Oromoo Speech v0.1.0},
  author = {Dataset.ET contributors and Snapwre Technologies PLC},
  publisher = {Snapwre Technologies PLC},
  year   = {2026},
  url    = {https://huggingface.co/datasets/snapwre/amharic-speech}
}

Dataset Curators

Dataset.ET is a project of Snapwre Technologies PLC, Addis Ababa, Ethiopia. The company operates the collection platform, holds the contributor-granted rights to the recordings, and publishes the corpus openly.

Contributions

Built by 74 volunteer contributors in Ethiopia, plus the validators who reviewed their recordings. The corpus exists because they gave their voices to it.

Every shard's SHA-256, and the exact selection, screening and anonymisation policies that produced this release, are recorded in manifest.json.