NEWS
Iobroker offline Sprachsteuerung mit snips.ai
-
Hallo zusammmen,
ich bin neu hier im Forum. Mein Name ist Jochen ich bin 51 Jahre alt.
Meine Smarthome Installation ist ca. 6 Jahre alt, das meiste homematic und homematic wired sowie einige cuxd devices. Meine Visualisierung mache ich seit langem mit ccu.io und DashUI. Zusätzlich setze ich OpenHAB für meine TV und AV steuerung ein (weil es so schön einfach war mit vorhanden Anbindungen
)Seither konnte ich mich nicht zu einem Umstieg auf iobroker und vis bemühen ;-).
Da ich seit kurzem mit einer Sprachsteuerung liebäugle, möchte ich nun mehrer Fliegen mit eine Klappe schlagen. Nach einem kurzen Ausflug mit Alexa ist diese nach ein paar Tagen wieder ausgezogen, ich mag meine Geräte nicht von einem Amazon Server steuern lassen
.
Jetzt habe ich mir einen Raspi3 mit einem Matrix Voice Raumfeld Mikrofon aufgebaut und darauf erfolgreich mit Hilfe aus dem Matrix Voice Forum Snips.ai mit LED Ring und Quitungstönen zum laufen bekommen. Openhab ist über MQTT angebunden und über ein rules Script kann ich eine Lampe steuern. Soweit so gut. Jetzt stehe ich an dem Punkt für Openhabe viele Scripte für alle möglichen Devices zu bauen um den JSON zu parsen der per MQTT vom Snips Raspi kommt.
Jetzt kommt iobroker in´s Spiel. Hier möchte ich, wie oben schon erwähnt, mehrere Fliegen mit einer Klappe schlagen. Die vorhande Visu auf VIS umstellen, mein LG TV WebOS TV und meinen Pioneer AVR vsx-528 mit iobroker steuern. Uuuuund natürlich testen ob die verarbeitung der JSON Daten vielleicht auch besser und einfacher geht wie mit Openhab2. Eventuell gibts ja einen Adapter den man als Vorlage nehmen könnte der per MQTT JSON Daten bekommt und diese verarbeitet.
Ich bin nicht der Programmierer, werde vermutlich keinen Adapter bauen können, aber etwas scripten geht schon. Eventuell ist snips.ai ja auch als Adapter für die Allgemeinheit interessant, so dass sich fähige Leute finden die auch eine offline Sprachsteuerung haben wollen.
Momentan habe ich einen solchen JSON String den ich verarbeiten will:
Snips_Intent_Active changed from {"sessionId":"78d23700-b8e7-493d-bc9c-809285b1a55f","customData":null,"siteId":"default","input":"licht im wohnzimmer einschalten","intent":{"intentName":"mkloeckner:ActivateObject","probability":0.60720265},"slots":[{"rawValue":"licht","value":{"kind":"Custom","value":"Licht"},"range":{"start":0,"end":5},"entity":"mkloeckner/object","slotName":"device"},{"rawValue":"wohnzimmer","value":{"kind":"Custom","value":"Wohnzimmer"},"range":{"start":9,"end":19},"entity":"mkloeckner/objectLocation","slotName":"deviceLocation"}]} to {"sessionId":"45c5f47d-bddf-4b5f-917e-16c816a395be","customData":null,"siteId":"default","input":"einschalten","intent":{"intentName":"mkloeckner:ActivateObject","probability":0.58253264},"slots":[]}
Die Installation und Tests mit Openhab habe ich nach dieser Anleitung gemacht:
http://www.chris-wohlbrecht.de/index.ph … mic-array/
snips.ai funktioniert mit dem Raumfeld Mikronfon wirklich spitze, so dass ich den Ansatz auf jeden Fall weiter verfolgen möchte.
Vielleicht hat ja noch jemand Interesse daran
Viele Grüße, Jochen
-
Im prinzip kannst du mit dem mqtt client auch jsons versenden (mache ich auch) und diese dann ggf. Mit dem parser Adapter parsen.
Wie oder ob das mit einem Datenpunkt geht müsste ich mal ausprobieren.
Gruß Rainer
-
Ansonsten kleines JavaScript was das json parst und die Felder in States schreibt.
Zur Textverarbeitung dann text2command und fertig [emoji6] oder halt das hier schon vorerkannte weiterverarbeiten
-
Hallo,
danke für die Tipps. Werde mich mal versuchen einzuarbeiten.
Grüße, Jochen
-
oder via den node-red Adapter. so mache ich es bei MQTT oder sonstigen anbindungen (wie REST, etc) Anfragen die noch bearbeitung benötigen… Snips.ai bin ich auch sehr daran interessiert... das Raumfeldmikrofon, hast du selbst gebaut mit dem snips Baukit, oder was kannst du da empfehlen ?
-
Hallo,
mache es momentan auch mit node-red. So komm ich am schnellsten zum Ziel.
Das Mic ist fertig aufgebaut. Einfach auf einen RPI 3 stecken und loslegen <emoji seq="1f600">
</emoji>.
Oder das Kit mit dem Respeaker bei snips.ai nehmen.
Grüße
-
Das klingt echt interessant. Was mir persönlich fehlt ist ein „alles fertig und wohnzimmerkompatibel“ Paket … also mit gescheiten Gehäuse und so.
Für ReSpeaker v1 gabs das wohl mal aber alles ausverkauft. Und ReSpeaker v2 noch zu frisch
Ansonsten wäre das witzig zum basteln und spielen. ... aber was bringt’s wenn der WAF negativ ist
-
Hallo,
mach es einfach so: Nimm eine MyMüsli Dose oder ähnliches. Idealerweise mit den groben Abmessungen von einem Amazon Echo. Das Teil im unteren Drittel gut durchlöchern, für den Lautsprechersound. Dann einen runden Bluetooth Lautsprecher mit AUX an Raspi rein und das Ladekabel des Speakers an den USB des Raspi. So hast du nur ein Stromkabel am Raspi. Horizontale Trennscheibe oberhalb des Lautsrechers rein und dann den Raspi drauf. Den Matrix Voice habe ich mit einem Flachbandkabel (Festplattenkabel) abgesetzt und auf den Deckel montiert (Ich habe die WLAN Antene einer alten Fritzbox von unten an den Kunststoffdeckel und an den raspi gelötet. Wenn Du eine Dose ohne Alubeschichtung hast, brauchst du das nicht.).
Jetzt hast du oben die Mics mit LED Ring. Dort dann von oben eine transparente Schale drauf die im Durchmesser und der Höhe passt und auch ringsum löchern damit die Mics gut aufnehmen. Über das ganze ziehst du entweder eine Amazon Echo Deko Hülle oder, wenn die nicht passt, einfach einen Lautsprecherstoff. Als i Tüpfelchen kannst du noch einen schwarzen Tonkarton in den Dosenboden rein schneiden und die LEDs aussparen.
Fertig :-). Sieht fast aus wie ein Echo mit Hülle und der WAF passt. Meine Tochter hat festgestellt, dass der Snips auch auf "Hey Schnitte" reagiert und hat einen mords Spaß damit
Grüßle
-
-
Habe das Ganze mal installiert und bin begeistert, es erkennt ca. 90-95% der Befehle korrekt.
Hardware:
Odroid XU4
ReSpeaker Mic Array v2.0
Arctic Lautsprecher Speaker S111 am ReSpeaker angeschlossen.
Software:
Armbian für Odroid XU4
Snips
Mosquitto
FHEM
Für den ReSpeaker habe ich mir ein Gehäuse ausgedruckt.
Nach der Armbian-Installation habe ich alles auf Deutsch umgestellt und den Odroid auf eine feste IP eingestellt.
Danach kam Mosquitto und Snips, jetzt alles lauffähig machen. Die originale Anleitung von Snips funktionierte nicht auf Anhieb, ich musste mich mit dem Goggel auseinander setzen. Zuletzt kam FHEM und das Snips-Plugin, das ich nur nutze um die erkannten Befehle über HTTP an den ioBroker zu senden.
Beispiel :````
WZ_Lampe { GetHttpFile("192.168.111.100:8087", "/set/javascript.0.Snips.Wohnzimmerlampe?value=true") }Für jeden Befehl habe ich mir in den Javascript-Objekten eine Variable angelegt, die ich über Blockly verarbeite. Schön ist auch, das ich von ioBroker aus die Snips-TTS ansprechen kann. Beispiel :```` http://192.168.111.200:8033/fhem?cmd=set%20Snips%20say%20Dies%20ist%20ein%20Test&fwcsrf=meinPasswort&XHR=1
Weblinks:
https://snips.gitbook.io/documentation/
https://github.com/Thyraz/Snips-Fhem
https://forum.fhem.de/index.php?topic=87897.0
https://forum.fhem.de/index.php?topic=89548.0
-
Hallo,
mein Name ist Harald. Bei der Suche nach einer offline Sprachsteuerung bin ich auf diese Diskussion gestoßen.
Hier gibt es eine weitere Anleitung zur Steuerung per openHAB und mit einer PS 3 Kamera.
https://onesmarthome.de/lokale-sprachst … -snips-ai/
Das wollte ich zumindest mal teilen, da ich selbst keine Bezugsquelle für das Respeaker gefunden habe.
Wo gibt das es für private Personen das Matrix Modul?
Kennt einer die Unterschiede in der Qualität der Spracherkennung? Also PS3,Matrix und Respeaker
Beste Grüße und danke
Harald
-
-
Hi,
danke für die Rückmeldung.
Das heißt json parse den Wert über MQTT Adapter abgreifen.
Dann versuche ich noch mal dran. Die PS3 Kamera kostet nicht die Welt und ich habe noch folgendes gefunden. Das Ding scheint ganz gut zu sein…
https://medium.com/snips-ai/benchmarkin ... 0de8876fda
Beste Grüße
Harald
-
-
Hallo,
wie gesgat mache ich es momentan mit Node-RED und Anbindung an Openhab2.
Kann mich noch nicht recht dazu durchringen auf iobroker zu wechseln, könnte dann aber auch gleich mit VIS meine alte CCU.IO Visualiserung ablösen.
Wenn ich snips nach der Aussentemperatur frage, bekomme ich solch einen JSON mit den von mir definierten Slots:
{"siteId":"default","sessionId":"440b1c00-c059-4b65-9fb9-687b82737d13","customData":null,"input":"wie warm ist es draußen","intentName":"joeduck:Temperatur","probability":0.8955261,"slots":{"ort":{"rawValue":"draußen","value":{"kind":"Custom","value":"draußen"},"range":{"start":16,"end":23},"entity":"snips/default--ort","slotName":"ort"}}}
Diesen verarbeite ich dann in Node-RED mit diesem Flow:
Wobei ich dabei dann auch die Sprachausgabe via MQTT von Snips machen lasse.
Da ich noch nicht wirklich mit iobroker gearbeitet habe, stellt sich mir die Frage ob es dort eine Standardisierung von Räumen und Gewerken gibt, so dass man mit einem ensprechenden Skill in snips.ai generisch die Komponenten in iobroker ansprechen kann. Dann muss nicht jeder selber basteln, sondern man kann die Arbeit verteilen und kann auch die Arbeit anderer nutzen.
Sorry, eben erst gesehen. Es gibt ja jetzt einen Adapter: viewtopic.php?f=36&t=16874
Grüße, Jochen
-
Servus Jochen,
auf Snips AI gibt es "IoBroker-Snips" welcher bereits für folgende Räume trainiert wurde.
Reithalle, Terrasse, Veranda, Balkon, Wasserkeller, Grube, Dachgeschoss, Keller, Toilette, Treppenhaus, Vorplatz, Garage, Werkstatt, Reitplatz, Kleiderschrank, Bibliothek, Erdgeschoss, Esszimmer, Küche, Dachboden, Kino, Gästezimmer, Schlafzimmer Büro, Futterkammer, Schuppen, Supportbox, Stall, Garten, Sattelkammer, Reitstube
Herzliche Grüße
Equilora aka Harald