I originally started trying to get snips to work all of a month or so before they got bought up and temporarily gave up on voice assistant plans. I’m now trying to get Rhasspy up and running, but so far have been unable to get anything meaningful to happen. I’ve followed the guide here: https://rhasspy.readthedocs.io/en/latest/tutorials/#shared-mqtt-broker
My setup is essentially running hassio in a VM on my ESXi server (I use usb-passthrough and a HUSBZB-1 usb stick to control z-wave and zigbee). I’ve installed the Rhasspy 2.5 add-on and configured it according to the guide above. Additionally, I’ve enabled Intent Handling and set it to “Home Assistant” because it seems like that’s what you’d need to do to have anything really work with Home Assistant (please let me know if I’m wrong in this).
I’ve configured my settings as follows:
configuration.yaml
# Rhasspy
intent:
intent_script: !include intent_scripts.yaml
intent_scripts.yaml
GetTime:
speech:
text: The current time is {{ now().strftime("%H %M %p") }}
action:
service: notify.notify
data_template:
message: Got the current time!
Hassio Rhasspy Add-on config
{
"dialogue": {
"satellite_site_ids": "satellite-test",
"system": "rhasspy"
},
"handle": {
"system": "hass"
},
"home_assistant": {
"access_token": "<TOKEN>",
"url": "https://192.168.0.2/"
},
"intent": {
"satellite_site_ids": "satellite-test",
"system": "fsticuffs"
},
"mqtt": {
"enabled": "true",
"host": "192.168.0.2",
"password": "test",
"port": "1883",
"site_id": "base",
"username": "test"
},
"speech_to_text": {
"satellite_site_ids": "satellite-test",
"system": "kaldi"
},
"text_to_speech": {
"flite": {
"voice": "rms"
},
"satellite_site_ids": "satellite-test",
"system": "flite"
}
}
Satellite Rhasspy config
{
"home_assistant": {
"handle_type": "event",
"url": ""
},
"intent": {
"remote": {
"url": "http://192.168.0.2:12101/api/text-to-intent"
},
"system": "hermes"
},
"microphone": {
"arecord": {
"udp_audio_host": "127.0.0.1",
"udp_audio_port": "12202"
},
"pyaudio": {
"device": "0",
"udp_audio_host": "127.0.0.1",
"udp_audio_port": "12202"
},
"system": "arecord"
},
"mqtt": {
"enabled": "true",
"host": "192.168.0.2",
"password": "test",
"port": "1883",
"site_id": "satellite-test",
"username": "test"
},
"sounds": {
"aplay": {
"device": "default:CARD=sndrpigooglevoi"
},
"system": "aplay"
},
"speech_to_text": {
"remote": {
"url": "http://192.168.0.2:12101/api/speech-to-text"
},
"system": "hermes"
},
"text_to_speech": {
"remote": {
"url": "http://192.168.0.2:12101/api/text-to-speech"
},
"system": "hermes"
},
"wake": {
"porcupine": {
"udp_audio": "127.0.0.1:12202"
},
"system": "porcupine"
}
}
Rhasspy add-on log on hassio
[DEBUG:2020-10-09 19:36:48,088] rhasspynlu_hermes: <- NluQuery(input='What time is it', site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', intent_filter=None, session_id='666131bc-782c-4295-999e-fcfe8604b62a', wakeword_id=None, lang=None)
[DEBUG:2020-10-09 19:36:48,095] rhasspynlu_hermes: -> NluIntentParsed(input='what time is it', intent=Intent(intent_name='GetTime', confidence_score=1.0), site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', slots=[], session_id='666131bc-782c-4295-999e-fcfe8604b62a')
[DEBUG:2020-10-09 19:36:48,095] rhasspynlu_hermes: Publishing 229 bytes(s) to hermes/nlu/intentParsed
[DEBUG:2020-10-09 19:36:48,101] rhasspynlu_hermes: -> NluIntent(input='what time is it', intent=Intent(intent_name='GetTime', confidence_score=1.0), site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', slots=[], session_id='666131bc-782c-4295-999e-fcfe8604b62a', custom_data=None, asr_tokens=[[AsrToken(value='what', confidence=1.0, range_start=0, range_end=4, time=None), AsrToken(value='time', confidence=1.0, range_start=5, range_end=9, time=None), AsrToken(value='is', confidence=1.0, range_start=10, range_end=12, time=None), AsrToken(value='it', confidence=1.0, range_start=13, range_end=15, time=None)]], asr_confidence=None, raw_input='What time is it', wakeword_id=None, lang=None)
[DEBUG:2020-10-09 19:36:48,102] rhasspynlu_hermes: Publishing 690 bytes(s) to hermes/intent/GetTime
[DEBUG:2020-10-09 19:36:48,182] rhasspydialogue_hermes: <- NluIntent(input='what time is it', intent=Intent(intent_name='GetTime', confidence_score=1.0), site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', slots=[], session_id='666131bc-782c-4295-999e-fcfe8604b62a', custom_data=None, asr_tokens=[[AsrToken(value='what', confidence=1.0, range_start=0, range_end=4, time=None), AsrToken(value='time', confidence=1.0, range_start=5, range_end=9, time=None), AsrToken(value='is', confidence=1.0, range_start=10, range_end=12, time=None), AsrToken(value='it', confidence=1.0, range_start=13, range_end=15, time=None)]], asr_confidence=None, raw_input='What time is it', wakeword_id=None, lang=None)
[WARNING:2020-10-09 19:36:48,182] rhasspydialogue_hermes: No session for site satellite-test. Dropping recognition.
Rhasspy log in the webui on satellite
[DEBUG:2020-10-09 19:36:47,942] rhasspyserver_hermes: -> HandleToggleOff(site_id='satellite-test')
[DEBUG:2020-10-09 19:36:47,945] rhasspyserver_hermes: Publishing 28 bytes(s) to rhasspy/handle/toggleOff
[DEBUG:2020-10-09 19:36:48,011] rhasspyserver_hermes: -> NluQuery(input='What time is it', site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', intent_filter=None, session_id='666131bc-782c-4295-999e-fcfe8604b62a', wakeword_id=None, lang=None)
[DEBUG:2020-10-09 19:36:48,013] rhasspyserver_hermes: Publishing 211 bytes(s) to hermes/nlu/query
[DEBUG:2020-10-09 19:36:48,493] rhasspyserver_hermes: <- NluIntent(input='what time is it', intent=Intent(intent_name='GetTime', confidence_score=1.0), site_id='satellite-test', id='666131bc-782c-4295-999e-fcfe8604b62a', slots=[], session_id='666131bc-782c-4295-999e-fcfe8604b62a', custom_data=None, asr_tokens=[[AsrToken(value='what', confidence=1.0, range_start=0, range_end=4, time=None), AsrToken(value='time', confidence=1.0, range_start=5, range_end=9, time=None), AsrToken(value='is', confidence=1.0, range_start=10, range_end=12, time=None), AsrToken(value='it', confidence=1.0, range_start=13, range_end=15, time=None)]], asr_confidence=None, raw_input='What time is it', wakeword_id=None, lang=None)
[DEBUG:2020-10-09 19:36:48,530] rhasspyserver_hermes: Handling NluIntent (topic=hermes/intent/GetTime, id=303e0e95-1497-4077-90e7-5b73c391f23d)
[DEBUG:2020-10-09 19:36:48,532] rhasspyserver_hermes: Handling NluIntent (topic=hermes/intent/GetTime, id=e377ad2e-fcbb-457e-b395-39cf56949963)
[DEBUG:2020-10-09 19:36:48,700] rhasspyserver_hermes: -> HandleToggleOn(site_id='satellite-test')
[DEBUG:2020-10-09 19:36:48,703] rhasspyserver_hermes: Publishing 28 bytes(s) to rhasspy/handle/toggleOn
Rhasspy log in the webui on hassio
^-- literally not a daggone thing
Any assistance would be most welcome as I’m very new to this whole voice assistant thing.
As a semi aside, I also keep seeing references to always disabling 1883 for MQTT for security reasons, however when I do that, everything breaks in Rhasspy. How am I supposed to do that? I tried changing the config to use 1884, however Rhasspy failed to start. The only way I could fix it was to set MQTT’s 1883 port to use 1884 (and disable 1884), only then would Rhasspy start again and I could re-configure it back to using 1883 and re-set the configuration on MQTT again.
PS - The add-on Rhasspy instance DOES see lights that it has pulled from home assistant in a slot, so that part is working, however I can’t turn anything on/off right now either.
PPS - I should also probably be clear on something. I am typing in the text and clicking “recognize” on the satellite. If I speak and use the wake word, I’m not actually able to capture all of the log since debug is showing EVERYTHING including the audio chunks and I can only see so many lines before it scrolls off into the ether. I hope that doesn’t impact the issue I’m having, but if it does, I can post the add-on log from hassio with as much as I can.