mavwaked has no wake word, only an energy VAD — add silero-vad and a keyword gate #210

Merged
claude merged 2 commits from task/487-mavwaked-has-no-wake-word-only-an-energy into master 2026-08-08 23:49:09 +02:00
Contributor

Closes Vikunja #487.

Acceptance criteria and quality gate are in TASK.md on this branch.
Review the review, not the diff — leave comments and the agent will apply them via task start 487.

Closes Vikunja #487. Acceptance criteria and quality gate are in `TASK.md` on this branch. Review the review, not the diff — leave comments and the agent will apply them via `task start 487`.
claude added 2 commits 2026-08-08 23:43:49 +02:00
silero-vad replaces the energy threshold when -vad-model points at it.
Everything after the speech decision is the same state machine: the speech
hold, the silence hold, the length cap and the utterance buffer.

The model window is 512 samples and the capture frame is 480, so silero.go
re-chunks across frames. main.go claimed the two matched, which was true of
silero v4.

Stage two, the wake word, is not here. It needs a Russian keyword model that
does not exist yet.
Speech is the four piper fixtures mavsttd already scores against, so nothing
of the owner's voice is committed. Non-speech is white noise at the same RMS
as the clip beside it.

Silero calls 0 noise frames speech where the energy threshold calls 68 to 99,
and hears all four spoken clips. 509us per 30ms frame, 1.7% of one core on
the slower machine.

White noise is a floor and not a proof. It says nothing about a television,
which is speech, or a fan, which is narrowband.
claude merged commit 2512d686a1 into master 2026-08-08 23:49:09 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kami/Maven#210