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:

  1. Umwandlung des Textes in Phoneme, also Laute
  2. Erzeugung des gesprochenen Textes mit einer Stimme
  3. 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


Posted by ingo | Permanent link