JeeRhasspy - Satellite - réponse TTS sur le satellite toujours suivi du feedback après reconnaissance intent

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?

Salut @kiboost

Je me permet de te tagger ocazou tu serais dans le cas ou l’alerte sur étiquette ne fonctionnerai pas pour toi également.