mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-29 18:46:59 +00:00
openWakeWord scores one ~80ms frame at a time and the detector fired the instant a SINGLE frame crossed threshold — so a stray phoneme in background conversation could trigger the wake word unintentionally (reported in testing). A real utterance of the phrase holds a high score across several consecutive frames; an ambient blip spikes just one. _OpenWakeWordEngine now requires N consecutive over-threshold frames (wake_word.confirmation_frames, default 3) before firing. The streak resets on any sub-threshold frame and on engine reset() (pause/resume), so a pre-pause frame can't count toward a post-resume fire. confirmation_frames=1 restores the old single-frame behavior; clamped 1..10. Only openWakeWord is affected — sherpa (streaming transducer) and porcupine decode the whole phrase internally and already reject single-frame spikes. - tools/wake_word.py: _confirmation_frames() accessor, streak logic in process()/reset(), config default - hermes_cli/config.py: wake_word.confirmation_frames documented default - tests: 5 new (spike rejected, sustained fires once, =1 legacy behavior, reset clears streak, config clamp) — 58 wake tests green - docs: 'Reducing false triggers on ambient speech' section |
||
|---|---|---|
| .. | ||
| egress | ||
| features | ||
| messaging | ||
| secrets | ||
| skills | ||
| _category_.json | ||
| checkpoints-and-rollback.md | ||
| cli.md | ||
| configuration.md | ||
| configuring-models.md | ||
| desktop.md | ||
| docker.md | ||
| git-worktrees.md | ||
| import-from-other-agents.md | ||
| managed-scope.md | ||
| multi-profile-gateways.md | ||
| profile-distributions.md | ||
| profiles.md | ||
| security.md | ||
| sessions.md | ||
| tui.md | ||
| windows-native.md | ||
| windows-wsl-quickstart.md | ||