Zum Inhalt springen
Raspberry Pi Projekte Fortgeschrittene · Aktualisiert am 24. Juli 2026

Text To Speech mit Python – So vertonst du Texte

Python Text to Speech

In diesem Tutorial lernst du zwei Methoden kennen, mit denen du in Python Text in gesprochene Sprache umwandeln kannst. Mit Text to Speech kannst du in deinen Projekten zum Beispiel eine Sprachausgabe umsetzen.

Die erste Möglichkeit ist die Python-Bibliothek gTTS, mit der du kostenlos Texte vertonen lassen kannst. Als zweite Methode lernst du eine API-Funktion von OpenAI kennen. Diese Variante ist kostenpflichtig – allerdings hört sich das Ergebnis hierfür auch weit besser an.

Vorbereitung: eine virtuelle Umgebung anlegen

Bevor du loslegst, ein kurzer Hinweis: Auf aktuellen Systemen – besonders auf dem Mac – lassen sich Python-Bibliotheken oft nicht mehr direkt global installieren. Wenn du bei pip3 install die Fehlermeldung externally-managed-environment siehst, ist das der Grund. Die saubere Lösung ist eine virtuelle Umgebung (venv), in der du deine Pakete getrennt vom System-Python installierst.

Lege dir dafür im Ordner deines Projekts einmalig eine Umgebung an und aktiviere sie:

python3 -m venv tts-env
source tts-env/bin/activate

Sobald die Umgebung aktiv ist (du erkennst das am Präfix (tts-env) in der Kommandozeile), kannst du die Bibliotheken wie unten beschrieben mit pip3 installieren. Später beendest du die Umgebung wieder mit dem Befehl deactivate. Wenn du Python über den Installer von python.org eingerichtet hast und die Installation bei dir ohne Fehler durchläuft, kannst du diesen Schritt auch überspringen.

Text to Speech mit gTTS (Google Text-to-Speech)

Wenn dein Projekt keine astreine Aussprache erfordert, ist die Bibliothek gTTS eine gute Wahl. Die Qualität ist nicht schlecht, allerdings hakt es bei der Aussprache oft bei Abkürzungen oder die Betonung von Satzteilen kommt durch das ein oder andere Komma durcheinander. Dafür kannst du mit diesem Python-Modul den Google-Service kostenlos verwenden – was sicherlich ein gutes Argument für einen Test ist.

Installiere zunächst die Bibliothek mit dem Befehl

pip3 install gtts

Um die Sprachausgabe zu testen, reichen drei Zeilen Python-Code:

from gtts import gTTS

tts = gTTS('Hello, world. This is a first test.')
tts.save('hello.mp3')

Nachdem du das kleine Script ausgeführt hast, öffne die Datei hello.mp3 und lausche dem Ergebnis. Bist du zufrieden?

Du kannst übrigens auch deutsche Texte vertonen lassen. Füge hierfür den Parameter lang=’de‘ hinzu:

tts = gTTS('Hallo, das ist ein erster Test.', lang='de')

Das war im Prinzip schon alles. Wenn du wissen möchtest, wie du die MP3 direkt mit deinem Python-Script abspielen kannst, wirf einen Blick in das oben verlinkte Projekt. Weitere Infos über gTTS erhältst du hier.

Text To Speech mit OpenAI

Wenn dir eine gute Sprachqualität ein paar Cent wert ist, ist OpenAI einen Versuch wert. Neben dem allseits bekannten ChatGPT findest du dort auch eine API-Funktion, mit der du Text vertonen lassen kannst. Die Integration in dein Python-Script ist dabei ähnlich einfach wie mit gTTS. Allerdings kostet der Service derzeit (Stand: Juli 2026) rund 0,015 US-Dollar je 1.000 Zeichen – was ein recht überschaubarer Preis ist. Die aktuelle Preisliste findest du hier unter Audio models.

Wenn du noch nicht mit OpenAI experimentiert hast, erfährst du in diesem Tutorial, wie du dort ein Konto und einen API-Key erstellst.

Nachdem du die Bibliothek openai (mit pip3 install openai) installiert hast, binde sie in deinem Python-Script ein. Zusätzlich benötigst du noch die Klasse Path aus dem Modul pathlib, das aber bereits vorinstalliert ist.

from pathlib import Path
from openai import OpenAI

Anschließend hinterlegst du deinen API-Key von OpenAI:

client = OpenAI(
  api_key="DEIN API-KEY",
)

Und schon kann es mit der Vertonung losgehen. Du gibst zunächst an, wie die erzeugte MP3 heißen soll – hier speech.mp3:

speech_file_path = Path(__file__).parent / "speech.mp3"

Anschließend legst du ein paar Parameter fest: Zunächst das Modell. OpenAI empfiehlt inzwischen das neuere gpt-4o-mini-tts, das eine gute Qualität mit niedrigem Preis verbindet. Daneben gibt es weiterhin die älteren Modelle tts-1 (schneller, geringere Qualität) und tts-1-hd (höhere Qualität, aber teurer). Der Parameter voice gibt vor, welche Stimme verwendet werden soll. Für gpt-4o-mini-tts stehen derzeit 13 Stimmen zur Verfügung, die du hier probehören kannst. Dort findest du auch aktuelle Informationen und Updates zu Text to Speech mit OpenAI.

Zuletzt fehlt nur noch der Text, den du vertonen lassen möchtest und der Befehl zum Speichern der MP3:

with client.audio.speech.with_streaming_response.create(
  model="gpt-4o-mini-tts",
  voice="alloy",
  input="Das Pferd frisst keinen Gurkensalat.",
) as response:
    response.stream_to_file(speech_file_path)

Und das war schon alles. Führe das Script aus – sobald es fertig ist, findest du im gleichen Ordner die Datei speech.mp3 mit deiner Sprachausgabe. Hier nun das gesamte Script:

from pathlib import Path
from openai import OpenAI

client = OpenAI(
  api_key="DEIN API-KEY",
)

speech_file_path = Path(__file__).parent / "speech.mp3"

with client.audio.speech.with_streaming_response.create(
  model="gpt-4o-mini-tts",
  voice="alloy",
  input="Das Pferd frisst keinen Gurkensalat.",
) as response:
    response.stream_to_file(speech_file_path)

Den Sprechstil mit instructions steuern

Ein Vorteil des Modells gpt-4o-mini-tts gegenüber den älteren Modellen: Mit dem zusätzlichen Parameter instructions kannst du in natürlicher Sprache vorgeben, wie der Text gesprochen werden soll – etwa Tonfall, Tempo oder Emotion. So klingt die gleiche Stimme je nach Anweisung ganz unterschiedlich.

with client.audio.speech.with_streaming_response.create(
  model="gpt-4o-mini-tts",
  voice="alloy",
  input="Das Pferd frisst keinen Gurkensalat.",
  instructions="Sprich freundlich und gut gelaunt, in einem ruhigen Tempo.",
) as response:
    response.stream_to_file(speech_file_path)

Probiere ruhig verschiedene Anweisungen aus – von „flüstere geheimnisvoll“ bis „lies die Nachricht sachlich wie ein Nachrichtensprecher“ ist vieles möglich. Der Parameter instructions funktioniert nur mit gpt-4o-mini-tts, nicht mit den älteren Modellen tts-1 und tts-1-hd.

Mit den oben beschriebenen Bibliotheken und Services hast du nun zwei Methoden zur Hand, wie du in deinem Projekt Text to Speech anwenden kannst. Ob dir eine kostenlose Vertonung reicht, oder du etwas qualitativ hochwertigeres benötigst, hängt natürlich vom Einsatzgebiet ab.

Mehr Projekte für Arduino, ESP32, Raspi & Co
Werde Mitglied bei Pollux Labs und finde dein nächstes Projekt. Zum Beispiel:
Über 100 Maker sind bereits Mitglied bei Pollux Labs
  • ESP32 Internetradio
  • Arduino Wetterstation
  • ESP8266 & Raspi Webserver
  • Automatische Bewässerung
  • ... und viele mehr!