Para transcribir un archivo ya grabado, usa gemini-3.5-transcribe mediante Files API e Interactions API. Para mostrar texto mientras alguien habla, usa gemini-3.5-transcribe-live mediante Live API. No son dos nombres intercambiables: cambian el formato de audio, los eventos, la duración y las anotaciones disponibles.
Gemini 3.5 Transcribe es una ruta de voz a texto. No es Gemini 3.5 Live Translate, un agente que escucha y responde con voz, un modelo de razonamiento sobre audio ni un sistema de síntesis. Si después necesitas resumir una reunión o ejecutar herramientas, conserva primero un transcript verificable y pásalo a una segunda etapa.
Google lanzó el acceso para desarrolladores en public preview el 26 de agosto de 2026. Antes de desplegar, vuelve a comprobar la ficha oficial de Gemini 3.5 Transcribe, porque IDs, SDK y límites pueden cambiar durante el preview.
La decisión no es “batch o streaming”, sino latencia o estructura
La ruta de archivo admite hasta una hora por request. Cuando activas diarización o marcas de tiempo por palabra, el máximo baja a 30 minutos. Es la opción adecuada para entrevistas, llamadas, pódcast, clases y reuniones cuando importan el hablante, la posición exacta o una transcripción que pueda auditarse.
La ruta Live limita cada sesión a diez minutos y no ofrece diarización ni marcas por palabra. A cambio, devuelve texto incremental con poca latencia. Para una emisión larga hay que renovar la sesión, recuperar conexiones y deduplicar segmentos.
Ambas rutas admiten detección automática de más de 85 idiomas, cambio de idioma, vocabulario personalizado y smart transcription. Si necesitas subtítulos inmediatos y, después, una transcripción precisa por hablante, guarda el audio mientras usas Live y vuelve a procesarlo como archivo al terminar.

Comprueba un archivo sin ocultar los fallos
La guía oficial de audio transcription sube el archivo y entrega su URI a Interactions API. Con JavaScript:
bashnpm install @google/genai export GEMINI_API_KEY="YOUR_API_KEY"
javascriptimport { GoogleGenAI } from "@google/genai"; const client = new GoogleGenAI({}); const audioFile = await client.files.upload({ file: "sample.mp3", config: { mime_type: "audio/mp3" }, }); const interaction = await client.interactions.create({ model: "gemini-3.5-transcribe", input: [ { type: "audio", uri: audioFile.uri, mime_type: audioFile.mimeType, }, ], }); console.log(interaction.output_text);
La primera prueba no demuestra precisión. Solo debe demostrar que el upload termina, la interacción acaba sin error, output_text no está vacío y el contenido pertenece al audio enviado. Registra model ID, duración, MIME type, estado y salida vacía/no vacía. Añade después una función cada vez; mezclar idioma, vocabulario, smart, hablantes y tiempos en el primer request complica cualquier diagnóstico.
La detección automática se activa omitiendo language_codes o enviando una lista vacía. Conviene usarla como opción segura para español mientras se resuelve una discrepancia actual de la documentación: la ficha del modelo enumera es-419 y es-US, pero la guía de transcripción muestra es-ES como ejemplo. No conviertas ese ejemplo en una garantía permanente; verifica la lista vigente antes de fijar un código.
custom_vocabulary admite hasta 1.000 términos, aunque Google indica que normalmente se obtienen mejores resultados con 100 o menos. Prioriza nombres propios, productos, siglas y referencias alfanuméricas cuyo error tenga impacto real.
Elige entre texto limpio y evidencia trazable
verbatim, el modo predeterminado, mantiene repeticiones, muletillas y autocorrecciones. Es útil para auditoría, control de calidad, subtítulos sincronizados y revisión de una declaración concreta.
smart elimina disfluencias, resuelve correcciones y formatea números o listas. Produce un texto más legible, pero no se puede combinar con diarización ni timestamps. Si el producto necesita una versión limpia y otra verificable, guarda primero verbatim con annotations y limpia una copia en un proceso posterior.
javascriptconst interaction = await client.interactions.create({ model: "gemini-3.5-transcribe", input: [ { type: "audio", uri: audioFile.uri, mime_type: audioFile.mimeType, }, ], generation_config: { transcription_config: { custom_vocabulary: ["Gemini", "BigQuery"], mode: { type: "verbatim", diarization_mode: "speaker", timestamp_granularities: ["word"], }, }, }, });
interaction.output_text contiene el texto unido. Las etiquetas de hablante y offsets de cada palabra viven en content annotations. Una aplicación que genera SRT, permite saltar al audio o calcula tiempo por participante debe guardar esas annotations, no solo la cadena final.
La documentación habla de hasta ocho hablantes, pero marca como experimental la atribución de tres o más. También advierte de que los timestamps pueden reducir la precisión. Las reuniones con varias personas necesitan una prueba propia, no una suposición basada en el máximo publicado.
Un cliente Live debe distinguir hipótesis y texto confirmado
La entrada actual de Live transcription es PCM raw de 16 bits, 16 kHz, mono y little-endian, enviado en bloques de 100 ms. WebM/Opus del navegador o μ-law de telefonía no se transforman cambiando el MIME type; los bytes deben decodificarse y remuestrearse.
La conexión recibe dos estados importantes:
interimInputTranscriptiones una hipótesis rápida que cambia mientras la persona habla. Debe sustituir el preview visible.inputTranscriptiones un segmento finalizado. Debe añadirse al transcript confirmado.
javascriptconst config = { responseModalities: ["TEXT"], inputAudioTranscription: { languageCodes: [] }, }; const session = await client.live.connect({ model: "gemini-3.5-transcribe-live", config, callbacks: { onmessage: (message) => { const content = message.serverContent; if (content?.interimInputTranscription) { replacePreview(content.interimInputTranscription.text); } if (content?.inputTranscription) { appendFinal(content.inputTranscription.text); } }, }, }); session.sendRealtimeInput({ audio: { data: audioChunkBase64, mimeType: "audio/pcm;rate=16000", }, });
replacePreview, appendFinal y la captura/transformación del audio pertenecen a la aplicación. Si guardas todos los interim, obtendrás frases repetidas y palabras que la hipótesis posterior corrigió.
Una app web o móvil que conecte directamente no debe incluir una API key permanente. Google documenta ephemeral tokens limitados que emite un servidor de confianza. El servicio también necesita renovar la sesión antes de diez minutos, manejar reconnect, cerrar el stream explícitamente y medir tiempo hasta partial y final.
El precio por minuto no incluye operar la transcripción
A 27 de agosto de 2026, la tarifa de Gemini Developer API estima la ruta grabada en unos $0.003/min de entrada y $0.002/min de salida, aproximadamente $0.005/min combinados. Live aparece con unos $0.005/min de entrada y $0.004/min de salida, unos $0.009/min combinados. La factura real depende de los tokens.
Con esa referencia, 100 horas serían unos $30 grabados o $54 Live. Faltan almacenamiento, conversión, servidor multimedia, reintentos, resumen posterior, observabilidad y corrección humana.
El Free Tier figura gratis, pero también como utilizado para mejorar productos de Google; el Paid Tier figura como no utilizado. Antes de enviar llamadas de clientes, reuniones internas o datos sensibles, valida consentimiento, retención, región y política de la organización. La página de precios tampoco garantiza que una cuenta de cualquier país pueda activar la misma ruta.
Una prueba española debe medir errores caros

Google cita a Artificial Analysis para un WER medio de 4,0% en streaming y 2,6% en non-streaming, y comunica una mejora en el tiempo hasta la transcripción final frente a Chirp 3. Son cifras para justificar una evaluación, no una garantía para castellano, acentos regionales, ruido, micrófonos o vocabulario de una empresa.
Crea un conjunto de 20–50 fragmentos reales: audio limpio, sala ruidosa, micrófono lejano, llamada telefónica, habla rápida, cambio de idioma y solapamiento. Puntúa aparte nombres, cantidades, fechas, direcciones, códigos y compromisos. Para Live mide cambios del interim, duplicados final, recuperación tras corte y latencia. Para archivos revisa atribución de hablantes y precisión al volver a una palabra.
Empieza por un archivo corto y no sensible, añade solo las annotations necesarias y construye Live por separado si la inmediatez es imprescindible. Si el requisito rígido es diarización en directo, tiempos por palabra en directo, una sesión superior a diez minutos sin renovación o transcribir y ejecutar tools en el mismo modelo, el contrato actual no encaja y conviene cambiar la arquitectura antes de acumular parches.



