Gemini Text-to-Speech
Erzeuge natürliche, ausdrucksstarke Sprache aus Text mit Google Gemini TTS. Unterstützt über 70 Sprachen, 30 vorgefertigte Stimmen und Stilkontrolle über natürliche Sprachbefehle und Audio-Tags.
Voraussetzungen: Node.js 18+, ffmpeg,
@google/genainpm-Paket,GEMINI_API_KEYUmgebungsvariable.
Verfügbare Skripte
scripts/generate-tts.mjs— All-in-One TTS-Generator mit konsistenter Stimmführung, split basierend auf Stille und automatischem Trimmen.
Schnellstart
Einzelner Text-zu-Sprache
npm install @google/genai
GEMINI_API_KEY=your-key node scripts/generate-tts.mjs \
--text "Hallo, willkommen zu unserem Produkt!" \
--output-dir public/vo \
--voice Kore
Mehrsegment-Voiceover (konsistente Stimme)
Erstelle eine segments.json:
[
{ "id": "intro", "text": "Willkommen zu unserem Produkt-Launch." },
{ "id": "features", "text": "Hier sind die drei Funktionen, die Sie lieben werden." },
{ "id": "close", "text": "Starten Sie noch heute auf unserer Webseite." }
]
Ausführen:
GEMINI_API_KEY=your-key node scripts/generate-tts.mjs \
--segments segments.json \
--output-dir public/vo \
--voice Kore \
--director-notes "Tonalität: Warmherzig, selbstbewusst, inspirierend. Stil: Professioneller Erzähler mit einem Lächeln in der Stimme. Akzent: Neutrales amerikanisches Englisch. Tempo: Moderato."
Ausgabe (JSON auf stdout):
{
"success": true,
"segments": [
{ "id": "intro", "file": "public/vo/vo-intro.mp3", "duration": 3.25 },
{ "id": "features", "file": "public/vo/vo-features.mp3", "duration": 4.10 },
{ "id": "close", "file": "public/vo/vo-close.mp3", "duration": 2.80 }
],
"totalDuration": 10.15,
"fullAudioFile": "public/vo/vo-full.wav"
}
Skript-Optionen
| Flag | Standard | Beschreibung |
|---|---|---|
--segments DATEI | — | JSON-Datei mit [{id, text}] Segment-Definitionen |
--text TEXT | — | Einzelner Text zum Generieren (Alternative zu --segments) |
--output-dir VERZ | — | Ausgabeverzeichnis für Audiodateien (erforderlich) |
--voice NAME | Kore | Name der vorgefertigten Stimme (siehe Stimmentabelle) |
--model NAME | gemini-3.1-flash-tts-preview | Gemini TTS Modell-ID |
--director-notes TEXT | — | Anweisungen zur Performance: Stil, Tempo, Akzent, Atmung, Artikulation. Kontrolliert nicht Geschlecht/Alter (dafür --voice verwenden). |
--retries N | 3 | Maximale Wiederholungsversuche bei API-Fehlern |
--trim / --no-trim | --trim | Stille an Segmentgrenzen entfernen |
--format FORMAT | mp3 | Ausgabeformat: mp3 oder wav |
Exit-Codes
| Code | Bedeutung |
|---|---|
| 0 | Erfolg |
| 1 | Fehlende erforderliche Argumente oder Umgebungsvariablen |
| 2 | API-Fehler nach erschöpften Wiederholungen |
| 3 | ffmpeg nicht installiert oder Verarbeitung fehlgeschlagen |
| 4 | Datei-I/O-Fehler |
Funktionsweise (Mehrsegment)
Gemini TTS GARANTIERT KEINE Stimmkonsistenz über separate API-Anfragen hinweg. Das Skript löst dies, indem es:
- Alle Segmente in EINEN Prompt mit
[3 Sekunden Pause]-Markierungen dazwischen kombiniert - Eine einzelne durchgehende Audiodatei in einem API-Aufruf generiert
- Stillelücken mit ffmpeg
silencedetecterkennt, unter Verwendung adaptiver Schwellenwerte (Start bei noise=-35dB, d=1.5s, schrittweise Lockerung). Wird eine exakte Übereinstimmung gefunden, wird sie direkt verwendet. Tritt ein Schwellenwertsprung auf (zu wenige → zu viele), wird die Audio mit schnellerer Sprechgeschwindigkeit neu generiert, um die Pausen zwischen den Segmenten deutlicher zu machen, und die Erkennung dann wiederholt. - An den Stille-Mittelpunkten in einzelne Segmentdateien aufteilt
- Restliche Stille (~1.5s pro Seite) von jedem Segment trimmt, dabei 0.15s Atemraum belässt
Modelle
| Modell | Am besten geeignet für |
|---|---|
gemini-3.1-flash-tts-preview | Neuestes, am steuerbarsten, 200+ Audio-Tags (Standard) |
gemini-2.5-flash-preview-tts | Schnell, gute Qualität, allgemeine Verwendung |
gemini-2.5-pro-preview-tts | Höchste Qualität, komplexe Performances |
Stimmen
30 vorgefertigte Stimmen:
| Stimme | Geschlecht | Charakter | Tonhöhe |
|---|---|---|---|
| Achernar | Weiblich | Sanft | Höher |
| Achird | Männlich | Freundlich | Mitteltief |
| Algenib | Männlich | Rauchig | Tiefer |
| Algieba | Männlich | Glatt | Tiefer |
| Alnilam | Männlich | Fest | Mitteltief |
| Aoede | Weiblich | Leicht | Mittel |
| Autonoe | Weiblich | Hell | Mittel |
| Callirrhoe | Weiblich | Lässig | Mittel |
| Charon | Männlich | Informativ | Tiefer |
| Despina | Weiblich | Glatt | Mittel |
| Enceladus | Männlich | Hauchig | Tiefer |
| Erinome | Weiblich | Klar | Mittel |
| Fenrir | Männlich | Aufgeregt | Mitteltief |
| Gacrux | Weiblich | Reif | Mittel |
| Iapetus | Männlich | Klar | Mitteltief |
| Kore | Weiblich | Fest | Mittel |
| Laomedeia | Weiblich | Fröhlich | Höher |
| Leda | Weiblich | Jung | Höher |
| Orus | Männlich | Fest | Mitteltief |
| Puck | Männlich | Fröhlich | Mittel |
| Pulcherrima | Männlich | Direkt | Mittel |
| Rasalgethi | Männlich | Informativ | Mittel |
| Sadachbia | Männlich | Lebhaft | Tiefer |
| Sadaltager | Männlich | Sachkundig | Mittel |
| Schedar | Männlich | Gleichmäßig | Mitteltief |
| Sulafat | Weiblich | Warm | Mittel |
| Umbriel | Männlich | Lässig | Mitteltief |
| Vindemiatrix | Weiblich | Sanft | Mittel |
| Zephyr | Weiblich | Hell | Höher |
| Zubenelgenubi | Männlich | Lässig | Mitteltief |
Regieanweisungen (--director-notes)
Anweisungen zur Performance für die ausgewählte Stimme. Gib nur an, was wichtig ist – zu viele Vorgaben schränken die Kreativität des Modells ein und können die Ergebnisse verschlechtern.
Die drei häufigsten Anweisungen sind Stil, Tempo und Akzent, aber du kannst alle relevanten individuellen Anweisungen zur Performance hinzufügen.
- Stil — Emotionale Qualität und Vortragscharakter. Beschreibe ausführlich:
"Ansteckende Begeisterung – der Zuhörer soll das Gefühl haben, Teil von etwas Aufregendem zu sein"funktioniert besser als nur"energetisch". Du kannst Eigenschaften schichten und Begriffe aus der Voiceover-Branche wie „stimmliches Lächeln“ verwenden. - Tempo — Gesamte Geschwindigkeit und Rhythmusvariation. Kann von
"Sprich so schnell wie möglich"bis"Unglaublich langsam und fließend, Wörter verschmelzen miteinander, null Dringlichkeit"reichen. - Akzent — Sei spezifisch.
"Britisches Englisch, wie in Croydon, England gesprochen"funktioniert viel besser als"Britischer Akzent".
--director-notes "Stil: Begeisterter und frecher GenZ-Beauty-YouTuber. Tempo: Extrem schnell, rasanter Vortrag wie bei Kurzvideo-Influencern. Akzent: Southern California valley girl aus Laguna Beach."
Audio-Tags
Inline [eckige Klammern] im Segmenttext für wortweise Steuerung. Überschreibt Regieanweisungen lokal.
[flüstert] [schreit] [aufgeregt] [ernst] [kurze Pause] [lacht] [sehr schnell] [sehr langsam] [sarkastisch] [neugierig]
Kreative Tags funktionieren auch: [wie dracula], [verschwörerisch flüsternd]
Beispiel: "[aufgeregt] Das ändert alles! [kurze Pause] Lass mich dir zeigen, wie."
Referenzen
- Prompting Guide — Fortgeschrittene Prompt-Entwicklung für Stil, Emotion und Akzent