Open-Source Wikis

/

Whisper

/

Lore

openai/whisper

Lore

A timeline of the Whisper repository, derived from git log and the CHANGELOG.md. Tag dates are taken from the changelog (the slugs vYYYYMMDD are the release dates).

Eras

Sep 2022 — Initial public release

The repository's earliest commit (6e3be77e) lands on 2022-09-21. The first public push includes the encoder/decoder Transformer (model.py), the transcribe() loop, the GPT-2 / multilingual tokenizers, beam-search decoding, and a CLI. The first large checkpoint is published alongside the paper and blog post. The original tokenizer used HuggingFace transformers; this is replaced soon after.

Jan 2023 — v20230117, first PyPI release

The first versioned release (tag v20230117) ships to PyPI as openai-whisper. Subsequent rapid releases through Q1 2023 add output formats (TSV, --output_format), formatter pre-commit configuration, and printing fixes for non-UTF-8 environments.

Mar 2023 — Word timestamps and tiktoken

Two large changes land within a few weeks of each other:

  • v20230306: word-level timestamps (#869). Adds whisper/timing.py, the Triton DTW + median-filter kernels in whisper/triton_ops.py, and the _ALIGNMENT_HEADS per-model masks in whisper/__init__.py.
  • v20230314: switches from HuggingFace tokenizers to tiktoken (#1044), reducing dependencies and improving start-up time. The Tokenizer class in whisper/tokenizer.py wraps tiktoken.Encoding and reattaches Whisper's special tokens.

Sep 2023 — v20230918, decoding hardening

A round of robustness fixes: better timestamp heuristics (#1461), word-timing tweaks (#1559), avoidance of cache rearrangement (#1483), and pre-commit (black, isort, flake8) gets enforced via .pre-commit-config.yaml (#1528).

Nov 2023 — large-v3, 128 mel channels

v20231106 ships the large-v3 checkpoint (#1761). n_mels becomes a per-model parameter so large-v3 can use 128 mel filters instead of 80 (#2049). whisper/assets/mel_filters.npz gains a mel_128 array alongside mel_80.

Sep 2024 — large-v3-turbo

Two releases land in late September 2024:

  • v20240927: hallucination skip during word-timestamps (#1838), Triton requirements relaxed (#2307).
  • v20240930: ships large-v3-turbo (alias turbo) (#2361), an optimized large-v3 with fewer decoder layers; introduces SDPA (PyTorch scaled_dot_product_attention) to MultiHeadAttention (#2359).

turbo becomes the default CLI model.

2025 — Maintenance and supply-chain hardening

v20250625 (the current release) bundles:

  • Switch torch.load to weights_only=True for security (#2451).
  • Triton kernel update for newer Triton versions (#2588).
  • Migration from setup.py to pyproject.toml (#2435, PEP 621).
  • Python 3.13 added to CI (#2487).
  • Dependabot enabled for GitHub Actions (#2486), and pre-commit hooks pinned to immutable commit hashes (commits cba3768 in Mar 2026 and 04f449b in Apr 2026).

Q1 2026 — Pinned actions

The two most recent commits on main (Mar–Apr 2026) pin GitHub Actions and pre-commit references to immutable commits. No code changes to the model or pipeline.

Longest-standing code

These files have been present essentially since the first public commit and have changed little in shape:

File / module First seen Notes
whisper/model.py Sep 2022 Encoder/decoder Transformer; only major change was SDPA.
whisper/audio.py Sep 2022 Hyperparameters and log_mel_spectrogram. Stable.
whisper/decoding.py Sep 2022 DecodingOptions, beam search, logit filters. Iterative refinement but same shape.
whisper/normalizers/english.py Sep 2022 Big tables of number/spelling normalization for evaluation. Untouched in years.

Deprecated / replaced

  • HuggingFace transformers tokenizer → replaced by tiktoken in v20230314 (#1044).
  • ffmpeg-python Python dependency → dropped in v20230918 (#1242); whisper/audio.py calls ffmpeg via subprocess.run directly.
  • setup.py packaging → replaced by pyproject.toml in v20250625 (#2435).
  • Python 3.7 → support dropped in v20230306 (#889).
  • Pinned tiktoken version → unpinned in v20231105 (#1759).

Major rewrites

There have not been any from-scratch rewrites of the core model or pipeline. The encoder/decoder code in whisper/model.py is essentially the original 2022 design with surgical additions:

  • KV cache hooks (early 2023).
  • set_alignment_heads() and _ALIGNMENT_HEADS map (Mar 2023, with word timestamps).
  • disable_sdpa() context manager and MultiHeadAttention.use_sdpa flag (Sep 2024).
  • n_mels becoming a per-model dimension (Nov 2023).

Likewise transcribe() has accreted features (carry initial prompt, clip timestamps, hallucination-silence skipping) on the same skeleton — its docstring still notes "This loop is obscurely flattened to make the diff readable. A later commit should turn this into a simpler nested loop."

Growth trajectory

  • 2022: 57 commits — initial release plus rapid iteration.
  • 2023: 79 commits — peak activity. Word timestamps, tiktoken switch, large-v3.
  • 2024: 14 commits — turbo, SDPA, NumPy 2 / PyTorch 2.4 compatibility.
  • 2025: 16 commits — pyproject.toml migration, security fixes, weights_only=True.
  • 2026 YTD: 2 commits — supply-chain pins.

167 unique committers in git log so far. Single biggest contributor by commits to the core Python files is Jong Wook Kim, who appears as the top author of model.py, transcribe.py, decoding.py, tokenizer.py, timing.py, and the original audio.py.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Lore – Whisper wiki | Factory