Review of "Voice Hold" version 0.3 (2)

Details Page Preview

Hold a key and speak. Offline dictation, text arrives as you talk. Hold the shortcut (Super+X by default), speak, release: the words are typed in the text field under your cursor while you talk, block by block, with a grey live preview. A quick tap keeps listening hands-free (tap again, Escape or a few seconds of silence stop it). A small pill next to the cursor shows the microphone level and the live text. Everything runs on your computer, offline: French, English and 23 other European languages are recognised with punctuation (Parakeet TDT 0.6B v3 through sherpa-onnx). No account, no network, no cloud. An optional local LLM (Ollama) can polish each block; it is off by default. Requires the separate voice-hold-engine helper (Python, GPL, one command to install, ~650 MB of models downloaded by you) and PipeWire; nothing works without it. The settings page shows the install command, with a button that copies it to the clipboard, and the engine status. Wayland only; applications must use the GNOME input method (GTK, Qt, Electron with Wayland; terminals get the text without the preview).

Extension Homepage
https://github.com/d101c/voice-hold

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental)

Shexli did not find any issues.

All Versions

Version Status
0.3 (2) Unreviewed
0.2 (1) Rejected

Previous Reviews on this Version

jg__ posted a review
Author note for 0.3 (changes since 0.2, review #77756): - New "Installation" page in the preferences window. It replaces the terminal commands previously documented in the README: the user clicks "Install" and the preferences process downloads the engine wheels and the speech models with libsoup 3, verifies every file against a SHA-256 published in a manifest (https://github.com/d101c/hold-setup/blob/master/manifest.json), extracts them with libgnome-autoar into ~/.local/share/hold and ~/.local/share/voice-hold, and writes the user D-Bus service file (~/.local/share/dbus-1/services/org.griffit.VoiceHold.service). Everything runs in the prefs (GTK) process only; no subprocess is spawned anywhere, the gnome-shell part of the extension is unchanged apart from the version-name. - New files: setup.js (download / checksum / extraction / service file logic) and setupPage.js (the Adw.PreferencesPage). The page is shown first only while the engine is not installed. - prefs.js: the "Engine" group now links to the Installation page instead of listing shell commands. As before, the engine is a separate Python D-Bus service (speech recognition stays fully offline); the extension itself only talks to it over the session bus. Development was assisted by an AI coding tool, reviewed and tested by me on GNOME 50.