diff --git a/cmd/mavwaked/wakeword.go b/cmd/mavwaked/wakeword.go index 5f83902..f97e3ee 100644 --- a/cmd/mavwaked/wakeword.go +++ b/cmd/mavwaked/wakeword.go @@ -21,11 +21,15 @@ import ( "sync" ) -// defaultWakeThreshold — score above which the keyword was said. Picked from -// the false-accept rate on held-out Russian speech, not from accuracy: a miss -// costs him a repeat, a false accept costs a turn nobody asked for. See -// docs/evals for the wakes-per-hour this buys. -const defaultWakeThreshold = 0.99 +// defaultWakeThreshold — score above which the keyword was said. +// +// Picked from the false-accept rate on held-out Russian speech, not from +// accuracy: a miss costs him a repeat, a false accept costs a turn nobody +// asked for. Over 65 minutes of Common Voice, 0.99 woke her three times and +// 0.999 once, and the difference in recall was one render out of 126. So the +// default is the strict one. `docs/evals/2026-08-09-wake-word.md` has both +// tables. +const defaultWakeThreshold = 0.999 // wakeWord is the streaming state around wakeModels. It is fed the same // capture frames the VAD sees and answers whether the keyword has just been