v0.1.20
Highlights
- Local Whisper: no more repeated or invented text (#55, #57) — the local whisper.cpp backend now uses silence-delimited phrase segmentation by default: it splits audio after a configurable stretch of silence (
phrase_silence_ms, default 400ms) and decodes each phrase exactly once, so the repetition and hallucinated text from overlapping sliding windows is gone — and short phrases come out faster. The decoder is also hardened in both modes (no_context, entropy threshold, non-speech-token suppression, and prior output is never fed back as prompt). The old behavior remains available with[local-whisper] segmentation = "window". Thanks @velnari-malakh for the detailed report and repro. - Per-session language override:
whisrs toggle -l <code>(#54) — overridegeneral.languagefor a single dictation session without touching config or restarting the daemon. The motivating use case is one hotkey per language, e.g.F1 -> whisrs toggle -l en,F2 -> whisrs toggle -l pl. Works on both streaming and batch backends, never leaks into the next session, and invalid codes fail fast at start instead of after you've recorded a whole session. Thanks @lukaszlew for the PR. whisrs cancelnow truly discards streamed text — previously the streaming backend's end-of-stream flush could still be decoded and typed after a cancel. The typing pipeline now checks a per-recording cancel flag at a single choke point, so cancelled audio never reaches your keyboard.- Minimal build regains tray icon + overlay (#51, #52) — the "minimal" release variant was accidentally built without the tray and overlay features, not just without offline whisper.cpp. "Minimal" is now defined as the full build minus local Whisper. Thanks @pettijohn for the report.
Install / Upgrade
curl -sSL https://y0sif.github.io/whisrs/install.sh | bash
# Or:
cargo install whisrs --locked
yay -S whisrs-gitFull Changelog: v0.1.19...v0.1.20