Skip to main content

Overview

MixtureParquetAsrDataset combines parquet storage and ASR task pipelines into a complete fairseq2 dataset implementation. It supports:
  • Multilingual datasets with language-corpus partitioning
  • Weighted sampling across partitions for balanced training
  • Efficient parquet-based storage with streaming support
  • Configurable audio/text preprocessing pipelines

Constructor

Path
required
Path to the dataset directory containing parquet files organized by language and corpus partitions.

Example

Class Methods

from_path

Factory method to create dataset from a directory path.
Path
required
Path to parquet dataset directory.
MixtureParquetAsrDataset
Initialized dataset instance.

Instance Methods

create_reader

Creates a data reader for the specified split with full configuration.
str
required
Dataset split to read (e.g., "train", "dev", "test"). Can include corpus filter as "split_corpus" (e.g., "train_librispeech").
Tokenizer
required
Tokenizer for text encoding/decoding.
Gangs
required
Gang configuration for distributed data parallel training.
torch.dtype
required
Data type for audio tensors.
int
required
Number of batches to accumulate before yielding.
MixtureParquetStorageConfig
required
Configuration for parquet storage and partition weighting.
AsrTaskConfig
required
Configuration for ASR preprocessing pipeline.
DataReader[Seq2SeqBatch]
Configured data reader yielding Seq2SeqBatch objects.

Complete Usage Example

Dataset Structure

The parquet dataset should be organized with language and corpus partitions:

Parquet Schema

Each parquet file should contain:
bytes
required
Raw audio data (WAV, MP3, FLAC, etc.)
int
required
Audio length in samples
str
required
Transcription text
str
required
Split name (train/dev/test)
str
required
Language code (e.g., “eng”, “fra”)
str
required
Corpus name (e.g., “librispeech”, “commonvoice”)

Mixture Weighting

Dataset Summary Format

The dataset_summary_path TSV should contain:

Weight Calculation

Beta parameter effects:
  • beta=1.0: Proportional to hours (high-resource languages dominate)
  • beta=0.5: Square root weighting (balanced)
  • beta=0.0: Uniform sampling (all languages equal)

Split Filtering

Batch Format

The reader yields Seq2SeqBatch objects:

See Also

Source Reference

See implementation at src/omnilingual_asr/datasets/impl/mixture_parquet_asr_dataset.py:33