Guida ai prompt di Gemini TTS

Questa pagina descrive le best practice per la scrittura di prompt quando utilizzi Gemini 3.8 Flash TTS e Gemini 3.8 Flash-Lite TTS.

Per la sintassi delle richieste e gli esempi di codice, consulta la panoramica di Gemini TTS.

I modelli Gemini 3.8 TTS trattano il campo text come una trascrizione letterale. Le indicazioni continue a livello di turno vanno inserite in speech_metadata, mentre gli eventi vocali puntuali vanno inseriti in linea nella trascrizione. La seguente richiesta combina un style a livello di turno con tag vocali e pause incorporati:

{
  "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"}}
  }
}

Campo di stile e tag incorporati

Suddividi le istruzioni per le prestazioni in base all'ambito:

  • Espressione a livello di turno (speech_metadata.style): inserisci attributi di espressione sostenuti, come emozione, prosodia, ritmo generale o stile di espressione (come "whispering", "out of breath", "muttering" o "sarcastic"), nel campo style di speech_metadata. Per creare un personaggio e una performance stabili nel corso dei turni, progetta la persona in anticipo in Voice design e utilizza style solo per modifiche facoltative a livello di turno.
  • Eventi puntuali (tag incorporati): inserisci brevi vocalizzazioni non vocali, respiri o pause all'interno della trascrizione utilizzando le parentesi angolari (<cough>, <breath>, <sigh>, <short pause>). Utilizza le parentesi angolari (<...>) per la massima qualità audio e limitati alle vocalizzazioni umane anziché agli effetti sonori non vocali.
Ambito Posizionamento Esempi
A livello di curva (mantenuta per tutta la curva) speech_metadata.style "angry tone", "speaking rapidly", "out of breath", "whispers", "sarcastic"
Point-in-time (si verifica in corrispondenza di una parola specifica) In linea in text (<...>) "<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..."

Ritmo e pause

Puoi controllare il ritmo e il silenzio a tre livelli:

  • Punteggiatura e puntini di sospensione: utilizza virgole, trattini (--) e puntini di sospensione (...) per creare esitazioni naturali.
  • Tag di pausa in linea: inserisci <short pause> o <long pause> nel punto in cui lo speaker deve fare una pausa. Ad esempio: "Hold on, let me think... <short pause> Alright, I've got it."
  • Ritmo a livello di turno: imposta "style": "speaking rapidly" o "style": "speaking slowly" in speech_metadata per controllare la velocità del parlato per l'intero turno.

Prosodia e tono

Utilizza speech_metadata.style per controllare la prosodia, l'intonazione e l'inflessione in un turno. Ad esempio, "style": "high pitch, cheerful and excited inflection" o "style": "monotone and flat". Se l'emozione cambia a metà del dialogo, suddividi lo script in turni separati, ognuno con il proprio style.

Enfasi

Scrivi in maiuscolo le parole nella trascrizione, insieme alla punteggiatura e ai tag in linea, per enfatizzarle. Ad esempio: "This is a VERY important point!" o "It was a VERY long day <sigh> ... nobody listens anymore."

Espressioni vocali e suoni non vocali

Inserisci le vocalizzazioni umane non vocali in linea tra parentesi angolari (<...>) nel punto in cui deve essere riprodotto il suono. Utilizza vocalizzazioni umane anziché effetti sonori non vocali, come gli applausi. I tag vocali consigliati includono:

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>

Interiezioni e voci sovrapposte

In un dialogo con più interlocutori, racchiudi le reazioni di chi ascolta tra caratteri pipe (|reaction|) all'interno del turno di chi parla. In questo modo si creano segnali di ascolto naturali o sovrapposizioni di parlato senza un turno separato per ogni reazione.

  • Brevi segnali di ascolto: inserisci brevi reazioni dell'ascoltatore durante il turno di parola di chi sta parlando:
    • Turno 1 (Persona A): "So the launch is Thursday |oh hmm| Are we actually ready?"
    • Turno 2 (Persona B): "Ready enough |oh really?| The last blocker cleared this morning."
    • Turno 3 (Speaker A): "Then let's ship it |absolutely| and watch the dashboards."
  • Discorso sovrapposto e intercalato: utilizza più segmenti di pipe per simulare un discorso simultaneo. Questa opzione funziona meglio con gemini-3.8-flash-tts:
    • Countdown o ritornello: "Let's surprise him on three |ok| ready?" seguito da "one. two. three. |happy| happy |birthday| birthday!"
    • Sovrapposizione completa: "Hello |oh| there |my| it |goodness| must |gracious| be |would| almost |you| time |look| for |at that| dinner"

Coerenza tra le generazioni e cosa evitare

Segui queste linee guida per mantenere stabile l'identità vocale tra i turni:

  • Progetta le personas in anticipo in Voice design anziché utilizzare blocchi di stile lunghi: I paragrafi "Audio Profile" lunghi e i "Director's Notes" con più elenchi puntati riportati dai modelli precedenti sono la causa più comune di deviazione della voce. Utilizza la stessa intuizione creativa in anticipo in Voice design per generare un personaggio voice_... personalizzato permanente, quindi utilizza l'ID voce nelle chiamate TTS.
  • Affidati al riferimento vocale per la stabilità (ometti le meta-istruzioni): i modelli Gemini 3.8 TTS sono addestrati per ancorarsi prima al riferimento audio. Non includere istruzioni che dicono al modello di mantenere la voce stabile (come "do not switch speaker identity" o "maintain identical timbre"). Il testo aggiuntivo del prompt aumenta la deviazione. Elimina le istruzioni di stile non necessarie e lascia che il modello vari naturalmente intorno al punto stabile fornito dal riferimento vocale.
  • Non provare a modificare i tratti immutabili di chi parla in style: evita di inserire età, genere, nomi o modifiche permanenti dell'accento in speech_metadata.style. Scegli invece una voce regionale dalla Raccolta di voci estesa o creane una con Voice Design.
  1. Crea il personaggio una volta: crea il tuo personaggio in Voice design o seleziona una voce regionale dalla Libreria di voci estesa che corrisponda alla lingua di destinazione e al personaggio.
  2. Scrivi trascrizioni di parlato naturale con disfluenze: per la massima naturalezza, scrivi il text come una vera e propria trascrizione di parlato, incluse le disfluenze e le esitazioni naturali della conversazione (ad esempio, "Oh uh yeah I think... hm, so that's interesting").
  3. Testa prima il TTS semplice: sintetizza la trascrizione (ad esempio in Agent Studio) con un campo style vuoto. La maggior parte delle richieste non richiede alcuna istruzione style.
  4. Aggiungi prompt style brevi solo per le modifiche: aggiungi una stringa style concisa (ad esempio "casual, friendly" o "muttering, then reassuring") solo per i turni che richiedono una modifica specifica della consegna e riutilizza la stessa stringa breve nei turni quando vuoi una base di riferimento coerente.

Dialogo a più turni e agenti vocali

Quando crei un agente vocale conversazionale o un'altra applicazione multi-turno:

  • Invia una richiesta TTS per ogni turno man mano che arriva il testo dell'LLM.
  • Consenti all'voice configurato di trasferire l'identità dell'interlocutore tra i turni. Non inviare nuovamente una descrizione lunga della persona a ogni turno.
  • Lascia vuoto style o invia una breve stringa costante per l'intera conversazione.
  • Suddividi le risposte lunghe dell'agente in turni più brevi anziché rafforzare il prompt style.

Passaggi successivi