Snips Alternative lokale Sprachsteuerung mit Sepia und openHAB
Im heutigen Beitrag schreibe ich über eine Snips Alternative. Eine lokale Sprachsteuerung mit S.E.P.I.A und openHAB. Florian Quirin hat es sich zur Aufgabe gemacht eine Alternative zu Snips.ai zu entwickeln. Denn leider hat auch wie ihr vermutlich mitbekommen habt wieder ein Riese einen Zwerg gekauft. Sehr zum Unmut aller Maker wird der Service wie so oft eingestellt.
Auch wenn mein Kollege Johannes aus myfreehome.de heraus eine eigene Lösung baut, möchte ich diesen Beitrag nutzen, um all meinen Kursteilnehmern ein Alternative zu bieten. Der Grund ist einfach. Wie konzentrieren uns ausschließlich auf Smart Home Anwendungen und S.E.P.I.A kann mehr.
Hinweis: Ich bin inzwischen zur Lösung von Johannes gewechselt. Dies ist sehr schnell und schlank. Daher empfehle ich inzwischen den Beitrag Raspberry Pi Sprachsteuerung mit Node-RED
Also ist S.E.P.I.A eine Snips Alternative?
lokale Sprachsteuerung mit Sepia – Hardware
Ihr benötigt nur Hardware, die in der Lage ist Java auszuführen. Das heißt Sepia läuft Sowohl auf Windows, Mac als auch Linux. Ich entscheide mich für Linux, da wir ich so die Möglichkeit habe einen Raspberry Pi mit Micro Array zu nutzen.
Als Hardware empfehle ich ein Raspberry Pi3 B+. Dieser sollte vorerst reichen.
UCreate Raspberry Pi 3 Model B+ Desktop Starter Kit (16 GB, schwarz)
- Das Raspberry Pi 3 Modell B+ ist das neueste Produkt der Raspberry Pi 3 Serie, mit einem 64-Bit-Quad-Core-Prozessor mit 1,4 GHz, Dual-Band 2,4 GHz und 5 GHz Wireless LAN, Bluetooth 4.2/BLE, schnelleres Ethernet und PoE-Fähigkeit über einen separaten PoE-HAT. Das Dualband-WLAN-Lan verfügt über eine modulare Compliance-Zertifizierung, sodass das Board in Endprodukte mit deutlich reduzierten WLAN-Konformitätstests entwickelt werden kann, was sowohl Kosten als auch Zeit auf dem Markt verbessert
- Das Raspberry Pi 3 Modell B+ ist das neueste Produkt der Raspberry Pi 3 Serie, mit einem 64-Bit-Quad-Core-Prozessor mit 1,4 GHz, Dual-Band 2,4 GHz und 5 GHz Wireless LAN, Bluetooth 4.2/BLE, schnelleres Ethernet und PoE-Fähigkeit über einen separaten PoE-HAT. Das Dualband-WLAN-Lan verfügt über eine modulare Compliance-Zertifizierung, sodass das Board in Endprodukte mit deutlich reduzierten WLAN-Konformitätstests entwickelt werden kann, was sowohl Kosten als auch Zeit auf dem Markt verbessert
- 16 GB MicroSD-Karte mit vorinstallierter Version (V2) von NOOBS, einschließlich Raspbian, dem offiziellen Betriebssystem der Raspberry Pi Foundation
- Offizielle schwarze Raspberry Pi 3 HAT kompatible Hülle – einfache Montage durch Schnappbefestigung
- Offizielles schwarzes Raspberry Pi 5,1 V 2,5 A Netzteil (UK, EU)
MakerHawk ReSpeaker 4-Mic Array,(Raspberry Pi Expansion Board), Smart Voice Quad-Microphone Expansion Board Base...
- Fragen brauchen Aufmerksamkeit: 1. Raspberry Pi Board ist nicht enthalten; 2. Auf dem ReSpeaker 4-Mic Array sind keine Audio-Ausgangsschnittstellen vorhanden. Es ist nur für die Sprachaufnahme und Sie können die Kopfhörerbuchse am Raspberry Pi für die Audioausgabe verwenden. 3. Verwenden Sie es mit Raspberry Pi zur Funktion als Sprachassistent: https: //pnpera.com/2017/10/01/google-assistant-on-raspberry-pi
- Fragen brauchen Aufmerksamkeit: 1. Raspberry Pi Board ist nicht enthalten; 2. Auf dem ReSpeaker 4-Mic Array sind keine Audio-Ausgangsschnittstellen vorhanden. Es ist nur für die Sprachaufnahme und Sie können die Kopfhörerbuchse am Raspberry Pi für die Audioausgabe verwenden. 3. Verwenden Sie es mit Raspberry Pi zur Funktion als Sprachassistent: https: //pnpera.com/2017/10/01/google-assistant-on-raspberry-pi
- Quad-Microphone Expansion Board: Das ReSpeaker 4-Mic Array ist ein Quad-Mikrofon-Erweiterungsboard für Raspberry Pi, das für KI- und Sprachanwendungen entwickelt wurde. Dies bedeutet, dass Sie ein leistungsfähigeres und flexibleres Sprachprodukt erstellen können, das Amazon Alexa Voice Service, Google Assistant usw. integriert.
- Voice-Aktivität möglich machen: Diese Karte wurde basierend auf AC108 entwickelt, einem hochintegrierten Quad-Channel-ADC mit I2S / TDM-Ausgang für High Definition-Sprachaufnahmen. Die 4-Mics-Version bietet einen super coolen LED-Ring, der 12 programmierbare APA102-LEDs enthält. Mit diesen 4 Mikrofonen und dem LED-Ring könnte Raspberry Pi Sprachaktivitätsdetektion durchführen, die Ankunftsrichtung schätzen und die Richtung per LED-Ring anzeigen, genau wie Amazon Echo oder Google Home.
- Anwendung: Unterstützung Raspberry Pi Zero, Zero W, Raspberry Pi 3B / 2B / B +. Applied für Voice-Interaktions-Anwendung und AI-Assistent.
- Parameter: einschließlich 4 analoge Mikrofone, 2 Grove und 12 APA102 programmierbare RGB-LEDs, die LED kann an SPI-Schnittstelle angeschlossen werden; Softwarealgorithmus umfasst Sprachaktivitätsdetektion, DOA und Schlüsselwortsuche; Die Sprachaufnahmeentfernung beträgt 3 Meter.
lokale Sprachsteuerung mit Sepia – Software Installation
Die Installation der Software für den Raspberry Pi geht relativ leicht von statten.
- Etcher zum flashen des Raspian Strech Image (die Lite Version reicht). Diese Dateien bitte herunterladen, falls ihr diese noch nicht habt.
- Putty für den SSH Zugriff auf Windows. Mac User nutzen das Terminal mit dem Befehl ssh.
Software Installation – Raspian
Nach dem ihr Etcher heruntergeladen habt und das Image entpackt habt, folgt den Schritte von Etcher:
- wählt das Image
- die SD Karte
- drückt auf Flash!

Für den Zugriff per SSH geht wie folgt vor:
- öffnet das Verzeichnis boot auf der SD Karte
- legt eine Datei ssh an. Ohne Dateiendung wie .txt. Sonst funktioniert es nicht.
Entnehmt nur die SD Karte und tut dies in den Pi.
Software Installation – Raspian erster Start
Nachdem die SD Karte im Pi ist, schließt diesen ans LAN an und im Anschluss verbindet ihr das Stromkabel.
Im Anschluss könnt ihr per Putty zugreifen. Der Standardhost ist raspberrypi, Standard User ist pi Standard Passwort ist raspberry.

Im Anschluss nutzt bitte den Befehl sudo raspi-config um das Passwort (1) und unter Network (2) bei Bedarf einen neuen Hostnamen zu vergeben. Stellt am besten unter Network Options noch euer WLAN ein. So könnt ihr den Pi notfalls auch ohne LAN Kable betreiben.

Im Anschluss bootet der Pi neu.
Nun könnt ihr euch noch mal alle neuen Pakete ziehen.
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove && sudo apt-get autoclean
Software Installation – Java 9 auf Rasperry Pi installieren
Wie bereits erwähnt, benötigt Sepia Java. Mit folgendem Befehl könnt ihr Java 9 installieren.
sudo apt-get install openjdk-9-jre-headless
Die Installation könnt ihr mit folgendem Befehl prüfen.
java -version
Als Ergebnis solltet ihr folgendes sehen:
openjdk version "9-Raspbian" OpenJDK Runtime Environment (build 9-Raspbian+0-9b181-4bpo9rpt1) OpenJDK Server VM (build 9-Raspbian+0-9b181-4bpo9rpt1, mixed mode)
Software Installation – Sepia installieren
Sepia könnt ihr nun per Skript installieren. Als erster ladet die nötigen Dateien herunter.
Gebt dafür die folgende Zeile in Putty ein.
wget -O install-sepia.sh https://tinyurl.com/sepia-home-installer
Nun führt mit folgendem Befehl das Installationskript aus.
sh install-sepia.sh
Ihr bekommt folgendes Menü. Hier geht nun die Schritte 1 – 4 durch. Am Ende verlasst ihr das Menü mit 0.

Nun wechseln wir in das Sepia Verzeichnis.
cd SEPIA
Im Verzeichnis ~\SEPIA\ führen wir das Installationsskript aus.
bash setup.sh
Im Menü wählt als erstes die Option 4 (2) um Elasticsearch zu installieren. Nun könnt ihr Schritt 1 (2) ausführen. In disem Schritt werden auch gleich der Admin und Assistent User angelegt. Schritt 2 (3) müsst ihr daher nur im Notfall ausführen. Falls nicht bereits geschehen, könnt ihr mit dem Menüpunkt 6 den Hostnamen ändern.

Sobald die Installation durch ist, steht am ende ein DONE. Fehler sollten nicht zu sehen sein.
Nun startet den Server mit folgendem Befehl:
bash run-sepia.sh
Am Ende seht ihr nun den Link den ihr aufrufen müsst. Bei mir ist dies.
sepia.local:20721/tools/index.html
lokale Sprachsteuerung mit Sepia – Konfiguration
Nachdem der Link aufgerufen wurde, kommt ihr direkt zur Login Seite. Gebt den User „admin@sepia.localhost“ (1) ein und das vorher vergeben Passwort (2). Nun loggt euch ein (3).

Als erstes muss der Smart Home Server hinterlegt werden. Öffnet das Menü (1).

Geht in Core Settings (1)
Wählt den Punkt „Get Persistence Settings“ (1)
Nun ergänzt ihr die openHAB Adresse (1) und vergebt den Namen „openhab“ (2). Im Anschluss die beiden Änderungen mit den Haken bestätigen (3/4) und den Server neu starten (5).Geht nun wieder in das Menü und ruft den Punkt Smart Home (1) auf.

Hier könnt ihr ladet ihr die gespeicherten Einstellungen (1) und könnt bereits Geräte ermitteln (2). Die Geräte werden dann unten gelistet (3). Ihr könnt hier Räume zuweisen und testen, ob das Gerät schaltet. Diese Erkennung der Geräte ist schon sehr gut. Wünschen würde ich mir zusätzlich zu den Itemnamen noch die Bezeichnung.
Hat alles soweit geklappt, dann weiter.
lokale Sprachsteuerung mit Sepia – User anlegen
Ihr benötigt nun einen User für die Sprachsteuerung. Legt diesen über den Eintrag User Management an.
Vergebt einen Namen (1), ein Passwort (2), fügt den User zur Whitelist (4) hinzu und drück create (5). Im Anschluss erhaltet ihr eine Meldung mit einer neun User ID. UID1003 ist der Admin. Notiert euch die neue UID für den nächsten Schritt.

Gebt die uid an (1) und unter Role gebt „user, smarthomeguest“ (2) an. Danach Set Role (3) drücken.

lokale Sprachsteuerung mit Sepia – Assistent testen
Um den Assistenten zu testen, ruft nun die folgende Seite auf.
http://sepia.local:20721/app/index.html
Hier loggt ihr euch mit dem soeben erstellten User und Passwort ein. Ihr könnt die Bedienung nun bereits per Chatbot testen.
Unten ein Beispiel

lokale Sprachsteuerung mit Sepia – Fazit
Bisher verlief die Installation recht reibungslos. Gerade die direkte Erkennung der Items macht Sepia zu einer Snips Alternative, die noch weniger Arbeit vermuten lässt.
Im nächsten Beitrag werde ich auf die weitere Integration zu openHAB eingehen. Ich bin selbst gespannt, ob die lokale Sprachsteuerung mit openHAB und Sepia einfach umzusetzen ist.
Hi Thomas,
vielen Dank für die gute Anleitung. Wann kommt der zweite Teil dazu?
Mir fehlt die integration und konfiguration des respeaker 4 array.
Kannst du hierzu schon was sagen?
LG, ben
Hallo, danke für den interessanten Artikel. Ich werde mich gleich mal ran setzen und versuchen es nach zu konfigurieren. Schön wäre die Möglichkeit mit einem USB-Mikrofon das Ganze als Test vorab durchzuführen. Auf die weitere Integration in openHAB 2 bin ich gspannt.
Hallo,
tolle Anleitung. Es hat auf Anhieb alles funktioniert.
Ich frage mich jetzt nur noch, wie ich das ganze über Sprache steuern kann. Ich hatte hier noch einen ReSpeaker 2-Mic HAT von Seeed rum liegen und denke das wird damit auch funktionieren?!
Hallo Konstantin,
dies wäre der nächste Beitrag. Wobei ich wohl noch eine weitere Alternative prüfen werde.
Beste Grüße
Thomas
Hallo
Prima Anleitung die ich demnächst ausprobiere.
Allerding mit USB Soundkarte und USB Mikrofon.
Ist Bzw. wird die dann auch so anpassungsfähig wie Snips mit einzelnen Modulen (Apps) zB. Alarm, Timer, Steuerung Hue Lampen, Musik abspielen oder Wetteransage?
Snips war da ja schon recht umfangreich.
Ich suche nach einer Alternative zu den Online Varianten und hab was gegen die Datenspeicherung dieser. Es wäre dann eine schöne Möglichkeit mein Projekt Smart Home neu zu beleben.
Beste Grüße
Rene
Hallo Rene,
Sepia werde ich aktuell nicht weiter verfolgen, da mein Kollege aus dem Verein eine andere Lösung gebaut hat. Sobald diese fertig ist, melde ich mich mit einem Beitrag.
Du kannst dir alternativ auch noch https://rhasspy.readthedocs.io/en/latest/ anschauen.
BG
Thomas
Hi Thomas,
das ist schade, darf ich fragen warum? Fehlt euch irgendein Feature?
Grüße,
Florian von SEPIA 🙂
Hallo Florian,
wir setzen auf eine schlankere Lösung, die nur unsere Smarthome Steuerung übernimmt. Wir brauchen für unsere Projekte eine leichtgewichtige Lösung, die wir jederzeit durchdringen um schnell Fehler zu korrigieren.
Ich wünsche Dir weiterhin viel Erflog mit SEPIA.
Beste Grüße
Thomas