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 obtener información sobre la sintaxis de las solicitudes y ejemplos 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 giros se incluye en speech_metadata, y los eventos vocales puntuales se incluyen en el texto de forma intercalada. La siguiente solicitud combina un style a nivel del turno con pausas y etiquetas vocales 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 en comparación con las etiquetas intercaladas
Divide tus instrucciones de rendimiento por alcance:
- Entrega a nivel de turno (
speech_metadata.style): Coloca atributos de entrega sostenida, como emoción, prosodia, ritmo general o estilo de entrega (como"whispering","out of breath","muttering"o"sarcastic"), en el campostyledespeech_metadata. Para crear un personaje y una interpretación estables en todos los turnos, diseña el arquetipo por adelantado en Diseño de voz y usastylesolo para ajustes opcionales a nivel del turno. - Eventos puntuales (etiquetas intercaladas): Coloca ráfagas vocales momentáneas que no sean de voz, respiraciones o pausas intercaladas en la transcripción con corchetes angulares (
<cough>,<breath>,<sigh>,<short pause>). Usa corchetes angulares (<...>) para obtener la calidad de audio más alta y limítate a las vocalizaciones humanas en lugar de los efectos de sonido no vocales.
| Alcance | Dónde colocarlo | Ejemplos |
|---|---|---|
| A nivel del turno (se mantiene durante 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 una vacilación natural. - Etiquetas de pausa intercaladas: Inserta
<short pause>o<long pause>donde el orador debe hacer una pausa. Por ejemplo:"Hold on, let me think... <short pause> Alright, I've got it." - Velocidad por turno: Establece
"style": "speaking rapidly"o"style": "speaking slowly"enspeech_metadatapara 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
Usa mayúsculas para las palabras de la transcripción, junto con la puntuación y las etiquetas intercaladas, para destacarlas. Por ejemplo:
"This is a VERY important point!" o
"It was a VERY long day <sigh> ... nobody listens anymore."
Explosiones vocales y sonidos no verbales
Coloca las vocalizaciones humanas que no sean de voz en línea entre corchetes angulares (<...>) en el punto en el que debería ocurrir el sonido. Usa vocalizaciones humanas en lugar de efectos de sonido no vocales, como aplausos. Entre las etiquetas vocales 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 secundarios y voces superpuestas
En el diálogo con varios oradores, incluye las reacciones del objeto de escucha entre caracteres de barra vertical (|reaction|) dentro del turno del orador activo. Esto crea canales secundarios naturales o superposiciones de voz sin un turno separado para cada reacción.
- Canales secundarios cortos: Agrega reacciones breves del público dentro del turno del orador activo:
- Turn 1 (Speaker A):
"So the launch is Thursday |oh hmm| Are we actually ready?" - Turn 2 (Speaker 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."
- Turn 1 (Speaker A):
- Superposición y entrelazado del habla: Usa varios segmentos de barra vertical para simular el habla simultánea. Esto funciona mejor con
gemini-3.8-flash-tts:- Cuenta regresiva o coro:
"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"
- Cuenta regresiva o coro:
Coherencia entre las generaciones y qué evitar
Sigue estos lineamientos para mantener la estabilidad de la identidad vocal en los diferentes turnos:
- Diseña arquetipos de usuarios por adelantado en el diseño de voz en lugar de bloques de estilo largos:
Los párrafos de formato largo
"Audio Profile"y las listas con varios puntos"Director's Notes"que se transfirieron de modelos anteriores son la causa más común de la desviación de voz. Usa esa misma intuición creativa desde el principio en el diseño de voz para generar un arquetipo devoice_...personalizado persistente y, luego, lleva ese ID de voz a través de tus llamadas de TTS. - Confía en la referencia de voz para la estabilidad (omite 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 en 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 del orador en
style: Evita incluir la edad, el género, los nombres o los cambios permanentes de acento enspeech_metadata.style. En su lugar, elige una voz regional de la Biblioteca de voces extendida o crea una con Diseño de voz.
Flujo de trabajo recomendado
- Crea el personaje una sola 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 y arquetipo objetivo.
- Escribe transcripciones habladas naturales con disfluencias: Para lograr la máxima naturalidad, escribe la
textcomo una transcripción hablada real, incluidas las disfluencias y las vacilaciones naturales de la conversación (por ejemplo,"Oh uh yeah I think... hm, so that's interesting"). - Primero, prueba el TTS sin formato: Sintetiza tu transcripción con un campo
stylevacío primero. La mayoría de las solicitudes no necesitan ninguna instrucción destyle. - Agrega instrucciones breves de
stylesolo para ajustes: Agrega una cadena destyleconcisa (como"casual, friendly"o"muttering, then reassuring") solo para los turnos que necesiten un ajuste de entrega específico y reutiliza esa cadena breve exacta en todos los turnos cuando desees un modelo de referencia coherente.
Agentes de voz y diálogo de varios turnos
Cuando compilas un agente de voz conversacional o cualquier otra aplicación de varios turnos, haz lo siguiente:
- Realiza una solicitud de TTS para cada turno a medida que llega el texto del LLM.
- Permite que el
voiceconfigurado lleve la identidad del orador a lo largo de los turnos. No vuelvas a enviar una descripción larga del arquetipo en cada turno. - Deja
stylevací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
style.
¿Qué sigue?
- Crea un personaje coherente con el diseño de voz.
- Actualiza las instrucciones escritas para modelos anteriores con la guía de migración.