eSpeak
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
eSpeak 🇬🇧 ist ein Open-Source-Sprach-Synthesizer, der Ausgaben in vielen Sprachen erzeugen kann. eSpeak ist eine Weiterführung des Programms "speak", und wird seit 1995 entwickelt. Die Spracherzeugung erfolgt vollständig synthetisch (Formantsynthese), was kleine Sprachdateien und hohes Sprechtempo ermöglicht, aber zu künstlicheren Ergebnissen führt als bei größeren Sprach-Synthesizern, die auf natürlichen Sprachaufnahmen basieren. Es handelt sich um ein reines Kommandozeilenwerkzeug. Eine direkte Aufnahme der Ausgabe als .wav-Datei ist möglich. Es dient auch als Basis für andere Programme (z.B. Gespeaker), die zur Spracherzeugung auf eSpeak zurückgreifen.
Hinweis:
Die Entwicklung von eSpeak stagnierte seit April 2015, letzte Version war 1.48.15. Allerdings wird das Programm unter der Bezeichnung eSpeak NG (Version 1.50.x und ggf. höher) weitergeführt; es kann neben oder statt eSpeak ab Ubuntu 18.04 aus den Quellen installiert werden. Die Syntax ist weitgehend gleich. Mit dem Paket espeak-ng-espeak existiert auch die Möglichkeit, andere Programm automatisch die neue Version verwenden zu lassen.
Installation¶
eSpeak liegt in den Paketquellen vor und kann so installiert[1] werden:
espeak (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install espeak
Oder mit apturl installieren, Link: apt://espeak
Bedienung¶
Die allgemeine Syntax auf der Kommandozeile[2] lautet:
espeak [OPTIONEN(EN)] ["TEXT IN ANFÜHRUNGSZEICHEN"]
Die Ausgabe kann über vielfältige Optionen angepasst werden; dies betrifft die Sprachgeschwindigkeit, -höhe, -lautstärke, Länge der Pause, Emphasis für Hauptwörter etc. Auch lassen sich unterschiedliche Eingabe-Formate verwenden. eSpeak kann außerdem verwendet werden, um Ausgaben in phonetischer Umschrift zu erzeugen, und auch zum Erstellen neuer Sprachanweisungen aus vorliegenden Wörterbuch-Dateien. Es können auch mbrola-Stimmen verwendet und bearbeitet werden, sie werden über spezielle Kürzel aufgerufen (z.B. mb-de4
).
Hinweis:
Wenn es keine Ausgabe zu geben scheint, ist ggf. die Wiedergabe für das Alsa-Plugin in den Soundeinstellungen stumm gestellt. Das scheint bei Erstaufruf nach Systemstart aus unerfindlichen Gründen der Fall zu sein (siehe auch Probleme und Lösungen)!
Beispiele¶
espeak -vde "zu sprechender Text" # mbrola-Sprache über -vmb-deX
spricht den angegebenen Text nach den Regeln der deutschen Sprache.
espeak -vde -f ZU_SPRECHENDE_TEXTADATEI
gibt die angegebene Datei in gleicher Weise aus.
espeak -vde -f -m ZU_SPRECHENDE_HTML
gibt die angegebene HTML-Datei in gleicher Weise aus.
espeak -vde -f ZU_SPRECHENDE_TEXTDATEI -w Sprachausgabe
schreibt die Textdatei als .wav-Klangdatei gewandelt.
Optionen¶
eSpeak-Optionen | |
Option | Funktion |
-f TEXTDATEI | wiederzugebende Textdatei |
--stdin | Text der Standardeingabe (stdin) statt einer Textdatei wiedergeben |
Wenn weder -f noch --stdin angeben ist, werden eingegebene Wörter gesprochen, oder der Text der Standardeingabe zeilenweise ausgegeben. | |
-a WERT | Lautstärke, Werte von 0 bis 200 , Standard ist 100 |
-g WERT | Wort-Zwischenräume. Pause zwischen den Wörtern, in 10ms-Einheiten bei Standardgeschwindigkeit (siehe -s ) |
-k WERT | Gebe Großbuchstaben wieder: 1 = Klicklaut bei einem Großbuchstaben oder zwei Klicklaute, wenn das Wort nur aus Großbuchstaben besteht, 2 = dem Wort "capitals", höherer Werte führen zu einer Erhöhung der Stimmlage (z.B. -k20 ) |
-l WERT | Zeilenlänge. Wenn nicht 0 gesetzt ist (Standardeinstellung), werden Zeilen, die kürzer als diese Länge sind, als Phrasen-Ende betrachtet |
-p WERT | Anpassung der Tonhöhe,Werte von 0 bis 99, Standard ist 50 |
-s WERT | Sprechgeschwindigkeit in Wörtern pro Minute, Werte von 80 bis 450, Standard ist 175 |
-v STIMMNAME | Verwendet die Sprachdatei dieses Namens aus /usr/share/espeak-data/voices, erweiterbar um [+Varianten] , +m1, +m2, +m3, +m4, +m5, +m6, +m7 , männliche Stimmen, +f1, +f2, +f3, +f4 , weibliche Stimmen, sowie +croak (Krächzen) and +whisper (Flüstern) - die Varianten sind für MBROLA-Stimmen nicht nutzbar! |
-w WAVE_DATEINAME | Ausgabe wird in diese Wave-Datei geschrieben, statt sie direkt auszugeben |
-b WERT | Textencodierung der Eingabedatei, 1=UTF8, 2=8 bit, 4=16 bit |
-m | Verarbeitet SSML, und ignoriert andere < >-Tags |
-q | Keine Stimmausgabe (ggf. nützlich mit -x ) |
-x | Schreibt Phoneme-Abkürzungen in einer SAMPA-Notierung 🇬🇧 nach stout |
-X | Schreibt Phoneme-Abkürzungen und Übersetzung (translation trace) nach stdout |
-z | Keine abschließende Satzpause am Ende des Textes |
--compile=STIMMENNAME | Erstelle Ausspracheregeln und Wörterbuch aus dem derzeitigen Wörterbuch, STIMMENNAME legt die Sprache fest |
--ipa | Gibt Phoneme im Internationales_Phonetisches_Alphabet (IPA) an stdout aus |
--path="PFAD" | Legt den Pfad fest, in dem sich das eSpeak-Daten-Verzeichnis befindet |
--pho | Schreibt mbrola-Phonem-Daten (.pho) nach stdout oder in die mit --phonout festgelegte Datei |
--phonout="DATEINAME" | Schreibt die Phonem-Ausgabe von -x -X --ipa and --pho in diese Datei |
--punct="ZEICHEN" | Spricht die Zeichennamen der angegebenen Satzzeichen, wenn =ZEICHEN ausgelassen wird, werden alle Satzzeichen gesprochen. |
--split="MINUTEN" | Beginnt alle angegebenen Minuten eine neue .wav-Datei, mit -w verwenden |
--stdout | Schreibt die Sprachausgabe nach stdout |
--voices=SPRACHE | Listet die verfügbaren Stimmen der angegebenen Sprache auf; ohne Sprachangabe werden alle verfügbaren Stimmen aufgelistet. Installierte mbrola-Stimmen werden nur bei Angabe der Sprache ausgegeben, z.B. espeak --voices=de |
Weitere Informationen in der Online-Dokumentation 🇬🇧
Deutsche Sprachpakete (mbrola)¶
Für verbesserte deutsche Sprachausgabe empfiehlt sich die Installation folgender Pakete:
mbrola (multiverse)
mbrola-de2 (multiverse)
mbrola-de3 (multiverse)
mbrola-de4 (multiverse)
mbrola-de5 (multiverse)
mbrola-de6 (multiverse)
mbrola-de7 (multiverse)
Befehl zum Installieren der Pakete:
sudo apt-get install mbrola mbrola-de2 mbrola-de3 mbrola-de4 mbrola-de5 mbrola-de6 mbrola-de7
Oder mit apturl installieren, Link: apt://mbrola,mbrola-de2,mbrola-de3,mbrola-de4,mbrola-de5,mbrola-de6,mbrola-de7
Dies lässt sich bspw. so nutzen:
espeak -vmb-de5 -b1 "Das ist ein Test."
Um den aktuell ausgewählten Text vorlesen zu lassen, kann xsel installiert werden:
xsel (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install xsel
Oder mit apturl installieren, Link: apt://xsel
Dann:
xsel | espeak -vmb-de5 -b1 &> /dev/null
Probleme und Lösungen¶
Kein Ton über USB-Soundkarten¶
eSpeak kann Probleme damit haben, den Sound über USB-Soundkarten auszugeben. Trotz hochgeregeltem Soundausgang (siehe Alsamixer) wird ohne weiteren Kommentar im Terminal keine Ton ausgegeben. Abhilfe schafft es, den Ton über stdout auf z.B aplay oder paplay: zu "pipen":
espeak -vde "zu sprechender Text" --stdout | aplay
Ggf. wird die Ausgabe aber auch nur "fehlgeleitet"; zur Überprüfung bei laufender - wenn auch stummer - Ausgabe im pavucontrol-Fenster im "Wiedergabe"-Reiter das Ausgabemodul für die espeak-Wiedergabe anschauen und ggf. ein passendes Modul auswählen.
Alternativen¶
Sprachausgabe - Übersichtsseite
Festival - weiterer Sprachgenerator, basierend auf "natürlichen" Stimmen
Gespeaker - Frontend mit komfortablerer Bedienung
Skripte/Book-To-MP3 - Skript zum Vorlesen aus etlichen Dateiformaten, Skripte/pdf2mp3 - ähnliches Python-Skript
xsane2speech - Dokumente direkt aus XSane heraus "vorlesen" und als .mp3 archivieren
Omilo - GUI zur Sprachausgabe für Mary, Flite und Festival
Links¶
Projektseite 🇬🇧
MBROLA 🇬🇧
TextToSpeech 🇬🇧 auf ubuntu.com
fullcirclemagazine 🇬🇧 - Artikel in Full Circle 150, Seite 14-17 zu Verwendung von espeak-ng in Python-Programmen