jiwer
Evaluate your speech-to-text system with similarity measures such as word error rate (WER)
What it is and what it does
JiWER is a Python package for evaluating automatic speech recognition (ASR) systems by computing standard error metrics. It calculates word error rate (WER), match error rate (MER), word information lost (WIL), word information preserved (WIP), and character error rate (CER) by computing the minimum-edit distance between reference transcripts and ASR hypothesis outputs. The package delegates the computationally expensive edit-distance calculation to RapidFuzz, which uses C++ under the hood, making it faster than pure Python implementations.
The package is designed for researchers and engineers validating ASR model quality. It handles edge cases like empty references (treating them as correct silence predictions) and supports batch processing of multiple reference-hypothesis pairs. With low install friction, no security vulnerabilities, and a permissive Apache 2.0 license, it integrates easily into evaluation pipelines.
Use it for:
- Compute WER to benchmark an ASR model against a test set of reference transcriptions
- Evaluate whether a speech model hallucinates on silent audio by testing empty reference-hypothesis pairs
- Compare multiple ASR systems using MER, WIL, and WIP metrics alongside WER
- Integrate ASR evaluation into a CI/CD pipeline to track model quality across releases
- Analyze character-level errors (CER) to diagnose spelling or phonetic issues in ASR output
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
JiWER computes speech recognition evaluation metrics (WER, MER, WIL, WIP, CER) by calculating minimum-edit distance between reference and hypothesis text using RapidFuzz for speed.
Yes, for ASR evaluation workflows. The package is stable, has no vulnerabilities, and offers the standard metrics researchers need. The 421-day gap since last release is a minor concern for maintenance, but the code is straightforward and the dependency on RapidFuzz is solid. Install if you need to score speech recognition output; skip if you need active development or additional metrics beyond the five supported.
Install
jiwer on PyPI
pip
pip install jiweruv
uv add jiwerpoetry
poetry add jiwerInstalling jiwer
Before you install
Low install friction; pure Python wheel with only two runtime dependencies (click, rapidfuzz). Package is aging—last release was 421 days ago—but supports current Python versions (3.8+) and has no known vulnerabilities.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install jiwer
from jiwer import wer
reference = "hello world"
hypothesis = "hello duck"
error = wer(reference, hypothesis)
Requires Python >= 3.8
Verify before relying
- Whether the 421-day gap since last release reflects active maintenance or dormancy
- Performance characteristics compared to other ASR evaluation libraries
- Whether all five error metrics (WER, MER, WIL, WIP, CER) are equally mature
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — click, rapidfuzz |
| Maintenance | aging — 421 days since the last release |
| First released | |
| Downloads | 4,676,271/month — #2,257 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jiwer-4.0.0-py3-none-any.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
kaldialignComputes edit distance, alignment, and word…
permissive · top 15,000 on PyPI
nlptuttiMeasures Korean speech-to-text accuracy using…
permissive · top 15,000 on PyPI
texterrorsScores automatic speech recognition or…
permissive · top 5,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
jarowinklerCalculates Jaro and Jaro-Winkler string…
permissive · top 15,000 on PyPI
whisper-timestampedAdds word-level timestamps and confidence…
copyleft · top 15,000 on PyPI
thefuzzTheFuzz performs fuzzy string matching using…
permissive · top 5,000 on PyPI
nemo-toolkitnemo-toolkit provides a PyTorch framework for…
permissive · top 5,000 on PyPI
whisperxWhisperX performs fast automatic speech…
permissive · top 5,000 on PyPI
onnx-asrAutomatic Speech Recognition using ONNX models…
permissive · top 15,000 on PyPI