mrrepac4k downloadsRecord voice notes and transcribe them on your device with Whisper. No cloud, no API keys.
Record a voice note in Obsidian and get its text — transcribed on your device by Whisper. No cloud, no API keys, no subscriptions: after the one-time downloads everything works offline.
Русское описание: README.ru.md.
The plugin sets no default hotkeys. The recommended setup is the “Ctrl+Space controls recording” toggle in settings: tap Ctrl+Space to start, tap again to stop — or hold it for push-to-talk, where recording stops and inserts the moment you release. Alternatively, bind your own hotkeys to the commands:
Right-click the mic in the status bar for the same things close at hand: start/stop, cancel the recording, insert the last transcript, browse history — and switch the speech language (Auto, Russian, English, or any other via search).
The plugin works on phones too, on the CPU: slower than on desktop, but fully
offline. For Russian speech Auto picks GigaAM v3 (see below), for other
languages Whisper base.
There is no status bar on mobile, so the microphone lives in the left sidebar. For one-gesture recording, bind it to the pull-down: Settings → Mobile → Pull action → “Voice Scribe: Record voice note”, then just swipe down on a note to start.
Auto (default) picks the best model this device can actually run:
large-v3-turbo (~720 MB, the best one);small (~240 MB) — the ceiling of the 32-bit WASM runtime;base (~80 MB) — larger models exhaust WebView memory.GigaAM v3 is Sber's model for Russian speech only. It adds punctuation
itself and is usually more accurate than Whisper on Russian. It runs on the CPU:
a minute of speech takes about 10–15 seconds, and recordings longer than a minute and a
half are split between two threads (on computers with 8 GB of RAM or more).
Language settings do not apply to it. If you decline the download the first time,
Auto uses Whisper until Obsidian restarts. If
Voice Scribe for Windows is
installed and has already downloaded GigaAM, the plugin uses that copy and
downloads nothing. On phones the model goes to the app cache; it is a bigger
download than base but uses less memory while running.
You can also pick a model manually. The choice is stored per device and never synced, so your desktop and phone can't overwrite each other's model — each remembers its own. The settings page shows which model and compute device are actually in use on the current device, and why.
On first use the plugin downloads the selected model from Hugging Face and caches it locally; subsequent runs are offline. You can pre-download it via Settings → Prepare model.
Whisper is not a streaming model — it works on a 30-second window and needs a finished chunk of audio. So the Transcribe while recording option (desktop, off by default) splits your speech into phrases at the pauses and transcribes each one while you keep talking. Phrases land where you are dictating as you go, and by the time you stop, only the last one is left to process.
Worth knowing before you turn it on:
Speech model — Auto (recommended) / tiny / base / small /
large-v3-turbo (desktop, needs a GPU) / GigaAM v3 (Russian only).
Bigger is more accurate but slower.
Language — the language you speak, or auto-detect. Defaults to your Obsidian interface language. Set it to the language you actually speak: with a fixed language Whisper writes any speech in that language, so English speech under “Russian” comes out as a Russian translation. Auto-detect finds the language from the recording (in live mode — for every phrase).
Second language — for people who mix two languages: each phrase is written in the language it was spoken in. Switching works between phrases (a pause is enough), not mid-sentence. Costs one extra model pass per phrase. Quick toggle: right-click the status bar mic → “Russian + English”.
Voice punctuation — say “comma”, “period”, “question mark”, “new line”, “new paragraph” (or the Russian «запятая», «точка», «абзац»…) to insert punctuation. Off by default; only standalone command words are replaced.
Replacements — one rule per line, what you hear = what to write. Whisper
mangles names, titles and jargon the same way every time, so it is fixed once:
# a comment
рэп театр = Рэп-театр
обсидиан = Obsidian
э-э =
Whole words only, case-insensitive: рэп will not touch рэпера. A capital
letter on the recognised word carries over to the replacement, so the start of
a sentence stays intact. An empty right side deletes the word — handy for
filler sounds. Where rules overlap the longer one wins, and every fragment is
replaced exactly once (rules never rewrite each other).
Stop after silence — go quiet for 2–8 seconds and the recording stops by itself, inserting the text right away: one keypress instead of two. The count only starts once you have actually said something. If not a single word is heard within 15 seconds of starting, the recording is discarded rather than stopped: no text, no audio file — so a mic left on by accident does not stay on.
Compute device — Auto uses your GPU via WebGPU when available and falls back to CPU (WASM) otherwise.
Microphone — pick an input device (press refresh to reveal device names).
Insert transcript into — the active field, or a new note.
Copy transcript to clipboard — additionally put every transcript into the system clipboard.
Sound feedback — short chimes when recording starts and when the transcript is ready.
Ctrl+Space controls recording — tap to start/stop, hold for push-to-talk.
Transcribe while recording (desktop) — see below.
Voice notes folder — where recordings and transcripts are saved, named
voice-2026-07-09-1530.
Audio file — keep the recording next to the transcript, delete it once the text has been delivered, or never write it at all.
Link the audio in the note — add an ![[…]] embed when a note is created.
Warm up on startup — load the model in the background so the first recording transcribes instantly.
Delete voice notes / Delete downloaded models — housekeeping. Each downloaded model is also listed on its own with its size, so you can drop one you no longer use (say, whisper-small after switching to turbo) without re-downloading the rest.
Nothing you record or transcribe ever leaves your device. The plugin downloads only its working parts, each once, from pinned versions:
huggingface.co on first use of each
model (~40–720 MB), then cached: on desktop on disk outside the vault (so sync
never copies gigabytes), on mobile in the app cache.cdn.jsdelivr.net as a fallback) and cached on
disk. On mobile it is loaded from cdn.jsdelivr.net and kept in the WebView
HTTP cache — after a cache eviction it may be downloaded again.No other requests are made, and no telemetry exists.
On desktop the plugin reads and writes exactly two places outside your vault,
both under the OS cache directory (%LOCALAPPDATA%\voice-scribe on Windows,
~/Library/Caches/voice-scribe on macOS, $XDG_CACHE_HOME/voice-scribe on Linux):
models/ — downloaded Whisper and GigaAM models;runtime/ — the ONNX Runtime WASM binary.One more place is only read: the GigaAM folder of
Voice Scribe for Windows
(%APPDATA%\Voice Scribe\models\gigaam-v3-punct), if that app is installed.
Those files belong to the app: the plugin never writes or deletes them.
They live outside the vault on purpose: Obsidian Sync would otherwise copy gigabytes between your devices. Settings show the exact path and offer Delete downloaded models; the runtime can be removed by deleting the folder. Nothing else on your filesystem is touched. On mobile no Node.js API is used at all — caching goes through the browser Cache API.
Inside the vault the plugin only writes to its own plugin folder: the patched
engine loader (ort/), plus asr-worker.js and live-worklet.js when your
security policy refuses to run them from memory.
The Obsidian plugin page lists what the code is able to do. Here is what each item is actually used for:
voice-… recordings in the
recordings folder (for Delete voice notes) and suggesting folder names in
settings. Nothing else is read.small model.large-v3-turbo needs a GPU. It cannot run on the CPU: the WASM runtime is
32-bit and cannot allocate its weights, no matter how much RAM you have.MIT