Guía de instrucciones de Gemini TTS

En esta página, se describen las prácticas recomendadas para escribir instrucciones cuando se usan Gemini 3.8 Flash TTS y Gemini 3.8 Flash-Lite TTS.

Para ver la sintaxis de la solicitud y las muestras de código, consulta la descripción general de Gemini TTS.

Los modelos de Gemini 3.8 TTS tratan el campo text como una transcripción literal. La dirección sostenida a nivel de turno se incluye en speech_metadata, y los eventos vocales puntuales se incluyen intercalados en la transcripción. En la siguiente solicitud, se combina un style a nivel de turno con etiquetas de voz y pausas intercaladas:

{
  "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 frente a etiquetas intercaladas

Divide tus instrucciones de rendimiento por alcance:

  • Publicación a nivel de turno (speech_metadata.style): Coloca atributos de publicación sostenidos, como emoción, prosodia, ritmo general o estilo de publicación (como "whispering", "out of breath", "muttering" o "sarcastic"), en el campo style de speech_metadata. Para crear un personaje y un rendimiento estables en todos los turnos, diseña el arquetipo de antemano en Diseño de voz y usa style solo para ajustes opcionales a nivel de turno.
  • Eventos puntuales (etiquetas intercaladas): Coloca ráfagas vocales momentáneas que no sean de voz, respiraciones o pausas intercaladas dentro de la transcripción con corchetes angulares (<cough>, <breath>, <sigh>, <short pause>). Usa corchetes angulares (<...>) para obtener la mejor calidad de audio y limítate a las vocalizaciones humanas en lugar de los efectos de sonido no vocales.
Alcance Dónde colocarlo Ejemplos
A nivel de turno (se mantiene durante todo el turno) speech_metadata.style "angry tone", "speaking rapidly", "out of breath", "whispers", "sarcastic"
En un momento determinado (ocurre en una palabra específica) En línea en text (<...>) "<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..."

Ritmo y pausas

Puedes controlar el ritmo y el silencio en tres niveles:

  • Puntuación y puntos suspensivos: Usa comas, guiones (--) y puntos suspensivos (...) para generar vacilaciones naturales.
  • Etiquetas de pausa intercaladas: Inserta <short pause> o <long pause> donde el orador deba hacer una pausa. Por ejemplo: "Hold on, let me think... <short pause> Alright, I've got it."
  • Ritmo a nivel de turno: Establece "style": "speaking rapidly" o "style": "speaking slowly" en speech_metadata para controlar la velocidad de habla durante todo el turno.

Prosodia y tono

Usa speech_metadata.style para controlar la prosodia, el tono y la inflexión en un turno. Por ejemplo, "style": "high pitch, cheerful and excited inflection" o "style": "monotone and flat". Si la emoción cambia a mitad del diálogo, divide el guion en turnos separados, cada uno con su propio style.

Énfasis

Escribe en mayúsculas las palabras de la transcripción, junto con la puntuación y las etiquetas intercaladas, para enfatizarlas. Por ejemplo: "This is a VERY important point!" o "It was a VERY long day <sigh> ... nobody listens anymore."

Estallidos vocales y sonidos no verbales

Coloca las vocalizaciones humanas que no sean de voz entre corchetes angulares (<...>) en el punto en el que se produce el sonido. Usa vocalizaciones humanas en lugar de efectos de sonido no vocales, como aplausos. Entre las etiquetas de voz recomendadas, se incluyen las siguientes:

Etiqueta Etiqueta Etiqueta Etiqueta
<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>

Canales de retroalimentación y voces superpuestas

En los diálogos con varios interlocutores, encierra las reacciones de los oyentes entre caracteres de barra vertical (|reaction|) dentro del turno del interlocutor activo. Esto crea canales de retorno naturales o discursos superpuestos sin un turno separado para cada reacción.

  • Canales secundarios cortos: Agrega reacciones breves del oyente dentro del turno del interlocutor activo:
    • Turno 1 (interlocutor A): "So the launch is Thursday |oh hmm| Are we actually ready?"
    • Turno 2 (interlocutor B): "Ready enough |oh really?| The last blocker cleared this morning."
    • Turno 3 (interlocutor A): "Then let's ship it |absolutely| and watch the dashboards."
  • Voz superpuesta y entrelazada: Usa varios segmentos de canalización para simular la voz simultánea. Esto funciona mejor con gemini-3.8-flash-tts:
    • Cuenta regresiva o estribillo: "Let's surprise him on three |ok| ready?" seguido de "one. two. three. |happy| happy |birthday| birthday!"
    • Superposición total: "Hello |oh| there |my| it |goodness| must |gracious| be |would| almost |you| time |look| for |at that| dinner"

Coherencia entre generaciones y qué evitar

Sigue estos lineamientos para mantener la identidad vocal estable en todos los turnos:

  • Diseña las personas por adelantado en el diseño de voz en lugar de bloques de estilo largos: Los párrafos de "Audio Profile" de formato largo y las viñetas múltiples de "Director's Notes" transferidos de modelos anteriores son la causa más común de la desviación de la voz. Usa esa misma intuición creativa desde el principio en el diseño de voz para generar un personaje de voice_... personalizado y persistente, y, luego, lleva ese ID de voz a tus llamadas de TTS.
  • Confiar en la referencia de voz para la estabilidad (omitir las metainstrucciones): Los modelos de TTS de Gemini 3.8 se entrenan para anclarse primero en la referencia de audio. No incluyas instrucciones que le indiquen al modelo que mantenga la voz estable (como "do not switch speaker identity" o "maintain identical timbre"). El texto adicional de la instrucción aumenta la desviación. Descarta las instrucciones de estilo innecesarias y deja que el modelo varíe de forma natural en torno al punto estable que proporciona la referencia de voz.
  • No intentes cambiar los rasgos inmutables de la persona que habla en style: Evita incluir la edad, el género, los nombres o los cambios de acento permanentes en speech_metadata.style. En su lugar, elige una voz regional de la biblioteca de voces extendida o crea una con Diseño de voz.
  1. Crea el personaje una vez: Crea tu personaje en Diseño de voz o selecciona una voz regional de la Biblioteca de voces extendida que coincida con tu idioma de destino y tu personaje.
  2. Escribe transcripciones habladas naturales con disfluencias: Para lograr la máxima naturalidad, escribe el text como una transcripción hablada real, incluidas las disfluencias y vacilaciones conversacionales naturales (por ejemplo, "Oh uh yeah I think... hm, so that's interesting").
  3. Primero, prueba el TTS simple: Sintetiza tu transcripción (por ejemplo, en Agent Studio) con un campo style vacío primero. La mayoría de las solicitudes no necesitan ninguna instrucción style.
  4. Agrega instrucciones style cortas solo para realizar ajustes: Agrega una cadena style concisa (como "casual, friendly" o "muttering, then reassuring") solo para los turnos que necesitan un ajuste de entrega específico y reutiliza esa cadena corta exacta en todos los turnos cuando quieras una línea de base coherente.

Diálogo de varios turnos y agentes de voz

Cuando creas un agente de voz conversacional o cualquier otra aplicación de varios turnos, ten en cuenta lo siguiente:

  • Realiza una solicitud de TTS para cada turno a medida que llega el texto del LLM.
  • Permite que el voice configurado lleve la identidad del interlocutor en los turnos. No vuelvas a enviar una descripción larga de la persona en cada turno.
  • Deja style vacío o envía una cadena constante corta para toda la conversación.
  • Divide las respuestas largas del agente en turnos más cortos en lugar de fortalecer la instrucción de style.

¿Qué sigue?