openai/whisper
63.4
Adequate · 5 August 2026
3.4k
lines of production code
Python
primary language
4
measurements over time
What this system is
This system is an audio transcription service built on the Whisper model, responsible for converting speech to text with word-level timestamps. It handles audio processing, text normalization, and tokenization using the tiktoken library. The codebase includes comprehensive tests for timing, tokenization, and transcription accuracy.
Features
Migrate package configuration from setup.py to pyproject.toml
The project has migrated its package metadata and configuration from the legacy \setup.py\ file to the modern \pyproject.toml\ format (PEP 621). This change simplifies the project structure by consolidating configuration, though the \setup.py\ file has been removed. Additionally, the \MANIFEST.in\ file was updated to explicitly include \requirements.txt\, \README.md\, and \LICENSE\ in the source distribution.
(repo-wide) · high confidence
Behavioural changes
Fix Jupyter notebook rendering and update widget IDs
The Jupyter notebooks are updated to fix GitHub display errors and update widget model IDs to ensure correct rendering in the browser. Additionally, the Multilingual\_ASR notebook refactors the download logic by extracting a reusable download function and updating the Fleurs dataset class to use it, while also correcting minor text formatting in the translation output cells.
notebooks · medium confidence
Major overhaul of transcription pipeline and model loading
The transcription engine was refactored to support word-level timestamps, clip-based processing, and configurable prompts. The \transcribe\ function now accepts parameters for word alignment, initial prompts, and silence handling. Model loading was updated to support \in\_memory\ loading and \weights\_only=True\ for security, while the tokenizer switched from \transformers\ to \tiktoken\. Additionally, audio processing replaced the \ffmpeg-python\ dependency with a direct \ffmpeg\ CLI call, and the \mel\_filters\ now support 128 mel bands.
whisper · high confidence
Switched to tiktoken for text tokenization
The GPT-2 tokenizer assets (merges.txt, vocab.json, special\_tokens\_map.json, and tokenizer\_config.json) have been removed and replaced with new tiktoken-compatible files (gpt2.tiktoken and multilingual.tiktoken). This change updates the underlying tokenization library from the original Hugging Face tokenizers to tiktoken, which may affect how text is split into tokens during transcription.
whisper/assets · high confidence
Fixes
Fix incorrect normalization of 'mm' in English text
The English text normalizer no longer replaces the standalone token 'mm' with 'hmm'. This corrects a bug where 'mm' (for example in '20mm') was mistakenly converted to 'hmm', which would alter the meaning of measurements and other contexts where 'mm' is a valid abbreviation or token. The change is implemented by removing the specific mapping from 'mm' to 'hmm' in the English normalizer's replacement dictionary.
whisper/normalizers · high confidence
Test coverage
Expanded test coverage for timing, tokenization, and transcription
Added new test files (conftest.py, test\_timing.py) and updated existing ones (test\_audio.py, test\_normalizer.py, test\_transcribe.py). The changes include tests for Dynamic Time Warping (DTW) and median filtering on both CPU and CUDA, assertions for the '10mm' normalization, validation of tokenizer split behavior on Unicode characters, and verification of word-level timestamps and token alignment in transcription results.
tests · high confidence
Dependencies
Migrate to pyproject.toml and update dependencies
The project has migrated its build configuration from setup.py to pyproject.toml, adopting PEP 621 standards. This change includes updating the 'triton' dependency to require version 2.0.0 or higher for Linux platforms, adding 'tiktoken' as a direct dependency, and removing the 'transformers' and 'ffmpeg-python' dependencies.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 63 → 63 (+0.5)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.
Lenses
- Code Health 76 → 76 (+0.1)
- Architecture 100 → 100 (+0.0)
- Maturity 52 → 53 (+1.1)
- Readiness 65 → 65 (+0.0)
- Security 77 → 77 (+0.0)
New (1)
- The 'Setup' section mentions pip install commands but does not explain how to verify Python 3.9 compatibility after installation. (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
openai/whisper was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 5f86d1d86363843179951550570367b37c5d6f78 — the exact code this score is about.
- Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.