Sprachsteuerung: So klappt’s mit EasyVR 3.0-Shield & Arduino UNO

In der Hausautomatisierung wird sie bereits verwendet und trotzdem bringt sie etwas Geheimnisvolles, fast Magisches, mit sich, mit dem einige Menschen herumexperimentieren: die Sprachsteuerung. Auch Jenny Albrecht, Sandra Hanstein und ich haben uns in letzter Zeit für unseren Escape-Room zum Thema „Hexenprüfung“ (Artikel: „Entwicklung eines Escape-Rooms“) damit auseinandergesetzt – mit aller bester Unterstützung meines Papas. Auf einem Arduino UNO wurde das Sprachshield EasyVR 3.0 befestigt. Um wirklich „Speaker Independent“ – also nicht nur auf einzelne Personen eines Haushalts zurückgreifen zu können – und um eigene Begriffe abseits der Hausautomatisierung (Licht an, Licht aus) zu nutzen, benötigten wir die „Quick T2SI Lite“-Lizenz von Veear für knapp 200 Euro. Die erhält man auf Anfrage bei Veear selbst. Doch wie geht es dann weiter? Die Anleitungen im Internet helfen bei der Programmierung und Konfiguration nicht wirklich, da sie einige Schritte, die beispielsweise die Ports am Arduino betreffen, auslassen. Dank meines Papas hat es doch funktioniert. Mit seiner Hilfe entstand folgende Anleitung, die ich dir weitergeben möchte.

Das benötigst du

Zunächst wird der Arduino UNO mit dem Sprachshield verlötet – das soll hier im Detail nicht thematisiert werden, da es dafür gute Anleitungen gibt.

Außerdem musst du den seriellen Port (PC) in der Systemsteuerung auf Baud 115200 einstellen. Neben der oben genannten Lizenz, benötigst du den Easy VR-Commander, ein USB-Kabel und die Arduino-Software auf deinem Rechner.

Schritt für Schritt zur Sprachsteuerung

1.) Stelle den Jumper auf „sw“ (Software Serial). Nutze das Beispielprogramm von VR, um die Arduino-Software zu laden. Dein Rechner ist über das USB-Kabel mit dem Arduino verbunden.

Schritt 1: Das Testprogramm von VR. Foto: Screenshot

Jetzt musst du das Programm kompilieren und in den Arduino laden. Gegebenenfalls musst du im seriellen Monitor testen, ob alles funktioniert. Danach musst du diesen aber ausstellen, damit es nicht zu Konflikten mit dem Easy VR-Commander kommt. Durch diesen ersten Schritt erkennst du auch, ob alles richtig verlötet ist und das Beispiel-Programm schon einmal funktioniert – ohne das du bisher selbst Code geschrieben hast.

2.) Jetzt erstellst du die eigenen Befehle, die deine Sprachsteuerung erkennen soll. Durch die oben genannte Lizenz wird dir das Tool „Quick T2SI2.1.14“ mitgeliefert. Dieses öffnest du. Die Oberfläche, die du dann siehst, sieht so aus:

Schritt 2: Hier werden die Begriffe erstellt. Foto: Screenshot

Es gibt einen Trigger-Phrase, auf den der Arduino als erstes reagiert und dann den darauffolgenden Command-Phrase ausführt. Beim iPhone kennst du das vielleicht durch „Siri“, bei Android durch „OK, Google“. Das sind die Trigger-Phrases. Danach kommt, was passieren soll. In einem Smart Home-Beispiel wurde zum Beispiel erst gesagt „Robot“ und dann „Light on“ oder „Light of“. Diese Befehle werden als separate Command-Phrases eingetragen. Unser Beispiel für den Escape-Room werde ich in den folgenden Bildern zensieren, da ihr das Rätsel im Raum selbst ja noch lösen sollt und ich nicht spoilern möchte. Es gibt unterschiedliche Sprachen, wie Deutsch und Englisch, aber auch weitere, wie du auf der oben verlinkten Homepage des Easy VR-Shields nachlesen kannst.

3.) Wenn du alle deine Befehle eingegeben hast, klicke auf den Button „Build“. Dann speicherst du das Projekt in einem separaten Ordner, da einige Dateien erzeugt werden. Das erfolgt in einem extra Fenster. Dort gibt es den Button „Create“ auf den du danach klickst. Verlasse dann das Tool.

4.) Jetzt nutzen wir die eben erstellte Datei um sie auf den Prozessor zu laden. Dafür startest du den Easy VR-Commander (siehe Bild). Das Ganze ist ein Programm, das dir deine Befehle im Überblick zeigt, du neue (nur mit der Lizenz) hinzufügen und ausprobieren kannst. Das bedeutet: Du sprichst sie aus und siehst, ob sie verstanden werden.

Schritt 4: Öffne den Easy VR-Commander. Foto: Screenshot

Setze jetzt den Jumper am Arduino auf „UPDATE“ (Pin UP). Klicke im Menü auf „File“ > „Update Custom Data“. Es erscheint dieses Fenster:

Schritt 4: Importiere deine eigenen Daten. Foto: Screenshot.

Hier klickst du auf „Import“ und wählst deinen Ordner mit den Befehlen aus (siehe Schritt 3). Der Name erscheint in dem oberen Feld. Wenn beim Importieren alles funktioniert hat, füllt sich das untere Feld mit deinen Befehlen und je Befehl dem Wort „Grammar“.

Schritt 4: Importiere deine Daten. Foto: Screenshot

Klicke nun auf „Download“, um die Daten auf den Prozessor zu laden. Ein Ladebalken erscheint und es sollte alles ohne Fehlermeldungen funktionieren. Setze den Jumper jetzt wieder auf „Bridgemode“, also auf „PC“ an deinem Arduino.

5.) Gehe wieder in den Easy VR-Commander. Klicke „Connection ON“. Deine Befehle wurden reingeladen. Das Ganze sieht dann beispielsweise so aus:

Schritt 5: Deine Befehle befinden sich im Easy VR-Commander. Foto: Screenshot

Es sind neue Grammatik-Sets entstanden – Nummer 4 und 5. Über das Icon „Test Group“ können die Befehle getestet werden, in dem du sie laut aussprichst und sie anschließend – wenn alles funktioniert hat – auf dem Bildschirm grün markiert werden. Die Tests musst du nicht machen, es empfiehlt sich aber, um hier schon zu sehen, ob alles bis zu diesem Schritt funktioniert.

6.) Jetzt sind alle Einstellungen, die vorab getätigt werden mussten gemacht. Nun geht es an die Programmierung! Hier unser Code, der sich an dem Beispiel aus Schritt 1 ableitet. Bei uns gibt es die Besonderheit, dass Port 8 des Arduinos einen Triggerimpuls mittels eines potentialfreien Relais an einen zweiten Arduino geben muss. Bei uns gibt es nur einen Trigger  (Grammar 4, Index 0) und einen Command (Grammar 5, Index 0). Das wurde wie folgt umgesetzt:

 

 

Wir hoffen, dass der Code der Arduino- und Sprachsteuerungs-Community hilft, so dass diese Technologie in den nächsten Jahren weiterentwickelt werden kann.


Du hast weitere Fragen oder Anmerkung zur Spracherkennung mit Easy VR 3.0-Shield und Arduino UNO oder zu Escape-Rooms? Gerne. Kommentiere diesen Artikel, nutze das Kontaktformular oder meine Social-Media-Accounts als Anlaufstelle. Ich freue mich auf deine Nachricht und hoffe, dass dir die Anleitung geholfen hat.

Ein Gedanke zu „Sprachsteuerung: So klappt’s mit EasyVR 3.0-Shield & Arduino UNO

Kommentar verfassen