So im just getting in Rhasspy, and im trying to use a M5 Atom Echo with “esp32-rhasspy-satellite” image.
The web server for the esp32 gives me just options to connect MQTT and “remote hotword detection”. I presume that means it just send its audio via MQTT to the base station for processing.
However nothing ive done so far has been sent to the base station.
So im using the Moquitto Broker Addon from HA. Credentials im using are just my HA user, so both the Rhasspy Addon and Atom Echo are pointed at that broker with the same credentials.
Is there an MQTT topic i can sub to with a client so i can see whats happening from that satellite? Maybe i should test with the button first but tbh im struggling to even get this working, although on Rhasspy when i press the button on the echo, i see “Intent unknown” appear on the test page where you would normally see the command that was last spoken.
You can sub to hermes/audioServer/<siteId>/audioFrame, there should be loads of messages.
Those are all small wave chunks send to the server, that topic should also be in the log of the server
So i can see the audio coming over the MQTT topic but im not sure Rhasspy is picking it up for some reason. Ive got this in the logs after trying to use button press, and then turning on hotword. No speech is detected.
[DEBUG:2022-08-14 23:08:51,782] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:08:51,779] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:08:29,718] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:08:29,718] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:07:59,091] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:07:59,090] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:06:05,752] rhasspyserver_hermes: Sent 262 char(s) to websocket
[DEBUG:2022-08-14 23:06:05,751] rhasspyserver_hermes: Sent 262 char(s) to websocket
[ERROR:2022-08-14 23:05:54,644] rhasspyserver_hermes:
Traceback (most recent call last):
File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
result = await self.dispatch_request(request_context)
File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
return await handler(**request_.view_args)
File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 1624, in api_play_recording
await core.play_wav_data(wav_bytes)
File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 755, in play_wav_data
handle_finished(), messages(), message_types
File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 995, in publish_wait
result_awaitable, timeout=timeout_seconds
File "/usr/lib/python3.7/asyncio/tasks.py", line 423, in wait_for
raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
[DEBUG:2022-08-14 23:05:54,644] rhasspyserver_hermes: Publishing 43 bytes(s) to hermes/asr/toggleOn
[DEBUG:2022-08-14 23:05:54,644] rhasspyserver_hermes: -> AsrToggleOn(site_id='server', reason=<AsrToggleReason.PLAY_AUDIO: 'playAudio'>)
[DEBUG:2022-08-14 23:05:54,643] rhasspyserver_hermes: Publishing 43 bytes(s) to hermes/hotword/toggleOn
[DEBUG:2022-08-14 23:05:54,643] rhasspyserver_hermes: -> HotwordToggleOn(site_id='server', reason=<HotwordToggleReason.PLAY_AUDIO: 'playAudio'>)
No, if you press that on the server, it will not listen to the satellite.
The M5 Atom Echo has a very low sound level sadly, to check what is recorded you can run this python script on a computer. You have to make some adjustments like server and such but i will record a couple of seconds from the audio and save it to a wave file. That way you can verify of the device is correctly sending data.