La API de Gemini puede transformar la entrada de texto en audio de un solo orador o de varios oradores con las capacidades de generación de texto a voz (TTS) de Gemini. La generación de texto a voz (TTS) es controlable, lo que significa que puedes usar el lenguaje natural para estructurar las interacciones y guiar el estilo, el acento, el ritmo y el tono del audio.
La capacidad de TTS difiere de la generación de voz que se proporciona a través de la API en vivo, que está diseñada para audio interactivo y no estructurado, y entradas y salidas multimodales. Si bien la API de Live se destaca en contextos conversacionales dinámicos, la API de Gemini ofrece TTS adaptado a situaciones que requieren una recitación de texto exacta con un control detallado sobre el estilo y el sonido, como la generación de podcasts o audiolibros.
En esta guía, se muestra cómo generar audio de uno o varios oradores a partir de texto.
Antes de comenzar
Asegúrate de usar una variante del modelo Gemini 2.5 con capacidades de texto a voz (TTS) de Gemini, como se indica en la sección Modelos compatibles. Para obtener resultados óptimos, considera qué modelo se adapta mejor a tu caso de uso específico.
Antes de comenzar a compilar, te recomendamos probar los modelos de Gemini TTS en AI Studio.
TTS de un solo orador
Para convertir texto en audio de un solo orador, configura la modalidad de respuesta como "audio" y pasa un objeto speech_config con un nombre de voz.
Deberás elegir un nombre de voz de las voces de salida precompiladas.
En este ejemplo, se guarda el audio de salida del modelo en un archivo wave:
Python
from google import genai
import wave
import base64
def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
with wave.open(filename, "wb") as wf:
wf.setnchannels(channels)
wf.setsampwidth(sample_width)
wf.setframerate(rate)
wf.writeframes(pcm)
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.1-flash-tts-preview",
input="Say cheerfully: Have a wonderful day!",
response_format={"type": "audio"},
generation_config={
"speech_config": [
{"voice": "Kore"}
]
}
)
wave_file('out.wav', base64.b64decode(interaction.output_audio.data))
JavaScript
import {GoogleGenAI} from '@google/genai';
import wav from 'wav';
async function saveWaveFile(
filename,
pcmData,
channels = 1,
rate = 24000,
sampleWidth = 2,
) {
return new Promise((resolve, reject) => {
const writer = new wav.FileWriter(filename, {
channels,
sampleRate: rate,
bitDepth: sampleWidth * 8,
});
writer.on('finish', resolve);
writer.on('error', reject);
writer.write(pcmData);
writer.end();
});
}
async function main() {
const client = new GoogleGenAI({});
const interaction =