1. Learn
  2. Make it useful

Summarize meetings locally: transcribe and summarize without the cloud

Turn a meeting recording into a transcript, summary and action items on your own computer with Whisper and a local model. Steps, models and the context-length catch.

Updated Oct 26, 2026 · RunItLocal.io

Transcribe the recording with Whisper, then give the transcript to a local model with a clear prompt. Two steps, both on your machine. You get a summary, decisions and action items, and the recording never touches a meeting-bot service.

That's the main reason to do it locally. Meetings are full of things that shouldn't leave the room: salaries, client problems, plans that aren't public yet.

Step 1: Transcribe with Whisper

Whisper is the standard open speech-to-text model. The simplest way to run it is the openai-whisper Python package, which also needs ffmpeg installed to read audio files. Then:

whisper meeting.m4a --model medium --output_format txt

That writes meeting.txt next to the recording. Bigger Whisper sizes are more accurate and slower; on a GPU even the larger ones run well faster than real time. For faster options, whisper.cpp and faster-whisper run the same models with less memory. See local speech-to-text models.

Who said what? Whisper on its own doesn't label speakers. Separate "diarization" tools add that, and some Whisper front ends bundle it. Without it, summaries still work well; you just won't get "Sam agreed to..." unless people say names out loud.

Step 2: Summarize with a local model

A one-hour meeting is roughly 10,000 tokens of transcript or more. That's the catch: Ollama's default context is shorter than that, so without changing it the model only sees part of the meeting and summarizes that part confidently.

On Linux, start Ollama with a longer window:

OLLAMA_CONTEXT_LENGTH=32768 ollama serve

On Mac and Windows, set the context length in the Ollama app's settings. Long context needs memory; see context length and the KV cache.

Then pass the transcript in with your prompt:

ollama run qwen3:14b "Summarize this meeting transcript. List decisions, then action items with owners, then open questions. Only use what is in the transcript. $(cat meeting.txt)"

Or paste it into Open WebUI, which is easier to read and lets you ask follow-ups like "what did we say about the budget?"

A prompt that works

Vague prompts get vague summaries. This structure gives consistent results:

  1. Summary: three to five sentences on what the meeting was about.
  2. Decisions: each one in a single line.
  3. Action items: task, owner if named, deadline if mentioned.
  4. Open questions: anything raised and not settled.
  5. "If something isn't in the transcript, leave it out. Don't guess names or dates."

That last line matters. Small models fill gaps with plausible inventions, and an invented deadline in a summary is worse than none.

Which model to use

MemoryPickNotes
8 GBQwen3 8BFine for short meetings; check the action items
12 GBQwen3 14BNoticeably more faithful to what was said
12 GB, long meetingsGemma 3 12B128K context handles multi-hour transcripts

Here's a 12 GB RTX 4070 from our calculator:

RTX 4070, 12 GB · estimated with our calculator · full page

  • Qwen3 4BQuick everyday chat and summaries
    ~110 tok/s
    Runs greatqwen3:4b
  • Qwen3 8BA solid all-rounder for chat and writing
    ~53 tok/s
    Runs greatqwen3:8b
  • Gemma 3 12BReads images as well as text
    ~34 tok/s
    Runs greatgemma3:12b
  • Qwen3 14BNoticeably smarter at reasoning and code
    ~30 tok/s
    Usableqwen3:14b
  • gpt-oss 20BOpenAI's open model. Fast, strong reasoning
    needs 16 GB
    Too biggpt-oss:20b
  • Gemma 3 27BGoogle's best open model for its size
    needs 19 GB
    Too biggemma3:27b
  • Qwen3 30B-A3B30B smarts at small-model speed
    needs 21 GB
    Too bigqwen3:30b
  • Qwen3 32BStrong coding and long answers
    needs 22 GB
    Too bigqwen3:32b
  • Llama 3.3 70BClose to the big cloud models
    needs 45 GB
    Too bigllama3.3:70b
  • gpt-oss 120BOpenAI's largest open model
    needs 67 GB
    Too biggpt-oss:120b
  • Qwen3 235B-A22BAlibaba's flagship open model, for multi-GPU rigs
    needs 144 GB
    Too bigqwen3:235b
  • DeepSeek R1 671BThe full DeepSeek R1, for the biggest rigs
    needs 406 GB
    Too bigdeepseek-r1:671b

Generation speed is only half the story here. The model first has to read the whole transcript, and that prompt-reading step is what you'll wait on with a long meeting. Newer RTX cards are much faster at it than older ones. See prompt processing vs generation speed.

Very long meetings

If a transcript is bigger than your context window, split it. Summarize each half hour on its own, then ask the model to combine the partial summaries into one. You lose a little, like connections between early and late parts, but it works on any card. To do this for a folder of recordings, script it; see batch jobs with a local model.

Before you record

Recording laws differ by place, and some require everyone's consent. Tell people you're recording, even though it all stays on your machine.

Where to go next

See what your card handles on every GPU, or use the same approach on documents with chat with your documents.