Vorlesen

  Ralf Hersel   Lesezeit: 3 Minuten  🗪 15 Kommentare Auf Mastodon ansehen

Eine kurze Anleitung, wie man sich beliebige Texte in hoher Qualität vorlesen lassen kann. Markieren, Tastenkürzel drücken, los geht es.

vorlesen

Für Personen mit Einschränkungen gibt es in den meisten Desktop-Umgebungen Einstellungen, mit denen man die Zugänglichkeit verbessern kann. In den GNOME-Systemeinstellungen gibt es den Menüpunkt "Barrierefreiheit". Bei KDE-Plasma und den anderen gängigen Desktop-Umgebungen wird es wohl ähnliche Einstellungen geben. Unter "Barrierefreiheit" finden sich eine Vielzahl von Optionen zu den Themen: Sehen, Hören, Tastatur und mehr. Wer möchte, kann den Zugang zur Barrierefreiheit im Systemtray einblenden:

Bevor diese Hilfsmittel funktionieren, müssen in der Regel zusätzliche Pakete installiert werden, wie z. B. Orca, wenn man sich Bildschirminhalte vorlesen lassen möchte. Standardmässig verwendet Orca Espeak-NG als Text-to-Speech-Engine (TTS). Damit lässt die Sprachausgabe zu wünschen übrig. Ihr könnt das selbst ausprobieren, indem ihr diesen Befehl im Terminal ausführt:

espeak-ng -v de -s 140 'Diese Sprachausgabe klingt wie aus der Tonne.'

Man kann Orca so konfigurieren, dass bessere TTS-Engines zum Zuge kommen. Doch das ist nicht einfach und dürfte viele Einsteiger:innen überfordern.

Bessere Ergebnisse erreicht man mit der Google-TTS-Engine (gTTS). Einerseits sollte man sich von der Herkunft nicht abschrecken lassen, weil gTTS unter der freien MIT-Lizenz steht. Andererseits verlassen die Texte euren Computer und werden auf Google-Servern von LLMs verarbeitet. Ob das wirklich so ist, habe ich getestet, indem ich meinen Rechner vom Internet getrennt habe. Natürlich ist es so: Ohne Internet funktioniert gTTS nicht.

Wem das nicht passt, kann sich eine TTS-Engine lokal installieren, wie zum Beispiel:

Bei allen bisher erwähnten TTS-Engines (ausser Espeak) kommen LLMs zur Anwendung, entweder remote oder lokal. Bei einer lokalen Installation (z. B. bei Chatterbox) müsst ihr mindestens 500 MB Speicherplatz einkalkulieren. Die konkrete Verwendung dieser KI-Modelle, um sich Text in deutscher Sprache vorlesen zu lassen, ist noch einmal eine ganz andere Sache. Nur so viel: Einfach ist es nicht.

Damit dieser Artikel für euch ein Erfolgserlebnis ist, bleibe ich bei der freien, aber KI-basierten Lösung gTTS. Um euren Text wohlklingend wiedergeben zu können, sind ein paar Installationen vonnöten:

  • python-gtts (installiert das bitte über den Paketmanager eurer Distro, und nicht über PIP)
  • wl-clipboard (Wayland clipboard utilities)
  • Ein Audio-Player, der stdin entgegennimmt, z. B. MPV

Vermutlich braucht ihr nur gTTS zu installieren, weil der Rest ohnehin schon auf eurem Rechner bereitsteht. Nun könnt ihr diesen Befehl (bzw. Befehlskette) im Terminal ausprobieren:

wl-paste | gtts-cli - -l de | mpv -

Vorher müsst ihr einen beliebigen Text in die Zwischenablage kopieren (Ctrl+c). Nach dem Ausführen dieser Befehlskette, sollte der Text mit einer Frauenstimme vorgelesen werden. Falls das bei euch nicht funktioniert, empfehle ich, die drei Befehle separat auszuprobieren. Doch was macht die Befehlskette?

  • wl-paste ist Teil von wl-clipboard und stellt den Inhalt der Zwischenablage zur Verfügung. Der kopierte Text wird nun an den nächsten Befehl weitergeleitet (pipe).
  • gtts-cli ist die Kommandozeilen-Version von python-gtts. Der erste Bindestrich nimmt den Text von wl-paste entgegen. '-l de' stellt die Wiedergabesprache auf Deutsch ein. Das Ergebnis ist ein Audio-Stream auf stdout.
  • mpv - empfängt den Audio-Stream von stdin.

Wer möchte, kann sich diese Befehlskette als Alias in der Shell-Konfiguration ablegen. (Falls jemand nicht weiss, was eine Shell-Konfiguration ist, dann fragt bitte in den Kommentaren nach.)

vorlesen='wl-paste | gtts-cli - -l de | mpv -'

But wait, there is more! Der Wechsel von der Stelle, wo ihr den Text kopiert habt, in das Terminal, ist nicht benutzerfreundlich. Besser ist es, wenn man das Vorlesen mit einer Tastenkombination an Ort und Stelle starten kann. Dazu erstellt ihr das Shell-Skript vorlesen.sh mit diesem Inhalt:

#!/bin/bash
# Take text from clipboard and speak it via gTTS and MPV
wl-paste | gtts-cli - -l 'de' | mpv -

Jetzt erstellt ihr in den Systemeinstellungen ein Tastenkürzel für dieses Shell-Skript, z. B. Ctrl+Alt+L wie 'Lesen'. Ab jetzt könnt ihr an beliebiger Stelle einen Text kopieren, Ctrl+Alt+L hämmern, und es wird vorgelesen.

Warnung: Wer seine Daten nicht an Google schicken möchte und die Verwendung von LLMs ablehnt, sollte seine Finger von gTTS lassen.

Titelbild: Image by Peggy und Marco Lachmann-Anke from Pixabay

Quellen: im Text

Tags

Barrierefreiheit, TTS, gTTS, Vorlesen, Screenreader, Orca

Claudia
Geschrieben von Claudia am 10. März 2026 um 10:38

Hallo Ralf,

danke dir für diesen Beitrag. Ich habe mir sofort das Skript erstellt, dass bei Maus Selektion funktioniert. Da ich Xfce4 verwende und noch X11 nutze ich xsel --output --primary, ansonsten wer per Strg+X oder Strg+C es haben möchte benötigt folgenden Befehl xsel --output --clipboard. Folgender maßen sieht mein Skript aus - zenity muss vorher installiert worden sein ansonsten kommt eine Fehlermeldung:

#!/bin/bash

text=$(xsel --output --primary)
if [[ -n "${text}" ]]; then
    echo "${text}" | gtts-cli - -l de | mpv -
else
    zenity --error --text="No text copied" --ellipsize
fi

Ich liebe es, das vorlesen lassen. Jetzt muss ich nur aufpassen, dass ich keinen Text markiere und vorlesen lasse, der Sicherheitstechnich relevant ist. Achso Tastenkombination ist bei mit Windows-Key+G da Win+L = Bookmark und Win+R = Run schon vergeben sind. Windows-Taste wird unter Linux Super genannt, falls die Aussage mehr anklang findet. Ich war ja mal eine Zeitlang Windows Nutzer, aber jetzt ein Power Nutzer!

Robert
Geschrieben von Robert am 10. März 2026 um 12:40

Die Auswahl einer angenehmen Stimme (Sound,Akzent,Phonetic,Geschwindigkeit,Gender/Robotic) oder deren Anpassung an die eigenen Bedürfnisse, kann schon eine kleine Herausforderung sein. Nicht umsonst existieren bei vielen der TTS-Systeme hunderte von verschiedenartigen Stimmen. Die Artikelüberschrift lautet zwar "Vorlesen", ich empfinde dazu passend das "Schreiben" als ebenso wichtig!

Wer sich näher mit dem Thema Text-To-Speech (TTS) beschäftigt, erkennt schnell das die Fähigkeit von STT (Speech-To-Text) in diesem Zusammenhang mindestens genauso von Vorteil ist. Einige Leute nennen es jedoch Voice-To-Text (VTT) oder aber im Videobereich TRANSCRIPTION. Gerade im Video- und Audiobereich gibt es dafür viele automatische Dienste. Hier meine Open Source Empfehlung, die für Windows, Mac & Linux verfügbar ist https://thewh1teagle.github.io/vibe/ Und sofern du der Cloud vertraust, gibt es hier als Online Service JEDEN TAG 3 x 30 Minuten kostenlos, was für viele Personen mehr als genug sein dürfte: https://turboscribe.ai/de/

Einen ganzen Haufen gesammelter TEXT-TO-SPEECH Ressourcen: https://neoxion.net/text-speech-tools/

Jonny
Geschrieben von Jonny am 11. März 2026 um 06:37

"Handy" ist in dem Zusammenhang wärmstens zu empfehlen. Eine simpele Open Source Anwendung, die in Rust geschrieben wurde und eine Art Wrapper für gängige Spracherkennungsmodelle ist. So simpel zu installieren und einzurichten, dass sie wirklich jeder bedienen kann.

Jonny
Geschrieben von Jonny am 11. März 2026 um 06:41

> Andererseits verlassen die Texte euren Computer und werden auf Google-Servern von LLMs verarbeitet.

Ist das denn im Einklang mit Deinen Werten und den Werten von GNU/Linux.ch Ralf?

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 11. März 2026 um 10:50

Natürlich entspricht das nicht meinen Werten, weshalb ich im Artikel explizit darauf hinweise.

BuffaloBill
Geschrieben von BuffaloBill am 10. März 2026 um 19:22

Ich hatte bisher immer Probleme mit Englischen Begriffen in deutschen Texten. Das hat bei mir noch kein einziges TTS geschafft. Wirklich witzig wär es jetzt zum Beispiel DIESEN Artikel durch die von dir genannten TTS Englines zu jagen un zu prüfen ob irgendeines die Zeile "but wait, there is more" halbwegs sinnvoll wiedergeben kann.....

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 10. März 2026 um 20:54

Ich habe es ausprobiert und es funktioniert einwandfrei. Die Engine erkennt, ob es deutscher oder englischer Text ist.

UbIx
Geschrieben von UbIx am 10. März 2026 um 20:46

Bei KDE/Plasma findet man die barrierefreiheits Einstellungen in den "Systemeinstellungen" "Zugangshilfen" (Tipp: man kann auch nur im Startmenü (Aufruf über die "Windows" oder "Tux" Taste, je nach PC 😉, und tippen (Zwischenablage via +) von "Zugangshilfen" öffnen. Natürlich muss "orca" hier mit seinen Abhängigkeiten installiert sein. Je nach distro werden dann automatisch auch einige TTS installiert.

Mancus Nemo
Geschrieben von Mancus Nemo am 10. März 2026 um 20:54

Toller Artikel, aber warum hat man nicht auch ein Beispiel für Datenschutzfreunde dazu gepackt. Ich finde die espeak Stimme eher sogar gut, weil alles präzise ausgesprochen wird. Dann kann man die Stimme auch auf extrem schnell stellen. Bei den neuen Stimmen die hören sich zwar toll an, aber Sprechen dann einige Laute schlecht aus und dann kannst du die nicht schnell stellen. Daran erkenne ich gut, ob die Stimme was taugt. Mir ist verstehen wichtiger wie "Schön Klingen".

Die Klaut versuche ich eher zu meiden, da die Klaut klaut. Weiß doch jeder der in der IT-Materie drin ist!

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 10. März 2026 um 21:02

Danke. Ja, dann mach mal. Mit Orca kannst Du über den Speech Dispatcher andere TTS-Engines einbinden. Ich bin auf Deinen Artikel gespannt.

linuxer
Geschrieben von linuxer am 11. März 2026 um 09:18

Hi,

zum interessanten Thema kann ich wenig beitragen, aber auf einen kleinen Fehler hinweisen:

<Haarspalter-Modus>

Im Artikel steht bei der Erklärung der Befehlskette wl-paste | gtts-cli - -l de | mpv , dass gtts-cli eine Audio-Stream auf stdin erzeugen würde. Ich würde eher sagen, dass es auf stdout ausgibt, der Rest wie gehabt.

Pipes verknüpfen stdout des Befehls links der Pipe mit der stdin des Befehls auf der rechten Seite.

</Haarspalter-Modus>

linuxer
Geschrieben von linuxer am 11. März 2026 um 09:19

PS: Schöner Artikel!

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 11. März 2026 um 10:49

Danke. Ist korrigiert.

Jens
Geschrieben von Jens am 11. März 2026 um 10:31

Das Paket heißt, zumindest unter Debian, "python3-gtts".

maik
Geschrieben von maik am 3. Mai 2026 um 12:18

Oder einfach über Pied https://pied.mikeasoft.com mit z.B. Thorsten Voice ohne google

selected_text=$(xclip -o -selection primary) if [ -n "$selected_text" ]; then spd-say "$selected_text" fi

und zum stoppen

check_voice_output() {

Überprüfe, ob ein Soundausgabegerät gerade benutzt wird

if pacmd list-sink-inputs | grep -q "application.name = \"paplay\"" || pgrep -x "aplay" >/dev/null || pgrep -x "paplay" >/dev/null
then
    return 0 # Erfolg, Schnell- oder Langsam-Vorleseaktion läuft
else
    return 1 # Fehler, keine Vorleseaktion läuft
fi

}

stop_voice_output() {

Überprüfe, ob eine Vorleseaktion läuft und stoppe sie

if check_voice_output
then
    pacmd list-sink-inputs | grep -E "application.name = \"paplay\"" | awk '{print $1}' | xargs -I{} pacmd kill-sink-input {}
    pkill -x "aplay"
    echo "Vorleseaktion(en) gestoppt."
    spd-say "Sprachausgabe gestopptt"
    rm -f /tmp/out*
else
    echo "Keine Vorleseaktion läuft. Keine Aktion erforderlich."
fi

}

stop_voice_output