Blog Post

Die Sprachsteuerung des “Kleinen Mannes” (Respeaker Core V2 + Kalliope + Edomi)


Speak to me
Let me know
Where you are headin’ or where you might go
Speak to me
Say it loud
Yell to the ones who are out there cause I’m somewhere in the crowd

(Speak To Me, Anna Graceman)

Liebe Freunde der Sonne! Ihr habt ein Smart Home mit erlesensten Technik-Spielereien vom Feinsten, aber eure Freunde, Nachbarn, Schwiegermütter und sonstigen Gäste nehmen diese wunderbare Errungenschaft der Technik eures Heims nicht wahr? Die Besucher kommen nicht mal auf die Idee die tollen Vorzüge und Features eines intelligenten Heims anzuerkennen oder gar von ihnen zu profitieren? Euch fehlt die euch zustehende Huldigung eurer technologischen Führerschaft?!
Das wirksamste Mittel gegen diese schnöde Ignoranz: Protzige Angeberei! Und wie kann man in so einem Fall vortrefflich angeben? Mit futuristischer Technologie, die man sonst nur aus Science-Fiction-Filmen kennt, natürlich!
Mit Maschinen sprechen – Befehle und Anweisungen geben und per “Geisterhand” ausführen lassen. Das ist Sprachsteuerung.

“*COMPUTER!* … Hol’ mir ein Bier!”

Leider sind aktuelle, kommerzielle Sprachsteuerungs-Lösungen (ProKNX, enertex SynOhr® MultiSense KNX – Premium) mit KNX-Anbindung in der Regel kaum erschwinglich. Der “kleine (Angeber-) Mann” muss also zwangsläufig zur Selbstbau-Alternative greifen! Und so machen wir es auch. Ein Versprechen vorab: Es wird spektakulär und gleichzeitig unschlagbar billig sein!

Hardware-Aufbau

Folgende “Gerätschaften” benötigen wir für den Aufbau:

Seeed’s ReSpeaker Core v2.0 ist ein Kleinstrechner, der speziell für die Sprachverarbeitung optimiert wurde. Mit einem 6-fachen Mikrofon-Array und zahlreichen Schnittstellen ist er für die Sprachsteuerung gerade zu prädestiniert. Die SD-Karte wird als Speicher-Medium für das Betriebssystem sowie alle anfallenden Daten verwendet. Ein beliebiger aktiver Lautsprecher ist für den akustischen Output zuständig.

Idee zur Umsetzung (Software)

Hier benötigen wir:

Die Idee der Sprach-Verarbeitung und -Steuerung ist recht simpel – nehmen wir an, wir wollen das Licht einschalten:

  1. Wir aktivieren Kalliope mit einem (voreingestelltem) Signalwort
  2. In das Mikrofon gesprochene Sprache wird von Kalliope erkannt (STT = Speech-To-Text) [“Schalte Licht ein!”]
  3. Text (JSON-String) wird von Kalliope über MQTT an Edomi übertragen [Licht-EIN]
  4. Edomi verarbeitet den Text und löst ggf. Aktionen aus [Aktorkanal für Licht eingeschaltet]
  5. OPTIONAL: Kalliope empfängt Text über MQTT von Edomi und gibt u. a. gesprochene Sprache aus (TTS = Text-To-Speech) [“Das Licht ist nun an!”]

Spracheingabe (STT) ➡ Kalliope Synapse (light.yml/get.yml/...) ➡ Edomi ➡ Kalliope Synapse (announce.yml) ➡ Sprachausgabe über Kalliope (TTS) und/oder (Beliebige) Aktionen

Da wir hier nur einen Prototypen als kleine Machbarkeitsstudie einsetzen, betreiben wir – der Einfachheit halber – keinen eigenen MQTT-Broker, sondern nutzen einen kostenlosen Dienst (https://www.cloudmqtt.com/) online.

Das Respeaker Debian OS (respeaker-debian-9-lxqt-sd--4gb.img.xz) installieren wir laut Anleitung.

Kalliope wird ebenfalls nach Anleitung der Macher installiert und konfiguriert. Abweichend zum Standard-Signalwort (“Kalliope“) nutzen wir unser eigenes Aktivierungs-Wort, das in der Alltagssprache in der Regel nicht vorkommt. Über https://snowboy.kitt.ai/ kann man kostenlos sein eigenes Trigger-Wort trainieren oder ein bestehendes herunterladen und nutzen. Als eine bescheidene Hommage an eine beliebte Akte-X-Folge fiel unsere Trigger-Wort-Wahl auf:

C H U P A C A B R A (/ˌtʃʰupəˈkʰabɹə/)

Grrrrrhh…

Kalliope speist sich gänzlich aus sog. Yaml-Konfigurationsdateien (.yml). Neben der settings.yml, die die Grundkonfiguration regelt, gibt es eine brain.yml. Diese fasst alle Input- und Output-Aktionen in sog. “Synapses” ein. Die Synapsen reagieren mit sog. “Signals” auf Eingaben und kommunizieren in Form von sog. “Neurons” mit der Aussenwelt. Kalliope ist mit weiteren, eingebauten Features natürlich viel mächtiger als hier knapp dargestellt. Für unseren Aufbau genügt aber diese vereinfachte/verkürze Skizzierung:

Für die deutsche Sprache bietet Kalliope ein DE-Starter-Kit an, das alle notwendigen Voreinstellungen sowie Umsetzungsbeispiele auf Deutsch bereits mitbringt.

Beispiel einer Synapse (light.yml) zum Schalten des Lichts:

---
  - name: "s-licht"
    signals:
      - order: "Schalte Licht im {{arg_Lokation}} jetzt {{arg_Aktion}}"
      - order: "Schalte Licht in {{arg_Lokation}} jetzt {{arg_Aktion}}"
      - order: "Schalte Licht in der {{arg_Lokation}} jetzt {{arg_Aktion}}"
    neurons:
      - mqtt_publisher:
           broker_ip: "m21.cloudmqtt.com"
           port: 13166
           username: "SECRET"
           password: "SECRET"
           topic: "assi/set"
           payload: "{\"Gewerk\": \"Beleuchtung\",\"Bereich\": \"Schalten\",\"Lokation\": \"{{arg_Lokation}}\",\"Aktion\": \"{{arg_Aktion}}\",\"Retour\": \"0\"}"

Edomi tut ihr Übriges um über den MQTT-Broker den JSON-String zu zerlegen und anschließend die passende Aktion auszulösen (In diesem Beispiel nur Arbeitszimmer-Licht implementiert):

Und so kann es dann beispielhaft ablaufen:

(Anm. d. Red.: Wir bitten die grausige Bild- und Ton-Qualität untertänigst zu entschuldigen. Mangels passender Ausrüstung und Qualifizierung auf diesem Gebiet sind die Resultate entsprechend bescheiden… ?)

Fazit

Pro:
Billig!

Contra:
Teile in der Verarbeitung (Speach-To-Text) in der Cloud! Umstellung auf lokale STT-Verarbeitung (pocketsphinx) hat für die deutsche Sprache nicht funktioniert. ?
Trigger(-Word) wird zum Teil zu leicht ausgelöst (False Positives) z.B. durch Husten.
Verarbeitungslogik muss mühsam für alle möglichen Gewerke/Lokationen usw. manuell aufgebaut werden.
Empfangs-Gerät/Instanz nur auf einen Raum beschränkt, jeder weitere Raum erfordert eine eigenständige Kalliope-Installation/Konfiguration.
(Noch) Zu geringe Kalliope-Community(-Interaktion).

Das abschließende Resumé fällt ernüchternd aus: Klar, eine Milliarden-schwere Performance a la Amazon Alexa oder Google Home kann man nicht erwarten – dennoch überwiegend leider die Contras. Der “quick & dirty” Prototypen-Bau hat Spass gemacht und funktioniert in Grundzügen auch. Die Schwiegermutter damit beeindrucken wird aber eher schwierig. Wir werden diesen Ansatz in dieser Form daher nicht weiter verfolgen und andere Alternativen in Betracht ziehen!

*CHUPACABRA!* … sudo shutdown now

Comments (2)

  1. Kostengünstig & Cloud-unabhängig: Smart-Home-Sprachsteuerung mit Snips | smarthomebau.de Dienstag, 29UTCTue, 29 Oct 2019 10:09:03 +0000 29. Oktober 2019 at 10:09 Antworten

    […] sein: Wir haben uns erst vor Kurzem mit der Sprachsteuerung im Smart-Home beschäftigt. Der erste Prototyp in diese Richtung war nicht sehr viel […]

  2. Im Test: 1HOME KNX Bridge – Smart Home Sprachsteuerung leicht gemacht | smarthomebau.de Freitag, 05UTCFri, 05 Jun 2020 08:30:09 +0000 5. Juni 2020 at 08:30 Antworten

    […] ist in einem Smart Home die sowohl die innovativste, als auch die intuitivste Methode zur Interaktion mit der […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Unsere smarte Kaffee-Maschine

“Deutschland liegt mit rund 6 Kilogramm Kaffee Pro-Kopf-Absatz (2019) im oberen Mittelfeld der Konsum-stärksten…

Smart mit KNX: Automatische Gartenbewässerung mit Hunter-Ventilen

Nichts hat mich Anfang dieses Sommers mehr genervt als den frisch gesäten Rasen mehrmals…

Im Test: 1HOME KNX Bridge – Smart Home Sprachsteuerung leicht gemacht

Im Rahmen einer Vorab-Vorführ-Aktion hat 1HOME Inc. aus Slovenien das neu entwickelte 1HOME Bridge…

KNX Secure in a Nutshell: Fragen & Antworten

Seien wir ehrlich: Das ursprüngliche Design zu Übertragungszwecken im KNX-Standard war schlicht und einfach…

#Corona – Intermezzo

Wir erleben alle derzeit bewegte Zeiten. Wir hoffen euch und eure Nächsten bei…

KNX: ETS 5 – Tipps & Tricks & FAQs (Demo/Lite/Professional)

Yeah bitches! Was KNX/ETS-Know-How angeht, sind wir the hottest shit on the internetz™®©!11!! Nur…

Speedtest Chart
UPDATE | Raspberry Pi: Internet-Geschwindigkeit-Tests automatisieren (quick & dirty)

Unser Erster Beitrag zur Internet-Geschwindigkeitsmessung ist auf sehr viel Zuspruch gestoßen – die dort…

Schicksalsschlag: Unser Plan zur Notfall-/Nachlass-Vorsorge

“Das einzig Gute am eigenen Tod ist es, dass man ihn selbst verpasst.” So…

KNX: “ETS Inside” – UPDATE – Endlich brauchbare Alternative zu “ETS Professional”?

Wir wollen uns heute erneut in aller Kürze mit der neuesten Version des KNX…

Ein schwedisches Heim für einen toten Franzosen

Liebe Freunde, es gibt eine gute und eine schlechte Nachricht. Die Gute ist: Ein…

Roborock S50
Automatischer Staubsauger ohne Cloud-Zwang: Roborock S5 im KNX-Smarthome

Sehr lange schlummerte das folgende Projekt auf unserer TODO-Liste. Das Ziel: Integration eines Staubsaugerroboters…

Kostengünstig & Cloud-unabhängig: Smart-Home-Sprachsteuerung mit Snips

Liebe Freunde – es wird euch kaum entgangen sein: Wir haben uns erst vor…

Elektrischer Türöffner im Heimnetzwerk

Nicht selten hat man (in einem Smart-Home) den Wunsch sich selbst oder einem Gast…

(Fast) Jedes Haushaltsgerät ins (KNX-)Smart-Home direkt einbinden!

Leider kann man im Leben zum Einen nicht alles vorplanen und berücksichtigen, zum Anderen…

“Visu Porn”: Visualisierung in unserem Smart-Home

Ich schaue mir gerne förmlich recht voyeuristisch andere Visus an. Eine sehr gute Inspirationsquelle…

Magic Mirror im KNX-Smart-Home

Wenn es eine Sache im Internet gibt, die das Pornografie-Angebot übersteigt, dann sind es…

KNX Visualisierung – Erste Gehversuche

Liebe Freunde der optischen Leckerlies – das hier könnte hässlich werden… Denn heute geht…

Heim-LAN: Netzwerkschrank, Switch, Patchpanel & Co.

Das Netzwerk-Thema ist doch größer, als man es anfangs einschätzt: Nachdem wir die Netzwerkverkabelung…

KNX: ETS-Gruppenadressen – Die geordnete Struktur im Einfamilienhaus

Jedes ernsthaft betriebene KNX-Projekt benötigt eine geordnete Gruppenadressen-Struktur. Es sei denn ihr setzt die…

KNX: “ETS Inside” – Heilsbringer oder Mogelpackung?

Wir wollen uns heute in aller Kürze mit dem neuen KNX Inbetriebnahme-Tool ETS Inside…

ETS5 Professional (fast) kostenlos? KNX kostengünstig konfigurieren

Liebe KNX-Freunde, ich muss es euch eigentlich nicht erklären: Jede KNX-Installation benötigt zur (initialen)…

Netzwerkleitung verlegen: Schritt-für-Schritt-Anleitung

Letzes Mal sprachen wir über die theoretischen Grundlagen der Netzwerk-Vekabelung (LAN). Wie versprochen beschäftigen…

Taster ohne Abdeckung
Taster-Konzept: Praktischer Versuchsaufbau (Hands-On)

So, Freunde der Sonne: Wir haben ja bereits vor langer Zeit versprochen das Taster-Konzept…

Intelligenter Briefkasten: Version 2.0 – „Arduino-Edition“

Wer unseren bescheidenen Blog verfolgt, kennt unser Lieblings-Projekt: Den “Intelligenten Briefkasten”. Wir haben schon…

Berührungslos Schalten – Kapazitive Sensoren

Liebe Freunde der beeindruckenden Features, heute haben etwas Bemerkenswertes für euch, das nicht jeder…

KNX-Testaufbau (Mini-Testboard) mit Raspberry Pi und knxd

Verwandte Themen

Wie ihr vielleicht in einem früheren Beitrag schon gelesen habt, haben wir uns für…

Raspberry Pi: Internet-Geschwindigkeit-Tests automatisieren (kurz & gut)

Der kostengünstige Einplatinen-Rechner Raspberry Pi lässt sich für viele Dinge (miss-)brauchen. Mitunter messen wir…

Smarter Briefkasten
Intelligenter Briefkasten: Version 1.5 – “RED-Edition”

Liebe Freunde und verehrte Briefträger, gebt es zu: Gibt es etwas schöneres als eine…

Smart E-Mailbox
Schatz, du hast Post! Intelligenter Briefkasten 1.0 [TEIL 2/2]

Bereits im ersten Teil des Posts haben wir den ersten Prototypen des Smarten Briefkastens…

Smart Mail Box
Schatz, du hast Post! Intelligenter Briefkasten 1.0 [TEIL 1/2]

Heute gibt es eine Weltpremiere! Wir stellen heute einen vernetzten Briefkasten vor, der selbständig…