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.
Die 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.
Anhaltende Regieanweisungen auf Turn-Ebene werden in speech_metadata eingefügt, während punktuelle stimmliche Ereignisse inline im Transkript erscheinen. In der folgenden Anfrage wird ein style auf Turn-Ebene mit Inline-Stimm-Tags 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): Fügen Sie Attribute für die kontinuierliche Wiedergabe, z. B. Emotion, Prosodie, Gesamttempo oder Wiedergabestil (z. B."whispering","out of breath","muttering"oder"sarcastic"), in das Feldstylevonspeech_metadataein. Wenn Sie eine stabile Figur und Leistung über mehrere Turns hinweg erstellen möchten, entwerfen Sie die Persona vorab im Stimmendesign und verwenden Siestylenur für optionale Anpassungen auf Turn-Ebene. - Zeitpunktbezogene Ereignisse (Inline-Tags): Setzen Sie kurze, nicht sprachliche Laute, Atemgeräusche oder Pausen in spitzen Klammern (
<cough>,<breath>,<sigh>,<short pause>) in das Transkript ein. Verwenden Sie spitze Klammern (<...>) für die höchste Audioqualität und beschränken Sie sich auf menschliche Laute, anstatt nicht stimmliche Soundeffekte zu verwenden.
| Umfang | Platzierung | Beispiele |
|---|---|---|
| Auf Turn-Ebene (während des Turns beibehalten) | 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 Pausen auf drei Ebenen steuern:
- Satzzeichen und Auslassungspunkte: Verwenden Sie Kommas, Bindestriche (
--) und Auslassungspunkte (...) für natürliches Zögern. - Inline-Pausen-Tags: Fügen Sie
<short pause>oder<long pause>an der Stelle ein, an der der Sprecher eine Pause einlegen 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"inspeech_metadatafest, um die Sprechgeschwindigkeit für den gesamten Turn zu steuern.
Prosodie und Tonhöhe
Verwenden Sie speech_metadata.style, um Prosodie, Tonhöhe und Betonung während eines Turns zu steuern. Beispiel: "style": "high pitch, cheerful and excited inflection" oder "style": "monotone and flat". Wenn sich die Emotion während des Dialogs ändert, teilen Sie das Skript in separate Abschnitte auf, die jeweils ein eigenes style-Element haben.
Betonung
Schreiben Sie Wörter im Transkript groß, um sie hervorzuheben, und verwenden Sie Satzzeichen und Inline-Tags. Beispiel: "This is a VERY important point!" oder "It was a VERY long day <sigh> ... nobody listens anymore.".
Vokale Ausrufe und Geräusche, die keine Sprache sind
Füge menschliche Laute, die keine Sprache sind, in spitzen Klammern (<...>) an der Stelle ein, an der der Laut auftreten soll. Verwenden Sie menschliche Vokalisierungen anstelle von nicht stimmlichen Soundeffekten wie Applaus. Empfohlene Vocal-Tags:
| 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 gleichzeitig sprechende Stimmen
In Dialogen mit mehreren Sprechern sollten Reaktionen von Zuhörern in Pipe-Zeichen (|reaction|) innerhalb des Redebeitrags des aktiven Sprechers gesetzt werden. Dadurch entstehen natürliche Backchannels oder überlappende Sprache, ohne dass für jede Reaktion ein separater Turn erforderlich ist.
- Kurze Backchannels: Kurze Reaktionen des Zuhörers in den Redebeitrag des aktiven Sprechers einfügen:
- 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."
- Runde 1 (Sprecher A):
- Überlappende und verschachtelte Sprache: Verwenden Sie mehrere Pipe-Segmente, um gleichzeitiges Sprechen zu simulieren. Das 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"
- Countdown oder Refrain:
Konsistenz über Generationen hinweg und was zu vermeiden ist
Beachten Sie die folgenden Richtlinien, um die Stimmidentität über mehrere Turns hinweg stabil zu halten:
- Personas im Voice-Design vorab entwerfen, anstatt lange Stilblöcke zu verwenden:
Lange
"Audio Profile"-Absätze und"Director's Notes"-Aufzählungen mit mehreren Punkten, die aus früheren Modellen übernommen wurden, sind die häufigste Ursache für Voice-Drift. Nutzen Sie diese kreative Intuition im Voraus beim Voice Design, um eine dauerhafte benutzerdefiniertevoice_...-Persona zu generieren, und verwenden Sie diese Sprach-ID dann in Ihren TTS-Aufrufen. - Verlassen Sie sich auf die Sprachreferenz, um die Stabilität zu gewährleisten (lassen Sie Meta-Anweisungen weg): Gemini 3.8-TTS-Modelle sind so trainiert, dass sie sich zuerst an der Audioreferenz orientieren.
Fügen Sie keine Anweisungen hinzu, die das Modell auffordern, 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 natürlich um den stabilen Punkt variieren, der durch die Sprachreferenz vorgegeben wird. - Versuchen Sie nicht, unveränderliche Sprechermerkmale in
stylezu ändern: Vermeiden Sie es, Alter, Geschlecht, Namen oder dauerhafte Akzentänderungen inspeech_metadata.styleanzugeben. Wählen Sie stattdessen eine regionale Stimme aus der erweiterten Stimmenbibliothek aus oder erstellen Sie eine mit Voice Design.
Empfohlener Workflow
- Charakter einmal erstellen: Erstellen Sie Ihren Charakter im Stimmendesign oder wählen Sie eine regionale Stimme aus der erweiterten Stimmenbibliothek aus, die zu Ihrer Zielsprache und Persona passt.
- Natürliche gesprochene Transkripte mit Unflüssigkeiten schreiben: Für maximale Natürlichkeit sollten Sie die
textals echtes gesprochenes Transkript schreiben, einschließlich natürlicher Unflüssigkeiten und Zögern (z. B."Oh uh yeah I think... hm, so that's interesting"). - Einfache TTS zuerst testen: Synthetisieren Sie Ihr Transkript (z. B. in Agent Studio) zuerst mit einem leeren
style-Feld. Die meisten Anfragen benötigen überhaupt keinestyle-Anweisung. - Kurze
style-Prompts nur für Anpassungen hinzufügen: Fügen Sie einen kurzenstyle-String (z. B."casual, friendly"oder"muttering, then reassuring") nur für Turns hinzu, die eine bestimmte Anpassung der Ausgabe erfordern. Verwenden Sie diesen kurzen String für alle Turns, wenn Sie eine einheitliche Baseline wünschen.
Multi-Turn-Dialoge und Sprach-Agenten
Wenn Sie einen konversationellen Sprach-Agenten oder eine andere Multi-Turn-Anwendung erstellen:
- Stellen Sie für jede Runde eine TTS-Anfrage, sobald der LLM-Text eintrifft.
- Lassen Sie die konfigurierte
voicedie Identität des Sprechers über mehrere Turns hinweg übertragen. Senden Sie nicht bei jeder Runde eine lange Persona-Beschreibung. - Lassen Sie
styleleer 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 verstärken.
Nächste Schritte
- Mit Stimmdesign einen konsistenten Charakter erstellen.
- Aktualisieren Sie Prompts, die für frühere Modelle geschrieben wurden, mithilfe der Migrationsanleitung.