Codeschnipsel – FHEM für TTS vorbereiten

Klar wollten wir auch eine Sprachausgabe der wichtigsten Werte unserer Hausinstallation. Derzeit auf Knopfdruck an der Fernbedienung im Wohnzimmer verfügbar. Grundlage bildet die Audio-Schnittstelle des Banana (beim Raspi genauso vorhanden) und ein darauf laufender FHEM-Server. Da gibt es in der folgenden Anleitung also keine Unterschiede…

Hauptsache ein Debian-Wheezy ist drauf. Und das dann zu realisieren, ist nicht mal sonderlich schwierig. Hat man ein “pures” Linux zur Verfuegung, muss man zuerst „mplayer“ (Grundlage) installieren:

$ sudo apt-get install mplayer

Anschliessend mit „visudo“ den „mplayer“ fuer alle aufrufbar machen und im Texteditor die folgende Zeile anfuegen:

$ sudo visudo
ALL ALL = NOPASSWD: /usr/bin/mplayer

Ausserdem empfiehlt sich der Einsatz von „MP3wrap“, damit mindestens ab dem zweiten Aufruf die Sprachwiedergaben fluessig rueberkommen:

$ sudo apt-get install mp3wrap

Jetzt kann man in FHEM das Sprachmodul initialisieren. Wichtig natuerlich, dass ueberhaupt eines da ist. Deshalb am besten auf dem FHEM-Mirror nachschauen und das entspechende Perl-Modul (98_text2speech.pm) herunterladen und in das Modulverzeichnis von FHEM kopieren. Danach in der „fhem.cfg“ folgendes definieren:

define myTTS Text2Speech hw=0.0
attr myTTS room Text2Speech
attr myTTS TTS_UseMp3Wrap 1
attr myTTS verbose 4

Und jetzt geht in der Kommandozeile von FHEM oder in Verbindung von diversen Notifies das Folgende:

$fhem: set myTTS tts ‘Ich liebe Dich.’

Es gilt, Gross- und Kleinschreibung zu beachten. Damit wird jedenfalls der Satz oben “vorgelesen” mit der Stimme der Google-Engine und ueber das Device.Subdevice “0.0”. Die zur Verfuegung stehenden Hardware-Devices lassen sich uebrigens mit „aplay -l“ anzeigen und gegebenenfalls aendern.

Zuletzt noch dies hier in z.B. die „rc.local“ eintragen, um nach jedem Reboot die gewünschte Ausgangslautstärke anliegen zu haben:

$ amixer cset numid=1 53
 

Swen Hopfe

 

Teilen in...
Share on FacebookShare on Google+Tweet about this on TwitterShare on XingShare on LinkedIn

Schreibe einen Kommentar

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