tas2580
Blog über Webentwicklung

Raspberry Pi das Sprechen beibringen

tas2580  

Ich benutze ein Raspberry Pi als Homeserver für VPN, DNS, DHCP, usw. Da ich dort keinen Bildschirm angeschlossen habe bekomme ich auch nicht mit wenn es zu Fehlern kommt. Auf dem Raspberry Pi läuft zwar ein Webinterface das mich über Fehler informiert, aber dort schaue ich ja nicht ständig rein. Schön wäre es also wenn ich irgend eine Möglichkeit hätte um in bestimmten Fällen auch außerhalb des Webinterfaces informiert zu werden. Einen Bildschirm möchte ich nicht anschließen da er für meinen Zweck dauerhaft laufen müsste. Da ich allerdings noch nicht benötigte Lautsprecher habe dachte ich mir dass eine Warnung per Sprachausgabe doch ganz nett wäre. Die Konfiguration des ganzen ist sogar erstaunlich einfach und in wenigen Minuten erledigt.

Sound installieren

Damit der Raspberry Pi Sprache ausgeben kann müssen zu erst Pakete zur Soundausgabe installiert werden.

apt-get install alsa-utils mplayer

Nun muss noch konfiguriert werden welcher Ausgang für die Sound-Ausgabe benutzt werden soll. Dazu führt man auf der Konsole den folgenden Befehl aus:

amixer cset numid=3 1

Die hintere Zahl gibt an welcher Ausgang benutzt werden soll. Dabei stehen folgende Optionen zur Verfügung:

  • 0 = Automatisch
  • 1 = Analoger Ausgang
  • 2 = HDMI Ausgang

Alternativ kann man auch mit raspi-config das Raspbian Konfigurationsprogramm aufrufen und dort im Menupunkt 8 (Advanced Options) die Sound Ausgabe umstellen.

Ob die Sound Ausgabe funktioniert kann man mit dem folgenden Kommando testen:

speaker-test -t sine -f 440 -c 2 -s 1
speaker-test -t sine -f 440 -c 2 -s 2

Durch die Kommandos sollte nach einander auf beiden Lautsprechern ein Sinuston ausgegeben werden.

Text zu Sprache

Wenn die Ausgabe von Sound funktioniert benötigt man noch ein Programm das geschriebenen Text in Sprache umwandelt. Ich habe dazu zwei verschiedene Programme getestet die ohne Internetverbindung funktionieren. Es gibt noch einige weitere teilweise Kommerzielle Lösungen, da ich aber mit den hier vorgestellten Lösungen recht zufrieden bin werde ich darauf nicht weiter eingehen.


Festival Text to Speech

Festival wurde von der Universität Edinburgh entwickelt und ist für die englische Sprache optimiert, es klingt nach einer männlichen Roboter Stimme. Weitere Stimmen und Sprachen können bei Bedarf nachinstalliert werden.

Installiert wird Festival mit:

apt-get install festival

Jetzt kann man mit dem folgenden Kommando einen Text als Sprache ausgeben lassen:

echo "This is just a test" | festival --tts

Espeak Text to Speech

Espeak ist ein Open-Source-Sprach-Synthesizer der Text sowohl mit weiblicher (-ven+f3) wie auch mit männlicher (-ven+m3)Stimme ausgeben kann.

Installiert wird Espeak mit:

apt-get install espeak

Jetzt kann man mit dem folgenden Kommando einen Text als Sprache ausgeben lassen:

espeak "This is just a test"

Wenn man Text in deutscher Sprache ausgeben möchte kann man das mit dem Parameter -vde machen.

espeak -vde "Das ist ein Test"

Und was macht man jetzt damit?

Prinzipiell kann man sich jetzt alles mögliche ausgeben lassen was man irgendwie auf die Konsole bekommt. Dazu schreibt man einfach kleine Shellscripte oder nutzt die shell_exec Funktion von PHP.


Warnung bei unterbrochener Internetverbindung

Das Script prüft alle 30 Sekunden ob "google.de" angepingt werden kann, wenn nicht wird eine Warnung ausgegeben.

#!/bin/bash

con=1

while [ true ]; do
	if ( ping -c 1 -w 1 google.de | grep -q " 0% packet loss" ) ; then
		if [ $con == 0 ] ; then
			espeak "Internet connection restored"
		fi;
		con=1;
	else
		espeak "Warning: Interrupted Internet connection"
		con=0;
	fi
	sleep 30
done

CPU Temperatur überwachen

Das Script fragt alle 30 Sekunden die CPU Temperatur des Raspberry Pi ab und gibt bei einer Temperatur über 70° eine Warnung aus.

#!/bin/bash

while [ true ]; do
	temp=`vcgencmd measure_temp`
	temp=${temp#*=}
	temp=${temp//\'C/}
	t=${temp%.*}

	if (( $t > 70 ))
	then
		espeak "Warning: Hight CPU Temperature. CPU Temperature $temp°"
	fi
	sleep 30
done

Ähnliche Beiträge


Kommentare


Bitte warten ...

Kommentar schreiben

URLs werden automatisch umgewandelt.
[b]DEIN TEXT[/b] für Fett gedruckt
[quote]DEIN ZITAT[/quote] für Zitate
[code]DEIN CODE[/code] für Code
captcha