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:
| Variant | Parameters | Avg. WER Short (%) | Avg. WER Long (%) |
|---|---|---|---|
| tiny.en | 39M | 20.5 | 15.6 |
| base.en | 74M | 16.6 | 12.9 |
| small.en | 244M | 13.8 | 11.5 |
| medium.en | 769M | 12.8 | 11.0 |
| large.en-v1 | 1.5B (trained on 440K hours) | 13.0 | 11.4 |
| large.en-v2 | 1.5B (trained on 680K hours) | 12.6 | 11.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.