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

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

Vorheriges Thema - Nächstes Thema

jowe

@Thyraz: Fehler lag bei mir :-[.
Ich hatte beim Löschen der goforkten Intents der "alten" FHEM APP meine CustomIntents umbenannt, damit ich diese nicht aus Versehen mitlösche (Es hatten sich eine Menge Intents mit gleichem Namen in meinem Account angesammelt). Habe dann vergessen die Intents danach wieder zurück umzubenennen. Jetzt läufts wieder, Danke!

Thyraz

#136
Zitat von: RoBra81 am 21 August 2018, 13:54:35
Hallo,

wenn ich Zeit finde möchte ich das Modul u.U. auch mal ausprobieren. Daher eine Frage: funktioniert das Modul mit dem neuen MQTT2_SERVER (https://fhem.de/commandref.html#MQTT2_SERVER)?

Ronny

Ich habe es nicht getestet würde aber defintiv davon abraten.

Das Problem ist, dass bei Snips wirklich alle Kommunikation über MQTT läuft.
Auch die Audiodaten.
Und da der Hotword Detector IMMER lauschen muss, läuft da konstant eine Menge an Daten über den MQTT Bus.

Würde das lieber in der eigenen MQTT Instanz laufen lassen die Snips mit installiert, anstatt FHEM damit zu belasten.
Vor allem sollte der MQTT Server auf dem selben Rechner laufen wie Snips, sonst schiebt man die Audiodaten auch noch konstant durchs Netz.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

RoBra81

Ah, okay, verstehe, das passt - das SNIPS soll voraussichtlich auf einem separatem Raspi laufen, auf dem dann auch Mosquitto läuft und das FHEM verbindet sich mittels MQTT-Modul dann nur damit...

Roman

Hallo Thyraz,

Zitat von: Thyraz am 20 August 2018, 23:39:52

Was willst du denn genau fragen bei den Fensterkontakten?
Ist das <Gerätename> geöffnet als Frage sollte schon funktionieren.

Wie ich Abfragen nach Gerätegruppen einbinden will (passt das noch in GetNumeric mit eigenem Slot, oder muss es eher ein eigener Intent sein? Muss das mal genauer durchdenken.) bin ich mir noch nicht sicher, falls du eher etwas in der Art "Sind alle Fenster geschlossen" oder "Wieviele Fenster sind geöffnet" versuchst.

Zur Info: klappt nun, bin mir nur nicht sicher warum :(. braucht Snips nach dem Inject etwas Zeit, bis alles richtig erkannt wird ?
Vorgehen: Device konfiguriert (SnipsMapping, Name und Raum) , Update Model, Testen - ging nicht.
                Dann 1 Stunde später nochmal getestet - geht.

Gruß
Roman

Thyraz

Gute Frage evtl. dauert es kurz.

Aber nach ein paar Minuten hab ich es schon getestet und da ging es dann.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

bennebartsch

Finde das Modul sehr interessant! Ich nutze aktuell Google Home Minis bin damit aber nicht zufrieden, da unflexibel und online.
Kann jemand was zur Erkennungsrate sagen? Ist diese mit einem ReSpeaker Mic oder PS3 EYE vergleichbar mit Amazon/Google?

Thyraz

Hallo bennebartsch,

ich kann zum ReSpeaker nichts sagen, nutze nur das PS3 Eye bisher.
Mit dem habe ich aber keine Probleme mit der Erkennung.

Habe bei uns im Wohnbereich auch von weiter weg noch etwas bessere Ergebnisse als mit meinem Echo Dot.

Wozu ich bisher noch nicht so viel Erfahrung gesammelt habe, ist wie es bei viel Hintergrundgeräuschen aussieht.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Thyraz

#142
Hab einen neuen Intent hinzugefügt: Status

Ihr könnt den Antworttext von Snips frei festlegen und Werte aus FHEM nach dem Schema [Device:Reading] einfügen.
Damit sollte sich recht einfach eine Zusammenfassung zu einem Gerät basteln lassen, ohne einen Custom Intent erstellen zu müssen.
Kommas im Text müssen mit einem Backslash escaped werden, da sie im Mapping normal als Trennzeichen zwischen den Optionen agieren.

Beispiel zum triggern: Hey Snips, Status vom Rasenmäher

Beispiel eines Mappings:

Status:response=Status vom Rasenmäher ist [Rasenmaeher:state]. Der Batteriestand beträgt [Rasenmaeher:battery] Prozent.


Eine genauere Beschreibung ist auch noch in der Github Readme bei den Intents zu finden.

Installation erfolgt wie ab jetzt bei jedem Update:
- Assistent von console.snips.ai herunterladen und installieren (oder über sam install assistant) damit ihr die neuste FHEM App habt.
- Neues Snips Modul von Github einspielen
- Fhem neu starten
- set <snipsDevice> updateModel ausführen
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

tomster

Servus Thyraz,

wenn Du schon dabei bist:
Könntest Du auch einen Intent Zeige ... (an) einfügen?
Das wäre für mein SmartMirror-Projekt geradezu ideal.
So wie ich das App-System auf console.snips.ai verstanden habe, gingen eigene Intents nur, wenn ich deine App forke. Dann fehlen mir aber aber die von Dir zukünftig gemachten Änderungen. Das wär ja auch wieder plöd.

Thyraz

Hi tomster,

nein Custom Intents gehen weiterhin. Du fügst sie jetzt nur in eine eigene App ein anstatt die FHEM App wie früher zu forken.
Ich habe mir dafür eine App mit dem Namen CustomIntents angelegt und dort alle eigenen Intents abgelegt.

Die App dann einfach auch deinem Assistenten hinzufügen.

Danach dann wie gehabt über das Attribut snipsIntents mit einer eigenen Perl Funktion verknüpfen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

eurolift

Hallo Thyraz,
ich habe Snips auch aktualisiert,aber Snips reagiert nicht auf mein ASR Inject

Injecting data to ASR: {"operations":[["add",{"de.fhem.Device":["Thermometer"]}],["add",{"de.fhem.Room":["Wohnzimmer"]}]]}

Die Datei injections wird angelegt ,nach set <snipsDevice> updateModel. Snips selber reagiert auf Hotword ,es gibt aber zu Fhem keine Reaktion.Brauch dann auch wieder eine Weile bis der Raspi wieder bereit ist.Habe alle Vorschläge durchgeführt ,sogar alles platt gemacht und von vorne angefangen.
Trotzdem ein super Modul .Soll mal in meinem Womo seine Dienste tun.
Viele Grüsse Eurolift :)

GuidoS

Hallo zusammen,

ich habe die Artikel mit Interesse gelesen und finde den Ansatz echt super. - Habe selbst Alexa und Co im Einsatz. Ich würde auch gern das Projekt weiter verfolgen, aber hat sich jemand mit den Kosten mal auseinandergesetzt ? So wie ich das verstehe ist ab Oktober die Einführung von Tokens geplant... habs nur überflogen... oder wird es weiterhin eine kostenfreie Version gegeben und Snips verkauft die HW .. Mach ja nur Sinn, wenn es weiterhin OpenSource & kostenfrei wäre... oder für kleines Geld.
Der Entwickler der FHEM App erhält ja schon fleißig Air-Token 😊.

Hat sich jemand mit den Kosten näher auseinandergesetzt?

VG


Thyraz

#147
Zitat von: GuidoS am 23 August 2018, 15:56:43
Hat sich jemand mit den Kosten näher auseinandergesetzt?

Ich muss gestehen, ich verstehe diese Token Geschichte auch noch nicht so recht.
Bekomme übrigens leider auch keine Tokens durch euch, da man dazu Apps mit Actions braucht. :p
Wir binden FHEM ja aber direkt über den MQTT Bus an.

Ich habe gerade in der Snips Community nachgefragt um etwas Licht ins Dunkel zu bekommen.
Für mich sieht es so aus, als ob man hauptsächlich für das vernetzte Snips AIR die Tokens braucht.
Es geht auch sicher um Apps die verkauft/gekauft werden können.
Snips will zusätzlich ja auch bestimmte Services verkaufen (Sprachmodelle, Big Data für Beispielsätze, ...)

Aber mal sehen was auf meine Frage da zurück kommt.

Zitat von: eurolift am 23 August 2018, 15:30:16
Hallo Thyraz,
ich habe Snips auch aktualisiert,aber Snips reagiert nicht auf mein ASR Inject

Vor dem Inject reagiert Snips aber auf deine Fragen?
Also z.B. "Schalte das Standardgerät ein".

Das sollte als eingehender Payload in den Readings des Moduls auftauchen.
Und geht nach dem Inject gar nichts mehr? Auch nach einem Reboot?
Oder gehen die Fragen ohne Inject  danach immer noch problemlos?
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

kud

@Thyraz
Ist schon irre was in Du in kurzer Zeit umgesetzt hast. Großes Dankschön dafür und auch für die Geduld bei Problemen.
Bei meiner Installation läuft per Sprachsteuerung mit Snips schon viel mehr als mit meiner "geliebten" Alexa.
Hoffe, dass es bei Snips bei einem freien Projekt bleibt...

Ps. Auch viele Grüße von meinem Rasenmäher ;-)

Thyraz

#149
Na dann auf zum nächsten Update. ;)

1) Es wird jetzt pro Zimmer aus dem ihr Snips triggert ein neues Reading erzeugt:
listening_wohnzimmer
listening_buero

usw.
Die Readings gehen auf 1 wenn in dem Raum das Hotword erkannt wurde und auf 0 nachdem Snips euch geantwortet hat.

Man kann darauf z.B. mit einem Notifiy reagieren um die Musik im Zimmer zu muten damit einen Snips besser versteht, bzw. um die darauf folgende Sprachausgabe besser hören zu können.

Mir ist dabei aufgefallen, dass sich snips-tts-polly noch nicht ganz wie das original TTS-Modul verhält.
Wer Polly zur Sprachausgabe nutzt, sollte die neue Version von snips-tts-polly.py von hier einspielen:
https://github.com/Thyraz/snips-tts-polly

2) Bei SetNumeric kann man eine Lautstärke nun auch verändern ohne ein Device angeben zu müssen.
Dies ist für ein einfaches "lauter" oder "Lautstärke auf 30" gedacht.
Als Raum wird dann der aktuelle genommen (in dem Snips steht) und als Gerät das erste in diesem snipsRoom mit einem Lautstärke Mapping gefunden wird.

Solange man nur ein Gerät pro Raum mit einem Lautstärke Mapping hat (z.B. die Anlage über die sowohl Radio, CD, Fernsehen, Musikstreaming, ... läuft), erspart man sich das etwas umständlichere "Mach die Anlage lauter".

Das ist dann ähnlich bequem wie bei Alexa & Co.

Das war dann sozusagen die Vorarbeit für die nächsten Mediengeschichten.
MediaControls und MediaChannels Intents sollen als nächstes folgen.

Für das erste bisher vorgesehen:
- Play/weiter
- Pause
- Stop
- Vor|Skip Forward
- Zurück|Skip Backward
Gibt es da noch Existenzielles was beim ersten Release nicht fehlen darf?

Start von Sendern etc. läuft dann über den zweiten Intent (MediaChannels)


Installation wie letztes mal:
- Assistent von console.snips.ai herunterladen und installieren (oder über sam install assistant) damit ihr die neuste FHEM App habt.
- Neues Snips Modul von Github einspielen
- Fhem neu starten
- set <snipsDevice> updateModel ausführen
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...