Whisper is the speech recognition model OpenAI released in 2022 and the reference code to run it. Give it an audio or video file and it returns a transcript with timestamps, identifies the language, or translates the speech into English. The models come in six sizes, from tiny at 39 million parameters to large at 1.55 billion, plus turbo, a faster version of large-v3 that is the default. Everything runs locally on PyTorch, on a GPU or, slowly, on a CPU.
It is on the list because nearly every open transcription tool starts here: whisper.cpp, faster-whisper, WhisperX and the subtitle features in video editors are ports or wrappers of these weights. The repository itself is small, about 8,000 lines of Python, MIT-licensed, and rarely changes; the latest release is from June 2025. That stability is a feature for a model you want to transcribe with the same results next year.
- Repository: github.com/openai/whisper
- Licence: MIT (MIT License)
- Language: Python. Stars: 109.6K. Forks: 13.3K. Last push: Aug 31, 2026.
- Scan: safe, Aug 31, 2026, commit 8609812
Who it is for
Journalists, researchers and podcasters who transcribe recordings and want them to stay private, developers adding speech to text to an app, and anyone with a GPU who would rather not pay per minute of audio.
Getting started
1. Install ffmpeg first (sudo apt install ffmpeg on Ubuntu or Debian)
brew install ffmpeg2. Install Whisper (Python 3.8 to 3.11 with a recent PyTorch)
pip install -U openai-whisper3. Transcribe with the default turbo model
whisper audio.mp3 --model turbo4. Translate non-English speech into English (turbo does not translate)
whisper japanese.wav --model medium --language Japanese --task translateThe first run downloads the chosen model from OpenAI's CDN, from about 75 MB for tiny to about 3 GB for large. If pip fails building tiktoken, the README suggests installing Rust and running pip install setuptools-rust.
Safety scan
We cloned openai/whisper at commit 8609812 on Aug 31, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.
- 45 files, about 8,000 lines. No secrets, no pattern hits, no install hooks, no installer scripts, no committed binaries, no bare-IP URLs.
- The only host the code contacts is openaipublic.azureedge.net, for model weights. Each download is checked against the SHA-256 in its URL before use, and checkpoints are loaded with torch.load(weights_only=True), which closes the pickle route to running code.
- requirements.txt lists numba, numpy, torch, tqdm, more-itertools, tiktoken and triton without versions and there is no lockfile, so there is nothing for OSV to check; pip installs current versions.
- Two workflows, none using pull_request_target, and all 3 third-party actions pinned to a commit. Dependabot on; no security policy. The OpenSSF Scorecard is 4.3 of 10, pulled down by low maintenance activity, broad token permissions and no security policy or static analysis, which fits a stable research release more than a risk.
What the scanner counted
| Check | Result |
|---|---|
| Secrets | None found. |
| Suspicious code | None found. |
| Install-time code | None: nothing runs at install beyond the package manager itself. |
| Committed binaries | None. |
| CI workflows | 2 workflows. None use pull_request_target. 0 of 3 third-party actions pinned to a tag rather than a commit. |
| Network hosts | 4 distinct hosts referenced from source; most often openaipublic.azureedge.net, github.com, arxiv.org, www.tysto.com. No URLs to bare IP addresses. |
| Known vulnerabilities | No lockfile to check: dependencies are declared as ranges, so what gets installed is whatever is current on the day. |
| Project hygiene | Has automated dependency updates, licence file. Missing security policy, CodeQL, contributing guide. |
| OpenSSF Scorecard | 4.3 out of 10, as of Sep 21, 2026. |
By the numbers
| Stars | 109.6K |
|---|---|
| Forks | 13.3K |
| Contributors | 83 |
| Commits | 171 |
| Open issues | 0 |
| Open pull requests | 154 |
| Releases | 13 |
| Latest release | v20250625 |
| Licence | MIT |
| Main language | Python |
| Project age | 4 years |
| Last push | Aug 31, 2026 |
| Tracked files | 45 |
| Lines of code | 8,028 |
| Checkout size | 10 MB |
Lines by language: Python 4,315, JSON 2,063, Jupyter 960, Markdown 474, YAML 161, TOML 55.
Questions
Is Whisper free?
Yes. The code and the model weights are MIT-licensed and free for any use, including commercial. Running it locally costs only your hardware and electricity. OpenAI's paid transcription API is a separate hosted service, and you do not need an account or key to use this repository.
What hardware do I need to run Whisper?
The README gives approximate VRAM for each size: about 1 GB for tiny and base, 2 GB for small, 5 GB for medium, 6 GB for turbo and 10 GB for large. It runs on a CPU too, but much more slowly; on a laptop without a GPU, whisper.cpp or faster-whisper are the quicker ways to run the same models.
Does Whisper send my audio to OpenAI?
No. This repository runs the model entirely on your machine. The only network call is downloading the model weights the first time you use a size, and those files are checksummed. Your audio and transcripts never leave the computer unless you send them somewhere yourself.
This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.
