Anleitung zu Prompts für Gemini TTS

Auf dieser Seite werden Best Practices für das Schreiben von Prompts bei der Verwendung von Gemini 3.8 Flash TTS und Gemini 3.8 Flash-Lite TTS beschrieben.

Informationen zur Anfragesyntax und Codebeispiele finden Sie in der Übersicht über Gemini TTS.

Die Gemini 3.8 TTS-Modelle behandeln das Feld text als wörtliches Transkript. Die kontinuierliche, turn-level-basierte Richtung wird in speech_metadata angegeben und Point-in-Time-Sprachereignisse werden inline im Transkript angezeigt. In der folgenden Anfrage wird ein style auf Turn-Ebene mit Inline-Sprachtags und Pausen kombiniert:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Wait... <short pause> did you hear that? <gasp> Someone's at the door.",
      "speechMetadata": {"style": "whispered, nervous"}
    }]
  }],
  "generationConfig": {
    "responseModalities": ["AUDIO"],
    "speechConfig": {"voiceConfig": {"voice": "Kore"}}
  }
}

Stilfeld im Vergleich zu Inline-Tags

Teilen Sie Ihre Leistungsanweisungen nach Umfang auf:

  • Turn-Level Delivery (speech_metadata.style): Attribute für die kontinuierliche Wiedergabe, z. B. Emotionen, Prosodie, Gesamttempo oder Wiedergabestil (z. B. "whispering", "out of breath", "muttering" oder "sarcastic"), werden in das Feld style von speech_metadata eingefügt. Damit die Figur und die Leistung über die Züge hinweg stabil bleiben, sollten Sie die Persona im Voraus im Voice-Design festlegen und style nur für optionale Anpassungen auf Zug-Ebene verwenden.
  • Zeitpunktbezogene Ereignisse (Inline-Tags): Setzen Sie kurze nicht sprachliche Vokalbursts, Atemzüge oder Pausen mit spitzen Klammern (<cough>, <breath>, <sigh>, <short pause>) in den Transkripttext ein. Verwenden Sie spitze Klammern (<...>) für die höchste Audioqualität und beschränken Sie sich auf menschliche Vokalisationen anstelle von nicht vokalen Soundeffekten.
Umfang Platzierung Beispiele
Auf Ebene des Zuges (während des gesamten Zuges) speech_metadata.style "angry tone": "speaking rapidly", "out of breath", "whispers", "sarcastic"
Zu einem bestimmten Zeitpunkt (tritt bei einem bestimmten Wort auf) Inline in text (<...>) "<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..."

Tempo und Pausen

Sie können Rhythmus und Stille auf drei Ebenen steuern:

  • Satzzeichen und Auslassungspunkte: Verwenden Sie Kommas, Gedankenstriche (--) und Auslassungspunkte (...), um natürliche Zögerungen zu erzeugen.
  • Inline-Pausen-Tags: Fügen Sie <short pause> oder <long pause> an den Stellen ein, an denen der Sprecher eine Pause machen soll. Beispiel: "Hold on, let me think... <short pause> Alright, I've got it."
  • Geschwindigkeit auf Turn-Ebene: Legen Sie "style": "speaking rapidly" oder "style": "speaking slowly" in speech_metadata fest, um die Sprechgeschwindigkeit für den gesamten Turn zu steuern.

Prosodie und Tonhöhe

Mit speech_metadata.style können Sie Prosodie, Tonhöhe und Betonung über einen Zug hinweg steuern. Beispiel: "style": "high pitch, cheerful and excited inflection" oder "style": "monotone and flat". Wenn sich die Emotionen während des Dialogs ändern, teilen Sie das Skript in separate Turns auf, die jeweils eine eigene style haben.

Betonung

Wörter im Transkript werden zusammen mit Satzzeichen und Inline-Tags großgeschrieben, um sie hervorzuheben. Beispiel: "This is a VERY important point!" oder "It was a VERY long day <sigh> ... nobody listens anymore."

Vocal-Bursts und Geräusche

Nicht sprachliche menschliche Äußerungen werden in spitzen Klammern (<...>) an der Stelle platziert, an der der Ton auftreten soll. Verwenden Sie menschliche Äußerungen statt nicht stimmlicher Soundeffekte wie Applaus. Empfohlene Gesangstags:

Tag Tag Tag Tag
<argh> <breath> <heavy breath> <exhales>
<cackle> <cheer> <chuckle>/<chuckles> <cough>
<cry> <gasp> <giggle> <groan>
<growl> <grunt> <grr> <hiss>
<laugh>/<laughter> <moan> <pant> <pff>/<phew>
<scream> <shout> <shriek> <sigh>/<sighs>
<sneeze> <snicker> <snort> <sob>
<throat-clearing> <tsk> <whimper> <whispers>/<whispering>
<yawn> <short pause> <long pause>

Backchannels und sich überschneidende Sprache

Bei Dialogen mit mehreren Sprechern müssen Reaktionen des Zuhörers in Pipe-Zeichen (|reaction|) innerhalb des Sprecherbeitrags des aktiven Sprechers eingeschlossen werden. So entstehen natürliche Backchannels oder sich überschneidende Äußerungen, ohne dass für jede Reaktion ein separater Zug erforderlich ist.

  • Kurze Backchannels: Füge kurze Reaktionen der Zuhörer in den Beitrag des aktiven Sprechers ein:
    • Runde 1 (Sprecher A): "So the launch is Thursday |oh hmm| Are we actually ready?"
    • Runde 2 (Sprecher B): "Ready enough |oh really?| The last blocker cleared this morning."
    • Runde 3 (Sprecher A): "Then let's ship it |absolutely| and watch the dashboards."
  • Überlappende und verschachtelte Sprache: Verwenden Sie mehrere Pipe-Segmente, um gleichzeitige Sprache zu simulieren. Diese Funktion funktioniert am besten mit gemini-3.8-flash-tts:
    • Countdown oder Refrain: "Let's surprise him on three |ok| ready?" gefolgt von "one. two. three. |happy| happy |birthday| birthday!"
    • Vollständige Überschneidung: "Hello |oh| there |my| it |goodness| must |gracious| be |would| almost |you| time |look| for |at that| dinner"

Konsistenz über Generationen hinweg und was Sie vermeiden sollten

Beachten Sie die folgenden Richtlinien, um die Stabilität der stimmlichen Identität über mehrere Turns hinweg zu gewährleisten:

  • Designen Sie Personas im Voraus im Voice-Design anstelle von langen Stilblöcken.: Lange "Audio Profile"-Absätze und "Director's Notes"-Listen mit mehreren Aufzählungszeichen, die aus früheren Modellen übernommen wurden, sind die häufigste Ursache für Voice-Drift. Nutzen Sie diese kreative Intuition von Anfang an beim Stimmendesign, um eine dauerhafte benutzerdefinierte voice_...-Persona zu generieren, und verwenden Sie dann diese Stimm-ID in Ihren TTS-Aufrufen.
  • Stabilität durch Sprachreferenz (Meta-Anweisungen weglassen): Gemini 3.8-TTS-Modelle sind so trainiert, dass sie sich zuerst an der Audio-Referenz orientieren. Geben Sie keine Anweisungen an, die das Modell anweisen, die Stimme stabil zu halten (z. B. "do not switch speaker identity" oder "maintain identical timbre"). Zusätzlicher Prompt-Text erhöht die Abweichung. Lassen Sie unnötige Stilanweisungen weg und lassen Sie das Modell auf natürliche Weise um den stabilen Punkt variieren, der durch die Sprachreferenz vorgegeben wird.
  • Unveränderliche Sprechermerkmale in style nicht ändern: Geben Sie in speech_metadata.style keine Änderungen des Alters, Geschlechts, Namens oder des Akzents an. Wählen Sie stattdessen eine regionale Stimme aus der erweiterten Stimmenbibliothek aus oder erstellen Sie eine mit Voice Design.
  1. Charakter einmal erstellen: Erstellen Sie Ihren Charakter unter Voice Design oder wählen Sie eine regionale Stimme aus der Extended Voice Library aus, die Ihrer Zielsprache und Persona entspricht.
  2. Natürliche gesprochene Transkripte mit Unflüssigkeiten schreiben: Für maximale Natürlichkeit schreiben Sie das text als echtes gesprochenes Transkript, einschließlich natürlicher Unflüssigkeiten und Zögern (z. B. "Oh uh yeah I think... hm, so that's interesting").
  3. Zuerst einfache TTS testen: Synthetisieren Sie Ihr Transkript zuerst mit einem leeren style-Feld. Für die meisten Anfragen ist überhaupt keine style-Anweisung erforderlich.
  4. Kurze style-Prompts nur für Anpassungen hinzufügen: Fügen Sie einen kurzen style-String (z. B. "casual, friendly" oder "muttering, then reassuring") nur für Turns hinzu, die eine bestimmte Anpassung erfordern. Verwenden Sie denselben kurzen String für mehrere Turns, wenn Sie eine konsistente Baseline wünschen.

Mehrfachdialog und Sprachagenten

Wenn Sie einen konversationellen Sprach-Agenten oder eine andere Mehrfachdialog-Anwendung erstellen:

  • Senden Sie für jeden Zug eine TTS-Anfrage, sobald der LLM-Text eintrifft.
  • Lassen Sie die konfigurierte voice die Identität des Sprechers über mehrere Turns hinweg beibehalten. Senden Sie nicht bei jeder Antwort eine lange Beschreibung der Persona.
  • Lassen Sie style leer oder senden Sie einen kurzen konstanten String für die gesamte Unterhaltung.
  • Teilen Sie lange Antworten des KI-Agenten in kürzere Abschnitte auf, anstatt den style-Prompt zu optimieren.

Nächste Schritte

  • Mit Voice Design einen einheitlichen Charakter erstellen
  • Aktualisieren Sie Prompts, die für frühere Modelle geschrieben wurden, mit der Migrationsanleitung.