Raspberry Pi Sprachsteuerung
Update 13.06.2015: Hier wurde das Thema Sprachsteuerung neu in Angriff genommen!
Hey,
als ich meinen ersten Raspberry Pi bekommen habe fragte ich mich: "was machst du jetzt damit?". Und ich muss gestehen, dass das Pi Tage-, wenn nicht sogar Wochenlang ohne Funktion bei mir rumlag.
Ich wollte natürlich klein mit der Pi Programmierung anfangen, es sollte aber trotzdem seinen Nutzen haben.
Dann bin ich auf diesen Artikel gestoßen LINK.
Und ich dachte mir "Das wäre doch super. Den Pi per Sprache Steuern!"
Nun muss ich nur sagen "Mach das Licht an" und die Kaltlichtkathode, die ich vor einigen Jahren mal in meinen Gitarrenverstärker eingebaut habe, leuchtet.
Das Prinzip ist eigentlich ziemlich einfach.
Sobald am Mikrofon ein bestimmter Schwellwert überschritten wird, also wenn ich dort rein spreche, wird eine Audio Aufnahme gestartet. Diese ist bei mir 2 Sekunden lang. Länger sind meine Sprachbefehle auch nicht. Gespeichert wird die Aufnahme als .flac Datei. Diese Datei wird zur Google Speech-to-Text API gesendet. Die Google Speech-to-Text API sendet mir kurz darauf eine Text Datei zurück in der mein gesprochener Befehl steht.
In dieser Datei lasse ich nun die Worte "Licht" und "ein" suchen. Wenn beide Wörter gefunden werden, wird ein GPIO Pin auf 1 gesetzt, welches ein Relais einschaltet, an dem die Kaltlichtkathode angeschlossen ist.
Andere Einsatzmöglichkeiten
Ich habe, neben dem einschalten meiner Kaltlichtkathode noch eingebaut, dass die Kaltlichtkathode ausgeschaltet wird, dass eine VNC Session gestartet oder beendet wird und dass mir die Dateien des jeweiligen Ordners angezeigt wird.
Benötigte Hardware
- 4er Relais (gibt es auch in einer 2er Version)
- Jumperkabel (es reichen 3, aber wer weiß was man noch so bauen will?)
- Ein USB Mikrofon (ich habe das eingebaute Mikrofon einer Webcam verwendet)
Wie ihr seht, kostet die Hardware nicht viel. Und mit dem Relais könnte man auch sein Licht im Wohnzimmer steuern.
Die Verkabelung
Die Zählweise ist oben links Pin 1, oben rechts Pin 2, unten links Pin 25 und unten rechts Pin 26.
Es werden 3 der Jumperkabel benötigt.
Das erste Kabel steckt ihr am Pi auf Pin 2 (5V Power) und am Relais auf VCC (ganz rechts).
Das zweite Kabel kommt auf Pin 6 (Ground) und am Relais auf GND (ganz links).
Somit hat das Relais jetzt eine Betriebsspannung von 5V. Nun zum eigentlichen Schalten des Relais.
Das dritte Kabel kommt auf Pin 8 (GPIO 14 TXD) und am Relais auf IN4.
Das dritte Kabel kann man am Pi auch woanders platzieren, aber so ist es in meinen Scripten eingerichtet. Am Relais kann man sich den Eingang aussuchen, den man möchte.
Als letztes verkabelt ihr euer zu steuerndes Gerät am Relais und schraubt es fest. Hier muss eine Ader in der mittleren der 3 Klemmen sein und die andere Ader links oder rechts daneben. Bei dem einen wäre euer zu steuerndes Gerät an, wenn der GPIO Port auf 1 gesetzt wird, beim anderen wäre das Gerät aus und würde angehen, wenn der GPIO Port auf 0 ist. In meinem Fall möchte ich, dass das Licht aus ist, wenn der GPIO Port auf 0 ist.
Aus Sicherheitsgründen solltet ihr am Relais den Minuspol verschrauben.
Hier ein künstlerisches Meisterwerk wie die Verkabelung aussieht:
(edit: der Link hat nicht funktioniert. Sollte jetzt aber gehen)
Und hier mal ein paar Foto wie es bei mir aussieht:
Terminal:
Gitarrenverstärker:
Labels: Raspberry Pi, Siri, Speech-to-Text, Spracherkennung