Modulentwicklung für Rhasspy Sprachassistent

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

Vorheriges Thema - Nächstes Thema

drhirn

Guter Hinweis. Hat aber leider nichts geändert.

Beta-User

Bleibt auch das Internal stehen, oder ist es jetzt weg?

Kurz zur Erläuterung: Nach einem "Abbruch" sollte es weg sein, erst der darauf folgende Versuch wird dann wieder effektiv an Rhasspy geschickt.

Hmmm, muss mir wohl noch was überlegen für einzelne Sätze und "Intent not recognized"...
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 bleibt stehen

--EDIT--

Aber nur bei test_sentence. Bei test_file geht's wieder weg.

Beta-User

#1218
Hmm, entweder ich habe beim Einchecken irgendwas verwechselt, oder mein Echtsystem verhält sich anders...

Wie dem auch sei: Der Fall war nicht abgedeckt, dass gar keine Rückmeldung kommt, und der "Einzeltimeout" ist auch eine gute Stelle, um nochmal auf das siteId-Thema hinzuweisen. Außerdem kann bei der Einzelabfrage der ausdrückliche Hinweis nicht schaden, dass die Rückmeldung "intent not recognized" erfolgt war (also überhaupt was passiert ist).

Anbei ein vorläufiges update dazu.

EDIT/PS: wie findest du, was in der FEST_result.txt so alles steht...?
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

Sorry, ich bin ein Depp. Hab die rhasspy-de.cfg ins falsche Verzeichnis kopiert. Liegt jetzt im richtigen und so funktioniert's. Zumindest test_sentence.

Bei test_file bekomme ich zwar "Test file ./FEST.txt is initiated. See if internal 'testline' is rising and check testResult reading later" und das internal wird erstellt. Internal bleibt aber irgendwie immer bei 11. Wie lange dauert so ein Durchgang bei dir?

Beta-User

Zitat von: drhirn am 25 März 2022, 15:09:53
Sorry, ich bin ein Depp. Hab die rhasspy-de.cfg ins falsche Verzeichnis kopiert. Liegt jetzt im richtigen und so funktioniert's. Zumindest test_sentence.
Ähm, dieser Zusammenhang erschließt sich mir nicht auf die Schnelle. Wenn die languageFile nicht geladen werden kann (oder einen alten Stand hat), wird halt ggf. der default (englisch)-Kontent genommen.

Zitat
Bei test_file bekomme ich zwar "Test file ./FEST.txt is initiated. See if internal 'testline' is rising and check testResult reading later" und das internal wird erstellt. Internal bleibt aber irgendwie immer bei 11. Wie lange dauert so ein Durchgang bei dir?
11 ist zu lesen als Zeile 12 (Array-Nummerierung beginnt bei Element 0). Das entspricht (wegen der vorherigen "Kommentierungen") dem ersten "echten" Test (wer bist du), und der gibt anscheinend keine Antwort, warum auch immer.

Da du ja deine FHEM-siteId zwischenzeitlich bei Rhasspy eingetragen hast, habe ich dafür vorläufig keine naheliegende Erklärung mehr, vermutlich sollte man für so einem Fall dann einen weiteren Timer einbauen, der das ganze als erfolglos beendet.

Vielleicht sollte man die Grundfunktionalität erst testen mit unserem "hello world" ("Wie spät ist es")? Das sollte reibungslos durchlaufen und mit einem Dialogfeld als Rückmeldung enden.

Kompletter Durchlauf dauert bei mir knapp über 14 Sekunden... (dualcore-uralt-AMD, Rhasspy (und anderes wie deconz) auf demselben System):
Zitattested 174 sentences, failed total: 114, amongst these in dialogues: 17. Testing time: 14.02 seconds. See FEST_result.txt for detailed results.
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

Zitat von: Beta-User am 25 März 2022, 15:24:23
Ähm, dieser Zusammenhang erschließt sich mir nicht auf die Schnelle. Wenn die languageFile nicht geladen werden kann (oder einen alten Stand hat), wird halt ggf. der default (englisch)-Kontent genommen.
Hmm, ja. Stimmt eigentlich. Komisch.

Zitat
Vielleicht sollte man die Grundfunktionalität erst testen mit unserem "hello world" ("Wie spät ist es")? Das sollte reibungslos durchlaufen und mit einem Dialogfeld als Rückmeldung enden.
Mit einer Datei, in der nur "wie spät ist es" steht, hat's funktioniert.
Die funktioniert auch:

wie spät ist es
wie spät
licht aus
licht ein


Die nicht mehr:

wie spät ist es
wie spät
licht aus
licht ein
notfall


Kann es sein, dass RHASSPY aussteigt, sobald ein Wort kommt, das Rhasspy nicht kennt?

Beta-User

Zitat von: drhirn am 25 März 2022, 15:41:55
Kann es sein, dass RHASSPY aussteigt, sobald ein Wort kommt, das Rhasspy nicht kennt?
RHASSPY wartet - im Moment bis in alle Ewigkeit - bis Rhasspy auf die grade aktuelle Anfrage eine Antwort sendet, und sendet dann erst die nächste raus.

Die Ursache für das unterschiedliche Verhalten unserer beiden Systeme liegt daher auf der Rhasspy-Seite, das müßten wir ggf. morgen mal gegeneinanderhalten. Jedenfalls kennt auch mein Rhasspy eine ganze Menge der Worte nicht, die in der File stehen, das alleine ist es nicht...

Prinzipiell zeigt sich aber, dass wir einen (zusätzlichen) Timer-Mechanismus brauchen, der solche Fälle abfängt. Muss mal nachdenken, wird etwas brauchen, weil sichergestellt sein muss, dass es nicht zu sich überkreuzenden Messages kommt. Tendenziell müßte daher der ganze Vorgang abgebrochen werden und halt in die "result" geschrieben, was bis dato bekannt ist (wenn du ein list anschaust, siehst du das, was bisher gesammelt wurde, und wo es nicht weiter geht).
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

Zitat von: Beta-User am 25 März 2022, 15:51:48
Die Ursache für das unterschiedliche Verhalten unserer beiden Systeme liegt daher auf der Rhasspy-Seite, das müßten wir ggf. morgen mal gegeneinanderhalten.
Kann dir nicht versprechen, dass ich morgen zu irgendwas komme. Aber unsere Bases sind mit Sicherheit unterschiedlich konfiguriert.

Da mal meine Config:

{
    "dialogue": {
        "group_separator": ".",
        "satellite_site_ids": "wohnzimmer.pc,wohnzimmer.03,wohnzimmer.sofa,vorraum,küche,schlafzimmer,defhem"
    },
    "intent": {
        "satellite_site_ids": "wohnzimmer.pc,wohnzimmer.03,wohnzimmer.sofa,vorraum,küche,schlafzimmer,defhem",
        "system": "fsticuffs"
    },
    "sounds": {
        "error": "${RHASSPY_PROFILE_DIR}/error.wav",
        "recorded": "${RHASSPY_PROFILE_DIR}/end_of_input.wav",
        "wake": "${RHASSPY_PROFILE_DIR}/start_of_input.wav"
    },
    "speech_to_text": {
        "kaldi": {
            "allow_unknown_words": true,
            "cancel_word": "alexa"
        },
        "satellite_site_ids": "wohnzimmer.pc,wohnzimmer.03,wohnzimmer.sofa,vorraum,küche,schlafzimmer,defhem",
        "system": "kaldi"
    },
    "text_to_speech": {
        "satellite_site_ids": "wohnzimmer.pc,wohnzimmer.03,wohnzimmer.sofa,vorraum,küche,schlafzimmer,defhem",
        "system": "nanotts"
    }
}

Beta-User

#1224
OK, bei mir ist innerhalb von "fsticuffs" noch "fuzzywuzzy" aktiv mit einer "min_confidence" von "0.01", bei "dialogue" und dem ganzen Rest ist "defhem" nicht als siteId drin, das steht wirklich nur bei "intent" mit drin.
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

Sollte alles eigentlich keinen Unterschied machen

Beta-User

#1226
Dann habe ich im Moment keine Idee.

Anbei eine erste Version mit timeout. "Müßte" eigentlich durchlaufen bzw. bricht ab, wenn nichts kommt (letzteres ist getestet).
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

Beta-User

...doch. Den MQTT-Verkehr ansehen. intentNotRecognized sollte was melden. Ggf.passen die subsciptions am M2Client nicht?
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

Beta-User

Zitat von: Beta-User am 25 März 2022, 17:37:01
...doch. Den MQTT-Verkehr ansehen. intentNotRecognized sollte was melden. Ggf.passen die subsciptions am M2Client nicht?
Das steht beim meinem MQTT2_CLIENT auf "setByTheProgram".

Habe im svn eine aktualisierte Fassung eingecheckt, die zumindest nach ersten Tests auf dem Hauptsystem ok zu sein scheint.
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

Beta-User

...und noch ein update im svn, mit dem dann auch das "priority"-mapping für desired-temp funktionieren sollte...

@Gisbert: War meine Anleitung soweit nachvollziehbar?
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