Hey @KiboOst,
thanks for the great tool - creating my own wakewords worked great!
Now I have recorded a wakeword for me and my wife and stored it in Rhasspy. This is both times the same wakeword, just with different voices. This works great with the following settings:
"snowboy": {
"model": "snowboy/HeyPico_JCH.pmdl,snowboy/HeyPico_EH.pmdl",
"sensitivity": "0.30"
},
The log shows me which wakeword was last recognized - both are recognized.
But I have a strange effect: After the hotword was recognized (no matter if Rhasspy hears speech or not) the recorded sound follows. Sometimes this first recorded sound is immediately followed by a second hotword activation without me having pronounced the hotword:
[INFO:1795889] quart.serving: 127.0.0.1:33296 GET / 1.1 200 1029 6485
[DEBUG:1780638] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/error.wav']
[DEBUG:1780186] SnowboyWakeListener: loaded -> listening
[DEBUG:1780186] DialogueManager: ready -> asleep
[INFO:1780186] DialogueManager: Automatically listening for wake word
[DEBUG:1780185] DialogueManager: handling -> ready
[DEBUG:1780184] WebSocketObserver: {"text": "", "intent": {"name": "", "confidence": 0}, "entities": [], "raw_text": "", "speech_confidence": 1, "wakeId": "snowboy/HeyPico_JCH.pmdl", "siteId": "master", "slots": {}}
[WARNING:1780184] HomeAssistantIntentHandler: Empty intent. Not sending to Home Assistant
[DEBUG:1780183] DialogueManager: recognizing -> handling
[DEBUG:1780183] DialogueManager: {'text': '', 'intent': {'name': '', 'confidence': 0}, 'entities': [], 'raw_text': '', 'speech_confidence': 1, 'wakeId': 'snowboy/HeyPico_JCH.pmdl', 'siteId': 'master'}
[ERROR:1780180] FsticuffsRecognizer: in_loaded
Traceback (most recent call last):
File "/usr/share/rhasspy/rhasspy/intent.py", line 183, in in_loaded
assert recognitions, "No intent recognized"
AssertionError: No intent recognized
[DEBUG:1780176] DialogueManager: decoding -> recognizing
[DEBUG:1780175] DialogueManager: (confidence=1)
[DEBUG:1780173] KaldiDecoder:
[DEBUG:1779519] KaldiDecoder: ['bash', '/profiles/de/kaldi/model/decode.sh', '/opt/kaldi', '/profiles/de/kaldi/model', '/profiles/de/kaldi/model/graph', '/tmp/tmp86mb8vue.wav']
[DEBUG:1779441] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/recorded.wav']
[DEBUG:1779440] DialogueManager: awake -> decoding
[DEBUG:1779438] WebrtcvadCommandListener: listening -> loaded
[WARNING:1779436] WebrtcvadCommandListener: Timeout
[DEBUG:1773929] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/wake.wav']
[DEBUG:1773518] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/error.wav']
[DEBUG:1773431] SnowboyWakeListener: listening -> loaded
[DEBUG:1773430] WebrtcvadCommandListener: loaded -> listening
[DEBUG:1773429] WebrtcvadCommandListener: Will timeout in 6 second(s)
[DEBUG:1773428] DialogueManager: asleep -> awake
[DEBUG:1773428] DialogueManager: Awake!
[DEBUG:1773426] SnowboyWakeListener: Hotword(s) detected: ['snowboy/HeyPico_JCH.pmdl']
[DEBUG:1773305] SnowboyWakeListener: loaded -> listening
[DEBUG:1773304] DialogueManager: ready -> asleep
[INFO:1773301] DialogueManager: Automatically listening for wake word
[DEBUG:1773300] DialogueManager: handling -> ready
[DEBUG:1773298] WebSocketObserver: {"text": "", "intent": {"name": "", "confidence": 0}, "entities": [], "raw_text": "", "speech_confidence": 1, "wakeId": "snowboy/HeyPico_EH.pmdl", "siteId": "master", "slots": {}}
[WARNING:1773297] HomeAssistantIntentHandler: Empty intent. Not sending to Home Assistant
[DEBUG:1773296] DialogueManager: recognizing -> handling
[DEBUG:1773295] DialogueManager: {'text': '', 'intent': {'name': '', 'confidence': 0}, 'entities': [], 'raw_text': '', 'speech_confidence': 1, 'wakeId': 'snowboy/HeyPico_EH.pmdl', 'siteId': 'master'}
[ERROR:1773291] FsticuffsRecognizer: in_loaded
Traceback (most recent call last):
File "/usr/share/rhasspy/rhasspy/intent.py", line 183, in in_loaded
assert recognitions, "No intent recognized"
AssertionError: No intent recognized
[DEBUG:1773288] DialogueManager: decoding -> recognizing
[DEBUG:1773287] DialogueManager: (confidence=1)
[DEBUG:1773286] KaldiDecoder:
[DEBUG:1772385] KaldiDecoder: ['bash', '/profiles/de/kaldi/model/decode.sh', '/opt/kaldi', '/profiles/de/kaldi/model', '/profiles/de/kaldi/model/graph', '/tmp/tmpffdsqwf0.wav']
[DEBUG:1772342] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/recorded.wav']
[DEBUG:1772339] DialogueManager: awake -> decoding
[DEBUG:1772337] WebrtcvadCommandListener: listening -> loaded
[DEBUG:1772337] WebrtcvadCommandListener: Voice command finished
[DEBUG:1770416] WebrtcvadCommandListener: Voice command started
[DEBUG:1769342] APlayAudioPlayer: ['aplay', '-q', '/profiles/de/wav/wake.wav']
[DEBUG:1769341] SnowboyWakeListener: listening -> loaded
[DEBUG:1769340] WebrtcvadCommandListener: loaded -> listening
[DEBUG:1769339] WebrtcvadCommandListener: Will timeout in 6 second(s)
[DEBUG:1769337] DialogueManager: asleep -> awake
[DEBUG:1769337] DialogueManager: Awake!
[DEBUG:1769332] SnowboyWakeListener: Hotword(s) detected: ['snowboy/HeyPico_EH.pmdl']
[INFO:1765458] quart.serving: 127.0.0.1:33202 GET / 1.1 200 1029 4888
I have only observed this behaviour when two hotwords are set. As soon as only one of the two hotwords is in use, no double activation follows.
Does Rhasspy handle two consecutive activations of the same hotword (only spoken by different people)?