Skip to main content

OlmoASR

OlmoASR is a family of fully open automatic speech recognition (ASR) models developed by Ai2 and trained from scratch on highly curated, large-scale public data. OlmoASR aims to match or exceed the zero-shot performance of proprietary systems while ensuring complete transparency and reproducibility.

Key features​

  • Completely open and transparent: All models and training data pipelines are open-source for explainability.
  • Several model sizes: From tiny to large-v2, OlmoASR balances compute requirements and accuracy.
  • Short- and long-form support: OlmoASR models handle utterance-level clips and extended recordings with sentence-level timestamps.
  • Zero-shot robustness: Competitive zero-shot WER on diverse benchmarks without fine-tuning.
  • Extensive evaluation: Trained and tested on 21 benchmarks covering clean, noisy, and conversational speech.

Possible use cases​

OlmoASR models support English transcription, including in streaming mode, across applications:

  • Accessibility and captioning: Generate real-time captions for lectures, webinars, and broadcasts.
  • Meeting and call transcription: Automate transcription in meetings and podcasts.
  • Voice assistants and chatbots: Power speech understanding and voice-driven interfaces.
  • Data analytics: Extract insights and metadata from spoken content, such as keyword frequency.

Model variants​

Six OlmoASR model variants were trained and evaluated on industry benchmarks. For a full list of benchmarks used, visit the GitHub page.

Performance: Below is the average word error rate (WER) trend across scales (lower is better). Larger models yield consistently lower WER:

VariantParametersAvg. WER Short (%)Avg. WER Long (%)
tiny.en39M20.515.6
base.en74M16.612.9
small.en244M13.811.5
medium.en769M12.811.0
large.en-v11.5B (trained on 440K hours)13.011.4
large.en-v21.5B (trained on 680K hours)12.611.5

Inference code example​

OlmoASR models can be invoked via Python.

First, clone the repo. Ensure that you have Python >= 3.8, a virtual environment, and the necessary dependencies, ffmpeg and wandb.

git clone https://github.com/allenai/OLMoASR.git
pip install -r requirements/requirements.txt
pip install -e .

To run transcription, use this code:

import olmoasr

model = olmoasr.load_model("medium", inference=True)
result = model.transcribe("audio.mp3")
print(result)

Training data​

OlmoASR models were trained using our open ASR datasets, OlmoASR-Pool and OlmoASR-Mix.

OlmoASR-Pool is a 3-million-hour weakly supervised audio-text pool curated from the public web. Through a multi-stage filtering pipeline, this pool was distilled into OlmoASR-Mix, a high-quality 1-million-hour dataset.