Hi all,
I’m new to rhasspy and start with a lot of problems. At first I try to use text to speech.
The hardware is a ESPAudiokit. When I config the t2s with nanotts and languge de-DE I got no output. The MQTT-Explorere show me that the siteID is default insteat of the siteID I input in the config. In the profile.json file is written this:
Maybe I will explain it a little bit clearer. I reinstalled rhasspy with docker :
docker run -d -p 12101:12101 -p 12183:12183
–name rhasspy
–restart unless-stopped
-v “$HOME/.config/rhasspy/profiles:/profiles”
-v “/etc/localtime:/etc/localtime:ro”
–device /dev/snd:/dev/snd
rhasspy/rhasspy
–user-profiles /profiles
–profile de
The rhasspy siteID is default and the MQTT Satellite siteID is ESPAudiokitFlur.
How should I config rhasspy to work with my satellite. Here my profile.json:
{
“dialogue”: {
“satellite_site_ids”: “ESPAudiokitFlur”,
“system”: “rhasspy”
},
“intent”: {
“system”: “hermes”
},
“microphone”: {
“system”: “hermes”
},
“sounds”: {
“system”: “hermes”
},
“speech_to_text”: {
“system”: “hermes”
},
“text_to_speech”: {
“satellite_site_ids”: “ESPAudiokitFlur”,
“system”: “hermes”
},
“wake”: {
“system”: “hermes”
}
}
Any help is welcome.
If you do the speech from the webUI, your TTS will go to your server and not the sat.
I am assuming you use the esp32 audio streamer software in the ESPAudiokit.
That is why it works when you set the siteID to the default.
For the ESP satellites to work, you need to set Rhasspy to external MQTT broker with username and password (the MQTT addon of Home Assistant for instance) and then connect the satellite to that same broker.
RHASSPY MQTT external (maybe FHEM MQTT Broker):
Rhasspy siteID != ESPAudiokit siteID could be different, also if I use more than one ESPAudiokits. Is this right.
Nope. You cán use internal, but then Rhasspy should act a a broker. Still the server siteId must be different then the satellite siteId.
But if you do anything in the webUI like the speeach button for example, this will be for the server siteId and you will not hear anything on a satellite.
Rhasspy server and all satellites should be connected to the same MQTT broker. That can be Rhasspy, but if you want to to more then I suggest using a different broker like MQTT addon for Home Assistant or indeed the FHEM MQTT broker.
Connect the server and satellite to it and the sat should work.
However, doing the speech button in the webUI will only publish the speech to the server.
So far I’ve only managed to get the base (Raspberry Pi4) to output the sound through the headphones. The satellite only plays the beginning and ending tones for speaking.
I tried it again, it works under Node-Red, but it doesn’t work with the test button on Rhasspy
written in Node Red Javascript
var payload = {
topic: "hermes/tts/say",
text: "Timer 1 has been set for 5 minutes",
siteId: "Test2"
}
return { topic: "hermes/tts/say",payload:payload };
I think boeserkorn that you are assuming (a) that the Rhasspy Base station is controlling the Satellites, and (b) that everything on the GUI must be relevant to your use.
Rhasspy was (i believe) initially developed using Raspberry Pis where the RasPi would be performing all the tasks on one machine.
At v2.5 Rhasspy was modified to allow multiple Satellite (with microphone and speaker) to be separated from the Base (with shared CPU resource) - but the same GUI is still used for both … which causes confusion for new users But at least your ESP32 doesn’t show the GUI
The Rhaspy GUI however still shows all the options, including those for debugging the all-on-one setup. In particular, I have noticed that the [Wake up] [Play recording] [Speak] and [Set Volume] buttons only work on the machine the GUI is running on. They do nothing if there is no microphone or speaker connected to that machine.
In other words those test buttons don’t help when testing a Satellite + Base configuration, such as you have.