Local Whisper Transcriber
pendingby Matthew Lockyer
Record audio and transcribe using local whisper.cpp on macOS.
Local Whisper Transcriber
Record audio in Obsidian, transcribe it locally with whisper.cpp, and optionally generate a structured AI summary.
Why this plugin exists
Most voice-note workflows are fragmented or cloud-only. This plugin is built for users who want:
- fast capture directly inside Obsidian
- local-first transcription on their own machine
- reliable meeting notes with minimal manual steps
It is designed to make spoken notes as easy as typed notes while keeping core transcription local.
What it does
- Records microphone audio from inside Obsidian.
- Transcribes with local
whisper.cpp(ffmpeg+whisper-cli). - Shows clear live status:
- red pulsing mic while recording
- recording status indicator
- conversion/transcription/summarization progress bars
- Inserts output into the current note, or creates a note when needed.
- Optionally summarizes transcripts via Azure OpenAI Responses API.
- Optionally auto-records Teams calls (macOS), opens a dedicated meeting note at start, and can auto-stop at call end.
Requirements
- Obsidian desktop app (plugin is desktop-only).
- macOS.
- Local tools:
brew install ffmpegbrew install whisper-cpp
- A local Whisper model file, for example:
ggml-model-whisper-small.bin
Quick Start
- Open plugin settings.
- Click
Apply whisper.cpp preset. - Update model path in the command template if needed.
- Click
Check current command. - Start recording and stop to transcribe.
Default command template
ffmpeg -y -i {input} -ar 16000 -ac 1 {outputBase}.wav && whisper-cli -m '/path/to/ggml-model-whisper-small.bin' -f {outputBase}.wav -otxt -of {outputBase}
Placeholders
{input}: absolute path to recorded audio file{outputDir}: output directory{outputBase}: output path without extension{outputTxt}: expected transcript.txtpath
Teams Auto-Record (optional, macOS)
Enable Auto-record when Teams call starts to detect call windows and begin recording automatically.
- Creates and opens a new meeting note immediately when a call starts.
- Automatically starts recording when a call is detected.
- Automatically stops recording and transcribes when the call ends (if
Auto-stop when Teams call endsis enabled). - Meeting note title format:
YYYY-MM-DD <Teams call title>
- Supports:
Auto-stop when Teams call ends- configurable detection interval
- configurable call keywords
If detection is blocked, grant Obsidian Accessibility access:
System Settings -> Privacy & Security -> Accessibility.
OpenAI Summary (optional)
Enable Summarize with OpenAI and configure:
Azure OpenAI URL(full Responses API URL, includingapi-version)Azure API key(Bearer token)OpenAI model(for examplegpt-5.1-codex-mini)Summary promptMax output tokens
The summary is inserted above the transcript, with specific insights called out.
Privacy and data flow
- Audio recording and transcription run locally on your machine.
- Audio/transcript are sent to OpenAI only if
Summarize with OpenAIis enabled. - Teams detection reads Teams window titles on macOS for automation; no call audio is captured unless recording is started.
Troubleshooting
command not found:- install dependencies (
ffmpeg,whisper-cpp) - use
Check current commandin settings
- install dependencies (
- No transcript output:
- verify model path in command template
- Repeated macOS permission prompt for Teams:
- allow Obsidian in Accessibility settings, then toggle Teams auto-record off/on
Build
npm install
npm run build
Manual install (development)
- Copy to vault plugin folder:
<vault>/.obsidian/plugins/local-whisper-transcriber/
- Ensure these files exist:
manifest.jsonmain.jsstyles.css
- Enable Local Whisper Transcriber in Obsidian Community Plugins.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.