Build whisper.cpp, download the right ggml model, choose quantization, and fix build failures, Metal/CUDA flags and garbage output.
git clone https://github.com/ggml-org/whisper.cpp && cd whisper.cpp && make — Apple Silicon gets Metal automatically; NVIDIA: make GGML_CUDA=1.
bash ./models/download-ggml-model.sh base.en — or grab any ggml-*.bin from Hugging Face.
./main -m models/ggml-base.en.bin -f audio.wav -osrt — input must be 16 kHz WAV; convert with ffmpeg first.
Same Whisper-class accuracy, no install, no model downloads, no GPU questions. Speaker labels, word timestamps and every export (TXT, SRT, VTT, DOCX) included. Free instant preview; credits from $2 and they never expire.
Nine times out of ten the input isn't 16 kHz mono WAV. ffmpeg -i in.mp3 -ar 16000 -ac 1 out.wav and retry.
q5_0 is the sane default — ~½ the size of f16 with barely measurable accuracy loss. q4 saves more memory but degrades noticeably on noisy audio.
The GGML_CUDA build needs the CUDA toolkit headers matching your driver. On mismatch, build CPU-only — whisper.cpp's CPU path is already fast.
Use the stream example binary — tiny/base models only if you want it to keep up.
Process in chunks with -ot offsets, or use a smaller quantized model — memory scales with model size, not file length, but the transcript buffer grows.
More on whisper.cpp: the full whisper.cpp page · whisper.cpp alternatives · all transcription tools