Transcribe Meetings Offline with whisper.cpp
Get accurate meeting transcripts from your own recordings on your own laptop, with nothing uploaded to a transcription service.
Why this works
Meeting audio often contains client names, pricing, and staff matters. whisper.cpp is an open-source port of OpenAI's Whisper speech model that runs entirely on your device, so the recording never has to leave the room.
Step by step
- Set up whisper.cppBuild whisper.cpp from the repository (follow its README for CMake steps), then download a model with the bundled script, for example
./models/download-ggml-model.sh base.en. Models download once; transcription runs offline. - Convert the recordingConvert your recording to 16 kHz mono WAV:
ffmpeg -i input.m4a -ar 16000 -ac 1 -c:pcm_s16le audio.wav. - TranscribeRun the bundled command-line binary on the WAV file with the model you downloaded, and save the output as text. Check the README for the current binary name and flags.
- Add speaker labels by handWhisper does not reliably separate speakers. Use a two-minute pass to label the people who spoke, then keep the file.
- Extract action itemsPaste the transcript into a local model (see the Ollama guides in this directory) and ask for owners and deadlines, then check each one against the audio.
Copy-paste prompt
From this meeting transcript, list: decisions made, action items with owner and due date (write 'unassigned' if unclear), open questions, and figures mentioned with the exact sentence they came from. Do not infer anything not said. TRANSCRIPT: <paste>
Check your result
- The transcript was produced without uploading audio
- Action items match a timestamp you have listened to
- Names and figures were checked against the recording
Pitfalls to avoid
- Background noise and crosstalk lower accuracy; use a clip-on microphone when you can.
- Recording a meeting may require consent under local law. Tell participants first.
What we checked: Licence and project status were read from the project's GitHub repository on 8 Oct 2026. Install commands and flags change between releases, so follow the project README for the current version. Source: https://github.com/ggml-org/whisper.cpp.