ubuntuusers.de

eSpeak

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./espeak-logo.png 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 stagniert seit April 2015, letzte Version war 1.48.15. Allerdings wird das Programm unter der Bezeichnung eSpeak NG 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 ist in einer Standardinstallation bereits vorhanden, installiert [1] werden muss ggf. das Paket

  • espeak (main)

Paketliste zum Kopieren:

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). Unter Ubuntu 16.04 funktioniert allerdings - zumindest unter 64-bit-Systemen - das in den Quellen befindliche mbrola-Paket nicht (siehe Hinweis bei mbrola).

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 🇬🇧

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 auswählen.

Alternativen

  • Sprachausgabe - Übersichtsseite

  • Festival - weiterer Sprachgenerator, basierend auf "natürlichen" Stimmen

  • Gespeaker - Frontend mit komfortablerer Bedienung als die hier vorgestellte GUI

  • 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

Diese Revision wurde am 2. März 2020 21:44 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sprachausgabe, TTS, Barrierefreiheit, Bildung, Kommunikation, Büro, Multimedia