I am having issues testing the wakeword. I’m using one of the provided wake words (jarvis). Testing the speech to text and intent extraction works fine but I am unable to wake the device.
Pressing the yellow WAKE
button in my web ui provides the following output in the logs followed by 3 sounds (two sonar sounding sounds (‘beep_hi.wav’) followed by a soft sounding sound (‘beep_error.wav’)).
[DEBUG:541717] APlayAudioPlayer: ['aplay', '-q', '-D', 'sysdefault:CARD=sndrpigooglevoi', '/usr/share/rhasspy/etc/wav/beep_error.wav']
[INFO:541020] quart.serving: 192.168.x.n:59354 POST /api/listen-for-command 1.1 200 139 2156124
[INFO:541014] quart.serving: 172.17.0.1:44378 GET /api/events/intent 1.1 101 - 60774138
[INFO:541006] quart.serving: 172.17.0.1:44408 GET /api/events/intent 1.1 101 - 11589415
[INFO:540998] quart.serving: 172.17.0.1:44390 GET /api/events/intent 1.1 101 - 32594519
[INFO:540990] quart.serving: 192.168.x.n:59352 GET /api/events/intent 1.1 101 - 11141532
[DEBUG:540964] InboxActor: -> stopped
[ERROR:540957] PorcupineWakeListener: loading wake handle
Traceback (most recent call last):
File "/usr/share/rhasspy/rhasspy/wake.py", line 852, in in_started
self.load_handle()
File "/usr/share/rhasspy/rhasspy/wake.py", line 928, in load_handle
assert kw_path.is_file(), f"Missing {kw_path}"
AssertionError: Missing profiles/en/porcupine/jarvis_linux.ppn
[DEBUG:540952] DialogueManager: ready -> asleep
[INFO:540949] DialogueManager: Automatically listening for wake word
[DEBUG:540944] DialogueManager: handling -> ready
[DEBUG:540940] WebSocketObserver: {"text": "", "intent": {"name": "", "confidence": 0}, "entities": [], "raw_text": "", "speech_confidence": 0, "wakeId": "", "siteId": "default", "slots": {}}
[WARNING:540939] HomeAssistantIntentHandler: Empty intent. Not sending to Home Assistant
[DEBUG:540938] DialogueManager: recognizing -> handling
[DEBUG:540936] DialogueManager: {'text': '', 'intent': {'name': '', 'confidence': 0}, 'entities': [], 'raw_text': '', 'speech_confidence': 0, 'wakeId': '', 'siteId': 'default'}
[ERROR:540928] 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:540921] DialogueManager: decoding -> recognizing
[DEBUG:540918] DialogueManager: (confidence=0)
[DEBUG:540915] PocketsphinxDecoder:
[DEBUG:540912] PocketsphinxDecoder: Decoded WAV in 0.053197383880615234 second(s)
[DEBUG:540860] APlayAudioPlayer: ['aplay', '-q', '-D', 'sysdefault:CARD=sndrpigooglevoi', '/usr/share/rhasspy/etc/wav/beep_lo.wav']
[DEBUG:540857] PocketsphinxDecoder: rate=16000, width=2, channels=1.
[DEBUG:540854] DialogueManager: awake -> decoding
[DEBUG:540851] WebrtcvadCommandListener: listening -> loaded
[DEBUG:540850] WebrtcvadCommandListener: Voice command finished
[DEBUG:539349] WebrtcvadCommandListener: Voice command started
[INFO:538931] quart.serving: 172.17.0.1:44362 GET /api/events/wake 1.1 101 - 218655795
[INFO:538921] quart.serving: 172.17.0.1:44382 GET /api/events/wake 1.1 101 - 57405452
[DEBUG:538880] WebrtcvadCommandListener: loaded -> listening
[DEBUG:538879] APlayAudioPlayer: ['aplay', '-q', '-D', 'sysdefault:CARD=sndrpigooglevoi', '/usr/share/rhasspy/etc/wav/beep_hi.wav']
[DEBUG:538878] WebrtcvadCommandListener: Will timeout in 30 second(s)
[INFO:538874] quart.serving: 172.17.0.1:44394 GET /api/events/wake 1.1 101 - 30044898
[DEBUG:538872] DialogueManager: asleep -> awake
[INFO:529974] quart.serving: 192.168.x.n:59348 GET /img/favicon.png 1.1 200 802 51403
[INFO:529948] quart.serving: 192.168.x.n:59351 GET /api/problems 1.1 200 302 44210
[INFO:529946] quart.serving: 192.168.x.n:59350 GET /api/microphones 1.1 200 401 193114
[DEBUG:529929] InboxActor: -> stopped
[DEBUG:529924] InboxActor: -> stopped
[INFO:529911] quart.serving: 192.168.x.n:59349 GET /api/speakers 1.1 200 401 159525
[INFO:529908] quart.serving: 192.168.x.n:59347 GET /api/unknown-words 1.1 200 2 27280
[DEBUG:529898] InboxActor: -> stopped
[INFO:529889] quart.serving: 192.168.x.n:59343 GET /api/profile 1.1 200 6907 61372
[INFO:529885] quart.serving: 192.168.x.n:59348 GET /api/profiles 1.1 200 144 67324
[INFO:529873] quart.serving: 192.168.x.n:59351 GET /api/profile 1.1 200 9084 60583
[INFO:529803] quart.serving: 192.168.x.n:59348 GET /api/phonemes 1.1 200 1526 51970
[INFO:529799] quart.serving: 192.168.x.n:59347 GET /api/slots 1.1 200 2 47877
[DEBUG:529766] __main__: Loading phoneme examples from /usr/share/rhasspy/profiles/en/phoneme_examples.txt
[INFO:529756] quart.serving: 192.168.x.n:59346 GET /api/events/log 1.1 101 - 75860
[INFO:529742] quart.serving: 192.168.x.n:59343 GET /api/sentences 1.1 200 581 9325
I’m testing on a Raspberry Pi 3 with the Google AIY HAT speaker and mic. I’m using the following drivers. Occasionally the device will show the yellow thunderbolt (I believe signifying under-voltage) and often shutting down.
I’ve had issues updating the profile through the UI and have resorted to modifying the profile.json
file directly.
My profile.json is:
{
"handle": {
"system": "hass"
},
"home_assistant": {
"access_token": "secret",
"url": "http://192.168.x.m:8123/"
},
"microphone": {
"arecord": {
"device": "sysdefault:CARD=sndrpigooglevoi"
},
"system": "arecord"
},
"sounds": {
"aplay": {
"device": "sysdefault:CARD=sndrpigooglevoi"
}
},
"text_to_speech": {
"espeak": {
"voice": "en"
},
"picotts": {
"language": "e3wu74 37i2qi27"
}
},
"wake": {
"porcupine": {
"keyword_path": "porcupine/jarvis_linux.ppn"
},
"system": "porcupine"
}
}