Voice Scribe

approved

by mrrepac

Record voice notes and transcribe them on your device with Whisper. No cloud, no API keys. - This plugin has not been manually reviewed by Obsidian staff.

145 downloadsUpdated 26d agoMIT

Voice Scribe

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.

Usage

  1. Enable the plugin and click the microphone ribbon icon (or the mic in the status bar). Speak, then:
    • Ctrl+Space — stop and insert the text, or
    • Enter — stop, insert, and press Enter in the target field (handy for dictating straight into an AI chat panel).
  2. The text goes into the last focused input — a note, or another plugin's text box — or into a new note, depending on the switch at the top of the recording window.
  3. Right-click any audio file in your vault → Transcribe audio to get a transcript note for an existing recording (mp3, m4a, wav, ogg, flac, webm…).

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:

  • Record voice note (start/stop) — toggle recording from anywhere.
  • Record while hotkey is held (push-to-talk) — recording lasts while your chosen hotkey is held down.
  • Insert last transcript — insert the previous transcript again (into the active field, or to the clipboard if no field is focused).

On mobile

The plugin works on phones too — with the base model on the CPU by default: slower than on desktop, but fully offline.

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.

Model

Auto (default) picks the best model this device can actually run:

  • desktop with a GPU (WebGPU) → large-v3-turbo (~720 MB, the best one);
  • desktop on CPU → small (~240 MB) — the ceiling of the 32-bit WASM runtime;
  • phone → base (~80 MB) — larger models exhaust WebView memory.

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.

Settings

  • Whisper model — Auto (recommended) / tiny / base / small / large-v3-turbo (desktop, needs a GPU). Bigger is more accurate but slower.
  • Language — the language you speak, or auto-detect.
  • 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.
  • Compute deviceAuto 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.
  • Voice notes folder — where recordings and transcripts are saved, named voice-2026-07-09-1530.
  • Warm up on startup — load the model in the background so the first recording transcribes instantly.
  • Delete voice notes / Delete downloaded models — housekeeping.

Network access

Nothing you record or transcribe ever leaves your device. The plugin downloads only its working parts, each once, from pinned versions:

  • Whisper models — from 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.
  • Speech engine (ONNX Runtime WASM, ~21 MB) — the Obsidian catalog installs only the plugin code, so on desktop the engine is downloaded once from this plugin's GitHub Releases (with 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.

Files outside the vault

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 models;
  • runtime/ — the ONNX Runtime WASM binary.

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.

Notes

  • Transcription runs via transformers.js and ONNX Runtime.
  • Speed depends on hardware: with WebGPU expect faster than real time; on CPU a one-minute note takes roughly a minute with the 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.

License

MIT

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.