Los modelos de texto a voz (TTS) de Gemini convierten el texto en audio de un solo interlocutor o
de varios interlocutores. Puedes controlar el estilo, el acento, el ritmo y el tono
del audio con metadatos de turno estructurados (speech_metadata) y etiquetas vocales
intercaladas.
En esta página, se muestra cómo generar voz con los siguientes modelos a través de los
métodos generateContent y streamGenerateContent de la API de Gemini Enterprise:
- TTS de Gemini 3.8 Flash
(
gemini-3.8-flash-tts) - Gemini 3.8 Flash-Lite TTS
(
gemini-3.8-flash-lite-tts)
Los modelos de TTS están diseñados para la recitación de texto exacto con un control detallado sobre el estilo y el sonido, como la narración, los audiolibros y las respuestas de los agentes de voz. Para conversaciones interactivas en tiempo real con entrada y salida de audio, usa la API de Live.
Si usas un modelo de Gemini TTS anterior, como gemini-3.1-flash-tts-preview,
consulta la
guía de migración.
Modelos compatibles
| Modelo | Orador único | Varios oradores | Transmisión | Diseño de voz | Replicación de voz |
|---|---|---|---|---|---|
Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) |
|||||
Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts) |
|||||
Vista previa de TTS de Gemini 3.1 Flash (gemini-3.1-flash-tts-preview) |
|||||
TTS de Gemini 2.5 Pro (gemini-2.5-pro-tts) |
|||||
TTS de Gemini 2.5 Flash (gemini-2.5-flash-tts) |
Las muestras y las funciones de esta página se aplican a los modelos de TTS de Gemini 3.8. Para los modelos anteriores, consulta Gemini-TTS en laGoogle Cloud documentación de Text-to-Speech.
Cuándo usar cada modelo
Ambos modelos de TTS de Gemini 3.8 comparten el mismo esquema de solicitud y formato de instrucciones, por lo que puedes cambiar entre ellos modificando el ID del modelo:
- Usa Gemini 3.8 Flash TTS (
gemini-3.8-flash-tts) cuando la fidelidad acústica, la actuación con matices y el control expresivo sean la máxima prioridad. Es adecuado para trabajos creativos con calidad de estudio, diálogos complejos con varios oradores, etiquetas frecuentes de ráfagas vocales, pronunciaciones difíciles, dialectos regionales o minoritarios, y narraciones de formato largo que necesitan una voz y un tono de sala estables. - Usa Gemini 3.8 Flash-Lite TTS (
gemini-3.8-flash-lite-tts) para cargas de trabajo de producción rápidas y rentables. Es el reemplazo recomendado paragemini-3.1-flash-tts-previewy es adecuado para la producción por lotes de gran volumen, las cascadas de agentes de voz conversacionales, las funciones de lectura en voz alta, la replicación de voz y el habla diaria de un solo interlocutor en los idiomas principales.
Antes de comenzar
- Configura un proyecto y habilita la API de Gemini Enterprise.
- Configura las credenciales predeterminadas de la aplicación para tu entorno de desarrollo.
Para usar las muestras de Python, instala la versión 2.25.0 o posterior del SDK de IA generativa de Google:
pip install --upgrade "google-genai>=2.25.0"
Los modelos de Gemini 3.8 TTS están disponibles en la ubicación global. Envía solicitudes al extremo aiplatform.googleapis.com.
TTS de un solo interlocutor
Para convertir texto en audio de un solo interlocutor, pasa la transcripción literal en
parts[].text, agrega un estilo opcional a nivel de turno en parts[].speech_metadata
y establece la voz en speechConfig.voiceConfig.voice. El campo voice acepta un nombre de voz prediseñada, un ID de voz de la Biblioteca de voces extendida o el ID (voice_...) de una voz diseñada o replicada (o una clave voicekey_... sin estado opcional).
De forma predeterminada, las solicitudes unarias devuelven un archivo WAV completo (PCM de 16 bits, 24 kHz,
mono), por lo que puedes escribir los bytes de audio directamente en un archivo .wav. En cambio, las solicitudes de transmisión
devuelven fragmentos de PCM sin procesar. Para obtener detalles y otras codificaciones, consulta Formatos de salida de audio.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speech_metadata": {"style": "cheerful and friendly"},
}],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
},
)
# The SDK has already decoded the base64 audio, so inline_data.data is a
# complete WAV file by default.
with open("out.wav", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speechMetadata": {"style": "cheerful and friendly"}
}]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > out.wav
TTS de transmisión de un solo interlocutor
Para recibir audio mientras el modelo aún lo sintetiza, usa el método
streamGenerateContent. Las respuestas de transmisión devuelven fragmentos de PCM sin procesar de 16 bits sin encabezado (24 kHz, mono), por lo que puedes pasar cada fragmento a un reproductor, un socket o otra canalización de audio a medida que llega. En el siguiente ejemplo de Python, la función emit_audio representa ese destino.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
def emit_audio(pcm: bytes) -> None:
"""Sends a chunk of raw 16-bit PCM audio (24 kHz, mono) downstream."""
# Replace with your audio destination, such as a player, a WebSocket,
# or a telephony stream.
print(f"Received {len(pcm)} bytes of audio")
response_stream = client.models.generate_content_stream(
model="gemini-3.8-flash-lite-tts",
contents=[{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speech_metadata": {"style": "cheerful and friendly"},
}],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
},
)
for chunk in response_stream:
if not chunk.candidates or not chunk.candidates[0].content:
continue
for part in chunk.candidates[0].content.parts or []:
if part.inline_data and part.inline_data.data:
emit_audio(part.inline_data.data)
REST
curl -N -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-lite-tts:streamGenerateContent?alt=sse" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speechMetadata": {"style": "cheerful and friendly"}
}]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | sed -n 's/^data: //p' \
| jq -r '.candidates[0].content.parts[0].inlineData.data // empty' \
| while read -r chunk; do echo "$chunk" | base64 --decode; done > streamed.pcm
El archivo streamed.pcm contiene audio PCM sin procesar de 16 bits a 24 kHz, mono.
TTS con varios interlocutores
Para el diálogo entre dos interlocutores, configura ambos interlocutores en speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs. Luego, pasa cada turno
como un part independiente, establece speech_metadata.speaker en cada turno en uno de los
nombres de interlocutor configurados y agrega un style opcional a nivel del turno.
Las solicitudes de varios interlocutores requieren exactamente dos interlocutores.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [
{
"text": "How's it going today, Jane?",
"speech_metadata": {"speaker": "Joe", "style": "cheerful and friendly"},
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speech_metadata": {"speaker": "Jane", "style": "calm and relaxed"},
},
],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {
"multi_speaker_voice_config": {
"speaker_voice_configs": [
{"speaker": "Joe", "voice_config": {"voice": "Puck"}},
{"speaker": "Jane", "voice_config": {"voice": "Kore"}},
]
}
},
},
)
with open("dialogue.wav", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [
{
"text": "How'\''s it going today, Jane?",
"speechMetadata": {"speaker": "Joe", "style": "cheerful and friendly"}
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speechMetadata": {"speaker": "Jane", "style": "calm and relaxed"}
}
]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{"speaker": "Joe", "voiceConfig": {"voice": "Puck"}},
{"speaker": "Jane", "voiceConfig": {"voice": "Kore"}}
]
}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > dialogue.wav
TTS de transmisión con varios interlocutores
Las solicitudes de varios interlocutores también admiten la transmisión. Usa la misma solicitud que en TTS con varios oradores con el método streamGenerateContent.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
def emit_audio(pcm: bytes) -> None:
"""Sends a chunk of raw 16-bit PCM audio (24 kHz, mono) downstream."""
# Replace with your audio destination, such as a player, a WebSocket,
# or a telephony stream.
print(f"Received {len(pcm)} bytes of audio")
response_stream = client.models.generate_content_stream(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [
{
"text": "How's it going today, Jane?",
"speech_metadata": {"speaker": "Joe", "style": "cheerful and friendly"},
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speech_metadata": {"speaker": "Jane", "style": "calm and relaxed"},
},
],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {
"multi_speaker_voice_config": {
"speaker_voice_configs": [
{"speaker": "Joe", "voice_config": {"voice": "Puck"}},
{"speaker": "Jane", "voice_config": {"voice": "Kore"}},
]
}
},
},
)
for chunk in response_stream:
if not chunk.candidates or not chunk.candidates[0].content:
continue
for part in chunk.candidates[0].content.parts or []:
if part.inline_data and part.inline_data.data:
emit_audio(part.inline_data.data)
REST
curl -N -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:streamGenerateContent?alt=sse" \
-d '{
"contents": [{
"role": "user",
"parts": [
{
"text": "How'\''s it going today, Jane?",
"speechMetadata": {"speaker": "Joe", "style": "cheerful and friendly"}
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speechMetadata": {"speaker": "Jane", "style": "calm and relaxed"}
}
]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{"speaker": "Joe", "voiceConfig": {"voice": "Puck"}},
{"speaker": "Jane", "voiceConfig": {"voice": "Kore"}}
]
}
}
}
}' | sed -n 's/^data: //p' \
| jq -r '.candidates[0].content.parts[0].inlineData.data // empty' \
| while read -r chunk; do echo "$chunk" | base64 --decode; done > dialogue_streamed.pcm
El archivo dialogue_streamed.pcm contiene audio PCM sin procesar de 16 bits a 24 kHz,
mono.
Controla el estilo de voz con metadatos y etiquetas
Los modelos de Gemini 3.8 TTS tratan el campo text como una transcripción literal.
Es posible que se lean en voz alta las instrucciones escritas en el texto, como "Say cheerfully: Hello!" o "Speaker 1: Hello!". Para controlar la entrega, divide tus
instrucciones por alcance:
- Publicación sostenida a nivel de turno (
speech_metadata.style): Coloca la emoción, el estilo de publicación, la prosodia, el ritmo y el volumen que se aplican a un turno completo enspeech_metadata.style. Por ejemplo,"style": "whispered urgently","style": "out of breath"o"style": "warm and enthusiastic". - Eventos de un momento determinado (etiquetas intercaladas): Coloca sonidos vocales momentáneos que no sean de voz y pausas dentro de la transcripción entre corchetes angulares. Por ejemplo,
"Wait... <short pause> did you hear that? <sigh>"o"Excuse me <cough> as I was saying...".
Para obtener más orientación, consulta la guía de instrucciones.
Opciones de voz
Los modelos de Gemini 3.8 TTS admiten cuatro formas de seleccionar o crear voces:
- Voces prediseñadas: 30 voces seleccionadas.
- Biblioteca de voces extendida: Más de 2,000 voces predeterminadas seleccionadas en diferentes idiomas, acentos regionales y arquetipos de personajes
- Diseño de voz:
Crea una voz personalizada a partir de una descripción en lenguaje natural con el método
createde la API de Voices (client.voices.create()en el SDK de IA generativa de Google oPOST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices). EstablecetypeenVOICE_TYPE_PROMPTEDystoreentrue. La respuesta devuelve un ID devoice_...almacenado y una muestra de la voz. - Replicación de voz:
Replica la voz de un orador a partir de audio de referencia y consentimiento con el mismo método de
create. EstablecetypeenVOICE_TYPE_REPLICATED. Constore: true, la respuesta devuelve un ID devoice_...almacenado. Constore: false, se devuelve una clavevoicekey_...sin estado.
Límites de voz personalizada y TTL
| Tipo de voz | Modo de almacenamiento | Administración | Vencimiento |
|---|---|---|---|
Voces almacenadas (voice_..., diseñadas o replicadas) |
store: true |
Métodos list, get y delete de la API de Voices |
1 año después del último uso |
Claves de replicación de voz (voicekey_...) |
store: false |
Administrado por tu aplicación. Google no retiene la clave. | 7 días después de la creación |
Cuando se genera voz con una voz almacenada, se reinicia su período de retención de un año, por lo que no vence una voz que usas con regularidad. Las solicitudes de creación de voces están
sujetas a una cuota por proyecto y por minuto. Si lo superas, el método create
devuelve un error RESOURCE_EXHAUSTED. Para obtener más información, consulta
Cuotas y límites del sistema.
Almacenamiento y retención de datos
Google almacena las entradas que proporcionas cuando creas una voz almacenada, junto con los artefactos de voz derivados de ellas, en asociación con el proyecto deGoogle Cloud que creó la voz.
Cuando creas una voz replicada a partir de la grabación de un orador, se almacena lo siguiente:
- Audio de referencia: Es la muestra del interlocutor cuya voz se replica.
- Audio de consentimiento: Es el interlocutor que lee la declaración de consentimiento obligatoria.
Cuando creas una voz diseñada con una descripción de texto de una voz en una instrucción, se almacena lo siguiente:
- La instrucción de texto que escribiste para describir la voz.
- El audio de voz generado a partir de esa instrucción, que el modelo usa como referencia para la voz.
Una voz diseñada no tiene audio de consentimiento, ya que se genera a partir de una descripción y no de la grabación de una persona.
Las entradas de voz se almacenan para que tu voz siga funcionando en las actualizaciones del modelo. Los artefactos de voz se vuelven a generar a partir de las entradas almacenadas cuando se actualiza el modelo subyacente. Si no se encuentran entradas almacenadas para una voz, no se pueden regenerar sus artefactos y la voz deja de funcionar después de una actualización del modelo. Luego, debes volver a crear la voz.
Las entradas almacenadas se usan solo para volver a generar la voz cuando se actualizan los modelos. Se encriptan en reposo y se aíslan en el proyecto que creó la voz.
Período de retención
Las voces y todos los datos almacenados asociados se conservan durante un máximo de un año (365 días) desde la última vez que usaste la voz para sintetizar el habla. El período comienza cuando creas la voz y se restablece cada vez que envías una solicitud de síntesis que usa la voz. Si no se usa una voz durante 365 días, se borrarán la voz, sus entradas almacenadas y sus artefactos derivados.
Borrado por el cliente
Puedes borrar una voz en cualquier momento con el método delete de la API de Voices.
Si borras una voz, se borrarán sus entradas almacenadas y los artefactos derivados. Si borras
el proyecto de Google Cloud propietario de una voz, también se borrará la voz, según el
proceso estándar de eliminación de proyectos.
Voces prediseñadas
En la siguiente lista, se muestra cada nombre de voz precompilada y su característica:
- Achernar: Suave
- Achird: Amigable
- Algenib: Gravoso
- Algieba: Suave
- Alnilam: Firme
- Aoede: Voz agradable
- Autonoe: Brillante
- Callirrhoe: Tranquila
- Charon: Informativa
- Despina: Suave
- Enceladus: Voz entrecortada
- Erinome: Borrar
- Fenrir: Entusiasta
- Gacrux: Mayores de edad
- Iapetus: Voz clara
- Kore: Firme
- Laomedeia: Alegre
- Leda: Joven
- Orus: Firme
- Puck: Alegre
- Pulcherrima: Voz decidida
- Rasalgethi: Informativa
- Sadachbia: Alegre
- Sadaltager: Voz experta
- Schedar: Uniforme
- Sulafat: Cálido
- Umbriel: Tranquilo
- Vindemiatrix: Amable
- Zephyr: Alegre
- Zubenelgenubi: Informal
Biblioteca de voces extendida
Además de las 30 voces prediseñadas, la Biblioteca de voces extendida proporciona más de 2,000 voces predeterminadas seleccionadas en diferentes idiomas, acentos regionales, arquetipos de personajes y casos de uso, como audiolibros, agentes conversacionales y noticias.
Para usar una voz de biblioteca, pasa su ID en speechConfig.voiceConfig.voice, de la misma manera en que pasas el nombre de una voz prediseñada.
Para explorar la biblioteca, llama al método list de la API de Voices (ListVoices). Este devuelve las voces personalizadas almacenadas en tu proyecto, seguidas de las voces prediseñadas y las de la Biblioteca de voces extendida. Cada voz de la biblioteca incluye su id y metadatos, como language_code, accent, gender, pitch, persona y description. Para limitar los resultados, usa los siguientes filtros:
type: Es la fuente de la voz:prebuiltpara las voces prediseñadas y de la biblioteca,promptedpara las voces diseñadas oreplicatedpara las voces replicadas. Si pasas más de un valor, el método devuelve las voces que coinciden con cualquiera de ellos.search: Es el texto que se debe hacer coincidir, sin distinguir mayúsculas de minúsculas, con el nombre visible y la descripción de cada voz.
En el siguiente ejemplo, se busca en la biblioteca voces de narrador:
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.voices.list(type_=["prebuilt"], search="narrator", page_size=50)
for voice in response.voices or []:
print(voice.id, voice.language_code, voice.gender, voice.description)
REST
curl -G \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices \
--data-urlencode "type=prebuilt" \
--data-urlencode "search=narrator" \
--data-urlencode "pageSize=50"
El método list devuelve hasta 50 voces por página. Para obtener la página siguiente, pasa el valor de next_page_token de la respuesta como el parámetro page_token.
Formatos de salida de audio
La codificación de audio predeterminada depende del método:
- Las solicitudes unarias (
generateContent) devuelven un archivo WAV completo (audio/wav) con un encabezado RIFF: PCM de 16 bits, 24 kHz, mono. - Las solicitudes de transmisión (
streamGenerateContent) devuelven fragmentos de PCM sin encabezado, sin procesar, de 16 bits, con signo, little-endian (audio/l16) a 24 kHz, mono.
Para solicitar una codificación diferente, configura generationConfig.responseFormat en un formato de audio. Los modelos de Gemini 3.8 TTS admiten los siguientes valores de mimeType:
Valor mimeType |
Formato | Descripción |
|---|---|---|
AUDIO_WAV (unario predeterminado) |
WAV (audio/wav) |
Es un archivo WAV completo con un encabezado RIFF (PCM de 16 bits, 24 kHz, mono). |
AUDIO_L16 (predeterminado para la transmisión) |
PCM lineal (audio/l16) |
PCM sin encabezado, sin procesar, de 16 bits, con signo y con formato little-endian. Se usa para la transmisión, las canalizaciones de audio personalizadas o la concatenación de clips de varios turnos. |
AUDIO_MULAW |
Ley μ (audio/mulaw) |
Audio comprimido con la ley μ de G.711 (8 kHz, mono), que se usa de uso frecuente en la telefonía de Norteamérica y Japón. |
AUDIO_ALAW |
Ley A (audio/alaw) |
Audio comprimido con ley A de G.711 (8 kHz, mono), que se usa comúnmente en la telefonía europea e internacional. |
Los modelos ignoran el campo sampleRate. La salida de PCM lineal y WAV es de 24 kHz, y la salida de μ-law y A-law es de 8 kHz, independientemente de la tasa en la respuesta mimeType. Vuelve a muestrear el resultado en el cliente si tu canalización requiere una
tasa de muestreo diferente.
En el siguiente ejemplo, se solicita la salida de ley μ para una canalización de telefonía. El SDK de IA generativa de Google para Python no expone responseFormat en GenerateContentConfig, por lo que la muestra de Python lo pasa en el cuerpo de la solicitud con http_options.extra_body.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{"role": "user", "parts": [{"text": "Have a wonderful day!"}]}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
"http_options": {
"extra_body": {
"generationConfig": {
"responseFormat": [{"audio": {"mimeType": "AUDIO_MULAW"}}]
}
}
},
},
)
# The response is headerless μ-law audio at 8 kHz, mono.
with open("out.mulaw", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{"role": "user", "parts": [{"text": "Have a wonderful day!"}]}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"responseFormat": [{"audio": {"mimeType": "AUDIO_MULAW"}}],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > out.mulaw
Lenguajes compatibles
Los modelos de Gemini 3.8 TTS detectan el idioma de entrada automáticamente. Gemini 3.8 Flash TTS admite 130 idiomas y Gemini 3.8 Flash-Lite TTS admite 101 idiomas:
Limitaciones
- Los modelos de TTS aceptan solo entradas de texto y devuelven solo salidas de audio.
- Las solicitudes de varios interlocutores requieren exactamente dos interlocutores. Para combinar voces diseñadas
(
voice_...) o replicadas (voice_...ovoicekey_...) en diálogos de varios personajes, o para usar más de dos interlocutores, sintetiza el turno de cada interlocutor de forma individual y concatena el audio. Solicita la salidaAUDIO_L16para cada turno o quita el encabezado WAV de cada clip antes de concatenarlos. - Los modelos solo están disponibles en la ubicación
global. - No se admiten las instrucciones del sistema.
- No puedes establecer la tasa de muestreo de salida. No se admiten las salidas en MP3 ni Ogg Opus.
¿Qué sigue?
- Obtén información para dirigir el estilo, el ritmo y los sonidos vocales en la guía de instrucciones.
- Crea voces personalizadas a partir de una descripción de texto con Diseño de voz.
- Replica la voz de un interlocutor con la replicación de voz.
- Revisa las especificaciones de los modelos en las páginas de Gemini 3.8 Flash TTS y Gemini 3.8 Flash-Lite TTS.