github goodroot/hyprwhspr v1.32.0

53 minutes ago

v 1.32.0

Thanks to @calebdw for the reports that led to a series of solid improvements.

Highlights

  • Improved microphone handling when using the system default input device.
  • Fixed ONNX-ASR VAD routing so short dictations avoid unnecessary VAD trimming.
  • Added a configurable ONNX-ASR VAD duration threshold.

Configuration

New setting:

{
  "onnx_asr_vad_min_duration": 30
}

This is the minimum recording duration, in seconds, before ONNX-ASR routes audio through Silero VAD. Set it lower to use VAD more often, or higher to keep more recordings on direct recognition.

Audio Device Management

  • hyprwhspr now re-checks the current PulseAudio/PipeWire default microphone right before opening a recording stream when no explicit audio device is configured.
  • Changing the system default microphone no longer requires restarting hyprwhspr for the next recording to use the new input.
  • Stream startup retries now refresh the default input once before retrying, helping recover from transient PulseAudio/PipeWire host errors after a device change.
  • The keepalive stream now moves to the refreshed default microphone when the default input changes.
  • Explicitly configured audio devices remain sticky. If audio_device_id or audio_device_name is configured, hyprwhspr does not silently convert the setup into "follow system default" mode after a fallback.
  • Device validation now rejects output-only devices when resolving defaults.
  • Sounddevice default input updates now preserve the output device instead of overwriting the whole default device tuple.

Hotplug Handling

  • Audio hotplug events are now queued and dispatched serially through a worker thread.
  • This keeps callback ordering predictable during noisy USB plug/unplug sequences.
  • Device monitor startup failure now cleans up observer and worker state more completely.
  • Device monitor shutdown now stops the dispatch worker cleanly.

ONNX-ASR / Parakeet

  • ONNX-ASR now keeps the direct model and VAD-wrapped model separate.
  • Short recordings use direct recognition by default, avoiding aggressive speech-boundary trimming on normal dictation.
  • Long recordings still use Silero VAD when onnx_asr_use_vad is enabled.
  • Added onnx_asr_vad_min_duration, defaulting to 30 seconds, to control when ONNX-ASR switches from direct recognition to VAD-assisted recognition.
  • Invalid VAD duration values fall back to 30 seconds, and negative values clamp to 0.
  • Model unload now clears the cached ONNX-ASR VAD model as well as the direct model.

Don't miss a new hyprwhspr release

NewReleases is sending notifications on new releases.