ubuntuusers.de

eSpeak

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


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

Diese Revision wurde am 14. Mai 2021 12:41 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sprachausgabe, TTS, Barrierefreiheit, Bildung, Kommunikation, Büro, Multimedia