In einigen Situation kann es sinnvoll sein Ereignisse durch eine Sprachausgabe zu visualisieren. In diesem Beitrag erkläre ich euch, wie die Grundlagen für eine Sprachausgabe auf einem Raspberry und unter FHEM realisiert werden. Zuständig für die Sprachausgabe ist das Modul „Text2Speech„.
Contents
Vorbereitungen
Damit die Sprachausgabe ordnungsgemäß funktioniert, sind einige Vorbereitungen zu treffen. Neben der eigentlichen Definition unter FHEM ist es auch notwendig zwei Pakete auf dem Raspberry zu installieren.
Vorbereitungen auf dem Raspberry
Damit der Raspberry die gewünschte Sprachausgabe auch abspielen kann, ist ein Mediaplayer notwendig.
sudo apt-get install mplayer
Bevor der Mediaplayer etwas über den Audioausgang ausgeben darf, müssen noch entsprechende Rechte vergeben werden.
EDITOR=nano sudo visudo
Es öffnet sich der Editor. Am Ende der Datei muss nun folgende Zeile eingefügt werden.
ALL ALL = NOPASSWD: /usr/bin/mplayer
ACHTUNG: Am Ende der Datei muss noch mindestens eine freie Zeile vorhanden sein. Mehr Infos auf ubuntuusers. Ein Dank an Martin für den Hinweis.
Für eine flüssige Sprachausgabe ist es sinnvoll noch folgendes Paket zu installieren. Bei sich widerholenden Sprachbausteinen wird die Sprachausgabe nun flüssiger.
sudo apt-get install mp3wrap
Zum Schluss noch schnell herausfinden welche Audioausgabequellen verfügbar sind. Dazu folgenden Befehl eingeben.
aplay -l
Man erhält nun eine Liste aller verfügbaren Ausdigeräten.
Wie man in der Lister erkennt, befindet sich unter Karte 0 und Gerät 0 der Audioausgang. Diese Infos benötigt man später für Definition unter FHEM.
Vorbereitungen unter FHEM
Unter FHEM kann nun das eigentliche Modul für die Sprachausgabe definiert werden.
define MyTTS Text2Speech hw=0.0;
Der Zusatz „hw=0.0“ gibt die Ausgabequelle an. In diesem Fall Karte 0 und Gerät 0.
Damit das Zusatzmodul „mp3wrap“ verwendet wird, muss noch folgendes Attribut gesetzt werden:
attr MyTTS TTS_UseMP3Wrap 1;
Sprachausgabe testen
Nach der Einrichtung kann die Sprachausgabe nun getestet werden.
set MyTTS tts Dies ist ein Test
Diese Sprachausgabe lässt sich natürlich auch mit anderen Ereignissen verbinden. Zum Beispiel eine Sprachausgabe bei eingehenden Anrufen. Mehr dazu in meinem Blog-Beitrag.
Hallo Daniel, ich bitte um deine Hilfe. Habe alles so gemacht wie beschrieben. Als ich dann die in der sudoers im /etc ordner mit chmod die rechte auf 777 setzte um „sudo apt–get install mp3wrap“ einzufügen hatte ich danach keinen Zugriff mehr, weder per ftp noch per terminal.
Vielen Dank vorab!!!! Gruss Martin
meine natürlich „ALL ALL = NOPASSWD: /usr/bin/mplayer“ einzufügen!
Hallo Martin,
um den Eintrag „ALL ALL = NOPASSWD: /usr/bin/mplayer“ hinzuzufügen, reicht es doch aus die Datei über „sudo visudo“ zu öffnen, eigentlich muss man keine Rechte über chmod setzen oder so. Das ist ja dann eine dauerhafte Rechtevergabe. Denke da wurde dann irgendwas zerschossen durch die Rechtevergabe über chmod. Am besten den Raspberry mal über Tastatur und Bildschirm anschließen und steuern und versuchen zu schauen, was dort nun für Rechte vergeben wurden.
Gruß Daniel
Hallo Daniel, danke für deine Antwort. Habe nach langem Kampf den Raspi neu aufgesetzt. Auf meiner Suche nach einer Antwort bin ich unter anderem auch auf das gestossen: https://wiki.ubuntuusers.de/sudo/Konfiguration/
Da steht im roten Kästen explizit: „Die letzte Zeile der Sudoers-Datei muss zudem immer leer sein! Bei der direkten Bearbeitung ohne Prüfung kann der kleinste Tippfehler dazu führen, dass man sich aus dem System aussperrt und nur über den Recovery Modus wieder Zugang erhält. Es ist dabei korrekt, die Änderung in sudoers.tmp zu speichern, denn
visudo
überprüft nun die Syntax und man hat die Möglichkeit, Fehler zu korrigieren.“Du schreibst:
span class=“crayon-v“>EDITOR=nano
sudo visudo
„Es öffnet sich der Editor. Am Ende der Datei muss nun folgende Zeile eingefügt werden.“
Aber egal, es läuft alles wieder. Ich sehe es als Training an 😉
Deine Seite gefällt mir trotzdem sehr gut! 😉
Hallo Martin,
vielen Dank für den Hinweis. Dann hatte ich wohl einfach Glück, dass bei mir noch eine freie Zeile vorhanden war. Habe den Beitrag entsprechend ergänzt. Und Sorry, dass du es so „schmerzhaft“ herausfinden musstest. Aber wie du schon sagst, aus Fehlern lernt man 😉
Gruß Daniel
Hallo und Danke für die Aneltiung.
es hat wunderbar funktioniert …. allerdings würde mich interessieren, ob es möglich ist in Englisch Sprache zu einstellen?
Gruß
Hat gut funktioniert. Nur als ich auf meinen Bluetooth-Lautsprecher umschaltete, war Stille. Z.B. der VLC Player auf dem Raspi gibt dann das Signal über Bluetooth raus. Fhem leider nicht. Erst wenn ich auf Analog-Ausgabe umschalte und das Kabel stecke, sagt er sauber „Test“.
Ich konnte bisher nicht herausfinden, ob MyTTS noch ein attr braucht oder so. DIe Definition erfolgt mit default, was im Raspi dann dem angewähltem Ausgang zugeführt wird – siehe VLC.
Eventuell hast du eine Idee, wie man Text2Speech über einen Bluetooth-Lautsprecher realisieren kann.
Danke