SEARCH
TOOLBOX
LANGUAGES
zuletzt geändert am 25. Januar 2010 um 21:59

TTS:Linux - Ubuntu - txt2pho, mbrola und lame einrichten

Aus tecWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Allgemeines

Viele Webseiten erklären, wie Sie eine Text-to-Speech-Umgebung (TTS) unter Ubuntu/Linux installieren und konfigurieren. Meist findet sich irgendwo mitten im Text oder auch erst ganz am Ende ein lapidarer Hinweis in der Art:

  • Diese Lösung ist nur für englische Texte geeignet. Deutsche Stimmpakete gibt es leider nicht.
  • Hier finden Sie die Quellen zu den deutschen Stimmenpaketen, aber ich weiß nicht wie man Sie installiert oder als Voreinstellung verwendet.

Alles in Allem sind solche Artikel nicht nur nicht sehr hilfreich, sondern auch ausgesprochen ärgerlich. Insbesondere wenn man an die Zeit denkt, die man vergeudet hat, weil man fleißig nebenher die Installationsanweisungen befolgt hat. Die Deinstallation aller gerade eben installierten Komponenten ist dann auch noch fällig.

Hier folgt eine Installationserklärung für eine TTS-Umgebung mit txt2pho, mbrola und lame, die in erster Linie für deutsche Sprachausgabe unter Ubuntu / Linux verwendet werden soll.

Kurzbeschreibung

Das Programm txt2pho wandelt Textdateien im ASCII-Format in eine Textdatei mit phonetischer Textbeschreibung um, die mbrola interpretieren kann. Die Anwendung mbrola erzeugt daraus die Sprachdatei im WAV-Format. Die Anwendung lame übernimmt anschließend die Konvertierung der WAV-Datei in das MP3-Format. Alle drei Programme werden über die Kommandozeile (Terminal) gesteuert. Die Erklärung der Parameter finden Sie - wie üblich - in den Manpages (Hilfetexte) oder README-Dateien zu den genannten Anwendungen.

Quellen herunterladen

Laden Sie sich die Programmdateien zu txt2pho und mbrola herunter.

Laden Sie sich die deutschen Stimmenpakete zu mbrola herunter.

Programme installieren

Um die Anwendungen txt2pho, mbrola und lame zu installieren, benötigen Sie Root-Rechte. Geben Sie in die Kommandozeile Folgendes ein:

sudo -s

Sie werden aufgefordert das root-Passwort einzugeben.

Datei:rot_24.jpgAchtung! Ab sofort agieren Sie mit root-Rechten!

Die Anwendung lame installieren

Beginnen Sie mit lame, denn diese Installation ist am einfachsten. Geben Sie in die Kommandozeile Folgendes ein:

apt-get install lame

Die Anwendungen txt2pho und mbrola installieren

Der bevorzugte Speicherplatz für distributionsfremde Anwendungen ist der Verzeichniszweig /usr/local/. Richten Sie dort Ihr mbrola-Verzeichnis ein.

Passen Sie den Pfad /verzeichnispfad/zu/ihren/dateien/ Ihren Bedürfnissen an und geben Sie dann Folgendes in die Kommandozeile ein:

cd /verzeichnispfad/zu/ihren/dateien/
mkdir /usr/local/mbrola
unzip -d /usr/local/mbrola/ mbr301h.zip
unzip -d /usr/local/mbrola/ txt2pho.zip
unzip -d /usr/local/mbrola/ de1-980227.zip
unzip -d /usr/local/mbrola/ de2-990106.zip
unzip -d /usr/local/mbrola/ de3-000307.zip
unzip -d /usr/local/mbrola/ de4.zip
unzip -d /usr/local/mbrola/ de5.zip
unzip -d /usr/local/mbrola/ de6.zip
unzip -d /usr/local/mbrola/ de7.zip
unzip -d /usr/local/mbrola/ de8.zip

Die Stimmenpakete sind separat in ZIP-Archiven gepackt. So entsteht beim Entpacken für jede Stimme ein eigenes Verzeichnis. Benötigt werden die Stimmenpakete zur Laufzeit aber im Unterverzeichnis data von txt2pho. Deshalb erstellen Sie nun symbolische Verknüpfungen.

Geben Sie Folgendes in die Kommandozeile ein:

ln -s /usr/local/mbrola/de1/de1 /usr/local/mbrola/txt2pho/data/de1
ln -s /usr/local/mbrola/de2/de2 /usr/local/mbrola/txt2pho/data/de2
ln -s /usr/local/mbrola/de3/de3 /usr/local/mbrola/txt2pho/data/de3
ln -s /usr/local/mbrola/de4/de4 /usr/local/mbrola/txt2pho/data/de4
ln -s /usr/local/mbrola/de5/de5 /usr/local/mbrola/txt2pho/data/de5
ln -s /usr/local/mbrola/de6/de6 /usr/local/mbrola/txt2pho/data/de6
ln -s /usr/local/mbrola/de5/de5 /usr/local/mbrola/txt2pho/data/de7
ln -s /usr/local/mbrola/de6/de6 /usr/local/mbrola/txt2pho/data/de8

Um Kommandos ausführen zu können, müssen Sie sie als ausführbar markieren.

Geben Sie Folgendes in die Kommandozeile ein:

chmod a+x /usr/local/mbrola/txt2pho/txt2pho
chmod a+x /usr/local/mbrola/txt2pho/pipefilt/pipefilt

Wenn Sie nicht wissen, was Sie mit dem Kommando preproc anstellen können, lesen Sie die README-Datei oder überspringen Sie einfach den folgenden Kommandoblock.

Geben Sie Folgendes in die Kommandozeile ein:

cd /usr/local/mbrola/txt2pho/preproc/
make preproc
chmod a+x /usr/local/mbrola/txt2pho/preproc/preproc
ln -s /usr/local/mbrola/txt2pho/preproc/preproc /usr/local/bin/preproc

Eigentlich wären Sie nun fertig. Um sich die fortwährende Eingabe der kompletten Pfade zu ersparen, erstellen Sie symbolische Verknüpfungen für die ausführbaren Dateien in dem Verzeichnis /usr/local/bin. Dieses Verzeichnis sollte bereits im Suchpfad enthalten sein.

Wenn Sie den Suchpfad anzeigen wollen, geben Sie Folgendes in die Kommandozeile ein:

echo $PATH

Wenn Sie die symbolischen Verknüpfungen erzeugen wollen, geben Sie Folgendes in die Kommandozeile ein:

ln -s /usr/local/mbrola/mbrola-linux-i386 /usr/local/bin/mbrola
ln -s /usr/local/mbrola/txt2pho/txt2pho /usr/local/bin/txt2pho
ln -s /usr/local/mbrola/txt2pho/pipefilt /usr/local/bin/pipefilt

Nun werden keine root-Rechte mehr benötigt.

Um als Benutzer ohne root-Rechte fortzufahren, geben Sie Folgendes in die Kommandozeile ein:

exit
whoami

Der letzte Befehl zeigt Ihnen an, als welcher Benutzer Sie nun fortfahren. Es sollte Ihr gewöhnlicher Benutzername (nicht root) sein.

Im neu angelegten mbrola-Verzeichnis /usr/local/mbrola finden Sie eine Beispiel-Konfigurationsdatei für die Anwendung txt2pho (.txt2phorc), die Sie nun in Ihr Heimatverzeichnis /home/<ihr-benutzername> kopieren sollten. Der Punkt vor dem letzten txt2phorc ist beabsichtigt.

Geben Sie Folgendes in die Kommandozeile ein:

cp /usr/local/mbrola/txt2pho/txt2phorc /home/<ihr-benutzername>/.txt2phorc	
cd /home/<ihr-benutzername>/

Editieren Sie nun die versteckte Datei .txt2phorc, wie folgt mit einem Texteditor Ihrer Wahl (z.B. gedit):

DATAPATH=/usr/local/mbrola/txt2pho/data/
INVPATH=/usr/local/mbrola/txt2pho/data/

Sie müssen noch die Rechte für Sie passend setzen. Ersetzen Sie <ihr-benutzername>:<ihre-gruppe> und <ihr heimat-verzeichnis> entsprechend.

Geben Sie Folgendes in die Kommandozeile ein:

chown <ihr-benutzername>:<ihre-gruppe> /home/<ihr-heimat-verzeichnis>/.txt2phorc

Erste Tests durchführen

Wenn Sie txt2pho testen wollen, geben Sie Folgendes in die Kommandozeile ein:

txt2pho -i /usr/local/mbrola/txt2pho/demo/anno02.txt -o anno.pho

Die Anwendung txt2pho hat die Datei anno02.pho im aktuellen Verzeichnis erzeugt. Sie können Sie mit einem Texteditor betrachten.

Wenn Sie mbrola mit der weiblichen Stimme (de3) testen wollen, geben Sie Folgendes in die Kommandozeile ein:

mbrola /usr/local/mbrola/txt2pho/data/de3 anno02.pho anno02.wav

Die Anwendung mbrola hat die Datei ann02.wav im aktuellen Verzeichnis erzeugt. Sie können die Datei anhören. Eine weiblichen Stimme spricht.

Wenn Sie lame testen wollen, geben Sie Folgendes in die Kommandozeile ein:

lame -m m -b 16 -v -V 8 -s 22.05 anno02.wav anno02.mp3

Die Anwendung lame hat die Datei anno02.mp3 im aktuellen Verzeichnis erzeugt. Sie können die Datei anhören. Eine weiblichen Stimme spricht.

Bash-Datei erstellen

Wenn Sie sich die Eingabe der aufeinander folgenden Kommandos sparen wollen, erstellen Sie doch eine Bash-Datei.

  1. Erstellen Sie dazu einen neue Textdatei mit Ihrem Texteditor.
  2. Kopieren Sie den folgenden Textblock in die Textdatei.
    #!/bin/bash
    txt2pho -i $1.txt -o $1.pho 
    mbrola /usr/local/mbrola/txt2pho/data/$2 $1.pho $1.wav
    lame -m m -b 16 -v -V 8 -s 22.05 $1.wav $1.mp3
    
  3. Speichern Sie die Datei in Ihrem Heimatverzeichnis als text2speech.sh .
  4. Markieren Sie die Datei als ausführbar.
    Geben Sie Folgendes in die Kommandozeile ein:
    chmod a+x text2speech.sh
    

So rufen Sie die Bash-Datei mit beiden Parametern im aktuellen Verzeichnis auf:

./text2speech.sh <name der textdatei ohne erweiterung> <de1-8>

Beispiel: Um die Datei test.txt mit der weiblichen Stimme de1 zu sprechen und in eine Datei test.mp3 umzuwandeln, geben Sie Folgendes in die Kommandozeile ein:

./text2speech.sh test de1

Herzliche Glückwunsch, Sie haben es geschafft.