As mentioned in my previous post, I had fun installing code to run LLMs locally. This post will be for me: steps to replicate turning the recording into a summary text.
Convert from MP3 to WAV
ffmpeg -i ~/transcripts/meeting-2026-09-08.mp3 -acodec pcm_s16le -ac 1 -ar 16000 ~/transcripts/meeting-2026-09-08.wav
Run the Whisper.cpp code to turn the recording into a transcript
cd ~/src/whisper.cpp
./build/bin/whisper-cli --model models/ggml-small.en.bin --file ~/transcripts/meeting-2026-09-08.wav --language en --output-txt --output-srt --output-file ~/transcripts/meeting-2026-09-08 --print-progress
I created a prompt file for reuse after every planning meeting:
You create accurate meeting notes from a supplied transcript.
Use exactly these Markdown headings:
## Summary
## Decisions
## Action items
## Open questions
## Names, dates, and terms to verify
Only report decisions, owners, dates, and deadlines that the transcript explicitly states.
Do not invent, infer, or "clean up" unclear details. Mark ambiguity as uncertain.
Split the transcript into smaller chunks
rm -rf ~/transcripts/meeting-2026-09-08-chunks
mkdir ~/transcripts/meeting-2026-09-08-chunks
split --lines=400 --numeric-suffixes=1 --suffix-length=3 --additional-suffix=.txt ~/transcripts/meeting-2026-09-08.txt ~/transcripts/meeting-2026-09-08-chunks/chunk-
Prep for the run of the LLM to make summaries
rm -rf ~/transcripts/meeting-2026-09-08-chunk-summaries
mkdir -p ~/transcripts/meeting-2026-09-08-chunk-summaries
And then I got a bash script:
#!/usr/bin/env bash
set -u
shopt -s nullglob
LLAMA="$HOME/src/llama.cpp-rocm57/build-rocm/bin/llama-cli"
MODEL="$HOME/models/gguf/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf"
SYSTEM_PROMPT="$HOME/llm-prompts/meeting-summary-system.txt"
CHUNKS_DIR="$HOME/transcripts/meeting-2026-09-08-chunks"
OUTPUT_DIR="$HOME/transcripts/meeting-2026-09-08-chunk-summaries"
mkdir -p "$OUTPUT_DIR"
for chunk in "$CHUNKS_DIR"/*.txt; do
base=$(basename "$chunk" .txt)
summary="$OUTPUT_DIR/$base.md"
log="$OUTPUT_DIR/$base.log"
printf 'Summarizing %s...\n' "$base"
if "$LLAMA" \
-m "$MODEL" \
--system-prompt-file "$SYSTEM_PROMPT" \
--file "$chunk" \
-c 4096 \
-n 500 \
-ngl 99 \
-cnv \
-st \
--no-display-prompt \
2>"$log" \
>"$summary"
then
printf ' Wrote %s\n' "$summary"
else
printf ' FAILED: inspect %s\n' "$log" >&2
rm -f "$summary"
fi
done