November 2012 Archives
20.11.2012 15:59:00
Sprachausgabe mit Ubuntu
Will man deutsche Texte unter Ubuntu in Sprache umwandeln, trifft man gleich auf zwei Probleme. Das eine ist die unübersichtliche Situation der Sprachausgabe unter Linux, das andere die deutsche Sprache.
Beides läßt sich aber einigermaßen lösen, so daß am Ende ein akzeptables Ergebnis steht.
Verwendete Software
Für die Sprachausgabe braucht es grundsätzlich diverse Werkzeuge, die die einzelnen Schritte ausführen:
- Umwandlung des Textes in Phoneme, also Laute
- Erzeugung des gesprochenen Textes mit einer Stimme
- Ausgabe des Ergebnisses
Für den ersten Schritt kommt espeak zum Einsatz, für den zweiten mbrola. Den dritten Schritt erledigt aplay für den Fall des Vorlesens. Will man z.B. ein mp3 speichern, muß man es entsprechend erzeugen.
Installation
- aptitude install espeak, wird nur als Vorstufe für mbrola verwendet
- http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip herunterladen und z.B. nach /usr/share/mbrola entpacken
- Binary z.B. nach /usr/bin verlinken
- Stimmen dazukopieren (ich verwende de2 für männlich, de5 für weiblich)
- aplay ist im Paket alsa-utils
Anwendung
Ich habe mir drei Skripte geschrieben, die mir jeweils eine Datei vorlesen. Unterschied ist die verwendete Sprache und Stimme; sprechem und sprechew lesen mit männlicher bzw. weiblicher Stimme auf deutsch vor. Entsprechend liest speak auf englisch vor (mit männlicher Stimme).
Eine leichte Verbesserung der Qualität erreicht man durch Herabsetzen der Geschwindigkeit (Option -s 140 für espeak).
speak:
espeak -vmb-us2 -f $1 |mbrola -e /usr/share/mbrola/us2/us2
- - |aplay -r16000 -f S16_LE
sprechem:
espeak -vmb-de2 -f $1 |mbrola -e /usr/share/mbrola/de2/de2
- - |aplay -r16000 -f S16_LE
sprechew:
espeak -vmb-de5 -f $1 |mbrola -e /usr/share/mbrola/de5/de5
- - |aplay -r22050 -fS 16_LE