Pico TTS unter Raspbian übersetzen
Um Text in Stimme zu verwandeln, wird eine TTS-Software (Text-to-Speech) benötigt. Unter Linux gibt es in der Regel zwei freie Tools: CMU Flite und eSpeak.
CMU Flite (festival-lite) existiert zuerst 2001 und ist daher schon als Sprachsynthese-Urgestein unter Linux zu bezeichnen, eSpeak existiert seit 2006. Sprachlich liefern die beiden Tools im englischsprachigen Raum durchaus brauchbare Ergebnisse, die deutschen Stimmen lassen jedoch deutlich zu wünschen übrig.
Sicherlich gibt es auch cloud-basierte TTS-Lösungen (wie beispielsweise Amazon Polly oder Google Cloud TTS) - jedoch muss hier jeder für sich selbst entscheiden, ob es eine solche nutzen will.
Mit Pico TTS gibt es eine Software aus dem Android-Projekt, die offline funktioniert und - in der deutschen Sprachausgabe - deutlich natürlicher klingt als eSpeak und Flite. Unter Debian gehören die entsprechenden Pakete zum non-free Kanal - für Raspbian existieren keine vorkompilierten Pakete.
Zur manuellen Übersetzung muss die APT-Quellenliste (/etc/apt/sources.list) angepasst werden, damit die Quellcode-Pakete zur Verfügung stehen:
1deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Anschließend wird der Quellcode bezogen:
1$ apt-get update
2$ apt-get source libttspico-utils
Zur Übersetzung sind noch einige Werkzeuge zu installieren:
1# apt-get install autoconf libtool help2man libpopt-dev debhelper
Anschließend wird in den svox
-Ordner gewechselt und die Übersetzung gestartet:
1$ cd svox-<TAB>
2$ dpkg-buildpackage -rfakeroot -us -uc
Die Übersetzung dauert auf einem Raspberry Pi 4 ca. 2 Minuten, auf einem Pi 3 knapp 4,5 Minuten.
Anschließend befinden sich im übergeordneten Ordner mehrere DEB-Pakete, wovon einige zu installieren sind:
1# dpkg -i libttspico-data_*all.deb libttspico-utils*.deb libttspico0*.deb
Falls gewünscht, können die Entwicklungswerkzeuge nun wieder deinstalliert werden, um Speicherplatz zu sparen:
1# apt-get remove --purge autoconf libtool help2man libpopt-dev debhelper
2# apt-get autoremove --purge
Nach der Installation Text mithilfe des pico2wave
-Kommandos in WAV-Dateien konvertiert werden:
1$ pico2wave -l de-DE -w output.wav "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern"