Gemini 3.5 Transcribe

Gemini 3.5 Transcribe es el modelo de Google para convertir voz a texto en varios idiomas, disponible a través de Agent Platform. Según las capacidades de comprensión de audio de Gemini, proporciona transcripciones precisas y de baja latencia con detección de idioma basada en enunciados, identificación de interlocutores, marcas de tiempo a nivel de palabra, transcripción inteligente y ponderación del habla con vocabulario personalizado.

Gemini 3.5 Transcribe es el principal motor de transcripción de audio, ya que cierra la brecha entre los modelos multimodales de razonamiento profundo y los flujos de trabajo de voz a texto altamente optimizados.

Para comenzar, consulta el notebook introductorio de Gemini 3.5 Transcribe.

Admite dos métodos principales de operación:

  • Transcripción instantánea (en vivo): Transmite audio y recibe resultados de transcripción de forma incremental, en tiempo real, con el modelo gemini-3.5-transcribe-live.
  • Transcripción síncrona: Transcribe archivos de audio pregrabados completos en una sola solicitud con el modelo gemini-3.5-transcribe.

Compatibilidad y limitaciones de las funciones

Gemini 3.5 Transcribe admite las siguientes funciones en sus dos extremos:

Función Transmisiones en vivo (gemini-3.5-transcribe-live) Procesamiento de archivos de audio (gemini-3.5-transcribe) Etapa de lanzamiento Notas y limitaciones
Detección automática de idioma Compatible (más de 85 idiomas) Compatible (más de 85 idiomas) Admitido Incluye la mezcla de códigos a mitad de la sesión.
Marcas de tiempo a nivel de la expresión Admitido No es compatible Admitido
Marcas de tiempo a nivel de la palabra No es compatible Admitido Experimental Disminuye la precisión de la transcripción.
Sesgo de vocabulario personalizado Se admite (hasta 1,000 términos) Se admite (hasta 1,000 términos) Admitido Por lo general, los clientes obtienen mejores resultados con hasta 100 términos.
Dictado y formato inteligentes Compatible (con extremos manuales) Admitido Experimental Incluye la eliminación de muletillas y el formato alfanumérico que reconoce la intención. Para la transmisión en vivo, usa la detección manual de extremos.
Identificación de interlocutores No es compatible Compatible (hasta 8 bocinas) Experimental La atribución para 3 o más interlocutores es experimental.
Duración máxima del audio Hasta 10 minutos Hasta 15 minutos Admitido El procesamiento de archivos se limita a 15 minutos cuando se habilitan funciones como la identificación de interlocutores o las marcas de tiempo.

Transcripción de transmisiones en vivo

La BidiGenerateContent (Live) API permanece abierta mientras transmites pequeños fragmentos de audio al modelo y recibes resultados de transcripción de forma incremental, a medida que están disponibles. Se usa para subtitular o transcribir la entrada del micrófono casi en tiempo real.

Para probar la transcripción de transmisión sin escribir código, abre gemini-3.5-transcribe-live en la página de la API de Gemini Live de Agent Studio, graba o sube audio y mira cómo se transmite la transcripción.

Prueba Gemini 3.5 Transcribe en Agent Studio

Para transcribir audio de transmisión, compila un LiveConnectConfig y establece response_modalities en ["TEXT"] junto con tu configuración de input_audio_transcription.

import asyncio
from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)

config = types.LiveConnectConfig(
    response_modalities=["TEXT"],
    input_audio_transcription=types.AudioTranscriptionConfig(
        language_codes=["it-IT", "en-US"],
    ),
)

async def streaming_main(audio_file, config):
    # Connect to the Live API session
    async with client.aio.live.connect(model="gemini-3.5-transcribe-live", config=config) as session:
        # In a complete implementation, you would chunk the audio and send via:
        # await session.send_realtime_input(audio=types.Blob(data=data, mime_type="audio/pcm;rate=16000"))
        # await session.send_realtime_input(audio_stream_end=True)

        async for message in session.receive():
            if message.server_content:
                server_content = message.server_content

                # Track the active interim segment
                interim = server_content.interim_input_transcription
                if interim and interim.text:
                    print(f"Interim: {interim.text}")

                # Save final transcript and clear the interim
                final = server_content.input_transcription
                if final and final.text:
                    print(f"Final: {final.text}")

Transcripción síncrona

Puedes usar el método generate_content estándar para transcribir archivos de audio completos que ya se hayan grabado. Configura los parámetros compilando un AudioTranscriptionConfig dentro de GenerateContentConfig.

Marcas de tiempo a nivel de la palabra

Si configuras word_timestamp=True, se devuelven los tiempos a nivel de palabra. La lista audio_transcription.words de la respuesta contiene cada palabra reconocida junto con su start_offset y end_offset.

from google import genai
from google.genai import types

# Initialize the client for Vertex AI / Agent Platform
client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)

with open("input.wav", "rb") as f:
    audio_bytes = f.read()

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_bytes(
            data=audio_bytes,
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            word_timestamp=True,
        ),
    ),
)

parts = getattr(response, "parts", []) or []
if parts and (audio_tx := getattr(parts[0], "audio_transcription", None)):
    for w in getattr(audio_tx, "words", []) or []:
        print(f"[{w.start_offset} - {w.end_offset}] {w.word}")

if text := "".join(p.text for p in parts if getattr(p, "text", None)):
    print(f"**{text}**")

Identificación de interlocutores y vocabulario personalizado

Si configuras diarization=True, le pides al modelo que identifique y etiquete a los interlocutores individuales. También puedes proporcionar un campo custom_vocabulary con una lista de frases que sesguen a Gemini 3.5 Transcribe para que reconozca términos específicos. Por lo general, el modelo sigue las instrucciones de vocabulario personalizado de manera más confiable cuando también se especifica un idioma con language_codes.

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/audio/coffee_order.wav",
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            diarization=True,
            language_codes=["en-US"],
            custom_vocabulary=["oatmilk", "oz"],
        ),
    ),
)

parts = getattr(response, "parts", []) or []
for p in parts:
    audio_tx = getattr(p, "audio_transcription", None)
    speaker = getattr(audio_tx, "speaker_label", "UNKNOWN") if audio_tx else "UNKNOWN"
    text = getattr(p, "text", "") or (getattr(audio_tx, "text", "") if audio_tx else "")

    if text:
        print(f"**{speaker}**: {text}")

Modos de transcripción

Gemini 3.5 Transcribe admite dos modos de transcripción a través del parámetro mode en AudioTranscriptionConfig:

  • VERBATIM (predeterminado): Devuelve una transcripción exacta palabra por palabra de todo lo que se dice, conservando las muletillas sin procesar ("um", "eh", "como", "ya sabes"), las repeticiones, las pausas y los inicios en falso.
  • SMART (Transcripción inteligente): Optimiza la transcripción para la lectura aplicando un procesamiento posterior inteligente:
    • Eliminación de disfluencias: Quita las muletillas, los tartamudeos y los inicios falsos de las conversaciones.
    • Autocorrecciones intercaladas: Resuelve las correcciones habladas directamente (por ejemplo, "Reunámonos el martes, no, mejor el miércoles a las dos" se convierte en "Reunámonos el miércoles a las 2:00 p.m.").
    • Formato estructurado automático: Estructura automáticamente los pensamientos hablados en párrafos, listas numeradas, viñetas, fechas, monedas y números con formato.
    • Limpieza gramatical: Aplica puntuación, uso de mayúsculas y flujo naturales.
Audio hablado Resultado de VERBATIM Resultado de SMART (Transcripción inteligente)
"Bueno, para la reunión, creo que deberíamos, eh, invitar a Alicia y, no, espera, a Roberto y a Carolina". "Bueno, para la reunión, creo que deberíamos invitar a Alicia y, no, espera, a Roberto y a Carolina". "Para la reunión, creo que deberíamos invitar a Bob y Carol".
"Primer elemento: revisar el presupuesto; segundo elemento: finalizar el cronograma; tercer elemento: enviar el resumen" "primer elemento revisar presupuesto segundo elemento finalizar cronograma tercer elemento enviar resumen" "1. Revisa el presupuesto
2. Finaliza el cronograma.
3. Enviar resumen"

Transcripción síncrona con el modo SMART

response = client.models.generate_content(
    model="gemini-3.5-transcribe",
    contents=[
        types.Part.from_bytes(
            data=audio_bytes,
            mime_type="audio/wav",
        ),
    ],
    config=types.GenerateContentConfig(
        audio_transcription_config=types.AudioTranscriptionConfig(
            mode="SMART",
        ),
    ),
)

Transcripción instantánea con el modo SMART y detección manual de puntos de conexión

Cuando uses el modo SMART con la transcripción de transmisión en vivo (gemini-3.5-transcribe-live), debes usar la detección manual de extremos (detección manual de actividad de voz) en lugar de la VAD automática. Debido a que el modo SMART aplica un procesamiento posterior a nivel de la expresión, como resolver autocorrecciones intercaladas y estructurar listas o párrafos, la VAD automática puede dividir de forma prematura el pensamiento de un usuario durante las pausas naturales.

Para configurar la detección manual de extremos, inhabilita automatic_activity_detection en RealtimeInputConfig y marca de forma explícita el comienzo y el final del turno de voz del usuario con activity_start y activity_end:

config = types.LiveConnectConfig(
    response_modalities=["TEXT"],
    realtime_input_config=types.RealtimeInputConfig(
        automatic_activity_detection=types.AutomaticActivityDetection(
            disabled=True,
        ),
    ),
    input_audio_transcription=types.AudioTranscriptionConfig(
        mode="SMART",
    ),
)

async with client.aio.live.connect(
    model="gemini-3.5-transcribe-live", config=config
) as session:
    # Signal start of speech turn
    await session.send_realtime_input(activity_start=types.ActivityStart())

    # Stream audio chunks...
    await session.send_realtime_input(
        audio=types.Blob(data=audio_bytes, mime_type="audio/pcm;rate=16000")
    )

    # Signal end of speech turn so SMART mode can process the complete utterance
    await session.send_realtime_input(activity_end=types.ActivityEnd())

Idiomas admitidos

Los siguientes idiomas y códigos de idioma BCP-47 son compatibles con Gemini 3.5 Transcribe:

Idioma Código BCP-47 Preparación Idioma Código BCP-47 Preparación
Afrikaans af-ZA Experimental Japonés ja-JP Admitido
Amárico am-ET Experimental Javanés jv-ID Experimental
Árabe (Egipto) ar-EG Experimental Criollo caboverdiano kea-CV Experimental
Armenio hy-AM Experimental Canarés kn-IN Experimental
Asamés as-IN Experimental Kazajo kk-KZ Experimental
Azerbaiyano az-AZ Experimental Coreano ko-KR Admitido
Bielorruso be-BY Experimental Kirguizo ky-KG Experimental
Bengalí (Bangladés) bn-BD Experimental Letón lv-LV Experimental
Bengalí (India) bn-IN Experimental Lingala ln-CD Experimental
Bosnio bs-BA Experimental Lituano lt-LT Experimental
Búlgaro bg-BG Experimental Macedonio mk-MK Experimental
Búlgaro (arrumano) rup-BG Experimental Malayo ms-MY Experimental
Birmano my-MM Experimental Malayalam ml-IN Experimental
Cantonés (tradicional) yue-Hant-HK Experimental Maltés mt-MT Experimental
Catalán ca-ES Admitido Chino mandarín (simplificado) cmn-Hans-CN Admitido
Cebuano ceb Experimental Maratí mr-IN Experimental
Camboyano km-KH Experimental Mongol mn-MN Experimental
Croata hr-HR Admitido Nepalí ne-NP Experimental
Checo cs-CZ Experimental Noruego nb-NO Experimental
Danés da-DK Admitido Oriya or-IN Experimental
Holandés nl-NL Admitido Polaco pl-PL Admitido
Inglés (Australia) en-AU Admitido Portugués (Brasil) pt-BR Admitido
Inglés (Gran Bretaña) en-GB Admitido Portugués (Portugal) pt-PT Admitido
Inglés (India) en-IN Admitido Punyabí pa-IN Experimental
Inglés (Estados Unidos) en-US Admitido Panyabí (alfabeto gurmují) pa-Guru-IN Experimental
Estonio et-EE Experimental Rumano ro-RO Admitido
Persa fa-IR Experimental Ruso ru-RU Admitido
Filipino fil-PH Experimental Serbio sr-RS Experimental
Finlandés fi-FI Admitido Sindhi (escritura árabe) sd-Arab-IN Experimental
Francés fr-FR Admitido Eslovaco sk-SK Experimental
Francés (Canadá) fr-CA Admitido Esloveno sl-SI Experimental
Gallego gl-ES Experimental Español (América Latina) es-419 Experimental
Georgiano ka-GE Experimental Español (España) es-ES Admitido
Alemán de-DE Admitido Español (Estados Unidos) es-US Admitido
Griego el-GR Admitido Suajili (Kenia) sw-KE Experimental
Gujarati gu-IN Experimental Sueco sv-SE Admitido
Hausa ha-NG Experimental Tayiko tg-TJ Experimental
Hebreo he-IL Experimental Telugu te-IN Experimental
Hindi hi-IN Admitido Tailandés th-TH Experimental
Húngaro hu-HU Experimental Turco tr-TR Admitido
Islandés is-IS Experimental Ucraniano uk-UA Admitido
Indonesio id-ID Experimental Uzbeko uz-UZ Experimental
Italiano it-IT Admitido Vietnamita vi-VN Admitido

Disponibilidad regional

Gemini 3.5 Transcribe está disponible en las siguientes ubicaciones de Cloud de Confiance by S3NS :

Extremo Cloud de Confiance by S3NS Ubicación Preparación para el lanzamiento
gemini-3.5-transcribe global Admitido
gemini-3.5-transcribe us Compatible
gemini-3.5-transcribe eu Compatible
gemini-3.5-transcribe-live global Compatible
gemini-3.5-transcribe-live us Compatible
gemini-3.5-transcribe-live eu Admitido

Prácticas recomendadas

  • Proporciona audio limpio: Asegúrate de que las grabaciones de audio tengan una separación de voz nítida y evita los recortes graves.
  • Proporciona sugerencias de idioma cuando se conozcan: Si conoces el idioma del audio de antemano, especifica language_codes para maximizar la precisión.
  • Vocabulario personalizado objetivo: Incluye solo términos de dominio, nombres de marcas o nombres propios distintos en custom_vocabulary en lugar de palabras comunes de uso diario.
  • Usa la detección manual de extremos con el modo SMART en la Transcripción instantánea: Inhabilita la VAD automática (automatic_activity_detection) y envía de forma explícita las señales activity_start y activity_end para que el modelo pueda aplicar la eliminación de disfluencias, las autocorrecciones y el formato en las expresiones completas.

Probar en Agent Studio Precios

ID de modelo ['gemini-3.5-transcribe', 'gemini-3.5-transcribe-live']
Modalidades
Texto Solo salida
Imagen No compatible
Audio Solo entrada
Video No compatible
Funciones
Herramientas
API
Opciones de consumo
Regiones admitidas

Disponibilidad de modelos

  • Global: global

Procesamiento de AA

  • Estados Unidos: Multi-region
  • Europa: Multi-region
Versiones
  • gemini-3.5-transcribe-preview
    • Etapa de lanzamiento: Versión preliminar
    • Fecha de lanzamiento: agosto de 2026
  • gemini-3.5-transcribe
    • Etapa de lanzamiento: DG
    • Fecha de lanzamiento: octubre de 2026
  • gemini-3.5-transcribe-live-preview
    • Etapa de lanzamiento: Versión preliminar
    • Fecha de lanzamiento: agosto de 2026
  • gemini-3.5-transcribe-live
    • Etapa de lanzamiento: DG
    • Fecha de lanzamiento: octubre de 2026