OK, I re-started this with a clean installation.
Setting: Rhasspy installed, working properly, Intents recognized, all services tested ok.
TTS Service Chosen is nanoTTS.
Coupled an external MQTT Client to the Rhasspy external MQTT server, subscribed to
hermes/tts/# rhasspy/tts/# hermes/hotword/#help.
On receiving a hermes/tts/say message, it does a speech message and responds with two MQTT messages
For logging, I have added a mosquitto_sub client as
mosquitto_sub -v -t hermes/hotword/# -t hermes/dialogueManager/# -t hermes/asr/# -t hermes/audioServer/+/playFinished -t hermes/nlu/# -t hermes/error/# -t hermes/tts/# -t hermes/feedback/#
Test 1: Type a text into the Web UI Home page of Rhasspy, klick “speak”. Result: I get two speech outputs, one from nanoTTS locally, one from my external system. Rhasspy is completely ok. mosquitto_sub gives me
hermes/tts/say {“text”: “es ist 17 uhr 31”, “siteId”: “default”, “lang”: null, “id”: “54b2cc5f-37e7-4512-b17e-a3de038924fe”, “sessionId”: “”, “volume”: 1.0}
hermes/tts/sayFinished {“siteId”:“default”,“sessionId”:"",“id”:“54b2cc5f-37e7-4512-b17e-a3de038924fe”}
hermes/audioServer/default/playFinished {“sessionId”:“54b2cc5f-37e7-4512-b17e-a3de038924fe”,“id”:“54b2cc5f-37e7-4512-b17e-a3de038924fe”}
hermes/tts/sayFinished {“siteId”: “default”, “id”: “54b2cc5f-37e7-4512-b17e-a3de038924fe”, “sessionId”: “”}
hermes/audioServer/default/playFinished {“id”: “54b2cc5f-37e7-4512-b17e-a3de038924fe”, “sessionId”: “54b2cc5f-37e7-4512-b17e-a3de038924fe”}
One set of MQTT messages comes from my service, the other one from nanoTTS
Test 2: Chosing as the TTS service in the Rhasspy Web frontend “Hermes TTS”. Type that text again. I only get one voice output, on my system. However: Rhasspy does NOT accept the MQTT messages from my service, rather waits for some (!) return and goes into timeout after 30 seconds.
mosquitto_sub gives me
hermes/tts/say {“text”: “es ist 17 uhr 32”, “siteId”: “default”, “lang”: null, “id”: “1d84dddd-52a9-4d65-87c6-d69bd58b16fb”, “sessionId”: “”, “volume”: 1.0}
hermes/tts/sayFinished {“siteId”:“default”,“id”:“1d84dddd-52a9-4d65-87c6-d69bd58b16fb”,“sessionId”:""}
hermes/audioServer/default/playFinished {“sessionId”:“1d84dddd-52a9-4d65-87c6-d69bd58b16fb”,“id”:“1d84dddd-52a9-4d65-87c6-d69bd58b16fb”}
To very precise, what are observable differences apart from the disappointing result:
- Of course, the saved settings in profile.json differ in one line
“system”: “nanotts” in Test 1 versus “system”: “hermes” in Test 2
- The JSON response from my system does not contain superfluous space characters, and the pairs are in a slightly different order. None of these should be relevant for JSON.
All suggestions made here in reply to my first post have been carefully checked and excluded. Final conclusion: In Rhasspy 2.5.11 seems to be a bug when the TTS system is set to “hermes” - proper responses are not recognized.
Regards
pah