Gemini 3.5 Transcribe

O Gemini 3.5 Transcribe é o modelo do Google para converter voz em texto em vários idiomas, disponível na Agent Platform. Com base nos recursos de compreensão de áudio do Gemini, ele oferece transcrição precisa e de baixa latência com detecção de idioma baseada em enunciados, diarização de locutor, carimbos de data/hora no nível da palavra, transcrição inteligente e polarização de fala com vocabulário personalizado.

O Gemini 3.5 Transcribe é o principal recurso de transcrição de áudio, preenchendo a lacuna entre os modelos multimodais de raciocínio profundo e os fluxos de trabalho de conversão de voz em texto altamente otimizados.

Para começar, consulte o notebook introdutório do Gemini 3.5 Transcribe.

Ele aceita dois métodos principais de operação:

  • Transcrição instantânea (ao vivo):faz streaming de áudio e recebe resultados de transcrição de forma incremental, em tempo real, usando o modelo gemini-3.5-transcribe-live.
  • Transcrição síncrona:transcreve arquivos de áudio pré-gravados completos em uma única solicitação usando o modelo gemini-3.5-transcribe.

Suporte e limitações dos recursos

O Gemini 3.5 Transcribe oferece suporte aos seguintes recursos nos dois endpoints:

Recurso Transmissão ao vivo (gemini-3.5-transcribe-live) Processamento de arquivos de áudio (gemini-3.5-transcribe) Etapa do lançamento Observações / Limitações
Detecção automática de idioma Compatível (mais de 85 idiomas) Compatível (mais de 85 idiomas) Com suporte Inclui a mistura de idiomas no meio da sessão.
Carimbos de data/hora no nível da expressão Com suporte Incompatível Com suporte
Carimbos de data/hora no nível da palavra Incompatível Com suporte Experimental Degrada a acurácia da transcrição.
Viés de vocabulário personalizado Compatível (até 1.000 termos) Compatível (até 1.000 termos) Com suporte Os clientes costumam ter melhores resultados com até 100 termos.
Ditado e formatação inteligentes Compatível (com endpoint manual) Com suporte Experimental Inclui a remoção de palavras desnecessárias e a formatação alfanumérica que reconhece a intenção. Para transmissão ao vivo, use com endpointing manual.
Diarização de locutor Incompatível Compatível (até 8 alto-falantes) Experimental A atribuição para mais de 3 locutores é experimental.
Duração máxima do áudio Até 10 minutos Até 15 minutos Com suporte O processamento de arquivos é limitado a 15 minutos quando recursos como diarização ou carimbos de data/hora estão ativados.

Transcrição de transmissão ao vivo

O BidiGenerateContent (Live) API permanece aberto enquanto você faz streaming de pequenos trechos de áudio para o modelo e recebe resultados de transcrição de forma incremental, conforme eles ficam disponíveis. Isso é usado para legendagem ou transcrição quase em tempo real da entrada do microfone.

Para testar a transcrição de streaming sem escrever nenhum código, abra gemini-3.5-transcribe-live na página da API Gemini Live do Agent Studio, grave ou faça upload de um áudio e assista à transcrição em tempo real.

Teste o Gemini 3.5 Transcribe no Agent Studio

Para transcrever áudio em streaming, crie um LiveConnectConfig e defina response_modalities como ["TEXT"] junto com a configuração 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}")

Transcrição síncrona

Use o método generate_content padrão para transcrever arquivos de áudio completos que já foram gravados. Configure os parâmetros criando um AudioTranscriptionConfig dentro de GenerateContentConfig.

Carimbos de data/hora no nível da palavra

Definir word_timestamp=True retorna o tempo por palavra. A lista audio_transcription.words da resposta contém cada palavra reconhecida, além de start_offset e 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}**")

Diarização de locutor e vocabulário personalizado

Definir diarization=True pede que o modelo identifique e rotule os locutores individuais. Também é possível fornecer um campo custom_vocabulary com uma lista de frases que influenciam o Gemini 3.5 Transcribe a reconhecer termos específicos. Em geral, o modelo segue as instruções de vocabulário personalizado de forma mais confiável quando um idioma também é especificado usando 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 transcrição

O Gemini 3.5 Transcribe oferece dois modos de transcrição usando o parâmetro mode em AudioTranscriptionConfig:

  • VERBATIM (padrão): retorna uma transcrição exata de tudo o que foi dito, preservando palavras desnecessárias ("hum", "ah", "tipo", "sabe"), repetições, pausas e começos falsos.
  • SMART (Transcrição inteligente): otimiza a transcrição para leitura aplicando um pós-processamento inteligente:
    • Remoção de disfluência:remove palavras desnecessárias, gagueira e falsos inícios.
    • Autocorreções inline: resolve correções faladas diretamente (por exemplo, "Vamos nos encontrar na terça-feira, na verdade não, na quarta-feira às duas" se torna "Vamos nos encontrar na quarta-feira às 14h").
    • Formatação estruturada automática:estrutura automaticamente os pensamentos falados em parágrafos, listas numeradas, marcadores, datas, moedas e números formatados.
    • Limpeza gramatical:aplica pontuação, uso de maiúsculas e minúsculas e fluxo naturais.
Áudio falado Saída VERBATIM Saída de SMART (Transcrição inteligente)
"Hum, para a reunião, acho que devemos, ah, convidar Alice e, espere, não, Bob e Carol." "Para a reunião, acho que devemos convidar Alice e, não, Bob e Carol." "Para a reunião, acho que devemos convidar o Bob e a Carol."
"Primeiro item: revisar o orçamento. Segundo item: finalizar o cronograma. Terceiro item: enviar o resumo" "primeiro item: revisar orçamento; segundo item: finalizar cronograma; terceiro item: enviar resumo" "1. Revisar orçamento
2. Finalizar cronograma
3. Enviar Recap"

Transcrição síncrona com o 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",
        ),
    ),
)

Transcrição instantânea com o modo SMART e endpointing manual

Ao usar o modo SMART com a transcrição de streaming ao vivo (gemini-3.5-transcribe-live), use o endpointing manual (detecção de atividade de voz manual) em vez da VAD automática. Como o modo SMART aplica pós-processamento no nível da fala, como resolver autocorreções inline e estruturar listas ou parágrafos, a VAD automática pode dividir prematuramente o pensamento de um usuário durante pausas naturais.

Para configurar o endpointing manual, desative automatic_activity_detection em RealtimeInputConfig e marque explicitamente o início e o fim da fala do usuário usando activity_start e 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())

Suporte ao idioma

Os seguintes idiomas e códigos de idioma BCP-47 são compatíveis com o Gemini 3.5 Transcribe:

Idioma Código BCP-47 Prontidão Idioma Código BCP-47 Prontidão
Africâner af-ZA Experimental Japonês ja-JP Com suporte
Amárico am-ET Experimental Javanês jv-ID Experimental
Árabe (Egito) ar-EG Experimental Kabuverdianu kea-CV Experimental
Armênio hy-AM Experimental Canarês kn-IN Experimental
Assamês as-IN Experimental Cazaque kk-KZ Experimental
Azerbaijano az-AZ Experimental Coreano ko-KR Com suporte
Bielorrusso be-BY Experimental Quirguiz ky-KG Experimental
Bengali (Bangladesh) bn-BD Experimental Letão lv-LV Experimental
Bengali (Índia) bn-IN Experimental Lingala ln-CD Experimental
Bósnio bs-BA Experimental Lituano lt-LT Experimental
Búlgaro bg-BG Experimental Macedônio mk-MK Experimental
Búlgaro (aromaniano) rup-BG Experimental Malaio ms-MY Experimental
Birmanês my-MM Experimental Malaiala ml-IN Experimental
Cantonês (tradicional) yue-Hant-HK Experimental Maltês mt-MT Experimental
Catalão ca-ES Com suporte Chinês mandarim (simplificado) cmn-Hans-CN Com suporte
Cebuano ceb Experimental Marati mr-IN Experimental
Khmer central km-KH Experimental Mongol mn-MN Experimental
Croata hr-HR Com suporte Nepalês ne-NP Experimental
Tcheco cs-CZ Experimental Norueguês nb-NO Experimental
Dinamarquês da-DK Com suporte Oriá or-IN Experimental
Holandês nl-NL Com suporte Polonês pl-PL Com suporte
Inglês (Austrália) en-AU Com suporte Português (Brasil) pt-BR Com suporte
Inglês (Grã-Bretanha) en-GB Com suporte Português (Portugal) pt-PT Com suporte
Inglês (Índia) en-IN Com suporte Punjabi pa-IN Experimental
Inglês (Estados Unidos) en-US Com suporte Punjabi (escrita gurmukhi) pa-Guru-IN Experimental
Estoniano et-EE Experimental Romeno ro-RO Com suporte
Farsi fa-IR Experimental Russo ru-RU Com suporte
Filipino fil-PH Experimental Sérvio sr-RS Experimental
Finlandês fi-FI Com suporte Sindi (alfabeto árabe) sd-Arab-IN Experimental
Francês fr-FR Com suporte Eslovaco sk-SK Experimental
Francês (Canadá) fr-CA Com suporte Esloveno sl-SI Experimental
Galego gl-ES Experimental Espanhol (América Latina) es-419 Experimental
Georgiano ka-GE Experimental Espanhol (Espanha) es-ES Com suporte
Alemão de-DE Com suporte Espanhol (Estados Unidos) es-US Com suporte
Grego el-GR Com suporte Swahili (Quênia) sw-KE Experimental
Gujarati gu-IN Experimental Sueco sv-SE Com suporte
Hauçá ha-NG Experimental Tadjique tg-TJ Experimental
Hebraico he-IL Experimental Télugo te-IN Experimental
Hindi hi-IN Com suporte Tailandês th-TH Experimental
Húngaro hu-HU Experimental Turco tr-TR Com suporte
Islandês is-IS Experimental Ucraniano uk-UA Com suporte
Indonésio id-ID Experimental Uzbeque uz-UZ Experimental
Italiano it-IT Com suporte Vietnamita vi-VN Com suporte

Disponibilidade regional

O Gemini 3.5 Transcribe está disponível nos seguintes locais do Cloud de Confiance by S3NS :

Endpoint Cloud de Confiance by S3NS Localização Prontidão para o lançamento
gemini-3.5-transcribe global Com suporte
gemini-3.5-transcribe us Compatível
gemini-3.5-transcribe eu Compatível
gemini-3.5-transcribe-live global Compatível
gemini-3.5-transcribe-live us Compatível
gemini-3.5-transcribe-live eu Com suporte

Práticas recomendadas

  • Forneça áudio limpo:as gravações de áudio precisam ter uma separação de voz nítida e evitar cortes graves.
  • Forneça dicas de idioma quando souber:se você souber o idioma do áudio com antecedência, especifique language_codes para maximizar a precisão.
  • Vocabulário personalizado de destino:inclua apenas termos de domínio, nomes de marcas ou substantivos próprios distintos em custom_vocabulary, em vez de palavras comuns do dia a dia.
  • Use o endpointing manual com o modo SMART na Transcrição instantânea:desative a VAD automática (automatic_activity_detection) e envie explicitamente os indicadores activity_start e activity_end para que o modelo possa aplicar a remoção de disfluência, as autocorreções e a formatação em todas as frases completas.

Teste no Agent Studio Preços

ID do modelo ['gemini-3.5-transcribe', 'gemini-3.5-transcribe-live']
Modalidades
Texto Somente saída
Imagem Não compatível
Áudio Somente entrada
Vídeo Não compatível
Recursos
Ferramentas
APIs
Opções de consumo
Regiões compatíveis

Disponibilidade do modelo

  • Global: global

Processamento de ML

  • Estados Unidos: Multi-region
  • Europa: Multi-region
Versões
  • gemini-3.5-transcribe-preview
    • Estágio de lançamento: pré-lançamento
    • Data de lançamento: agosto de 2026
  • gemini-3.5-transcribe
    • Estágio de lançamento: GA
    • Data de lançamento: outubro de 2026
  • gemini-3.5-transcribe-live-preview
    • Estágio de lançamento: pré-lançamento
    • Data de lançamento: agosto de 2026
  • gemini-3.5-transcribe-live
    • Estágio de lançamento: GA
    • Data de lançamento: outubro de 2026