Skip to content

Feature: optional audio cues when dictation recording starts and stops #24

Description

@MaxiKingXXL

Summary

Add optional short audio cues when dictation recording starts and stops.

The feature should be disabled by default and enabled through a persisted user setting.

Motivation

Pacing cue

In hold-to-record mode, users often begin speaking immediately after pressing the hotkey. Depending on the microphone and audio endpoint, this can contribute to the beginning of the dictation being clipped.

A short start cue gives the user a clear signal to begin speaking after recording has started.

Eyes-free confirmation

Distinct start and stop sounds confirm the current recording state without requiring the user to look at the floating widget. This is useful when WritHer is being used while focused on another application.

Proposed behavior

  • Disabled by default, preserving the current silent behavior.
  • Enabled through a persisted setting available to packaged users, rather than only through config.py.
  • A short higher tone when dictation recording starts.
  • A short lower tone when dictation recording stops.
  • Non-blocking playback so the cue does not delay recording or the hotkey callbacks.
  • Initially limited to dictation mode; assistant mode remains unchanged.
  • Audio playback failures should be ignored or logged without affecting recording.
  • Automated tests must mock the audio backend and must not play real sounds.

Configuration

The setting could be exposed as a simple switch in the Settings window, for example:

Recording audio cues: On / Off

Alternatively, it could use an external user-configuration mechanism if one is added.

In either case, the default should remain off.

Implementation note

I have a tested implementation available and can submit it as a pull request if the proposed behavior fits the project.

It generates short WAV tones in memory and plays them through winsound.PlaySound(..., SND_MEMORY) on a daemon thread, keeping playback non-blocking without adding another dependency.

In my testing, this was more reliable than winsound.Beep when changing the default playback device, such as switching between a dock, speakers and a headset.

The implementation uses distinct frequencies for the start and stop cues and can fall back gracefully if tone generation or playback is unavailable.

Benefit

The feature provides clear, eyes-free recording feedback and encourages a short pause before speaking, while leaving WritHer’s existing behavior unchanged for users who prefer silent operation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions