OS
Windows 11 Home 24H2
CPU
Core i5-8250U
RAM
8 GB (single channel)
GPU
None — CPU inference
Storage
256 GB SATA SSD

Transcription is the best first AI project for a low-spec laptop. It needs no GPU, the models are small, and the output is immediately useful. It is also a good lesson in realistic expectations: a 10-minute recording does not transcribe in 10 minutes on a 15 W CPU.

I ran whisper.cpp on meeting recordings and interviews to find the practical settings.

The verdict

Base transcribes 10 minutes of audio in about 7 minutes — usable as a background task. Small takes about 14 minutes but makes noticeably fewer errors on names and technical terms. Both fit comfortably in 8 GB.

Why this works without a GPU

Whisper is an encoder-decoder transformer, but the models are small by LLM standards:

Model Disk size (ggml) Approx. RAM 10 min audio
tiny ~75 MB ~0.3 GB ~3 min
base ~145 MB ~0.5 GB ~7 min
small ~470 MB ~0.9 GB ~14 min
medium ~1.5 GB ~2.5 GB ~40 min
large ~3 GB ~5 GB Not practical

The audio is split into 30-second windows and processed sequentially. GPU acceleration helps enormously, but the CPU path is mature and predictable. Memory is never the constraint here; time is.

Set expectations by audio length

A one-hour meeting with the small model takes roughly 80–90 minutes on this machine. That is fine overnight, miserable if you are waiting. Use base for a first pass, then re-run the important sections with small.

Install whisper.cpp

On Windows, the easiest route is a prebuilt release from the whisper.cpp repository. Download the binary archive and a model file.

# Example layout
C:\tools\whisper.cpp\
├── whisper-cli.exe
└── models\
    ├── ggml-base.bin
    └── ggml-small.bin

Model downloads are on Hugging Face (ggerganov/whisper.cpp). The base model is about 145 MB, small about 470 MB.

If you prefer Python, faster-whisper uses CTranslate2 and is often 2–4× faster on CPU than the reference implementation. It is a good alternative if you already live in Python.

Convert the audio first

Whisper expects 16 kHz, mono, 16-bit PCM WAV. Feeding it a 48 kHz stereo MP3 causes errors or silent quality loss.

ffmpeg -i meeting.mp3 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav

If you do not have ffmpeg, install it with winget:

winget install Gyan.FFmpeg

Run a transcription

whisper-cli.exe -m models\ggml-base.bin -f meeting.wav -l en -otxt -of meeting

Useful flags:

Flag Meaning
-m Model file
-f Input WAV
-l en Language (use auto to detect)
-otxt Write a .txt transcript
-osrt Write subtitles with timestamps
-t 4 Threads (physical cores)
--vad Voice activity detection; skips silence
-pp Print progress

--vad is worth enabling for meetings. It skips long silences instead of processing them, which can cut 10–20% off the runtime.

Measured results

Test audio: a 10-minute, 16 kHz mono interview with two speakers, some background noise.

Model Time Real-time factor Word errors (spot check)
tiny 2 min 50 s 0.28× Frequent on names
base 6 min 50 s 0.68× A few, readable
small 13 min 40 s 1.37× Noticeably fewer
medium 38 min 3.8× Best, but slow

“Real-time factor” below 1 means faster than playback. Base is the only model that finishes before the audio would have played in real time.

Accuracy: what to expect

Whisper is strong on clear English speech and weaker on:

  • proper nouns and product names — it will invent plausible spellings
  • accents and crosstalk — two people talking over each other produces mush
  • technical vocabulary — acronyms are often expanded wrongly
  • numbers — “fifteen” vs “fifty” is a classic error

Practical mitigations:

  1. Use a decent microphone. Audio quality matters more than model size. A $50 USB mic beats the laptop array.
  2. Record each speaker on a separate track if possible.
  3. Give context in the prompt. whisper.cpp supports an initial prompt; listing names and terms improves recognition.
  4. Run small on the important 10 minutes, base on the rest.
  5. Keep the audio. If a sentence matters, verify it by ear.
whisper-cli.exe -m models\ggml-small.bin -f interview.wav -l en \
  --prompt "Speakers: Alex, Priya. Topics: Kubernetes, Postgres, latency." -otxt

The workflow that stuck

  1. Record with a decent mic at 44.1 or 48 kHz.
  2. Convert to 16 kHz mono WAV.
  3. Run base overnight for the full transcript.
  4. Run small on sections that will be quoted.
  5. Edit the transcript by hand — budget 20% of the audio length for cleanup.

For a one-hour meeting: about 45 minutes of machine time plus 12 minutes of editing. That is still a large saving over typing it yourself.

Privacy and storage

Local transcription is the reason to do this instead of uploading to a service. Meetings often contain personnel details, client names and unreleased plans. Keeping the audio and transcript on the laptop is a genuine advantage.

Two hygiene rules:

  • Encrypt the disk. BitLocker is included with Windows Pro; use it.
  • Delete audio you do not need. Transcripts are smaller and easier to redact.

FAQ

Can I transcribe in real time?

Not with base on this CPU. The real-time factor is above 1 for small, and base is only slightly below. Use a cloud service for live captions.

Does it support other languages?

Yes, Whisper is multilingual. Accuracy varies; English is the strongest. For Japanese, small or medium is usually needed for readable output, and medium is slow here.

Can I run it on a Raspberry Pi?

People do, with tiny or base. It is slower than this laptop and not recommended for long recordings.

What about speaker labels?

Whisper does not diarize (identify who spoke). You need a separate tool such as pyannote, which is heavier. For two-person interviews, manual labelling is faster.