Questa pagina descrive le best practice per scrivere prompt quando si utilizzano 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 stradali continue e dettagliate vengono inserite in speech_metadata, mentre gli eventi vocali
puntuali vengono inseriti in linea nella trascrizione. La seguente richiesta combina un
style a livello di turno con tag vocali e pause in linea:
{
"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 Stile e tag in linea
Dividi le istruzioni sul rendimento per ambito:
- Turn-level delivery (
speech_metadata.style): inserisci gli attributi di delivery sostenuta, come emozione, prosodia, ritmo generale o stile di delivery (ad esempio"whispering","out of breath","muttering"o"sarcastic"), nel campostyledispeech_metadata. Per creare un personaggio e una performance stabili nel corso dei turni, progetta la persona in anticipo in Progettazione della voce e utilizzastylesolo per modifiche facoltative a livello di turno. - Eventi puntuali (tag in linea): inserisci brevi interruzioni vocali non verbali, respiri o pause in linea all'interno della trascrizione utilizzando le parentesi angolari
(
<cough>,<breath>,<sigh>,<short pause>). Utilizza le parentesi angolari (<...>) per ottenere la massima qualità audio e concentrati sulle vocalizzazioni umane anziché sugli effetti sonori non vocali.
| Ambito | Dove posizionare | Esempi |
|---|---|---|
| Svolta per svolta (mantenuta durante la svolta) | speech_metadata.style |
"angry tone", "speaking rapidly", "out of breath", "whispers", "sarcastic" |
| Point-in-time (si verifica in una parola specifica) | Inline in text (<...>) |
"<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..." |
Pacing 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 simulare esitazioni naturali. - Tag di pausa in linea: inserisci
<short pause>o<long pause>nel punto in cui l'oratore deve fare una pausa. Ad esempio:"Hold on, let me think... <short pause> Alright, I've got it." - Ritmo del turno: imposta
"style": "speaking rapidly"o"style": "speaking slowly"inspeech_metadataper controllare la velocità del parlato per l'intero turno.
Prosodia e intonazione
Utilizza speech_metadata.style per controllare la prosodia, il tono 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, dividi
il copione in turni separati, ognuno con il proprio style.
Enfasi
Scrivi le parole in maiuscolo 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."
Esplosioni vocali e suoni non vocali
Inserisci le vocalizzazioni umane non verbali tra parentesi angolari (<...>) nel punto in cui deve verificarsi 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> |
Canali secondari e voci sovrapposte
Nel dialogo tra più interlocutori, racchiudi le reazioni dell'ascoltatore tra caratteri pipe
(|reaction|) all'interno del turno dell'interlocutore attivo. In questo modo si creano
canali secondari naturali o discorsi sovrapposti senza un turno separato per ogni reazione.
- Short backchannels: inserisci brevi reazioni degli ascoltatori all'interno del turno dell'oratore attivo:
- Turno 1 (Speaker A):
"So the launch is Thursday |oh hmm| Are we actually ready?" - Turno 2 (Speaker 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."
- Turno 1 (Speaker A):
- Discorso sovrapposto e alternato: utilizza più segmenti di pipe per
simulare un discorso simultaneo. Funziona meglio con
gemini-3.8-flash-tts:- Conto alla rovescia 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"
- Conto alla rovescia o ritornello:
Coerenza tra le generazioni e cosa evitare
Segui queste linee guida per mantenere stabile l'identità vocale durante i turni:
- Progetta le buyer persona in anticipo nella progettazione vocale anziché utilizzare blocchi di stile lunghi:
i paragrafi
"Audio Profile"in formato lungo e gli elenchi puntati multipli"Director's Notes"trasferiti dai modelli precedenti sono la causa più comune di deriva della voce. Utilizza la stessa intuizione creativa in anticipo nella progettazione della voce per generare una persona personalizzata persistentevoice_..., quindi riporta l'ID voce nelle chiamate TTS. - Affidati al riferimento vocale per la stabilità (ometti le metainstruzioni):
I modelli TTS Gemini 3.8 sono addestrati ad ancorarsi prima al riferimento audio.
Non includere istruzioni che indicano al modello di mantenere la voce costante (ad esempio
"do not switch speaker identity"o"maintain identical timbre"). Il testo del prompt aggiuntivo aumenta la deriva. Elimina le istruzioni di stile non necessarie e lascia che il modello vari naturalmente intorno al punto stabile fornito dal riferimento vocale. - Non tentare di modificare le caratteristiche immutabili del relatore in
style: evita di inserire età, genere, nomi o modifiche permanenti dell'accento inspeech_metadata.style. Scegli invece una voce regionale dalla raccolta di voci estesa o creane una con Progettazione vocale.
Workflow consigliato
- Crea il personaggio una sola volta: crea il tuo personaggio in Progettazione della voce o seleziona una voce regionale dalla raccolta di voci estesa che corrisponda alla lingua e alla personalità di destinazione.
- Scrivi trascrizioni naturali con disfluenze: per la massima
naturalezza, scrivi
textcome una vera trascrizione orale, includendo disfluenze e esitazioni naturali della conversazione (ad esempio,"Oh uh yeah I think... hm, so that's interesting"). - Testa prima la sintesi vocale semplice: sintetizza la trascrizione con un campo
stylevuoto. La maggior parte delle richieste non necessita di alcuna istruzionestyle. - Aggiungi prompt brevi
stylesolo per modifiche: aggiungi una stringastyleconcisa (ad esempio"casual, friendly"o"muttering, then reassuring") solo per i turni che richiedono una modifica specifica della pubblicazione e riutilizza la stessa stringa breve nei vari turni quando vuoi una base di riferimento coerente.
Agenti vocali e di dialogo multi-turno
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 LLM.
- Consenti all'
voiceconfigurato di mantenere l'identità dell'oratore durante i turni. Non inviare nuovamente una lunga descrizione del personaggio a ogni turno. - Lascia vuoto
styleo invia una breve stringa costante per l'intera conversazione. - Dividi le risposte lunghe dell'agente in turni più brevi anziché rafforzare il prompt
style.
Passaggi successivi
- Crea un personaggio coerente con Voice Design.
- Aggiorna i prompt scritti per i modelli precedenti con la guida alla migrazione.