Guia de comandos do Gemini TTS

Nesta página, descrevemos as práticas recomendadas para escrever comandos ao usar o Gemini 3.8 Flash TTS e o Gemini 3.8 Flash-Lite TTS.

Para ver a sintaxe da solicitação e exemplos de código, consulte a visão geral da TTS do Gemini.

Os modelos do Gemini 3.8 TTS tratam o campo text como uma transcrição literal. As instruções de turno sustentadas vão para speech_metadata, e os eventos vocais pontuais vão para a transcrição. A solicitação a seguir combina um style no nível da fala com tags vocais inline e pausas:

{
  "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 de estilo x tags inline

Divida as instruções de desempenho por escopo:

  • Entrega em nível de turno (speech_metadata.style): coloque atributos de entrega sustentada, como emoção, prosódia, ritmo geral ou estilo de entrega (como "whispering", "out of breath", "muttering" ou "sarcastic"), no campo style de speech_metadata. Para criar um personagem e um desempenho estáveis em todas as interações, defina a persona com antecedência em Design de voz e use style apenas para ajustes opcionais em cada interação.
  • Eventos pontuais (tags inline): coloque explosões vocais momentâneas não relacionadas à fala, respirações ou pausas inline dentro da transcrição usando colchetes angulares (<cough>, <breath>, <sigh>, <short pause>). Use colchetes angulares (<...>) para obter a melhor qualidade do áudio e use vocalizações humanas em vez de efeitos sonoros não vocais.
Escopo Onde colocar Exemplos
Nível de turno (sustentado durante o turno) speech_metadata.style "angry tone", "speaking rapidly", "out of breath", "whispers", "sarcastic"
Pontual (ocorre em uma palavra específica) Inline em text (<...>) "<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..."

Ritmo e pausas

Você pode controlar o ritmo e o silêncio em três níveis:

  • Pontuação e reticências: use vírgulas, travessões (--) e reticências (...) para hesitações naturais.
  • Tags de pausa inline: insira <short pause> ou <long pause> onde o locutor deve pausar. Por exemplo: "Hold on, let me think... <short pause> Alright, I've got it."
  • Ritmo no nível da fala: defina "style": "speaking rapidly" ou "style": "speaking slowly" em speech_metadata para controlar a velocidade da fala em toda a frase.

Prosódia e tom

Use speech_metadata.style para controlar a prosódia, o tom e a inflexão em uma fala. Por exemplo, "style": "high pitch, cheerful and excited inflection" ou "style": "monotone and flat". Se a emoção mudar no meio do diálogo, divida o script em turnos separados, cada um com o próprio style.

Ênfase

Escreva palavras em maiúsculas na transcrição, junto com pontuação e tags inline, para enfatizá-las. Por exemplo: "This is a VERY important point!" ou "It was a VERY long day <sigh> ... nobody listens anymore."

Sons não verbais e explosões vocais

Coloque vocalizações humanas não verbais entre colchetes angulares (<...>) no ponto em que o som deve ocorrer. Use vocalizações humanas em vez de efeitos sonoros não vocais, como aplausos. As tags vocais recomendadas incluem:

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>

Interjeições e fala sobreposta

Em diálogos com vários interlocutores, coloque as reações do ouvinte entre caracteres de barra vertical (|reaction|) dentro da vez do interlocutor ativo. Isso cria canais de retorno naturais ou falas sobrepostas sem uma vez separada para cada reação.

  • Canal de retorno curto: insira reações breves do ouvinte durante a fala do interlocutor ativo:
    • Turno 1 (Locutor A): "So the launch is Thursday |oh hmm| Are we actually ready?"
    • Turno 2 (Locutor B): "Ready enough |oh really?| The last blocker cleared this morning."
    • Turno 3 (Locutor A): "Then let's ship it |absolutely| and watch the dashboards."
  • Fala sobreposta e intercalada: use vários segmentos de pipe para simular falas simultâneas. Isso funciona melhor com gemini-3.8-flash-tts:
    • Contagem regressiva ou refrão: "Let's surprise him on three |ok| ready?" seguido por "one. two. three. |happy| happy |birthday| birthday!"
    • Sobreposição total: "Hello |oh| there |my| it |goodness| must |gracious| be |would| almost |you| time |look| for |at that| dinner"

Consistência entre gerações e o que evitar

Siga estas diretrizes para manter a identidade vocal estável em todas as interações:

  • Defina personas com antecedência no design de voz em vez de usar blocos de estilo longos: parágrafos longos de "Audio Profile" e listas com vários marcadores de "Director's Notes" transferidos de modelos anteriores são a causa mais comum de desvio de voz. Use essa mesma intuição criativa no design de voz para gerar uma persona personalizada persistente do voice_... e, em seguida, use esse ID de voz nas chamadas de TTS.
  • Confiar na referência de voz para estabilidade (omitir metainstruções): os modelos de TTS do Gemini 3.8 são treinados para se basear primeiro na referência de áudio. Não inclua instruções que digam ao modelo para manter a voz estável (como "do not switch speaker identity" ou "maintain identical timbre"). O texto extra do comando aumenta o desvio. Remova instruções de estilo desnecessárias e deixe o modelo variar naturalmente em torno do ponto estável fornecido pela referência de voz.
  • Não tente mudar características imutáveis do locutor em style: evite colocar idade, gênero, nomes ou mudanças permanentes de sotaque em speech_metadata.style. Em vez disso, escolha uma voz regional da Biblioteca de Vozes Estendida ou crie uma com o Design de Voz.
  1. Crie o personagem uma vez: crie seu personagem no Voice Design ou selecione uma voz regional na Biblioteca de Vozes Estendida que corresponda ao idioma-alvo e à persona.
  2. Escreva transcrições faladas naturais com disfluências: para máxima naturalidade, escreva o text como uma transcrição falada real, incluindo disfluências e hesitações naturais de conversação (por exemplo, "Oh uh yeah I think... hm, so that's interesting").
  3. Teste primeiro a TTS simples: sintetize sua transcrição (por exemplo, no Agent Studio) com um campo style vazio primeiro. A maioria das solicitações não precisa de nenhuma instrução style.
  4. Adicione comandos curtos de style apenas para ajustes: adicione uma string de style concisa (como "casual, friendly" ou "muttering, then reassuring") apenas para as falas que precisam de um ajuste de entrega específico e reutilize essa string curta exata em todas as falas quando quiser uma linha de base consistente.

Diálogo com vários turnos e agentes de voz

Ao criar um agente de voz de conversação ou outro aplicativo de várias interações:

  • Faça uma solicitação de TTS para cada turno conforme o texto do LLM chega.
  • Permita que o voice configurado carregue a identidade do locutor entre as interações. Não reenvie uma descrição longa de persona em cada turno.
  • Deixe style vazio ou envie uma string curta e constante para toda a conversa.
  • Divida as respostas longas do agente em turnos mais curtos em vez de reforçar o comando style.

A seguir