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.
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
config.py.Configuration
The setting could be exposed as a simple switch in the Settings window, for example:
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.Beepwhen 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.