Salut à tous,
J’ai mis en place mon premier satellite Rhasspy (après avoir stabilisé suffisamment le waf sur le maitre!)
Le master : aucun problème fonctionne a merveille (à part les faux positif sur le wakeword qd TV allumée)
Mon problème est sur le satellite : les intents sont bien reconnus, le bon scénario se déclenche, le tts que j’ai programmé en réponse se lance bien, mais il est systématiquement suivi par le feedback défini dans la conf du plugin (le mot « nope » chez moi), qui n’est sensé n’être retourné que si l’intent n’est pas référencé dans jeedom.
typiquement j’ai :
- [moi] quelle heure est il?
- [rhasppy] il est 13 heure 53
- [rhasspy] nope
la dernière étant non voulu!
Cela ne se passe que sur le satellite, pas sur le master. Cela ne se passe pas si j’envoi un TTS directement par le widget, ni par scenario avec les commandes speak et dynamic speak.
Ma conf :
- jeedom 4.1.28 sur VM debian 10 (sous proxmox)
- jeerhasspy - (béta) en date du 2021-12-13 01:04:09
- rhasspy maitre : rhasspy 2.5.11 sur VM debian en install direct (avec un jabra 510…T.O.P!)
- rhasspy satellite 2.5.11 sur RPI zero 2 W + respeaker 2 en install docker
tous passe en hermes sur le broker mosquitto (v1.5.7) sur la VM jeedom.
ma conf du satellite
{
"dialogue": {
"system": "hermes"
},
"handle": {
"remote": {
"url": "http://192.168.1.3/core/api/jeeApi.php?apikey=APIKEY&plugin=jeerhasspy&type=jeerhasspy"
},
"satellite_site_ids": "cuisine",
"system": "remote"
},
"intent": {
"system": "hermes"
},
"microphone": {
"arecord": {
"device": "default:CARD=seeed2micvoicec",
"siteId": "cuisine",
"udp_audio_host": "127.0.0.1",
"udp_audio_port": "8888"
},
"pyaudio": {
"device": "0",
"siteId": "cuisine",
"udp_audio_host": "127.0.0.1",
"udp_audio_port": "12202"
},
"system": "arecord"
},
"mqtt": {
"enabled": "true",
"host": "192.168.1.3",
"password": "pass",
"site_id": "cuisine",
"username": "username"
},
"sounds": {
"aplay": {
"device": "default:CARD=seeed2micvoicec"
},
"system": "aplay"
},
"speech_to_text": {
"system": "hermes"
},
"text_to_speech": {
"satellite_site_ids": "cuisine",
"system": "hermes"
},
"wake": {
"porcupine": {
"keyword_path": "bumblebee_raspberry-pi.ppn",
"sensitivity": "0.5",
"udp_audio": "127.0.0.1:8888"
},
"satellite_site_ids": "cuisine",
"snowboy": {
"model": "jarvis.umdl",
"sensitivity": "0.5,0.5",
"udp_audio": "127.0.0.1:8888"
},
"system": "snowboy"
},
"webhooks": {
"awake": [
"http://192.168.1.3/core/api/jeeApi.php?apikey=APIKEY&plugin=jeerhasspy&type=jeerhasspy"
]
}
}
Le log jeeRhasspy en débug sur un intent simple (quelle heure est il?)
[2022-02-05 13:53:10][DEBUG] : [jeerhasspy] event() __EVENT__: {"modelId": "jarvis", "modelVersion": "", "modelType": "personal", "currentSensitivity": 0.5, "siteId": "cuisine", "sessionId": null, "sendAudioCaptured": null, "lang": null, "customEntities": null}
[2022-02-05 13:53:10][DEBUG] : [jeerhasspy] event() --Awake -> set variables: rhasspyWakeWord->jarvis | rhasspyWakeSiteId->cuisine
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy] event() __EVENT__: {"intent": {"name": "GetTime", "confidence": 1.0}, "entities": [], "slots": {}, "text": "quelle heure est-il", "raw_text": "quelle heure est-il", "tokens": ["quelle", "heure", "est-il"], "raw_tokens": ["quelle", "heure", "est-il"], "wakeword_id": "jarvis", "site_id": "cuisine"}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy] event() --Intent Recognized: quelle heure est-il --> {"name":"GetTime","confidence":1}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy_intent] exec_callback_scenario() scenario: Rhasspy_getTime
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy_intent] get_all_scenario_tags() out:scenario tags: {"#intent#":"GetTime","#siteId#":"cuisine"}
[2022-02-05 13:53:14][DEBUG] : [RhasspyUtils] playFinished() jeeRhasspy:playFinished -> cuisine
[2022-02-05 13:53:14][DEBUG] : [RhasspyUtils] _request() POST | http://192.168.1.151:12101/api/mqtt/hermes/audioServer/cuisine/playFinished | {"siteId":"cuisine"}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy] event() __EVENT__: {"intent": {"name": "GetTime", "confidence": 1.0}, "entities": [], "slots": {}, "text": "quelle heure est-il", "raw_text": "quelle heure est-il", "tokens": ["quelle", "heure", "est-il"], "raw_tokens": ["quelle", "heure", "est-il"], "wakeword_id": "jarvis", "site_id": "cuisine"}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy] event() --Intent Recognized: quelle heure est-il --> {"name":"GetTime","confidence":1}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy_intent] exec_callback_scenario() scenario: Rhasspy_getTime
[2022-02-05 13:53:14][DEBUG] : [jeerhasspy_intent] get_all_scenario_tags() out:scenario tags: {"#intent#":"GetTime","#siteId#":"cuisine"}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspyCmd] execute() TTS-master.dynspeak() | {"background":"0","title":"cuisine","message":"il est 13 heure 53"}
[2022-02-05 13:53:14][DEBUG] : [jeerhasspyCmd] dynamicSpeak() {"background":"0","title":"cuisine","message":"il est 13 heure 53"} siteId: master
[2022-02-05 13:53:14][DEBUG] : [RhasspyUtils] textToSpeech() _text: il est 13 heure 53 | _siteId: cuisine | lang:
[2022-02-05 13:53:14][DEBUG] : [RhasspyUtils] _request() POST | http://192.168.1.151:12101/api/text-to-speech?siteId=cuisine | il est 13 heure 53
le log du scenario qui s’est lancé:
[2022-02-05 13:53:14][SCENARIO] Start : Lancement provoque. Tags : {"#intent#":"GetTime","#siteId#":"cuisine"}
[2022-02-05 13:53:14][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-02-05 13:53:14][SCENARIO] Mise à jour du tag #direTime# => 13 heure 53
[2022-02-05 13:53:14][SCENARIO] Exécution de la commande [Rhasspy-Intents][TTS-master][dynamic Speak] avec comme option(s) : {"background":"0","title":"cuisine","message":"il est 13 heure 53"}
[2022-02-05 13:53:17][SCENARIO] Fin correcte du scénario
la conf du plugin
Des idées?