You will turn a meeting recording into a transcript plus a list of decisions and action items, on a machine you own. The audio never leaves it, and a 16 GB laptop is enough.
What you need
- A computer with 16 GB of RAM. Transcription alone fits in 8 GB: faster-whisper
smallpeaks at about 2.3 GB on CPU in SYSTRAN’s own benchmark (faster-whisper README). The summary model adds more:llama3.1:8boccupied 9.2 GB once loaded on our box (Ollama 0.30.10, 2026-10-17, raw numbers indocs/measurements/local-model-benchmark-2026-10-17.json). - A recording in
.mp3,.m4aor.wav. - Docker to run the transcription server, and Ollama for the summary.
- Time: 15 to 20 minutes to set up.
An NVIDIA GPU makes transcription faster, but it is optional. Our table below was measured on one.
Step 1: Start the transcription server
Speaches serves faster-whisper behind an OpenAI-compatible API, so any tool that speaks that API can use it later. Pick the image for your machine:
# laptop or any machine without an NVIDIA GPU
docker run -d --name speaches -p 8000:8000 ghcr.io/speaches-ai/speaches:latest-cpu
# machine with an NVIDIA GPU (needs the NVIDIA Container Toolkit)
docker run -d --name speaches --gpus all -p 8000:8000 ghcr.io/speaches-ai/speaches:latest-cudaThere is no plain latest tag; use one of the two above.
Then download the model once:
curl -X POST http://localhost:8000/v1/models/Systran/faster-whisper-smallExpected: HTTP 200 after the download finishes. curl http://localhost:8000/v1/models lists it.
If it fails: “port already in use” means something else holds 8000; use -p 8001:8000 and change the port in every command below. docker logs speaches shows why the server did not start.
Step 2: Transcribe the recording
time curl http://localhost:8000/v1/audio/transcriptions \
-F "file=@meeting_audio.mp3" \
-F "model=Systran/faster-whisper-small"Expected: JSON with a text field holding the transcript. time prints how long it took, so you can compare with our table.
If it fails: a “model not found” error means the id is not exactly Systran/faster-whisper-small or the download in Step 1 did not finish. An empty text usually means a damaged file; play it first.
Which model?
| Model | Speed | Good for |
|---|---|---|
Systran/faster-whisper-tiny.en | Fastest, English only | Clear audio, quick drafts |
Systran/faster-whisper-small | Balanced | Most meetings. Start here |
Systran/faster-whisper-medium | About twice as slow as small | Accents, jargon, noisy rooms |
Step 3: Write the minutes with a local model
A raw transcript is a wall of “so, um, as I was saying”. An 8B model turns it into something you can act on.
ollama pull llama3.1:8b
ollama run llama3.1:8bPaste this prompt, then the transcript:
Here is a meeting transcript. Give me:
1. The purpose of the meeting in one sentence.
2. Every decision taken.
3. Every action item, with the owner if it was said.
4. Open questions or topics pushed to a later date.
Transcript:
[PASTE YOUR TRANSCRIPT HERE]Expected: four short lists.
If it fails: if Ollama crashes or crawls, the machine is out of memory. Close other apps, or try a smaller model such as llama3.2:3b (rougher minutes, but they arrive).
Save the transcript and the minutes in a local folder. Pasting them into a web chat afterwards undoes the point of the exercise.
What we measured
A 23.8-second English clip, transcribed by Speaches (CUDA image) with faster-whisper on our NVIDIA DGX Spark (GB10), 2026-10-17. The clip is synthetic: a 92-word meeting-style paragraph read by a local text-to-speech voice, so we know every word that was said. Each time is the median of three runs after a warm-up. The real-time factor is processing time divided by audio length: 0.25 means a 30-minute meeting takes about 7.5 minutes.
| Whisper model (faster-whisper) | Processing time (s) | Real-time factor | Words transcribed |
|---|---|---|---|
| faster-whisper-tiny.en | 1.09 | 0.046 | 90 |
| faster-whisper-small | 7.47 | 0.314 | 88 |
| faster-whisper-medium | 15.41 | 0.647 | 92 |
For an hour-long meeting, 0.05 against 0.65 is a 3-minute wait against a 39-minute one. One clean synthetic voice is easier than a real room with crosstalk, so expect more errors on your recordings than on ours. We have not timed a laptop CPU yet; your time from Step 2 fills that gap. The script is scripts/bench/whisper_transcription.py; every run and the full transcripts are in docs/measurements/whisper-transcription-2026-10-17.json in our repo.
What the spec sheet won’t tell you
- Word counts are not accuracy. All three models produced about the same number of words on our clip (88 to 92). Because we know the script, we also counted wrong words:
medium6.5%,tiny.en9.8%,small12% (all three wrote “eleven” as “11”, which counts against each of them equally).smallturned “Next meeting is Monday” into “Sunday”. One clip proves little, so read the transcripts side by side on your own audio before you pay themediummodel’s time cost. - Names are the weak spot. Whisper guesses at surnames and product names:
smallwrote “Pabba” for Pablo, and all three heard “AI assistant” as “eye assistant” or “I-assistant”. Fix them in the transcript before the summary step, or the minutes will repeat the mistake. - The summary model can invent. An 8B model may attach an action item to the wrong person. Someone who was in the meeting should read the minutes before they go out.
When not to bother
If your meetings are already recorded and transcribed inside a platform your organisation has approved, you gain little. This setup pays off when recordings are sensitive, when there is no approved tool, or when you transcribe often enough that per-minute pricing adds up.
Next steps
- Is the summary step too slow? Pick a smaller file for the Ollama model.
- Talk to your machine instead of uploading files: a private office voice assistant with OpenJarvis and Ollama.
- Check the numbers before buying hardware: cloud vs local AI, your break-even.
Work with us
If you want this running for a whole office (the server sized for your meeting volume, accounts for your team, a retention rule that matches your policy and a short briefing for staff), that is the kind of fixed-scope job we do. We run the same measurements on your hardware first. See our consulting page or contact us.