Modulentwicklung für Rhasspy Sprachassistent

Begonnen von drhirn, 11 März 2021, 15:59:50

Vorheriges Thema - Nächstes Thema

drhirn

Zitat von: Beta-User am 18 April 2021, 17:30:29
Ansonsten habe ich das Problem, dass meine Kommandos zu häufig an die falsche Adresse gehen, und dann ein "gerät kann das nicht" zurückkommt. Bin am Grübeln, ob es nicht besser wäre, mit Hilfe der gDT-Info Gruppen zu bilden, so dass z.B. "auf" und "zu" nur an Rollläden gehen, "leiser/lauter" nur an "media" usw.. Würde halt bedeuten, dass man die sentences auch entsprechend modifiziert.
Jemand Erfahrung in diese Richtung?

Mir passiert das eigentlich nie. Begeistert mich immer wieder, dass das so gut klappt.
Kann es sein, dass deine Geräte Namen haben, die Rhasspy nicht versteht? Schaust du hin und wieder im GUI von Rhasspy nach, ob da eventuell noch ein paar "Custom Words" angelegt werden müssen? Rhasspy meldet das im GUI nach dem Training, dass es Wörter nicht kennt.

Beta-User

 ;D liegt vielleicht eher daran, dass ich gerne die Extreme austeste, also z.B. Sprachkommandos bei laufender Musik...

Wenn es ruhig ist und ich sehr darauf achte, deutlich zu sprechen und _genau_ den Satz zu sagen bzw. den Namen zu wählen, der die besten Ergebnisse geben sollte (muss das dann nachschlagen...), dann ist alles supi.
Dass man "unbekannte" und unaussprechliche Namen ggf. manuell anfassen muss, ist soweit klar - das war letztlich auch der Grund, warum z.B. alias den "techname" verdrängt bzw. rhasspyName alles andere: Zu viele ähnliche Namen führen nicht unbedingt zu besseren Ergebnissen...

Mal sehen, ob ich dazu komme, mal diese gDT-Gruppen als slots anzulegen und damit zu testen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rakete123

Könnte man nicht irgendwie ein event in FHEM haben, wenn das hotword erkannt wurde? Dann könnte man schnell medien muten oder pausieren.
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

drhirn

Gibt es. Die "<siteId>_listening" Readings gehen auf 1, sobald Rhasspy zuhört.

drhirn

Korrigiere. Gab es mal. Keine Ahnung wo die hin sind. Ich schau mir das an.

drhirn

@Beta-User: Durch Zeile 1788
        next if $topic !~ m{$topicpart}x;
rutschen wir nie nach RHASSPY_onmessage. Was hattest du mir der Zeile im Hinterkopf?

Beta-User

"nie" ist ein großes Wort...

onmessage wird nur noch aufgerufen, wenn der topic auch zu Sprache und fhemId paßt. "An sich" ist das gut und richtig. Vermute, es geht um das "listening"-Thema?
Wie sieht da der MQTT-Verkehr aus? (Kann grade nicht testen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Nie... nagut, war falsch formuliert ;D

Ja, genau. Es geht um das "listening"-Thema. Die Readings werden natürlich nicht geschrieben, weil if ($topic =~ m{\Ahermes/dialogueManager}x) nie zutrifft. Und jetzt passt das "nie" ;)
Wir sollte also auf jeden Fall nach onmessage springen. Oder die Sache mit den Readings wo anders unterbringen.

Msg: hermes/dialogueManager/sessionStarted => {"sessionId": "wohnzimmer-snowboy-bda47a55-35eb-4dfe-ad02-de0a670cae2d", "siteId": "wohnzimmer", "customData": "snowboy", "lang": null}

Beta-User

Man sollte immer so früh wie möglich aussortieren...

Würde also den Filter eher versuchen so einzustellen, dass er das durchläßt, was Sinn macht. So könnte das klappen:
my $topicpart = qq{/$hash->{LANGUAGE}\.$hash->{fhemId}\[._]|\Ahermes/dialogueManager};
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Das "A" ist unabsichtlich rein gerutscht?

Funktioniert. Danke!

Beta-User

Hm, eigentlich nicht. "\A" ist "damit muss es anfangen".
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Hätte ich auch gedacht.

PERL WARNING: Unrecognized escape \A passed through at ./FHEM/10_RHASSPY.pm line 1788

drhirn

Zitat von: rakete123 am 19 April 2021, 12:51:27
Könnte man nicht irgendwie ein event in FHEM haben, wenn das hotword erkannt wurde? Dann könnte man schnell medien muten oder pausieren.

Ist im aktuellen Commit von 0.4.9 wieder möglich.

Beta-User

...ursprünglich hatte ich das anders herum verschlagen wollen:
my $topicpart = qq{\Ahermes/dialogueManager|/$hash->{LANGUAGE}\.$hash->{fhemId}\[._]}und dann aber "kalte Füße", ob sich das \A auch auf den hinteren Teil auswirkt. Müßte man testen, aber notfalls sollte es an der Stelle auch ohne gehen, da wir "$topic" ja schon mal irgendwie abgegrenzt hatten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Treibhaus

Zitat von: drhirn am 19 April 2021, 08:16:53
Was funktioniert nicht? Das erste Problem hast du ja selbst gelöst. Sobald das Modul eine Verbindung zur Rhasspy-Base herstellen kann, ist der Status online wie du richtig erkannt hast.


Hallo,

es hilft natürlich wenn man
1. alle Dateien austauscht
2. Update / ALL im DEVICE:RHASSPY ausführt.

room= sind korrigiert (laut Spezf).

DANKE. Läuft wieder mit der Version: 0.4.8 

Gruß
Signatur:
Odroid -C2 + BSC EnOcean USB 300-TCM310 + HM485
Enocean-Taster-Fensterkontakt,-Bewegungsmelder
HM-Module über 3 Etagen + Garage/Garten
+ 1-wired Temp-Sensoren, S0-Schnittstellen + RHASSPY-Spracherkennung