CoolFace
Datasetpublic

Sanghyang00/omniasr-molge

OmniASR Molge Aligned Training-friendly re-segmentation of Meta’s facebook/omnilingual-asr-corpus: long utterances are segmented / aligned into ≤30s clips with transcripts, then packed as Parquet shards with embedded FLAC. Source facebook/omnilingual-asr-corpus Configs omniasr_aligned_v1, omniasr_aligned_v2 Splits train / validation (dev-*.parquet) / test Scale ~2.56M utts · ~839 shards · ~439GB If this dataset is useful for your work, we’d appreciate a… See the full description on the dataset page: https://huggingface.co/datasets/Sanghyang00/omniasr-molge.

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes538downloads
Dataset Card

OmniASR Molge Aligned

Training-friendly re-segmentation of Meta’s **facebook/omnilingual-asr-corpus**: long utterances are segmented / aligned into ≤30s clips with transcripts, then packed as Parquet shards with embedded FLAC.

Sourcefacebook/omnilingual-asr-corpus
Configsomniasr_aligned_v1, omniasr_aligned_v2
Splitstrain / validation (dev-*.parquet) / test
Scale~2.56M utts · ~839 shards · ~439GB

If this dataset is useful for your work, we’d appreciate a citation of the source corpus and related processing papers — see Citation.

We strongly recommend using `omniasr_aligned_v2`. v2 is the preferred release for training; v1 is kept for reference / comparison.

Generation pipeline

Both configs start from facebook/omnilingual-asr-corpus and produce training-friendly clips (target ≤30s) with aligned transcripts. They differ in how long audio is cut and how text is recovered at word boundaries.

v1 (omniasr_aligned_v1)

Built with MMS forced alignment (mms-fa):

  1. 1.Prepare text in an FA-friendly form and run character-level MMS-FA against the audio.
  2. 2.Aggregate character alignments up to the word-boundary level (start/end times per word).
  3. 3.Cut segments using those word boundaries so that each clip stays in a short, training-friendly range (≤30s target).
  4. 4.Revert the aligned text from the FA-friendly / romanized form back to the original script of the reference transcript.
  5. 5.Keep an `alignment_score` per segment from the FA confidence.

v2 (omniasr_aligned_v2) — recommended

Hybrid pipeline depending on utterance duration:

  1. 1.≤30s: keep the original audio/transcript as-is (no VAD / re-ASR / re-matching).
  2. 2.>30s:
  3. 3.Segment with Silero VAD.
  4. 4.Run OmniASR 3B ASR on the (long) content.
  5. 5.Fuzzy-match the ASR hypothesis to the reference transcript to recover which reference words correspond to which audio spans.
  6. 6.Score and cut at the word-boundary level to produce short clips (≤30s target) with aligned reference text.

v2 generally yields more reliable long-form segmentation for multilingual training, which is why we strongly recommend it over v1.

Quick start

python
from datasets import Audio, load_dataset

# strongly recommended config
ds = load_dataset("Sanghyang00/omniasr-molge", "omniasr_aligned_v2", split="train")
ds = ds.cast_column("audio", Audio(sampling_rate=16_000))
ex = ds[0]
print(ex["language"], ex["transcription"], ex["audio"]["array"].shape)

Streaming:

python
ds = load_dataset("Sanghyang00/omniasr-molge", "omniasr_aligned_v2", split="train", streaming=True)
for ex in ds.take(3):
    print(ex["language"], ex["transcription"][:80])

Local:

python
ds = load_dataset(
    "parquet",
    data_files={
        "train": "omniasr_aligned_v2/train-*.parquet",
        "validation": "omniasr_aligned_v2/dev-*.parquet",
        "test": "omniasr_aligned_v2/test-*.parquet",
    },
)

Format

Each parquet row = one utterance (embedded FLAC + metadata), not a folder of loose .flac files.

text
omniasr_aligned_v{1,2}/
  train-*.parquet | dev-*.parquet | test-*.parquet
Configtrainvalidationtest
v1709,953162,863163,537
v21,372,81076,26876,268

Schema

ColumnDescription
audio{bytes, path} — FLAC bytes + filename
transcriptionTranscript
normalized_transcriptionOften empty
speakerOften empty in v1; set in v2
languageLanguage code
durationSeconds
iso_15924Script code
alignment_scorev1 score; usually null in v2
original_splitv2 only
filename / sourceBasename / omniasr_aligned_v{1,2}

Citation

If you find this dataset useful, please consider citing the source corpus and processing papers:

bibtex
% source corpus
@article{omnilingual2025omnilingual,
  title={Omnilingual ASR: Open-Source Multilingual Speech Recognition for 1600+ Languages},
  author={Omnilingual, ASR and Keren, Gil and Kozhevnikov, Artyom and Meng, Yen and Ropers, Christophe and Setzler, Matthew and Wang, Skyler and Adebara, Ife and Auli, Michael and Balioglu, Can and others},
  journal={arXiv preprint arXiv:2511.09690},
  year={2025}
}

% processing papers
@article{lee2026ur,
  title={UR-BERT: Scaling Text Encoders for Massively Multilingual TTS Through Universal Romanization and Speech Token Prediction},
  author={Lee, Sangmin and Ahn, Eekgyun and Choi, Woongjib and Kang, Hong-Goo},
  journal={arXiv preprint arXiv:2606.11681},
  year={2026}
}

@article{lee2026molge,
  title={MoLGE: Mixture of Language Group Experts for Efficient Scaling of Massively Multilingual Speech Recognition},
  author={Lee, Sangmin and Chung, Woojin and Choi, Woongjib and Kang, Hong-Goo},
  journal={arXiv preprint arXiv:2607.24030},
  year={2026}
}
  • —Source corpus: https://huggingface.co/datasets/facebook/omnilingual-asr-corpus
  • —Omnilingual ASR: https://arxiv.org/abs/2511.09690
  • —UR-BERT: https://arxiv.org/abs/2606.11681
  • —MoLGE: https://arxiv.org/abs/2607.24030