TTS:Linux - Ubuntu - txt2pho, mbrola und lame einrichten
Aus tecWiki
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.
- Hier finden Sie txt2pho
- Hier finden Sie mbrola (mbr301h.zip).
Laden Sie sich die deutschen Stimmenpakete zu mbrola herunter.
- Hier finden Sie deutsche Stimmenpakete (weiblich):
- Hier finden Sie deutsche Stimmenpakete (männlich):
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.
| Achtung! 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.
- Erstellen Sie dazu einen neue Textdatei mit Ihrem Texteditor.
- 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
- Speichern Sie die Datei in Ihrem Heimatverzeichnis als text2speech.sh .
- 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.
