Skip to content

Run Whisper AI Locally: The Setup Nobody Tells You About

Most Whisper guides skip the hard parts. Here's what actually happens when you run OpenAI's transcription model on your own machine - GPU quirks, speed traps, and all.

7 min readIntermediate

You install Whisper, run it on a 10-minute podcast clip, and your GPU throws an out-of-memory error. The tutorial said “just use the large model for best results.” Didn’t mention the large model needs 10GB of VRAM – or that there’s a faster version nobody talks about.

I’ve set up Whisper on five different machines. Same pattern: first attempt fails, second attempt is slow, third finally works after you learn what the tutorials skip.

Why Local Whisper Beats Cloud APIs (When You Set It Up Right)

Cloud transcription APIs charge per minute. Whisper was trained on 680,000 hours of multilingual data (as of 2022 release), and OpenAI released it under an MIT license. Run it locally? Zero per-transcription cost. Just the one-time hardware investment.

Privacy is the real win. Your audio never leaves your machine. For legal depositions, medical notes, internal meetings – you need this.

The cost: time and resources to install, and OpenAI provides no ongoing support. When it breaks, you fix it yourself.

The VRAM Trap Everyone Hits

First time I ran large-v3 on an RTX 3070 (8GB VRAM): instant crash. The large-v3 model needs 2.87GB at FP16 precision, but inference adds 20% overhead (per EleutherAI findings, early 2024). In practice, the large model requires around 10GB VRAM for both V2 and V3.

Most consumer cards: 6-8GB. Math doesn’t work.

small or medium instead. The small model (244M parameters) offers good accuracy with reasonable speed (as of late 2024). Medium hits the sweet spot – quality without destroying your VRAM budget.

Or skip the problem: use faster-whisper.

Install the Tools (The Actual Working Version)

You need Python and ffmpeg first. Python 3.8+, pip, and ffmpeg – for larger models like medium or large, 16GB+ RAM recommended. Note: Whisper doesn’t work with Python 3.13 yet (as of early 2025), use version 3.10 or 3.12.

ffmpeg first. Handles audio format conversion:

# macOS (using Homebrew)
brew install ffmpeg

# Ubuntu/Debian
sudo apt update && apt install ffmpeg

# Windows (using Chocolatey - install from chocolatey.org first)
choco install ffmpeg

Now the decision: openai-whisper or faster-whisper? faster-whisper is up to 4 times faster than openai/whisper for the same accuracy while using less memory (SYSTRAN benchmarks, 2024).

Start with faster-whisper:

pip install faster-whisper

Drop-in replacement. Better performance. Slightly different syntax – I’ll show you.

Your First Transcription (and Why It’s Slower Than You Expect)

Create transcribe.py:

from faster_whisper import WhisperModel

# Use "small" model on GPU with FP16 precision
model = WhisperModel("small", device="cuda", compute_type="float16")

# For CPU-only machines:
# model = WhisperModel("small", device="cpu", compute_type="int8")

segments, info = model.transcribe("audio.mp3", beam_size=5)

print(f"Detected language: {info.language} (probability: {info.language_probability})")

for segment in segments:
 print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

Run: python transcribe.py

First time? Whisper downloads model weights (~500MB for small). After that, it transcribes.

RTX 4070, 5-minute podcast: ~15 seconds with small model. CPU? 3 minutes. GPU is roughly 20x faster than CPU, but needs more VRAM than the RAM required for CPU (community benchmarks, 2024).

Pro tip:When comparing performance, verify you’re using the same beam size – openai/whisper defaults to beam_size=1, but faster-whisper defaults to beam_size=5 (GitHub docs, as of 2024). Higher beam size = better accuracy but slower.

One thing nobody tells you: the download happens silently. First run takes longer. Looks frozen. It’s not – just fetching the model.

The Hallucination Problem (That Nobody Warns You About)

I transcribed a 30-minute lecture. 2-minute silence gap in the middle. Whisper filled that gap with fabricated sentences about topics never mentioned in the recording.

Not a bug. Known limitation. Research found roughly 1% of Whisper transcriptions contained hallucinated phrases or sentences, with 38% of hallucinations including explicit harms like violence or false associations (Cornell study, arXiv:2402.08021, Feb 2024). Whisper’s Voice Activity Detection (VAD) is not very accurate, and the predicted no_speech_prob is often unreliable – causes issues with long silence gaps (GitHub discussion #29). Pre-process your audio: trim long silences before feeding files to Whisper. Or switch to a VAD-enhanced pipeline like batched faster-whisper, which uses voice activity detection to batch audio and respect phrase boundaries.

Remember that VRAM trap from earlier? Here’s where it gets weird: smaller models hallucinate slightly more often. You want accuracy, you need VRAM. You lack VRAM, you get hallucinations. Pick your poison.

Speed It Up Without Breaking Accuracy

Three levers:

Model size.Tiny model: ~1GB VRAM. Large: ~10GB (as of late 2024). Quick drafts or clear audio? Tiny works. Production transcripts? Small or medium.

Compute type. FP16 is default on GPU. INT8 quantization cuts memory usage ~35% with minimal quality loss:

model = WhisperModel("medium", device="cuda", compute_type="int8")

Beam size. Lower from 5 to 1. Faster decoding. You lose a bit of accuracy, but transcription speed nearly doubles.

Numbers from my tests (5-minute audio, RTX 4070, Jan 2025):

  • Small, FP16, beam_size=5: 15s
  • Small, INT8, beam_size=1: 7s
  • Tiny, INT8, beam_size=1: 4s

Results vary. GPU model matters more than you’d think – RTX 4060 Ti with 16GB VRAM is faster than RTX 4070 Super with 12GB for Whisper workloads, despite costing less (community reports, late 2024).

Which matters more to you: speed or memory? Can’t always have both.

Fix Name and Jargon Mistakes with initial_prompt

Whisper transcribed “Derick” as “Derek” and “Xdebug” as “XDbook” in a developer screencast I processed. Standard problem: doesn’t know your domain-specific terms.

--initial_prompt feeds context to the model. The model uses relevant information from the prompt to improve accuracy, though whisper-1 only considers the final 224 tokens (OpenAI API docs, as of 2024).

In Python:

segments, info = model.transcribe(
 "audio.mp3",
 initial_prompt="This is a tutorial by Derick about the Xdebug debugging tool for PHP."
)

After adding that prompt, both names transcribed correctly. The model isn’t magic – just needs hints when you’re working outside common vocabulary.

When to Use openai-whisper Instead

I’ve recommended faster-whisper this entire time. The original openai-whisper package has one advantage: reference implementation. Every feature lands there first.

pip install openai-whisper

Command-line usage:

whisper audio.mp3 --model small --language English

Transcript appears in terminal, plus output files (.txt, .srt, .vtt). Python API: import whisper instead of from faster_whisper import WhisperModel. Almost the same.

For most cases, faster-whisper wins on speed. For specific situations or keeping pace with OpenAI’s updates, the original package is safer. 4x speed difference vs latest official release. Pick one.

What to Do Next

Install faster-whisper. Transcribe one audio file with small model. Check output for hallucinations – if you see fabricated text, trim silence from source audio and try again.

Laptop or budget GPU? Test tiny model with INT8 quantization. Surprisingly good for clean recordings.

Official docs: OpenAI Whisper repository | faster-whisper repository | Whisper research paper (arXiv) | Hallucination research (Cornell) | Whisper large-v3 model card

FAQ

Can I run Whisper without a GPU?

Yes. device="cpu" and compute_type="int8" when loading. 10-20x slower than GPU. Tiny and small models run fine on modern CPUs. Expect 2-3 minutes for a 5-minute audio file on a decent desktop processor (as of 2025).

Why does Whisper add sentences that were never spoken?

Hallucinations happen when Whisper encounters silence, background noise, or unclear audio. The model predicts what comes next based on training data, sometimes fabricating plausible-sounding text. Affects roughly 1% of transcripts (per Cornell research, Feb 2024). Trim long silences before transcription, use voice activity detection preprocessing, or manually review output for critical applications. Medical and legal use cases should never trust Whisper output without human verification – this may change as the model improves, but as of early 2025, the 1% hallucination rate remains.

Which model should I use for podcast transcription?

small. Balances speed and accuracy for most podcasts. 16GB+ VRAM and you care more about quality than speed? Try medium. Large is overkill unless you’re dealing with heavy accents or technical jargon (as of 2025 testing). Quick drafts where you’ll edit the transcript anyway? tiny is fast and surprisingly accurate on clean audio. Test a few episodes. Pick the smallest model that meets your accuracy bar.