+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 24
  1. #1
    Registriert seit
    Jun 2013
    Beiträge
    19

    Standard Custom Sprachsteuerung "Board Computer"

    Hallo zusammen,

    ich habe in den letzten anderthalb Jahren ein eigenes Sprachsteuerungssystem für Smarthomes entwickelt. Da das ganze Projekt nun einen Reifegrad erreicht hat, dass es über eine simple Spielerei hinausgeht und da ich für meine Hausautomation auch IP-Symcon verwende und daher hierfür auch ein Plug-In entwickelt habe, möchte ich – entsprechendes Interesse vorausgesetzt – das ganze gerne mit der Community teilen.

    Derzeit kann ich noch nicht versprechen in welchem Umfang ich das ganze teilen werde, da ich aktuell auch mit dem Gedanken spiele das ganze Projekt zu kommerzialisieren (interessierte Integratoren sind herzlich willkommen). Aktuell suche ich (fähige) Betatester und würde gerne mehr darüber erfahren, was die IPS-Community von meinem Ansatz hält. Später werde ich das Projekt vermutlich für die private Nutzung veröffentlichen.

    Beweggründe für ein eigenes System und Angrenzung zu Alexa & Co
    Wenn ich an Sprachsteuerung für Smarthomes denke, dann denke ich an eine Lösung wie den Board-Computer bei Star Trek TNG. Ein in sämtlichen Räumen verfügbares System, dass von seiner Struktur her auf die Smarthome-Anforderungen ausgelegt ist und so eine flüssige und kontextsensitive Interaktion ermöglicht. Wenn ich z.B. im Wohnzimmer bin und das Licht einschalten möchte, dann muss als Kommando „Computer, Licht!“ reichen. Denn das System sollte wissen wo ich mich befinden und dass das Licht aktuell aus ist und es somit eingeschaltet werden soll. Eine solche „natürliche“ bzw. kontextsensitive Integration ist schwierig mit den etablierten Systemen zu machen, da diese mit Ihrem riesigen Überbau an Skills etc. häufig ein relativ umständliches „Navigieren“ durch die Skills bedürfen. Hinzu kommen massive Sicherheitsbedenken, denn wer möchte schon wirklich in jedem Raum ein mit dem Internet verbundenes Mikrofon haben, das von einem internationalen Datenkraken-Konzern betrieben wird?!

    Aufbau des Systems
    Das System besteht aus einer Serveranwendung und einem Client in jedem Raum. Derzeit bestehen die Raumeinheiten aus einem Mikrofon-Array, einem Raspberry Pi, zwei Lautsprechern, einen Netzteil und optional einer 360°-Kamera. Alles verpackt ein einem 3D-gedrucktem Gehäuse das bei mir unter der Decke in einer 3-Phasen-Stromschiene, mittig im Raum sitzt. Sämtliche Softwarekomponenten sind als Plug-In realisiert um eine auf unterschiedliche Bedürfnisse und Hardwareanforderungen optimierte Lösung zusammenzustellen. So ist z.B. eine komplett offline betriebene Lösung möglich oder eben auch eine die z.B. für „Sprache zu Text“ eine online-API verwendet, da diese häufig leistungsfähiger sind.

    Funktionsumfang
    Beliebiges Keyword
    Je nach verwendetem Keyword-Detector-Plugin kann das Keyword frei vergeben werden. Ich verwende derzeit z.B. „Hey Computer“.

    Sprechererkennung
    Das System erkennt bei jedem Kommando welcher User das Kommando gesprochen hat. Dies ermöglicht es ein und dasselbe Kommando bei unterschiedlichen Benutzern unterschiedlich zu interpretieren (z.B. das abspielen von persönlichen Playlisten etc.) oder bestimmte Kommandos auf bestimmte User zu beschränken.

    Kontextsensitive Dialoge
    Wenn bei einem Kommando der jeweilige Raum nicht erwähnt wird, dann wird automatisch der Raum angenommen in dem sich die Raumeinheit befindet. So schaltet z.B. „Computer, Licht!“ immer das Licht im jeweiligen Raum ein bzw. aus. Man kann aber auch jederzeit sämtliche Teile eines Kommandos explizit erwähnen. So schaltet z.B. „Computer, Licht in der Küche aus!“ immer das Licht in der Küche aus, egal in welchem Raum das Kommando gesprochen wurde.

    Multiroom-Kompensation
    In der Konfiguration der Räume kann angegeben werden, welche Räume sich nah beieinander befinden. Denn in machen Konstellation lässt es sich nicht verhindern, dass mehrere Raumeinheiten auf ein Kommando reagieren. In diesem Fall verwirft das System alle aus nah beieinander liegenden Räumen eingehende Kommandos und führt nur das im Durchschnitt lauteste aus.

    Command Priming
    Kommandos die aufgrund von Nebengeräuschen etc. mal nicht korrekt erkannt werden, können basieren auch einem phonetischen Abgleich abgeändert werden um die Erkennungsrate zu verbessern. So wird z.B. aus „Rollanden aus“ „Rolladen auf“ etc.

    Präsenzerkennung mittels Gesichtserkennung
    Wenn in einer Raumeinheit eine Kamera verbaut ist (360°-Fishaugenkameras werden unterstützt), dann kann das System mittels AI-basierter Gesichtserkennung ermitteln welcher User sich in welchem Raum aufhält. Dies ermöglich z.B. in der Küche einen Timer zu erzeugen und die Erinnerung kommt dann z.B. aus der Raumeinheit im Büro weil man sich hier aktuell aufhält. Später wird es auch möglich sein das System als Gegensprechanlage zu nutzen. Zum herstellen einer Verbindung reicht es dann aus, den User zu nennen mit dem man sprechen möchte, unabhängig davon in welchem Raum sich dieser aufhält. Ein weiteres Anwendungsbeispiel wäre die automatische Anpassung an die Präferenzen eines Users, wenn dieser einen Raum Betritt.

    Scannen von Barcodes
    Wenn in einer Raumeinheit eine Kamera verbaut ist, können über diese Bar- / QR-Codes gescannt werden um Dialoge zu initiieren (z.B. um ein Produkt auf eine Einkaufsliste zu setzen oder im Internet den günstigsten Preis für ein Produkt zu suchen etc.)

    AI-gestützte Geräuschunterdrückung
    Sowohl in den Raumeinheiten für eine bessere Erkennung des Keywords bei Umgebungsgeräuschen wie z.B. Musik, laufender Fernseher etc. als auch im Server für die Verbesserung der Spracherkennung, kann ein Noisecanceling-Plugin aktiviert werden. Derzeit verwende ich hier z.B. RnNoise, dass mittels eines neuralen Netzes nahezu alle Umgebungsgeräusche bis auf die menschliche Sprache filtert.

    Ausgabe von Sprachnachrichten
    Über eine simple Rest-API können Sprachnachrichten an Räume und / oder User gesendet werden. So ist es z.B. möglich aus einem IPS-Script heraus eine Sprachnachricht auszugeben, wenn ein Bewegungsmelder ausgelöst wird etc. (perfekt wenn man wissen möchte ob die Kids wirklich schlafen :-) )

    Dialog-Plugins
    Dialog-Plugins ermöglichen es dem System mit anderen Systemen zu interagieren. Derzeit habe ich mich natürlich auf die Systeme konzentriert, die ich selber nutze. Das Plug-In-Modell erlaubt es aber den Funktionsumfang sehr einfach zu erweitern. Hier eine „grobe“ Beschreibung des aktuellen Funktionsumfangs.

    Ip-Symcon
    - Ermöglicht das steuern von diversen Geräten (Homematic, Hue, Denon, Shuttern etc.). Sicherlich nicht alles was ihr so braucht, aber das lässt sich easy erweitern.
    - Ausführen von Skripten
    - Rückmeldung des Kommunikationsstatus in den einzelnen Räumen (ermöglicht z.B. das herunterregeln des Verstärkers, während ein Kommando abgesetzt wird etc.)
    - Rückmeldung des Aufenthaltsortes von Personen (ermöglicht z.B. die Anpassung eines Raumes an den am höchsten Priorisierten Nutzer etc.)
    - Abrufen von Geräte-Stati („Computer, Status Fenster im Schlafzimmer“ etc.)

    Waboxapp
    - Ermöglicht das Versenden von Whatsapp-Nachrichten

    Microsoft Exchange
    - Ermöglicht den Zugriff auf Exchange-Kalender („Computer, was habe ich übermorgen vor?“ usw.)

    Microsoft Xbox Smartglas
    - Ein- und ausschalten von X-Boxen
    - „Nächster Titel“, „Pause“, „Abspielen“ etc. z.B. bei Netflix oder Youtube usw.

    Microsoft Graph
    - Hinzufügen von Einträgen auf Microsoft To-Do-Listen (ehemals Wunderlist)
    - Hinzufügen von Notizen zu OneNote

    Date & Time
    - Abfragen der aktuellen Uhrzeit etc.

    Sonos
    - Starten und stoppen von Sonos-Boxen
    - Laden von Sprecherabhängigen Playlisten

    Funktions-Plugins
    Neben die Dialog-Plugins, die es dem System ermöglichen mit externen Systemen zu interagieren, gibt es auch noch eine Vielzahl an „Funktions-Plugins“ die die einzelnen Teilschritte ermöglichen (z.B. Ansteuern von Mikro und Lautsprecher, Noisecanceling, Sprache zu Text, Text zu Sprache, Gesichtserkennung, Sprechererkennung etc.). Diese Plugins ermöglichen es dann auch Systeme nach den eigenen Anforderungen (Funktion, Hardware, Sicherheit, Lizenzkosten etc.) zusammenzustellen. Die Beschreibung dieser Plugins ist mir aktuell zu aufwendig, bei entsprechendem Interesse kann ich das aber gerne nachreichen.

    Hier ein Video, dass ich kurzfristig auftreiben konnte… ist schon etwas älter. Mittlerweile verwende ich „Hey Computer“ als Keyword und die Hardware steckt in einem eigens konstruierten, 3D-gedrucktem Gehäuse. Aber es gibt schonmal einen kleinen Vorgeschmack. Bei Gelegenheit mache ich mal eine etwas ausführlicheres Video.



    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 1.png 
Hits:	214 
Größe:	118.8 KB 
ID:	53364Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 2.png 
Hits:	152 
Größe:	98.8 KB 
ID:	53365Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 3.png 
Hits:	147 
Größe:	97.5 KB 
ID:	53366Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 4.png 
Hits:	141 
Größe:	95.2 KB 
ID:	53367Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 5.png 
Hits:	132 
Größe:	76.7 KB 
ID:	53368Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 6.png 
Hits:	127 
Größe:	78.1 KB 
ID:	53369
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Server 7.png 
Hits:	138 
Größe:	116.7 KB 
ID:	53370

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 1.png 
Hits:	126 
Größe:	118.3 KB 
ID:	53371Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 2.png 
Hits:	116 
Größe:	83.5 KB 
ID:	53372Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 3.png 
Hits:	114 
Größe:	70.5 KB 
ID:	53373

  2. #2
    Registriert seit
    Jun 2013
    Beiträge
    19

    Standard Weitere Screenshots

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 4.png 
Hits:	116 
Größe:	92.0 KB 
ID:	53374Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 5.png 
Hits:	97 
Größe:	63.5 KB 
ID:	53375Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 6.png 
Hits:	99 
Größe:	89.9 KB 
ID:	53376Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Client 7.png 
Hits:	108 
Größe:	62.3 KB 
ID:	53377

  3. #3
    Registriert seit
    Jun 2013
    Beiträge
    19

    Standard Reserviert I

    Reservierung

  4. #4
    Registriert seit
    Jun 2013
    Beiträge
    19

    Standard Reserviert II

    Reserviert

  5. #5
    Registriert seit
    Jun 2005
    Beiträge
    3,742

    Hört sich an wie die Verkündigung eines neuen Ei Phone, nur ohne Cloud, wäre der Hammer, ich bin sehr gespannt.
    Gruß Helmut

  6. #6
    Registriert seit
    Jun 2013
    Beiträge
    19

    Zitat Zitat von Helmut Beitrag anzeigen
    Hört sich an wie die Verkündigung eines neuen Ei Phone, nur ohne Cloud, wäre der Hammer, ich bin sehr gespannt.
    Gruß Helmut
    Hallo Helmut,

    deine "Einschätzung" freut mich sehr zu hören.

    Ein Betrieb komplett ohne Cloud-Services ist ohne Probleme möglich. Dann verlässt nichts mehr das interne Netz, weder Audio-Daten noch Textkommandos. Allerdings muss man dazu sagen, das gerade bei dem Thema "Sprache zu Text" die Cloud-Dienste von Microsoft, Amazon & Co. derzeit deutlich die Nase vorn haben. Die Methoden das offline zu machen (z.B. PocketSphinx etc.) sind in der Regel nicht AI-basiert und die Erkennungsraten sind deutlich schlechter. Mit mit der letzten Erweiterung (Noise cancelling und Normalisierung der Audiodaten habe ich es noch nicht getestet, aber das könnte die Erkennungsraten im Offline-Betrieb deutlich verbessern).

    Auf der anderen Seite entwickelt sich die ganze AI-Szene extrem schnell und da wird sicherlich auch demnächst etwas kostenloses, AI-basiertes zu haben sein... Dann muss man ggf. den Server mit einer fetten GPU für die Berechnung neuronaler Netze ausstatten - oder Abstriche bei der Flexibilität der Kommandos in Kauf nehmen. Aber das wäre ja machbar.

    Bei genügend Interesse werde ich ein Wiki aufsetzen und eine Doku schreiben wie man das System selber aufsetzen kann. Dann könnt ihr alle ein wenig damit spielen

    Sent from my SM-F907B using Tapatalk

  7. #7
    Registriert seit
    Jun 2013
    Beiträge
    19

    Zitat Zitat von Helmut Beitrag anzeigen
    Hört sich an wie die Verkündigung eines neuen Ei Phone, nur ohne Cloud, wäre der Hammer, ich bin sehr gespannt.
    Gruß Helmut
    Noch etwas vergessen... Auch bei der Nutzung von Online-Sprache-Zu-Text-Diensten wird natürlich das Kommando in "die Cloud" geschickt... Nicht der permanente Mikrophonfeed.

    Sent from my SM-F907B using Tapatalk

  8. #8
    Registriert seit
    Jun 2005
    Beiträge
    3,742

    Auf die Wiki nebst Hardwareerklärung bin ich gespannt, Schlüsselwort öffnet die Richtung zur Cloud wie es bei dem Amazonmädchen ja wohl auch sein soll.

    Nur gibt es Leute, die behaupten sie bekommen Werbung über die Dinge worüber sie sich "zu Hause" unterhalten haben.

    Das kommt nicht so gut. Kein Stress, Du wirst uns in der geplanten Wiki den Ablauf erläutern.
    Allein, dass ich Computer als Schlüsselwort sagen kann finde ich gut ;-)
    Gruß Helmut

  9. #9
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,512

    Ich finde das super interessant und würde mich gern als Tester melden.

    Die die Möglichkeiten von Alexa fand ich in meinen Tests sehr interessant, aber die Daten, die Amazon von mir bekommt, sind ohne Alexa schon grenzwertig zu viel.
    MfG Ralf

  10. #10
    Registriert seit
    Jun 2013
    Beiträge
    19

    Zitat Zitat von Helmut Beitrag anzeigen
    Auf die Wiki nebst Hardwareerklärung bin ich gespannt, Schlüsselwort öffnet die Richtung zur Cloud wie es bei dem Amazonmädchen ja wohl auch sein soll.

    Nur gibt es Leute, die behaupten sie bekommen Werbung über die Dinge worüber sie sich "zu Hause" unterhalten haben.

    Das kommt nicht so gut. Kein Stress, Du wirst uns in der geplanten Wiki den Ablauf erläutern.
    Allein, dass ich Computer als Schlüsselwort sagen kann finde ich gut ;-)
    Gruß Helmut
    Ja das Amazon da nicht ganz sauber spielt denke ich auch... Gibt es eine aufschlussreiche Doku auf YouTube... Glaube Steg+F.

    Hier Mal kurz der grobe Ablauf
    1. Keyword wird auf dem Device erkannt
    2. Activity-Indicator (z.B. LED-Ring) wechselt auf "Listen"
    3. Das Device zeichnet so lange auf bis der Voice-Activity-Detector meldet das gesprochen wird
    4. Activity-Indicator wechselt auf "Thinking" die Aufzeichnung wird an den Server geschickt
    5. Server übergibt die Aufzeichnung an den SpeechRecognizer und parallel an den SpeakerRecognizer
    6. Das Kommando in Textform wird an das LaguageUnderstanding-PlugIn übergeben (extrahiert bekannte Entitäten wie Räume, User, Geräte, Zustände etc.) aus dem Kommando und ermittelt um welches Kommando es sich handelt
    7. Das Kommando mit den extrahieren Entitäten wird an das zuständige Dialog-Plugin übergeben. Dieses Erzeugt entweder eine Text- oder Audioresponse
    8. Wenn es sich um eine Text- Response handelt wird diese an der SpeechSynthesizer übergeben
    9. Die Audioantwort wird an das Gerät übergeben
    10. Activity-Indicator wechselt auf "Speak"
    11. Wenn der Dialog nicht vom Dialog-Plugin beendet wurde geht das Spiel von vorne los

    Bei sämtlichen Komponenten handelt es sich um austauschbare Module (und für die meisten Schritte habe ich diverse Implementierungen gebaut, da ich am Anfang die Plattform mehrfach gewechselt habe usw.). Auf diese Weise kann man sich sein System am Ende auf die individuellen Bedürfnisse und Möglichkeiten zuschneiden.

    Sent from my SM-F907B using Tapatalk

Ähnliche Themen

  1. Sprachsteuerung ips "Siri"
    Von netsnake im Forum Mobile (iOS/Android)
    Antworten: 21
    Letzter Beitrag: 02.11.15, 09:19
  2. Antworten: 1
    Letzter Beitrag: 02.09.15, 11:42
  3. Velleman USB Board - IPS "übersieht" Impulse
    Von UweP im Forum Haustechnik
    Antworten: 20
    Letzter Beitrag: 18.12.07, 12:22

Stichworte