ubuntuusers.de

Sprachausgabe

Sprachausgabe ("Text-to-Speech", TTS) ist die Möglichkeit, geschriebenen Text in gesprochene und damit hörbare Sprache umzuwandeln. Die Ausgabe von Text als Sprache ist Teil des barrierefreien Ubuntu: Barrierefreiheit. Dazu gehört

"Einfache" Programme wie eSpeak nutzen synthetische "Computer"-Stimmen. Anspruchsvoller ist die digitale Sprachsynthese auf der Basis menschlicher Sprecher.

Einfache Sprachausgabe

Hierbei geht es darum, einen gewünschten Text als gesprochene Sprache wie ein Hörbuch auszugeben. Die nachstehenden Programme eSpeak und Festival werden gern von komplexeren Programmen als Basis zur Phonemerzeugung verwendet.

eSpeak

eSpeak/espeak-logo.png eSpeak/eSpeak NG ist ein Open-Source-Sprach-Synthesizer, der Ausgaben in vielen Sprachen erzeugen kann. Die Spracherzeugung erfolgt vollständig synthetisch (Formantsynthese). Es handelt sich um ein reines Kommandozeilenwerkzeug. Eine direkte Aufnahme der Ausgabe als .wav-Datei ist möglich. eSpeak dient auch als Basis für andere Programme (z.B. Gespeaker), die zur Spracherzeugung darauf zurückgreifen.

Gespeaker

Gespeaker/gespeaker-logo.png Gespeaker ist ein GTK+-Frontend für eSpeak. Es kann verwendet werden, um eingegebenen Text direkt als Sprache auszugeben, oder vorhandene Texte (*.txt) vorlesen zu lassen. Dabei können auch gleich Aufnahmen im .wav-Format erstellt werden. Neben den in eSpeak vorhandenen Stimmen lassen sich auch die "schöneren", natürlicher klingenden Stimmen des MBROLA-Projekts 🇬🇧 nutzen.

Festival

Festival liefert ein Gerüst zur Sprachwiedergabe (TTS - "Text-to-Speech"). Das Projekt wird von der Universität Edinburgh entwickelt. Es lassen sich Module für etliche Sprachen integrieren; der Zugriff kann über verschiedene Wege erfolgen: über die Kommandozeile, einen Scheme-Interpreter, als Server, über Java oder eine Emacs-Schnittstelle. Standardmäßig wird Englisch als Ausgabe-Sprache verwendet; es lassen sich aber weitere Sprachen integrieren. Die vollständige Dokumentation, auch zum Erstellen neuer Sprachen/Stimmen, ist über das Projekt festvox.org 🇬🇧 der Carnegie Mellon University beziehbar.

Flite

Flite (Festival lite) ist ein kleines Laufzeit-Sprachsynthesizer-Programm, das auf Festival basiert, aber vollständig in C verfasst ist. Das Programm wurde an der Carnegie Mellon University 🇬🇧 entwickelt. Es ist als Ausgabemodul für andere Programme oder Server konzipiert, Flite kann beispielsweise in Archiv/Jovie oder Archiv/KMouth eingesetzt werden. Das Programm ist mit den Festival-Stimmen kompatibel, beim Kompilieren ließen sich auch weitere Stimmen aus festvox 🇬🇧 einbeziehen.

Omilo

Omilo/omilo-qt5.png Omilo (abgeleitet vom griech. ομιλία - Sprache) ist ein Programm zur Textumwandlung, das Festival, Flite oder Open Mary 🇬🇧 als Sprachausgabe verwenden kann. Es lassen sich beliebige Texte oder Textdateien in Sprache umwandeln und als Wave-Dateien abspeichern.

Thorsten-Voice

Thorsten-Voice/Logo_Thorsten-Voice.jpg Thorsten-Voice ist eine freie, deutsche, künstliche TTS-Stimme auf Basis eines menschlichen Sprechers. Die Stimme kann komplett lokal erzeugt werden und benötigt als Voraussetzung lediglich eine Python Umgebung. Eine Ausgabe der Stimme als .wav-Datei ist möglich.

SVOX - pico2wave

pico2wave von SVOX ist ein vollwertiger Sprachsynthesizer für die Kommandozeile, der Texte in deutsch, englisch/amerikanisch, italienisch, französisch und spanisch in eine Wave-Datei umwandeln kann. Verwendet werden "Hidden Markov Model-Algorithmen" (HMM) zur Spracherzeugung.

Benötigt werden die Pakete

  • libttspico-utils

  • sox

Befehl zum Installieren der Pakete:

sudo apt-get install libttspico-utils sox 

Oder mit apturl installieren, Link: apt://libttspico-utils,sox

Die Befehlssyntax auf der Kommandozeile ist

pico2wave --lang SPRACHKÜRZEL --wave DATEINAME.wav  "TEXT" 

Verwendbare Sprachkürzel sind de-DE, en-US, en-GB, es-ES fr-FR, it-IT. Eine direkte Wiedergabe kann z.B. mit einer Eingabe wie

pico2wave --lang de-DE --wave /tmp/Test.wav "Hier folgt der Test-Text" ; play /tmp/Test.wav; rm /tmp/Test.wav 

erfolgen; hier wird play aus SoX für die Ausgabe verwendet, die Testdatei in /tmp anschließend gleich wieder gelöscht.

In gewissem Umfang lassen sich auch Textdateien direkt wiedergeben (bis ca. 35 kb Größe, UTF-8-Kodierung), hier ein Beispielskript, mit dem das möglich ist (Wiedergabe erfolgt mit ffplay):

1
2
3
4
#!/bin/bash
pico2wave -l=de-DE -w=/tmp/test.wav "$(cat ${1})"
ffplay -f wav -loglevel 0 >/dev/null -x 100 -y 50  -vn -autoexit /tmp/test.wav
rm /tmp/test.wav

Das Skript abspeichern (z.B. als svox.sh in /usr/local/bin, um es systemweit nutzen zu können) und ausführbar machen, Aufruf erfolgt im Terminal über

svox.sh TEXTDATEI.txt 

Wenn die Textdatei zu umfangreich ist, erscheint umgehend die Meldung

Cannot put Text (-102): invalid argument supplied

Sprachsynthese

Um für verschiedene Aussprachen aus dem Text korrekt klingende Phoneme erstellen zu können, werden neben dem geeigneten Sprachpaket auch Sprecher, "Stimmen", benötigt.

MBROLA

Das MBROLA-Projekt 🇬🇧 stellt hierfür eine Reihe von Stimmen sehr vieler Sprachen zur Verfügung. Das Programm kann aus den Paketquellen installiert[1] werden:

  • mbrola (multiverse)

  • mbrola-de7 (multiverse, weiblich)

  • mbrola-de6 (multiverse, männlich)

  • mbrola-de5 (multiverse, weiblich)

  • mbrola-de4 (multiverse, männlich)

  • mbrola-de3 (multiverse, weiblich)

  • mbrola-de2 (multiverse, männlich)

  • mbrola-de1 (multiverse, weiblich)

  • mbrola-de8 (multiverse, bayrisch, männlich, ab 19.04)

Befehl zum Installieren der Pakete:

sudo apt-get install mbrola mbrola-de7 mbrola-de6 mbrola-de5 mbrola-de4 mbrola-de3 mbrola-de2 mbrola-de1 mbrola-de8 

Oder mit apturl installieren, Link: apt://mbrola,mbrola-de7,mbrola-de6,mbrola-de5,mbrola-de4,mbrola-de3,mbrola-de2,mbrola-de1,mbrola-de8

MBROLA stellt dabei lediglich die Ausgabe von fertigen Phonemen in Sprache mittels eigener installierbarer Stimmen zur Verfügung und kann nur mit einem Textwandelprogrammes wie eSpeak oder Festival eingesetzt werden. Sinnvoll ist daher z.B. die Kombination von Gespeaker mit MBROLA.

Hinweis:

Unter Ubuntu 16.04 funktioniert zumindest die 64-bit-Version aus den Paketquellen nicht; der Aufruf führt zu einem "Segmenation fault". Abhilfe schafft die Verwendung einer neuen Debian-Version 3.01h+2-3+b1, die z.B. von der TU Dresden ⮷ bezogen werden kann. Hintergründe dazu in diesem Debian Bug-Report 🇬🇧.

Zusätzliche Stimmen, oder zur Verwendung in älteren Ubuntu-Versionen, kann man von der Downloadseite ⮷ des Projektes herunterladen. Nach dem Entpacken [3] mit Root-Rechten [4] nach /usr/share/mbrola kopieren und die Leserechte anpassen (drwxr-xr-x für Ordner und -rwxr--r-- für Dateien). Das Verzeichnis de* sollte sich somit im Ordner /usr/share/mbrola befinden.

KDE-Accessibility-Projekt

Das KDE-Accessibility-Projekt 🇬🇧 stellt einige Programme für die Barrierefreiheit unter Ubuntu zur Verfügung. Es kann als Metapaket

  • kdeaccessibility

Befehl zum Installieren der Pakete:

sudo apt-get install kdeaccessibility 

Oder mit apturl installieren, Link: apt://kdeaccessibility

installiert[1] werden. Es handelt sich dabei um ein Meta-Paket, das u.a folgende Pakete auf den Rechner holt: kmag, kmousetools, kaccessible, kmouth, jovie.

Wandelprogramme Text in Tondatei

Damit kann ein Textdokument (z.B. PDF- oder ASCII-Dateien) in eine Tondatei umgewandelt und dann mit einem üblichen Audiospieler wiedergegeben werden. In der Regel handelt es sich um Skripte, die auf der Kommandozeile[6] auszuführen sind.

abtool

abtool ist eine Weiterentwicklung von Book-To-MP3 und liefert ein umfangreiches Programm, das es ermöglicht, eine Vielzahl von Dokumenttypen einfach in MP3- bzw. OGG-Dateien umzuwandeln.

Book-To-MP3

Book-To-MP3 ist ein von Manabe entwickeltes Bash-Skript, mit dem eine Vielzahl von Textdokumenten in MP3-Dateien umgewandelt und so wiedergegeben werden können. Es verarbeitet .txt, .rtf, .pdf, .doc, .lit, .html/htm-Dateien, die Ausgabe erfolgt entweder als eine große Datei oder in mehreren kleineren Dateien. Das Skript erkennt deutsche und englische Texte automatisch und verwendet die entsprechenden Sprach-Stimmen für die Aufzeichnung.

pdf2mp3

pdf2mp3 ist ein von rennau80 entwickeltes Python-Skript. Es verbindet mehrere Programme (wie pdftotext, lame, espeak, wavbreaker), um aus einer ASCII- ( .txt, .dat) oder PDF-Datei eine Audio-Datei (.wav oder .mp3) zu erstellen. Da eSpeak verwendet wird, sind sehr viele Sprachen verfügbar. Unter diesem Foreneintrag sind zwei Code-Versionen zu finden: eine, die mit text2wave arbeitet (nur in englischer Sprache), sowie eine Version, die etliche Sprachen bei der Konvertierung zu einer Audio-Datei beherrscht.

xsane2speech

xsane2speech ist eine Wrapper-Skript für XSane, mit dem eine eingescannte Textvorlage sofort "vorgelesen" werden kann. Die dafür nötige Texterkennung erfolgt über tesseract-ocr oder Cuneiform-Linux, die Textausgabe kann über die Sprachsynthesizer-Programme eSpeak/eSpeak NG oder Festival erfolgen. Der Text wird gespeichert, er kann sowohl direkt wiedergegeben als auch via Lame als .mp3-Datei gespeichert werden. Zum Einsatz kommen außerdem Zenity (für Abfragen zum Verlauf), ggf. auch recode (zur Sicherstellung der richtigen Textkodierung).

Bildschirm-Vorleseprogramme (Screen-Reader)

Bei diesen Programmen wird alles, was am Bildschirm zu sehen ist, also auch das Menü sowie Möglichkeiten bei Eingabe- und Auswahlfenstern, akustisch ausgegeben. Das ist für Sehbehinderte wesentlich. Siehe Barrierefreiheit (Abschnitt „Screenreader“)

Orca

Orca ist der Screen-Reader der GNOME-Desktop-Umgebung, und als solcher Bestandteil der Ubuntu-Standard-Installation. Orca greift für die Sprachausgabe standardmäßig auf speech-dispatcher zurück, es können verschiedene Sprach-Synthesizer zum Einsatz kommen. Für deutschsprachige Ausgaben empfiehlt sich die Verwendung von eSpeak/eSpeak NG. Orca liefert außerdem eine Bildschirmlupe, die Ausgabe kann zudem auch in Brailleschrift erfolgen. Dabei ist das Programm sehr vielseitig konfigurierbar, sodass blinde Menschen oder Menschen mit einer Sehbeeinträchtigung/Behinderung die Ausgaben sehr dezidiert für spezielle unterschiedliche Bedürfnisse anpassen können.

Knoppix-adriane

Das bekannte Live-System "Knoppix" kann mit der Option adriane gestartet werden und funktioniert dann gleich als Bildschirmvorleseprogramm für die Menüs usw. Knoppix Adriane 🇩🇪. Wenn man ohne Optionseingabe auskommen möchte, kann man von knopper.net 🇩🇪 eine Knoppix-Version herunterladen, die automatisch mit dem Sprachausgabesystem "Adriane" (steht für "Audio Desktop Referenzimplementation und Netzwerk-Umgebung") hochfährt.

Speakup

Von der Seite linux-speakup.org 🇬🇧 gibt es ein weiteres Linuxprogramm, Speakup, das zu einem Projekt für blinde Linuxnutzer gehört.

FreeTTS

FreeTTS ist freie Software zur Sprachsynthese komplett in Java auf der Basis von Flite 🇬🇧 geschrieben und ist eine Implementierung von Suns Java Speech API. Es kann von FreeTTS 🇬🇧 heruntergeladen werden. Auch hier gibt es ein Installationsskript[6].

Onlinesysteme

Statt sich ein Programm zu installieren und einzurichten, kann man Sprachausgabe von Texteingaben auch komplett im Netz vornehmen. Meist nutzt man dazu eine Demoversion und gibt seinen Text jeweils ein. Hier nur zwei Beispiele, mehr dazu unter Kommerzielle Systeme.

./VoiceForge.png

VoiceForge

Von der Fa. Cepstral gibt es auf voiceforge.com 🇬🇧 eine Online-Demoversion, welche beliebige einkopierbare Texte oder Nachrichten auch auf Deutsch spricht (Stimmen "Katrin" oder "Matthias").

Mary

Eine weitere Online-Demoversion gibt es vom Text-To-Speech Projekt MARY 🇩🇪. Download ⮷ mit etlichen Optionen, u.a. auch der Möglichkeit, den Text als .wav-Datei auszugeben. Basiert auf Java. Die Open-Source-Version wird z.B. von Omilo für die Sprachgenerierung verwendet.

Kommerzielle Systeme

Eine hervorragende und aktuelle Übersicht über kommerzielle Systeme zur Sprachausgabe, teilweise auch als Screenreader, gibt es unter ttssamples.syntheticspeech.de 🇩🇪 jeweils mit Möglichkeit, die Qualität an Beispielsätzen zu testen. Etliche der Firmen bieten auch die Möglichkeit eines Online-Tests.

Cepstral

./Cepstral.png Hierbei handelt es sich um ein kommerzielles Programm, für welches eine Demoversion 🇬🇧 zu finden ist (s. oben Online-Version "VoiceForge").

Es gibt auch Deutsch als Sprache mit sowohl männlicher als auch weiblicher Stimme in sehr guter Qualität. Beide kann man sich zu Testzwecken herunterladen (Stimmen "Katrin" und "Matthias"). Nach dem Entpacken des tar.gz-Archivs [3] in ein Verzeichnis kann man dort das Skript install.sh ausführen[4].

sudo ./install.sh 

Ein Test mit dem Beispiel der Stimme "Katrin" sieht so aus:

swift %t -o %w -n Katrin
swift "Hallo, ein Katrin Stimmentest" 

Solange man die Stimme nicht erworben hat, bekommt man vorher jeweils einen Hinweis zu hören.

Voxin

Von Oralux.org 🇬🇧 gibt es das IBM-Programm Viavoice mit den Screenreadern JAWS und VIRGO für EUR 4,29 pro Sprache auch für Linux.

Problembehebung

PulseAudio

Falls die Sprachausgabe unvollständig sein sollte, d.h. Teile verschluckt werden, kann das an den zu niedrigen Qualitätseinstellungen von PulseAudio liegen.

Diese Revision wurde am 2. September 2022 22:50 von MrThorstenM erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Barrierefreiheit, TTS, Sprachausgabe, Multimedia, Kommunikation