ESpeak kennt Ihr sicher alle. Diese Roboterstimme, die beim Desktop dabei ist, damit sehbehinderte Menschen einen Bildschirmleser haben können. Jetzt ist espeak aber nicht wirklich toll đ
Mbrola – etwas bessere Sprachsynthese
Mbrola wird in einigen Distors, wie bspw. Fedora, nicht ausgeliefert, da die Lizenzen und deren VerstÀndnis dies nicht zu lassen. Wer das selbst austesten möchte, kann sich die nötigen Files hier runterziehen:
https://github.com/numediart/MBROLA
https://github.com/numediart/MBROLA-voices
Mbrola muĂ kurz kompiliert werden, aber das ist selbst fĂŒr AnfĂ€nger leicht zu meistern, weil es kein kompliziertes Buildsystem gibt und man eigentlich nur den GCC Compiler und CMAKE auf dem Rechner installiert haben muĂ. Ich bin mir ganz sicher, daĂ Ihr das alleine schafft đ
Nicht? na ok: „cd MBROLA-master; make; cp Bin/mbrola /usr/local/sbin/“ das wars đ
Die Stimmen kommen nach /usr/shar/mbrola/ , die muĂ man nicht extra kompilieren.
Um espeak kommt man leider nicht rum
Da mbrola keine Ăbersetzung von geschriebenem Text in Phonetische Abbildungen macht, muĂ man das espeak machen lassen. Damit Euch das nicht ĂŒber den Kopf wĂ€chst, habe ich da mal was vorbereitet:
/usr/local/sbin/say:
#!/bin/bash
if [ „$VOICE“ == „“ ]; then
     VOICE=“de5″
fiif [ ! -f „$1“ ]; then
     espeak -v mb-$VOICE -q –pho –phonout=/tmp/out.pho „$1“
else
     A=$(cat „$1“)
     espeak -v mb-$VOICE -q –pho –phonout=/tmp/out.pho „$A“
fimbrola -t 1.2 -f 0.8 /usr/share/mbrola/$VOICE/$VOICE /tmp/out.pho -.au | aplay 1>/dev/null 2>/dev/null
rm -f /tmp/out.pho
Die Datei noch mit chmod 755 aufrufbar machen und wir sind fertig.
Um die Anwendung zu vereinfachen kann man entweder eine Datei als Argument angeben oder den Text:
say „Ich bin ein Roboter.“
say Bunte-Schafe-von-Arthur-Miller.txt
Die Stimme ist auf die de5 Stimme voreingestellt, es geht aber auch jede andere Sprache:
env VOICE=de7 say text
Die Aussprache kann man noch stark verbessern. Beispiel: Das Wort „Zumutung“.Versucht mal diesen Satz:
say „Dies ist eine Zumutung“
und dann schreibt ihn mal so:
say „Diehs ihst eine Zumuhtung“
Ihr werdet den Unterschied heraushören können. Genauso ist es mit „gĂ€hnt“ und „gehnt“, weil das „Ă€“ ĂŒberbetont wird. Es klingt wirklich besser es pauschal mit „e“ zu ersetzen. Wenn man sich dann erst einmal eine Datenbank mit „besseren“ Worten zusammen gesetzt hat, kann man das Script so erweitern, daĂ vor dem espeak aufruf, erst noch die Ersetzung passiert. Von einer SED Orgie kann ich aber nur abraten. Lasst dies besser ein spezialisiertes Programm wie „replace“ machen oder schreibt gleich ein eigenes kleines C Tool, daĂ sich eine Art Datenbank einliest.
Viel SpaĂ damit đ
Pingback: Linux am Dienstag: Der erste Abend - Marius Welt