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


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 Befehlxsel --output --clipboard. Folgender maßen sieht mein Skript aus - zenity muss vorher installiert worden sein ansonsten kommt eine Fehlermeldung: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+Gda 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!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/
"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.
> 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?
Natürlich entspricht das nicht meinen Werten, weshalb ich im Artikel explizit darauf hinweise.
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.....
Ich habe es ausprobiert und es funktioniert einwandfrei. Die Engine erkennt, ob es deutscher oder englischer Text ist.
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.
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!
Danke. Ja, dann mach mal. Mit Orca kannst Du über den Speech Dispatcher andere TTS-Engines einbinden. Ich bin auf Deinen Artikel gespannt.
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 aufstdinerzeugen würde. Ich würde eher sagen, dass es aufstdoutausgibt, der Rest wie gehabt.Pipes verknüpfen
stdoutdes Befehls links der Pipe mit derstdindes Befehls auf der rechten Seite.</Haarspalter-Modus>
PS: Schöner Artikel!
Danke. Ist korrigiert.
Das Paket heißt, zumindest unter Debian, "python3-gtts".
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
}
stop_voice_output() {
Überprüfe, ob eine Vorleseaktion läuft und stoppe sie
}
stop_voice_output