3 months ago

Text to Speech mit Audiogenipy



Googles freie Text-to-Speech Engine lässt sich sehr einfach in eigenen Projekten oder im Terminal verwenden.

Gelegentlich stolpert man über Anwendungen oder Skripte, die sich auf ein, zwei, drei Befehle reduzieren lassen. In den letzten Jahren erstelle ich immer weniger grafische Benutzeroberflächen für meine Programme, weil mir das zu mühsam ist und sich der Erfolg auch über ein paar Befehle auf der Kommandozeile oder mit einem einfachen Python-Skript erzielen lässt.

Letzte Woche lief das Programm Audiogenipy durch meine Timeline - ein Python-Skript, mit dem man Texte in Audio-Dateien umwandeln kann (Text-to-Speech). Im Gist wird das als Audiobook-Ersteller angepriesen; nun gut, ein wenig Marketing kann nicht schaden. Wer nicht weiss, was ein Gist ist:

GitHub bietet eine Funktion namens GitHub Gist an, die es den Nutzern erleichtert, textbasierte Inhalte, Notizen und Codeschnipsel zu teilen. Es bietet eine einfache, leichtgewichtige Methode zum Verwalten und Teilen kleiner Inhalte wie Skripte, Konfigurationsdateien und sogar Dokumentation.

Vor drei Jahren habe ich schon einmal über Text-to-Speech geschrieben. Dieser Artikel ist nach wie vor gültig. Darin beschreibe ich den Unterschied zwischen Espeak und Googles TTS-Engine. Bevor ihr Wutpickel bekommt: Googles gTTS ist Freie Software und steht unter der MIT-Lizenz. Um es kurzzufassen, Espeak klingt wie aus der Tonne, während gTTS eine fast natürliche Sprachwiedergabe liefert. Leider ist man auf eine Frauenstimme beschränkt, kann aber die Sprache (de, en, usw.) auswählen.

In diesem Artikel möchte ich zeigen, wie man gTTS in eigenen Projekten verwenden kann. Dazu installiert man zuerst die TTS-Engine. Öffnet die Paketverwaltung eurer Distribution und sucht nach 'gtts'. Bei Manjaro findet ihr das:

Darin ist das Python-Modul und die CLI-API enthalten. Bitte installiert das Ding nicht über: pip install gTTS. Warum? Ihr wollt nicht x verschiedene Paketverwaltungen auf eurem System haben. Seid froh, wenn euer Paketmanager die nativen Pakete und Flatpaks beherrscht. Gute Paketmanager bieten auch die Python-Module an. Diese Paketnamen beginnen üblicherweise mit dem Prefix 'python-' (siehe Screenshot).

Wer gTTS in Python-Skripten verwenden möchte, braucht nicht die Bells and Whistles von Audiogenipy. Schaut man in den Code, reduziert sich die Magie auf zwei Befehle; der Rest ist Benutzerführung und Datei-Handling. Öffnet doch mal ein Terminal und ruft eine Python-Konsole auf. Dort gebt ihr das (Zeile für Zeile mit RETURN) ein:

from gtts import gTTS text = "Das ist ein Beispieltext. Er ist nicht zu lang, aber kurz." tts = gTTS(text, lang='de') tts.save('text.mp3')

Fertig ist die Wurst. Danach könnt ihr die Python-Konsole mit Ctrl+Z verlassen und euch die MP3-Datei anhören. Wer ein wenig Python kann, wird diese Befehle ohne Probleme in sein eigenes Programm einbauen können. Mit Vorteil liest man den Text aus einer Datei aus, anstatt ihn direkt als String anzugeben.

Hinweis für Einsteiger:innen

Falls ihr nur Bahnhof versteht und euch dieser Artikel zu kompliziert ist - lasst es mich in den Kommentaren wissen. Ich erkläre es gerne einfacher. Das gilt für alle Artikel bei GNU/Linux.ch - doch das ist einen eigenen Artikel wert.

P.S.: Viele Grüsse an Pascal für deine Anregung zu einsteigerfreundlichen Artikeln.

Titelbild: Stable Diffusion 'Text to Speech'

Quellen:

https://gist.github.com/ostechnix/77b89b53877bf492cef35cc59f64a795

https://ostechnix.com/audiogenipy-create-audiobook-python-gtts/

https://gtts.readthedocs.io/en/stable/license.html

https://github.com/espeak-ng/espeak-ng


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.
Gesamten Artikel lesen





© Varient 2025. All rights are reserved