SNIPS: Sprachsteuerung (mittlerweile auch per Textcommands) über snips.ai

Begonnen von Thyraz, 21 Juli 2018, 20:28:48

Vorheriges Thema - Nächstes Thema

jowe

Ich habe das gleiche Problem wie rischbiter123. Allerdings zusätzlich noch, dass sich nicht der korrekte intent Type erkannt wird. Das ist die Rückmeldung, wenn ich versuche das Licht aus zu machen. Da wird auch klar, warum der Raum dazu gesagt werden muss:
{"Device":"licht","input":"Licht aus","intent":"MediaControls","probability":null,"requestType":"text","sessionId":"fhem.textCommand","siteId":null}

Edit: klar, bei Textcommand kommt natürlich nicht die siteid an. Deshalb "null". Beim Sprachkommando wird die siteid korrekt erkannt. Leider aber halt nicht der Intent

{"Device":"licht","input":"licht aus","intent":"MediaControls","probability":null,"requestType":"voice","sessionId":"c953ab01-3d15-4e50-a6ea-8a298aeffb64","siteId":"default"}

rischbiter123

Moin,

ist bei mir ohne Raumangabe auch so. Hatte ich übersehen.

{"Device":"licht","input":"mach das licht an","intent":"MediaControls","probability":null,"requestType":"voice","sessionId":"126f894d-ce87-4abc-a6f5-a53ec8f56759","siteId":"Wohnzimmer"}

Und hier noch mal mit Raumangabe:
{"Device":"licht","Room":"wohnzimmer","Value":"an","input":"schalte das licht im wohnzimmer an","intent":"SetOnOff","probability":null,"requestType":"voice","sessionId":"6b3cf32f-6b91-4b3b-9724-7f880a8f1472","siteId":"Wohnzimmer"}

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

jowe

Bei mir hilft komischerweise auch keine Raumangabe:
{"Device":"licht","Room":"wohnzimmer","input":"Licht im Wohnzimmer an","intent":"MediaControls","probability":null,"requestType":"text","sessionId":"fhem.textCommand","siteId":null}

Gruß Jonas

rischbiter123

4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

jowe

Alles schon probiert. Leider das gleiche Ergebnis:{"Device":"licht","input":"Schalte das Licht an","intent":"MediaControls","probability":null,"requestType":"text","sessionId":"fhem.textCommand","siteId":null}

rischbiter123

Moin,

hast Du auch den Assistenten neu trainiert (Snips-Seite) und dann neu runtergeladen? Hatte ich auch erst vergessen. Danach dann auch noch mal UpdateModel machen. Die scheinen doch mehr geändert zu haben, als es den Anschein hat.

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

jowe

Ja das hatte ich direkt vorgestern schon gemacht. Im snips Forum hatte ich aber auch von einem Problem gelesen mit der korrekten Zuordnung der Intents, allerdings direkt in der Online-Konsole. Ich probiere es heute einfach nochmal, vielleicht gab es da am Anfang ja Probleme.. ich melde mich wenn ich mehr weiss
Groß Jonas

jowe

Also, mein Problem liegt nicht in FHEM selber sondern direkt in der FHEM App. Anscheinend hat (zumindest bei mir) das Update etwas an der NLU geändert. Ich habe in der web console folgendes getestet:

Assitent mit der von Thyraz gepublishten FHEM-App:
{
  "input": "licht anschalten",
  "intent": {
    "intentName": "Thyraz:MediaControls",
    "probability": 0.4757585
  },
  "slots": []
}


zum Test: neuer Assistent mit geforkter FHEM-App, MediaControls intents aus der App entfernt:
{
  "input": "licht anschalten",
  "intent": {
    "intentName": "Thyraz:SetOnOff",
    "probability": 0.6373029
  },
  "slots": [
    {
      "rawValue": "anschalten",
      "value": {
        "kind": "Custom",
        "value": "an"
      },
      "range": {
        "start": 6,
        "end": 16
      },
      "entity": "de.fhem.OnOffValue",
      "slotName": "Value"
    }
  ]
}


Das Kommando "Licht an" das bisher einwandfrei funktionierte funktioniert aber bei beiden Varianten nicht mehr. "Licht aus" ebenso.
Vielleicht kann ja einer der anderen user das auch ausprobieren, prinzipiell müsste das Problem in der web konsole ja bei allen genau so auftreten würde ich vermuten.
Gruß Jonas

Thyraz

Er kommt mit "an" / "aus" nicht mehr klar, als ob er die Wörter ignorieren würde.

Sagt man "<Name> an" oder "Schalte <Name> an" kommt bei mir in der Snips Console auch immer der Media Intent.
Sage ich dagegen "<Name> einschalten" oder "<Name> ausschalten" klappt das einwandfrei.

Keine Ahnung woher das kommt.
"an" / "aus" sind nach wie vor in den Slots drin.
Aber auch wenn ich neue Besipielsätze mit den Wörtern hinzufüge erkennt er die nicht.

Riecht stark nach Bug seitens Snips....
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

jowe

Ein anderer user scheint mit einer anderen App ein ähnliches Problem zu haben. Ich habe das Problem mal in dem Thread beschrieben:
https://forum.snips.ai/t/intents-are-not-recognized-correctly-anymore/1856?u=jowe

tomster

So, hab auch einmal upgedated. Tatsächlich ist die Erkennung nun deutlich schlechter als zuvor; zumindest gefühlt. Auch scheinen die Responses "mutwillig" um den Raum erweitert zu werden.
Mein snipsMapping für das Thermostat im Wohnzimmer:

GetNumeric:currentVal=measured-temp,type=Temperatur
Status:response=Die Temperatur beträgt [WZ.Thermostat_Climate:measured-temp] Grad.

Frage:
"Wie warm ist es im Wohnzimmer?"
Antwort:
"Die Temperatur von Wohnzimmer beträgt 22,4°."

Mein snipsMapping des PH-Werts:

GetNumeric:currentVal=pHSnips,type=P H Wert
Status:response=P H [PH_Sonde:pHSnips].

Frage:
"Wie ist der P H Wert im Teich?"
Antwort:
"P H von Teich beträgt 7,4."

Eigentlich ist doch das Nennen des Rooms total überflüssig und es sollte IMHO auf Grund der extrig angegebenen Responses die Antwort doch auch deutlich kürzer ausfallen, oder?

Zudem ein bringt eine Frage:
"Wie ist der PH-Wert?"
als Antwort
"PH-Wert von beträgt 7,4." hervor...

jowe

@tomster:
Die Antwort auf deine Frage nach der Temperatur ist meiner Meinung nach wie bisher. Nur wenn du z.B. nach "Status Thermostat Wohnzimmer" fragst, kommt deine für Status definierte Antwort. Das gleiche gilt für die Frage nach dem PH Wert im Teich. Wenn du nach der Temperatur oder dem PH Wert fragst, wird GetNumeric und nicht Status abgefragt.

Zu dem Problem mit fehlerhaft zugeordneten Intents gibt es leider bisher keine Lösung seitens Snips.ai. So lange behelfe ich mir damit, dass ich in der geforkten FHEM-App die MediaControls, GetOnOff und GetNumeric Intents gelöscht habe. So kann ich jetzt immerhin wieder mit "Licht an" und "Licht aus" meine Beleuchtung schalten. Ich hoffe, dass es seitens Snips bald einen bugfix gibt, so dass die anderen Funktionen wieder genutzt werden können

Allgemein ist es ja hier im Forum ja leider recht ruhig geworden bzgl. Snips.
Ich bin mittlerweile recht überzeugt von der Sprachsteuerung, ich nutze Snips mit dem Respeaker Core Gehäuse und dem Respeaker Array V2. Damit sind die fehlerhaften Hotword Erkennungen jetzt praktisch komplett weg und Snips damit wirklich gut nutzbar.
Was mir aktuell noch wirklich fehlt ist eine Zeitgesteuerte Ausführung, also z.B. "mach in 5min das Licht aus" und verkettung mehrerer Devices gleichzeitig ("Schalte den Fernseher ein und das Radio aus")
@Thyraz: Wie ist denn deine Planung mit bzgl. Snips? Wirst du Snips wieder nutzen und das Modul noch weiterentwickeln oder ist das Thema für dich eher abgeschlossen?

enno

Moin,

Ich hatte Snips mit dem hier vorgeschlagenen Weg gestartet. Mir war dann aber die Konfiguration zu aufwändig. Ich versuche daher Snips mit dem Modul Babble zu verbinden. Ich baue dabei auf eine Lösung von ahlermi auf, die er hier vorgestellt hat. https://forum.fhem.de/index.php/topic,91216.msg856202.html#msg856202

Zitat von: jowe am 01 März 2019, 11:58:53
Was mir aktuell noch wirklich fehlt ist eine Zeitgesteuerte Ausführung, also z.B. "mach in 5min das Licht aus" und verkettung mehrerer Devices gleichzeitig ("Schalte den Fernseher ein und das Radio aus")

Diese Anforderung lässt sich mit Babble umsetzen.

Da ich kein Informatiker sondern Maschinenbauer mit ungesunden Halbwissen bin, sind die Schritte in Richtung Lösung recht klein. Aber vielleicht hat ja der ein oder andere eine Idee dazu, dann würde ich einen neuen Thread starten.



Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

jowe

Hi Enno,

das hatte ich mir auch schon überlegt. Optimal wäre natürlich, wenn es ein einheitliches Sprachverarbeitungsmodul in FHEM gäbe, das mit verschiedensten Sprachassistenten arbeitet. So könnte man Mycroft, Snips und (wer es denn will) Alexa, Google Home etc. mischen und hätte immer die gleiche Funktionsweise.
Was mich aktuell aber davon abhält ist die inject Funktion von Snips. Das funktioniert ja ausschließlich, wenn man Snips über das Modul mit den Intents "füttert". Und ich hoffe noch darauf, dass man zukünftig Informationen aus FHEM zurück an Snips geben kann: Playlisten mit Interpreten und Songtiteln aus Spotify, Namen der Kontakte aus der Fritzbox, Termine aus dem Kalender etc. In FHEM laufen halt eigentlich so ziemlich alle wichtigen Informationen zusammen und das wäre eine ziemlich gute Basis für einen guten Sprachassistenten.
Leider stehe ich aber vor dem gleichen Problem wie du: Bin auch Maschinenbauer mit (wenn überhaupt) rudimentären Programmierkenntnissen. Und auch noch verdammt wenig Zeit aktuell.
Habe es bisher noch nichtmal hinbekommen, Thyraz' Modul nachzuvollziehen und eine einfache Timer-Funktion einzubauen. Die Intents hat Thyraz ja sogar schon in der App drin, "nur" die Verarbeitung im FHEM Modul ist halt nicht umgesetzt...

Deshalb meine Frage an Thyraz. Wenn ich weiß dass das Modul nicht weiterentwickelt wird, mache ich mir auch Gedanken über eine Alternativlösung. Sei es mittels Hass.io, babble oder einem der anderen möglichen FHEM Module. Wenn aber Thyraz selber Snips nutzt und das Modul evtl. zukünftig um weitere Funktionen erweitern möchte würde ich weiter bei dieser Variante bleiben.
Ich bin etwas überrascht, dass es nach der anfänglichen Euphorie hier mittlerweile so ruhig geworden ist. Ich bin nämlich mittlerweile echt überzeugt von der Lösung mit Snips (naja jedenfalls bis zu dem "Breaking update" diese Woche :-)

enno

Zitat von: jowe am 01 März 2019, 13:55:38
Mycroft, Snips und (wer es denn will) Alexa, Google Home etc. mischen und hätte immer die gleiche Funktionsweise.

Ich habe mir für das Wochenende vorgenommen in Mycroft reinzuschauen. Ich nutze Babble schon recht intensiv mit "SIGNAL" (https://forum.fhem.de/index.php/topic,84996.0.html). Wenn ich jetzt noch eine Möglichkeit finde gesprochenen Text in FHEM zu bekommen, dann brauche ich in Babble nicht mehr viel anpassen. Woher der Text kommt ist dem Modul eigentlich ja egal....

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian