giacolees32 downloadsSpeak selected text with local Inflect Micro v2 synthesis.
Select a passage. Hear it in seconds. Never send your notes to a voice provider.
Local Voiceover turns the selected text in an Obsidian note into speech directly on your desktop. It runs Inflect Micro v2 locally through ONNX Runtime Web, preferring WebGPU with a WebAssembly fallback: no API key, account, Python installation, or uploaded note content.
Built for focused reading. Inflect Micro v2 is a compact 9.36 M-parameter English text-to-waveform model. Local Voiceover keeps its phonemizer and ONNX graphs in a worker, so long passages can synthesize without freezing the editor. The first run downloads roughly 38 MB of model graphs plus its runtime assets; later playback works from the local cache, including offline.

Hosted TTS services require an account, an API key, and a copy of your writing on somebody else's server. Local Voiceover stays inside Obsidian:
The selection controls display Ready, Loading, Generating, or Speaking so you can see the current state.
In Settings → Local Voiceover, configure:
0.5–2.0, default 1.0): lower is slower.0–1, default 0.667): lower is steadier.0): the same seed repeats the stochastic sample on the same runtime; long passages use seed + chunkIndex.Local Voiceover adapts the browser port of Inflect Micro v2 into an Obsidian plugin:
The initial model download comes from the official owensong/Inflect-Micro-v2-ONNX export. The pinned ONNX Runtime Web assets are downloaded once from jsDelivr. Graph and runtime bytes are cached locally and verified against their stored SHA-256 cache manifest before reuse.
Inflect Micro v2 provides one fixed English male voice. It is not voice cloning, multilingual TTS, or a streaming acoustic model. Pronunciation of unfamiliar names, abbreviations, and unusual phrasing can vary.
Once approved in Obsidian's community catalog, install from Settings → Community plugins → Browse and search for Local Voiceover.
main.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/local-voiceover/.git clone https://github.com/giacolees/obsidian-local-voiceover.git
cd obsidian-local-voiceover
npm install
npm run build
Copy or symlink the repository into <vault>/.obsidian/plugins/local-voiceover/, then enable it under Settings → Community plugins.
npm run dev # build the plugin bundles
npm run build # type-check and build production assets
npm run lint # ESLint checks
npm run check # build, lint, markdown, unused-code, cycle, and duplicate checks
npm version patch (or minor / major).main.js, manifest.json, and styles.css files.Local Voiceover is licensed under GPL-3.0-or-later because it bundles ephone, an eSpeak-NG WebAssembly frontend under GPL-3.0-or-later. See THIRD_PARTY_NOTICES.md, third_party/EPHONE_COPYING.txt, and UPSTREAM_INFLECT_LICENSE.
Inflect Micro v2 model weights and original runtime are released under Apache-2.0. The model weights are not bundled with this repository.