Vocalinux v0.17.0
Vocalinux 0.17.0 is a minor on the stable line. Default engine is still whisper.cpp. You can add Faster Whisper or Parakeet as extras, Speech Model asks language and speed first, Snap types into native Wayland apps once the Store review lands, and this release attaches Flatpak bundles next to the AppImages.
It also fixes XWayland/layout paste, a KDE xdotool crash, push-to-talk tray redraw, clipped start/stop cues, HDA analog mics that abort when opened below native channel count, native GTK installs that ignored OS dark/light, and English-only models that hid every other language.
AppImage and Flatpak still ship whisper.cpp only. Snap ships whisper.cpp plus VOSK.
Highlights
| Area | Description |
|---|---|
| Engines | Faster Whisper (CTranslate2 / INT8 on CPU) and Parakeet TDT 0.6B (sherpa-onnx) |
| Speech Model | Language and speed first; engine/size under Advanced; Unused downloads is a sibling expander |
| Language | First-run follows the system; picker filters while open; English prefers .en; other languages leave .en
|
| Voice commands | Localized punctuation phrases (it, fr, de, es, pt, nl, pl, ru) |
| Shortcuts | Bare F1-F24 for push-to-talk |
| Packaging | Snap with ydotool/uinput (Store review pending); .flatpak assets on this tag
|
| Injection | XWayland clipboard paste; layout-aware Ctrl+V; xprop instead of crashing xdotool |
New Features
- Faster Whisper engine (
faster_whisper): CTranslate2 / INT8 Whisper on CPU, optional extra, installer--engine=faster_whisper. (#543 by @jatinkrmalik) - Parakeet TDT 0.6B via sherpa-onnx (
parakeet): CPU; default bundle v3-european (~639MB, 25 European languages) or v2-english; installer--engine=parakeet. Parakeet ignores the catalog language picker (treated as auto). (#802 by @jatinkrmalik) - Settings → Speech Model starts with language and a speed/accuracy priority; engine/size/specialization live under Advanced. Unused downloads is a sibling expander, not nested inside Advanced. (#801 by @jatinkrmalik, #826)
- First run seeds recognition language from keyboard layout / locale; a saved choice, including auto, is left alone. (#796 by @kacperpaczos; closes #777)
- Language picker is a searchable popover while the list is open. (#798 by @kacperpaczos)
- Recommended model is a button that sets size and specialization together, and it will not ignore a suitable file already on disk. (#797 by @kacperpaczos; closes #778)
- Punctuation / line-break voice commands match the recognition language. English phrases still work. Editing commands (
delete that,undo,capitalize) stay English-only. (#642 by @jatinkrmalik; closes #640 reported by @paolobenve) - Bare function keys F1-F24 are valid push-to-talk shortcuts, including Settings capture. (#815 by @flesler)
- Snap packaging (strict, core24): whisper.cpp plus VOSK, ydotool, and the
uinputplug.stableis still a manual promote. (#519 by @jatinkrmalik; closes #48; Wayland typing #823, SVG icons #822) - Release workflow builds and attaches
Vocalinux-0.17.0-{x86_64,aarch64}.flatpaknext to the AppImages and checksums them inSHA256SUMS. (#786 by @jatinkrmalik; closes #784)
Bug Fixes
Text injection
- XWayland xdotool fallback pastes via the X11 clipboard (
xclip/xsel+ Ctrl+V) instead of layout-dependentxdotool type. (#680 by @AmirF194; fixes #657 reported by @hopsayer) - Clipboard paste uses the key that types v on the current layout (German Neo and similar). (#788 by @jatinkrmalik)
- Timed-out ydotool paste releases Ctrl. (#675 by @jatinkrmalik; fixes #658 reported by @hopsayer)
- Read
WM_CLASSwithxprop.xdotool getwindowclassnameaborted on KDE Plasma Wayland when the XWayland active window had no class. (#807 by @kacperpaczos)
Settings / models / tray / audio
- Applying an already-downloaded model no longer freezes the Settings dialog. (#790 by @jatinkrmalik)
- Selected language picks the whisper.cpp variant (English →
.en). Picking another language, or auto-detect, switches off.en/.en-q*instead of hiding the rest of the list. (#795 by @kacperpaczos, #780 by @jatinkrmalik, #826; see #776) - Push-to-talk tray icon turns red on every hold. (#809 by @jatinkrmalik)
- Sink-wake no longer clips the start/stop audio cues. (#804 by @jatinkrmalik)
- Open 3-8 channel HDA analog mics at native layout instead of forcing 2ch/48kHz, so PortAudio no longer aborts after read() (
free(): corrupted unsorted chunks); capture is downmixed to mono for engines. (#829 by @jatinkrmalik; fixes #813) - Native GTK installs (AUR / install.sh) follow OS dark/light via the appearance portal then gsettings; skipped when
GTK_THEMEis set so AppImage and user overrides stay in charge. (#830 by @jatinkrmalik; fixes #816) - Parakeet keeps recognizing after a decode error. (#803 by @jatinkrmalik)
- About family grid includes VocaWin. (#826)
Installer / packaging / release / CI
install.shFaster Whisper box is CPU CTranslate2 / INT8, not NVIDIA CUDA. The whisper.cpp GPU step does not install the CUDA toolkit; Vulkan is first, CUDA only if a toolkit is already on the machine. (#826)- Flatpak and AUR dependency sets are derived from
uv.lock. (#819 by @sesav) - Hash-pinned
requirements/*.txtfor VOSK, Parakeet, and Faster Whisper extras soinstall.shno longer installs those unpinned; extras are version-capped. (#828 by @sesav) just verify-release/verify-release.ymlcheck the published GitHub Release. (#791 by @sesav)- Distro matrix runs
install.shinstead of grepping the script. (#810 by @sesav) - Snap: native Wayland typing via ydotool +
uinput. (#823 by @jatinkrmalik) - Snap: gnome-platform first on
LD_LIBRARY_PATHso About-page SVGs load under core24. (#822 by @jatinkrmalik)
Thanks
Thank you @kacperpaczos for first-run language, the open-list language picker, clickable recommendations, whisper.cpp variant selection, and the xprop WM_CLASS fix (#796, #798, #797, #795, #807).
Thank you @AmirF194 for XWayland clipboard paste (#680). First contribution.
Thank you @flesler for bare function-key push-to-talk (#815).
Thank you @sesav for lock-derived Flatpak/AUR deps, hash-pinned engine extras, published-release verification, and the install.sh distro matrix (#819, #828, #791, #810).
Thank you @Mr-Sunglasses for the agent co-author policy (#808). First contribution.
Thank you @hopsayer for #657 and #658.
Thank you @paolobenve for #640.
Install / Upgrade
Recommended (install.sh)
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.shOptional extras: --engine=faster_whisper or --engine=parakeet. Default remains whisper.cpp. The installer needs Python 3.11 or newer and distro python3-gi / python3-gobject.
AppImage
Download Vocalinux-0.17.0-x86_64.AppImage or Vocalinux-0.17.0-aarch64.AppImage from this release (whisper.cpp path; does not bundle Faster Whisper or Parakeet).
chmod +x Vocalinux-0.17.0-x86_64.AppImage
./Vocalinux-0.17.0-x86_64.AppImageHost text-injection tools (xdotool, wtype, or ydotool) are still required. FUSE is needed to run the AppImage on most hosts.
Arch Linux (AUR)
yay -Syu vocalinuxThe AUR package is published from this tag. Give the Publish to AUR job a few minutes after the GitHub Release appears, then rebuild.
PyPI
pip install -U vocalinuxPyPI is the Python package only. For system deps, desktop integration, and models, use install.sh.
Snap (edge)
The 0.17.0 snap built and uploaded to edge/candidate. The Store asked for a human review (allow-installation / uinput). Until that lands, snap install vocalinux --edge is still 0.16.2 rev 7 with no uinput plug.
After the Store review:
sudo snap refresh vocalinux --edge
sudo snap connect vocalinux:uinputThen restart Vocalinux for native Wayland apps. stable is still a human promote.
Store page: https://snapcraft.io/vocalinux
Flatpak
Download Vocalinux-0.17.0-x86_64.flatpak or Vocalinux-0.17.0-aarch64.flatpak from this release (whisper.cpp only; not on Flathub).
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//50
flatpak install --user ./Vocalinux-0.17.0-x86_64.flatpak
flatpak run com.vocalinux.VocalinuxUpgrade details: docs/UPDATE.md
Full changelog: v0.16.2...v0.17.0
Verifying what you downloaded
SHA256SUMS covers every file in this release (wheel, sdist, both AppImages, both Flatpaks):
sha256sum -c --ignore-missing SHA256SUMSThe wheel and the sdist are the same bytes published to PyPI. Those two, both AppImages, and both Flatpaks also carry GitHub build provenance:
gh attestation verify Vocalinux-0.17.0-x86_64.AppImage --repo VocaHQ/vocalinux
gh attestation verify Vocalinux-0.17.0-x86_64.flatpak --repo VocaHQ/vocalinux