Offline meeting minutes with whisper.cpp + Ollama
What they built
Meeting recordings contain client names, figures and sometimes HR data. This guide reproduces what Otter or Fireflies sell, but on your own machine: whisper.cpp for speech-to-text, then an Ollama model for a structured summary.
Setup
- whisper.cpp built from source (CUDA, Metal or ROCm optional)
- Whisper medium by default, large-v3 if the GPU allows
- Ollama with qwen3.5:9b (or mistral-small)
- ffmpeg; 8 GB RAM minimum, 16 GB comfortable
How it works
- Convert audio to 16 kHz mono WAV with ffmpeg
- Transcribe with whisper-cli (-otxt or -ojson for timestamps)
- POST the transcript to Ollama /api/chat with a minutes template
- Write the Markdown report
Results & numbers
- RTX 3060 12 GB + medium: ~3 min transcription + ~30 s summary for 1 h
- MacBook M2 16 GB: ~6 min total
- RTX 3060 transcribes 1 h in ~4 min with large-v3
Gotchas
- Ollama's default 2,048-token context silently truncates transcripts; set num_ctx
- Whisper hallucinates during silences, so enable VAD
- Over 90 minutes, use map-reduce chunking
- whisper.cpp does not do speaker diarization
Do it yourself
- Build whisper.cpp and download the medium model
- ffmpeg -i meeting.m4a -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav
- ./build/bin/whisper-cli -m models/ggml-medium.bin -f meeting.wav -otxt -of meeting
- ollama pull qwen3.5:9b
- Send the transcript with num_ctx 16384 and a 'do not invent names or decisions' rule
curl -s http://localhost:11434/api/chat -d '{
"model": "qwen3.5:9b", "stream": false,
"options": {"temperature": 0.2, "num_ctx": 16384},
"messages": [{"role":"user","content":"Summarize decisions, action items and open questions:\n<transcript>"}]
}' | jq -r '.message.content'Source: BestLLMfor · 2026-08-27 · Added 2026-10-18. This write-up summarizes the original source; see it for full details.
Related
Local-first meeting notes app (whisper.cpp + Ollama)
A macOS app that records your mic and the call's audio as two tracks, transcribes locally and writes a Markdown note with 'You vs. Them' speaker labels.