Home / use case

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

  1. Convert audio to 16 kHz mono WAV with ffmpeg
  2. Transcribe with whisper-cli (-otxt or -ojson for timestamps)
  3. POST the transcript to Ollama /api/chat with a minutes template
  4. 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

  1. Build whisper.cpp and download the medium model
  2. ffmpeg -i meeting.m4a -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav
  3. ./build/bin/whisper-cli -m models/ggml-medium.bin -f meeting.wav -otxt -of meeting
  4. ollama pull qwen3.5:9b
  5. 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.

GitHub