texterrors
For WER
What it is and what it does
texterrors is a command-line tool and Python library for evaluating automatic speech recognition and transcription systems. It computes standard metrics like word error rate (WER) and character error rate (CER), then provides detailed aligned error reports showing exactly where and how transcriptions diverged from reference text. The tool supports multiple input formats (ark-like, CTM), can group metrics by speaker or other categories, and offers specialized analysis modes like out-of-vocabulary word tracking and oracle WER selection across multiple hypotheses.
The package depends on Levenshtein for edit-distance alignment, numpy for numerical operations, typer for CLI scaffolding, loguru for logging, regex for pattern matching, and termcolor for colored terminal output. It ships prebuilt wheels for Python 3.10, 3.11, and 3.12 across macOS, Linux, and Windows, making installation straightforward on common platforms. Character-aware alignment is available as an option to produce more intuitive word alignments when words are similar, though it can increase reported WER by exposing insertions and deletions that token-only alignment would hide.
Use it for:
- Compute aggregate WER/CER metrics on ASR output files to track system performance over time
- Generate detailed per-utterance alignment reports to diagnose specific transcription errors and patterns
- Compare multiple ASR systems or hypotheses against the same reference to rank model quality
- Analyze out-of-vocabulary word recognition rates using OOV-CER for targeted model improvement
- Extract per-speaker or per-group error metrics from mixed-speaker transcriptions for speaker-specific analysis
- Produce JSON summaries of top errors for automated reporting and integration into evaluation pipelines
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Scores automatic speech recognition or transcription output against a reference text, computing WER and CER with detailed alignment reports and diagnostic tools.
Yes. texterrors is actively maintained, has no known vulnerabilities, carries a permissive license, and directly solves a common problem in speech recognition evaluation. Medium install friction is acceptable given the prebuilt wheels and straightforward dependency set. Install it if you regularly evaluate ASR or transcription systems.
Install
texterrors on PyPI
pip
pip install texterrorsuv
uv add texterrorspoetry
poetry add texterrorsInstalling texterrors
Before you install
Medium install friction due to compiled dependencies (Levenshtein, numpy, regex). Active maintenance with recent release (66 days ago). Supports Python 3.9 or newer across multiple platforms via prebuilt wheels.
License in practice
Apache-2.0 permissive license allows use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install texterrors
from texterrors import align_texts
ref_aligned, hyp_aligned, cost = align_texts(
["speedbird", "eight", "six", "two"],
["hello", "speedbird", "six", "two"],
use_chardiff=True,
)
Requires Python 3.9 or newer; compiled dependencies (Levenshtein, numpy) may require build tools on some platforms.
Verify before relying
- Whether the character-aware alignment mode is enabled by default or requires explicit flags
- Performance characteristics on very large transcription files or datasets
- Compatibility with non-English or multilingual transcription outputs
Package facts
| License | Apache-2.0 License (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 6 — Levenshtein, loguru, numpy, typer, regex, termcolor |
| Maintenance | actively maintained — 66 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 875,922/month — #4,832 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: texterrors-1.1.8-cp310-cp310-macosx_10_14_x86_64.whl; texterrors-1.1.8-cp310-cp310-macosx_11_0_arm64.whl; texterrors-1.1.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; texterrors-1.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; texterrors-1.1.8-cp310-cp310-musllinux_1_2_i686.whl; texterrors-1.1.8-cp310-cp310-musllinux_1_2_x86_64.whl; texterrors-1.1.8-cp310-cp310-win32.whl; texterrors-1.1.8-cp310-cp310-win_amd64.whl; texterrors-1.1.8-cp311-cp311-macosx_10_14_x86_64.whl; texterrors-1.1.8-cp311-cp311-macosx_11_0_arm64.whl; texterrors-1.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; texterrors-1.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; texterrors-1.1.8-cp311-cp311-musllinux_1_2_i686.whl; texterrors-1.1.8-cp311-cp311-musllinux_1_2_x86_64.whl; texterrors-1.1.8-cp311-cp311-win32.whl; texterrors-1.1.8-cp311-cp311-win_amd64.whl; texterrors-1.1.8-cp312-cp312-macosx_10_14_x86_64.whl; texterrors-1.1.8-cp312-cp312-macosx_11_0_arm64.whl; texterrors-1.1.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl; texterrors-1.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.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
jiwerJiWER computes speech recognition evaluation…
permissive · top 5,000 on PyPI
rougeComputes ROUGE scores (Recall-Oriented…
unclear · top 5,000 on PyPI
unbabel-cometEvaluates machine translation quality using…
permissive · top 15,000 on PyPI
pyannote-metricsEvaluates and analyzes speaker diarization…
unclear · top 5,000 on PyPI
rouge-metricComputes ROUGE metrics (ROUGE-N, ROUGE-L,…
permissive · top 15,000 on PyPI
rouge-chineseComputes ROUGE evaluation metrics for Chinese…
unclear · top 15,000 on PyPI
whisperxWhisperX performs fast automatic speech…
permissive · top 5,000 on PyPI
whisper-timestampedAdds word-level timestamps and confidence…
copyleft · top 15,000 on PyPI