Speech-to-Text (STT)
Transcribing spoken audio into text. Whisper family is the open-weight default; faster-whisper + WhisperX deliver production-grade speed.
Setup walkthrough
pip install faster-whisper(CTranslate2-based Whisper — 4× faster than openai-whisper).- Download a model:
faster-whisper-large-v3will auto-download on first use (~3 GB). - CLI usage: create a script
transcribe.py:
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
segments, info = model.transcribe("meeting.mp3")
for seg in segments:
print(f"[{seg.start:.1f}s-{seg.end:.1f}s] {seg.text}")
- Run:
python transcribe.py. First transcription within seconds. - CPU-only: use
device="cpu", compute_type="int8"— 2-3× slower but works on any laptop. - For word-level timestamps, swap to WhisperX (
pip install whisperx).
The cheap setup
Whisper large-v3 runs on CPU (Intel i5/Ryzen 5) at 0.2-0.5× real-time — a 1-hour meeting transcribes in 2-5 hours, fine for overnight batch jobs. A used GTX 1060 6 GB ($60) speeds this to 3-5× real-time via CUDA — a 1-hour meeting in 12-20 minutes. Any $300 laptop + a cheap USB microphone handles this. For real-time transcription, add a used GTX 1660 Super 6 GB ($100) for ~10× real-time on Whisper medium.en.
The serious setup
Used RTX 3060 12 GB (~$200-250, see /hardware/rtx-3060-12gb). Runs Whisper large-v3 at 15-20× real-time — a 1-hour meeting in ~3-4 minutes. WhisperX with diarization (speaker labels) at ~8-10× real-time. Can handle 8+ concurrent transcription streams. Pair with Ryzen 7 7700X + 32 GB DDR5 + 2TB NVMe. Total: ~$900-1,100. STT is compute-light — even an RTX 3060 is overkill for most users; prioritize storage for audio archives.
Common beginner mistake
The mistake: Using the original openai-whisper package with default settings and wondering why transcription takes 10× longer than expected. Why it fails: openai-whisper runs on PyTorch with no optimization — it's the reference implementation, not production-grade. The fix: Install faster-whisper (CTranslate2 backend) — identical model weights, 4× faster, 2× less VRAM. And always set compute_type="int8" for CPU or "float16" for GPU. The model choice matters too: tiny.en or base.en handle clean English audio at 10-50× real-time with 90%+ accuracy. Reserve large-v3 for noisy/multilingual audio.
Recommended setup for speech-to-text (stt)
Browse all tools for runtimes that fit this workload.
Reality check
Audio models are surprisingly forgiving on hardware. Whisper, Coqui, OpenAI Whisper-cpp all run well on 8-12 GB GPUs. The bottleneck is rarely the GPU; it's audio preprocessing and disk I/O for batch transcription.
Common mistakes
- Overspending on GPU for audio-only workflows (8-12 GB is enough for Whisper)
- Running audio + LLM concurrently without budgeting VRAM
- Using fp32 weights when fp16 / int8 give 2-3x speedup with no quality loss
- Forgetting audio preprocessing eats CPU cycles — a fast SSD helps more than expected
What breaks first
The errors most operators hit when running speech-to-text (stt) locally. Each links to a diagnose+fix walkthrough.
Before you buy
Verify your specific hardware can handle speech-to-text (stt) before committing money.
Transcription and audio workloads are unusually low on VRAM — most buyers overspend here. The guides below frame the right tier honestly.