Samstag, 13. Juni 2015

Raspberry Pi Sprachsteuerung Part 2 - mit PiAUISuite

Ich habe schon mal über Raspberry Pi Sprachsteuerung geschrieben.

Es war mein erstes Raspberry Pi Projekt.
Ich habe die Sprachsteuerung lange nicht mehr in Gebrauch gehabt und deswegen nicht mitbekommen, dass die Google Speech-to-Text API v1 eingestampft wurde.

Auf der Suche nach einer Alternative bin ich auf "PiAUISuite" von Steven Hickson gestoßen.


Vorteile dieses Programms

- Hotword Erkennung
- Multilanguage
- Kommandos vorgefertigt
- einfache Erstellung neuer Kommandos


Hardware

Ich habe mir bei Amazon DIESES Mikrofon gekauft. Funktioniert ohne Probleme.


Installation

sudo apt-get install git-core
git clone git://github.com/StevenHickson/PiAUISuite.git
cd PiAUISuite/Install/
./InstallAUISuite.sh


Die Installation ist sehr einfach. Einfach die Programmteile, die man mitinstallieren möchte mit Y bestätigen. Steven Hickson beschreibt die Installation sehr gut in einem Video.


Konfiguration

Ist man mit der Installation durch, kann man Voicecommand, den für uns interessanten Teil des Programms konfigurerien.

voicecommand -s

Für Tiefer gehende Einstellungen können die Parameter weiter angepasst werden.

voicecommand -e


Wenn ihr Schwierigkeiten habt, schaut auch ruhig auch die anderen Videos auf seinem Channel zu diesem Thema an.


Probleme

Ich habe mein Raspberry Pi am TV angeschlossen, die Kommandos aber per SSH eingegeben. (Ich denke, dass das das Problem war)
Deswegen wurde der Browser nicht am TV geöffnet, wenn ich Beispielsweise "Google Katzenbabys" gesagt habe.

Um das zu beheben geht ihr wie Folgt vor:

sudo nano usr/bin/google

hier ändert folgende Zeilen:

search_string="https://www.google.com/#hl=en&safe=off&output=search&q=$var"
in
search_string="https://www.google.de/#q=$var"

und

midori -a "$search_string"
in
export DISPLAY=:0.0 && nohup midori -a "$search_string" &


Außerdem steuere ich per Sprache mein Hyperion Licht.

Im voicecommand -e habe ich die Zeilen hinzugefügt:

~licht an==tts -l de "FILL DO Licht an" && /home/pi/lichtan.sh
~licht aus==tts -l de "FILL DO Licht aus" && /home/pi/lichtaus.sh


lichtan.sh sieht so aus:

#!/bin/sh
ssh root@openelec '/storage/hyperion/bin/hyperion-remote.sh --effect "Rainbow swirl"'


und lichtaus.sh so:

#!/bin/sh
ssh root@openelec '/storage/hyperion/bin/hyperion-remote.sh --clearall'


Zum schließen von Midori für ihr einfach diese Zeile in voicecommand -e hinzu:


~Midori beenden==killall midori


Um per SSH kein Passwort eingeben zu müssen, verwende ich ein Zertifikat.
Hier könnt ihr nachlesen, wie man das in 3 einfachen Schritten einrichtet.


Was mir noch aufgefallen ist

- ich benutze ein Raspberry Pi B und bei mir dauert es bis zu 7 Sekunden, bis ich eine Antwort bekomme bzw. ein Befehl ausgeführt wird. Habe noch nicht getestet, ob es mit einem Raspberry Pi 2 schneller geht.

- Das Hotword muss auf Englisch sein bzw. Englisch ausgesprochen werden. Meins hört auf den Namen David (englisch ausgesprochen).