mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
feat(voice): open-vocabulary wake phrases via sherpa-onnx KWS
New "sherpa" wake_word provider: the configured phrase is BPE-tokenized at runtime against a small streaming zipformer KWS model (~13 MB English, one-time download cached under HERMES_HOME), so ANY typed phrase works with zero training — including per-profile phrases like "hey coder". wake.sherpa lazy-dep group + [wake] extra grow sherpa-onnx/sentencepiece; requirements probe routes per provider; sensitivity maps onto sherpa keywords_threshold. E2E-verified on real audio (target phrase fires, foreign phrase stays silent, reset drops buffered state).
This commit is contained in:
parent
dcc26fa28a
commit
0ae305ed4e
7 changed files with 371 additions and 13 deletions
|
|
@ -2380,8 +2380,8 @@ DEFAULT_CONFIG = {
|
|||
"wake_word": {
|
||||
"enabled": False,
|
||||
"surface": "auto", # eligible surface: "auto" (first claimant) | "cli" | "tui" | "gui"
|
||||
"provider": "openwakeword", # "openwakeword" (free, local) | "porcupine" (premium; needs PORCUPINE_ACCESS_KEY)
|
||||
"phrase": "hey hermes", # cosmetic label only; detection is keyed by the engine model/keyword below
|
||||
"provider": "openwakeword", # "openwakeword" (free, local) | "sherpa" (free, ANY phrase, no training) | "porcupine" (premium; needs PORCUPINE_ACCESS_KEY)
|
||||
"phrase": "hey hermes", # for "sherpa" this IS the detected phrase (any text works); for other engines it's a cosmetic label — detection is keyed by the model/keyword below
|
||||
"sensitivity": 0.5, # 0.0-1.0 detection threshold (higher = stricter)
|
||||
"start_new_session": True, # start a fresh session on wake vs. continue the current one
|
||||
"openwakeword": {
|
||||
|
|
@ -2392,6 +2392,11 @@ DEFAULT_CONFIG = {
|
|||
"model": "hey_hermes",
|
||||
"inference_framework": "onnx", # "onnx" | "tflite"
|
||||
},
|
||||
"sherpa": {
|
||||
# Optional path to a sherpa-onnx KWS model directory. Empty =
|
||||
# auto-download the small English zipformer model on first use.
|
||||
"model_dir": "",
|
||||
},
|
||||
"porcupine": {
|
||||
# Built-in keyword ("jarvis", "computer", "bumblebee", ...) or a path
|
||||
# to a custom .ppn from the Picovoice Console.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue