Entendimento de áudio (somente fala)

É possível adicionar áudio às solicitações do Gemini para realizar tarefas que envolvem compreender o conteúdo do áudio incluído. Esta página mostra como adicionar áudios às suas solicitações ao Gemini na Gemini Enterprise Agent Platform usando o console doGoogle Cloud e a API Agent Platform.

Modelos compatíveis

A tabela a seguir lista os modelos compatíveis com a compreensão de áudio:

Modelos Detalhes da mídia Tipos MIME
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de arquivos de áudio por comando: 1.000
  • Tamanho máximo da parte inline (API GenerateContent): 256 MB
  • Tamanho máximo por arquivo do Cloud Storage: 2 GiB menos 500 KiB
  • Tamanho máximo por arquivo de URLs HTTP ou HTTPS públicos: 15 MiB
  • Entendimento de fala para: resumo, transcrição e tradução de áudio
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
  • Número máximo de arquivos de áudio por comando: 1 stream
  • Formato de entrada de áudio obrigatório: áudio PCM bruto de 16 bits a 16 kHz, little-endian
  • Formato de saída de áudio obrigatório: Áudio PCM bruto de 16 bits a 24 kHz, little-endian
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
  • audio/mpa
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de arquivos de áudio por comando: 1.000 (até 1 URL HTTP ou HTTPS em endpoints não migrados)
  • Tamanho máximo da parte inline: 256 MB
  • Tamanho máximo por arquivo do Cloud Storage: 2 GiB menos 500 KiB
  • Tamanho máximo por arquivo de URLs HTTP ou HTTPS públicos: 15 MiB
  • Entendimento de fala para: resumo, transcrição e tradução de áudio
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
  • Duração máxima da conversa: padrão de 10 minutos, que pode ser estendido.
  • Formato de entrada de áudio obrigatório: áudio PCM bruto de 16 bits a 16 kHz, little-endian
  • Formato de saída de áudio obrigatório: Áudio PCM bruto de 16 bits a 24 kHz, little-endian
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm

Para uma lista de linguagens compatíveis com os modelos do Gemini, consulte as informações do modelo Modelos do Google. Para saber mais sobre como criar comandos multimodais, consulte Criar comandos multimodais. Se você está procurando uma maneira de usar o Gemini diretamente no seu dispositivo móvel e e apps da Web, consulte os SDKs de cliente do Firebase AI Logic para apps Swift, Android, Web, Flutter e Unity.

Limites de endpoint de API e janela de contexto

Os modelos padrão do Gemini 3 e versões mais recentes aceitam até 3.000 imagens e PDFs combinados, 1.000 arquivos de áudio ou 10 vídeos por solicitação no generateContent e na API Interactions (até 6.500 arquivos multimodais combinados quando arquivos de texto simples são incluídos). Os endpoints do Gemini 2.5 não migrados e o gemini-3.1-pro-preview-customtools aplicam limites legados de tamanho de arquivo, páginas de PDF (1.000) e contagem de URLs HTTP ou HTTPS. Os limites práticos de solicitação também dependem do endpoint de API, da origem do arquivo e da janela de contexto:

  • Limite de URI da API Interactions para arquivos do Cloud Storage: as solicitações de API Interactions aceitam até 100 URIs distintos do Cloud Storage (gs://) por solicitação de interação do modelo, incluindo URIs transferidos de turnos de conversa anteriores por meio de previous_interaction_id. As solicitações generateContent aceitam URIs gs:// até o limite de itens do modelo.
  • Limites de origem de arquivo, parte inline e payload de solicitação: os arquivos individuais referenciados no Cloud Storage não podem exceder 2 GiB menos 500 KiB, e os arquivos referenciados em URLs HTTP ou HTTPS públicos não podem exceder 15 MiB. No generateContent e no streamGenerateContent, cada anexo inline (inline_data) não pode exceder 256 MB nos modelos padrão do Gemini 3 e versões mais recentes, e o payload total compactado da solicitação HTTP ou gRPC não pode exceder 500 MiB (a codificação base64 adiciona aproximadamente 33% de sobrecarga de tamanho). Na API Interactions, o payload da solicitação HTTP compactado não pode exceder 256 MiB para solicitações síncronas ou de streaming.Quando service_tier é definido como deferred (o que exige que background e store sejam true), a solicitação descompactada não pode exceder 9,75 MiB.
  • Janela de contexto: a contagem combinada de tokens de todas as entradas multimodais e de texto em uma solicitação não pode exceder o limite de tokens de entrada do modelo (1.048.576 tokens nos modelos padrão do Gemini 3 e mais recentes).

Adicionar áudio a uma solicitação

É possível adicionar arquivos de áudio nas suas solicitações para o Gemini.

Áudio único

Confira a seguir como usar um arquivo de áudio para resumir um podcast:

Console

Para enviar um comando multimodal usando o console do Google Cloud , faça o seguinte:

  1. Na seção "Plataforma de Agentes" do console do Google Cloud , acesse a página do Agent Studio.

    Acessar o Agent Studio

  2. Clique em Criar prompt.

  3. Opcional: configure o modelo e os parâmetros:

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançado e faça a configuração da seguinte maneira:

    Clique para abrir as configurações avançadas

    • Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".

      O Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de 1 significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de 3 significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.

      Para cada etapa da seleção de tokens, são amostrados os tokens Top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de Top-P com o token final selecionado por meio da amostragem de temperatura.

      Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.

    • Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte. Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis, defina top-P como 0.
    • Respostas máximas: use o controle deslizante ou a caixa de texto para inserir um valor para o número de respostas a serem geradas.
    • Respostas de streaming: ative para mostrar as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite de probabilidade de mostrar respostas que podem ser prejudiciais.
    • Ativar embasamento: o embasamento não é compatível com solicitações multimodais.
    • Região: selecione a região que você quer usar.
    • Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.

          
      The temperature is used for sampling during response generation, which occurs when topP
      and topK are applied. Temperature controls the degree of randomness in token selection.
      Lower temperatures are good for prompts that require a less open-ended or creative response, while
      higher temperatures can lead to more diverse or creative results. A temperature of 0
      means that the highest probability tokens are always selected. In this case, responses for a given
      prompt are mostly deterministic, but a small amount of variation is still possible.
      
      

      If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature. If the model enters infinite generation, increasing the temperature to at least 0.1 may lead to improved results.

      1.0 is the recommended starting value for temperature. </li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. <p>Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.</p> <p>Specify a lower value for shorter responses and a higher value for potentially longer responses.</p></li> <li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences.</li> </ul>

  5. Clique em Inserir mídia e selecione uma origem para o arquivo.

    Fazer upload

    Selecione o arquivo que você quer enviar e clique em Abrir.

    Por URL

    Insira o URL do arquivo que você quer usar e clique em Inserir.

    Cloud Storage

    Selecione o bucket e o arquivo que você quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e conceda consentimento ao Agent Studio para acessar sua conta na primeira vez que você selecionar essa opção. É possível fazer upload vários arquivos que tenham um tamanho total de até 10 MB. Um único arquivo não pode exceder 7 MB.
    2. Clique no arquivo que você quer adicionar.
    3. Clique em Selecionar.

      A miniatura do arquivo é mostrada no painel Comando. O número total de tokens também é exibido. Se os dados do comando excederem o limite de tokens, os tokens serão truncados e não serão incluídos no processamento dos dados.

  6. Digite o comando de texto no painel Prompt.

  7. Opcional: para conferir o ID do token para texto e os IDs de token, clique na contagem de tokens no painel Comando.

  8. Clique em Enviar.

  9. Opcional: para salvar o comando em Meus comandos, clique em Salvar.

  10. Opcional: para receber o código Python ou um comando curl para seu comando, clique em Criar com código > Receber código.

Python

Instalar

pip install --upgrade google-genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
prompt = """
Provide a concise summary of the main points in the audio file.
"""
response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[
        prompt,
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/audio/pixel.mp3",
            mime_type="audio/mpeg",
        ),
    ],
)
print(response.text)
# Example response:
# Here's a summary of the main points from the audio file:

# The Made by Google podcast discusses the Pixel feature drops with product managers Aisha Sheriff and De Carlos Love.  The key idea is that devices should improve over time, with a connected experience across phones, watches, earbuds, and tablets.

Go

Saiba como instalar ou atualizar a Go.

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithAudio shows how to generate text using an audio input.
func generateWithAudio(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: `Provide the summary of the audio file.
Summarize the main points of the audio concisely.
Create a chapter breakdown with timestamps for key sections or topics discussed.`},
			{FileData: &genai.FileData{
				FileURI:  "gs://cloud-samples-data/generative-ai/audio/pixel.mp3",
				MIMEType: "audio/mpeg",
			}},
		},
			Role: genai.RoleUser},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// Here is a summary and chapter breakdown of the audio file:
	//
	// **Summary:**
	//
	// The audio file is a "Made by Google" podcast episode discussing the Pixel Feature Drops, ...
	//
	// **Chapter Breakdown:**
	//
	// *   **0:00 - 0:54:** Introduction to the podcast and guests, Aisha Sharif and DeCarlos Love.
	// ...

	return nil
}

Node.js

Instalar

npm install @google/genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const prompt =
    'Provide a concise summary of the main points in the audio file.';

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      {
        fileData: {
          fileUri: 'gs://cloud-samples-data/generative-ai/audio/pixel.mp3',
          mimeType: 'audio/mpeg',
        },
      },
      {text: prompt},
    ],
  });

  console.log(response.text);

  // Example response:
  //  Here's a summary of the main points from the audio file:
  //  The Made by Google podcast discusses the Pixel feature drops with product managers Aisha Sheriff and De Carlos Love.  The key idea is that devices should improve over time, with a connected experience across phones, watches, earbuds, and tablets.

  return response.text;
}

Java

Saiba como instalar ou atualizar a Java.

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationWithGcsAudio {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with audio input
  public static String generateContent(String modelId) {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/audio/pixel.mp3", "audio/mpeg"),
                  Part.fromText("Provide a concise summary of the main points in the audio file.")),
              null);

      System.out.print(response.text());
      // Example response:
      // The audio features Google product managers Aisha Sharif and D. Carlos Love discussing Pixel
      // Feature Drops, emphasizing their role in continually enhancing devices across the entire
      // Pixel ecosystem...
      return response.text();
    }
  }
}

REST

Depois de configurar o ambiente, use REST para testar um comando de texto. O exemplo a seguir envia uma solicitação ao endpoint do modelo de editor.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto. .
  • FILE_URI: o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
    • URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no mesmo projeto do Google Cloud que está enviando a solicitação.
    • URL HTTP: o URL do arquivo precisa ser legível publicamente e não pode exceder 15 MiB por arquivo. Os modelos padrão do Gemini 3 e versões mais recentes aceitam até 3.000 imagens e PDFs combinados, 1.000 arquivos de áudio ou 10 vídeos por solicitação (até 6.500 arquivos no total, incluindo arquivos de texto simples). Os endpoints do Gemini 2.5 não migrados e o gemini-3.1-pro-preview-customtools limitam os URLs HTTP ou HTTPS a 10 imagens, 1 arquivo de áudio ou 1 vídeo por solicitação.
    • URL do vídeo do YouTube: o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console do Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.

    Ao especificar um fileURI, você também precisa especificar o tipo de mídia (mimeType) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia para fileURI.

    Se você não tiver um arquivo de áudio no Cloud Storage, use o seguinte arquivo disponível publicamente: gs://cloud-samples-data/generative-ai/audio/pixel.mp3 com um tipo MIME de audio/mp3. Para ouvir este áudio: abra o arquivo MP3 de exemplo .

  • MIME_TYPE: o tipo de mídia do arquivo especificado nos campos fileUri. Os valores aceitáveis são os seguintes:

    Clique para expandir os tipos MIME.

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT
    As instruções de texto a serem incluídas no comando. Por exemplo, Please provide a summary for the audio. Provide chapter titles, be concise and short, no need to provide chapter summaries. Do not make up any information that is not part of the audio and do not be verbose.

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Depois execute o comando a seguir para enviar a solicitação REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent"

PowerShell

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Depois execute o comando a seguir para enviar a solicitação REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a seguinte.

Observe o seguinte no URL deste exemplo:
  • Use o generateContent para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando o streamGenerateContent .
  • O ID do modelo multimodal está localizado no final do URL, antes do método (por exemplo, gemini-3.5-flash). Este exemplo pode oferecer suporte a outros modelos.
  • Quando você usa um endpoint de API regional (por exemplo, us-central1), a região do URL do endpoint determina onde a solicitação é processada. Qualquer local conflitante no caminho do recurso é ignorado.

Transcrição de áudio

A seguir, mostramos como usar um arquivo de áudio para transcrever uma entrevista. Para ativar a compreensão de carimbos de data/hora em arquivos somente de áudio, ative o parâmetro audioTimestamp em GenerationConfig:

Console

Para enviar um comando multimodal usando o console do Google Cloud , faça o seguinte:

  1. Na seção "Plataforma de Agentes" do console do Google Cloud , acesse a página do Agent Studio.

    Acessar o Agent Studio

  2. Clique em Criar prompt.

  3. Opcional: configure o modelo e os parâmetros:

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançado e faça a configuração da seguinte maneira:

    Clique para abrir as configurações avançadas

    • Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".

      O Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de 1 significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de 3 significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.

      Para cada etapa da seleção de tokens, são amostrados os tokens Top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de Top-P com o token final selecionado por meio da amostragem de temperatura.

      Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.

    • Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte. Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis, defina top-P como 0.
    • Respostas máximas: use o controle deslizante ou a caixa de texto para inserir um valor para o número de respostas a serem geradas.
    • Respostas de streaming: ative para mostrar as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite de probabilidade de mostrar respostas que podem ser prejudiciais.
    • Ativar embasamento: o embasamento não é compatível com solicitações multimodais.
    • Região: selecione a região que você quer usar.
    • Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.

          
      The temperature is used for sampling during response generation, which occurs when topP
      and topK are applied. Temperature controls the degree of randomness in token selection.
      Lower temperatures are good for prompts that require a less open-ended or creative response, while
      higher temperatures can lead to more diverse or creative results. A temperature of 0
      means that the highest probability tokens are always selected. In this case, responses for a given
      prompt are mostly deterministic, but a small amount of variation is still possible.
      
      

      If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature. If the model enters infinite generation, increasing the temperature to at least 0.1 may lead to improved results.

      1.0 is the recommended starting value for temperature. </li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. <p>Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.</p> <p>Specify a lower value for shorter responses and a higher value for potentially longer responses.</p></li> <li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences.</li> </ul>

  5. Clique em Inserir mídia e selecione uma origem para o arquivo.

    Fazer upload

    Selecione o arquivo que você quer enviar e clique em Abrir.

    Por URL

    Insira o URL do arquivo que você quer usar e clique em Inserir.

    Cloud Storage

    Selecione o bucket e o arquivo que você quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e conceda consentimento ao Agent Studio para acessar sua conta na primeira vez que você selecionar essa opção. É possível fazer upload vários arquivos que tenham um tamanho total de até 10 MB. Um único arquivo não pode exceder 7 MB.
    2. Clique no arquivo que você quer adicionar.
    3. Clique em Selecionar.

      A miniatura do arquivo é mostrada no painel Comando. O número total de tokens também é exibido. Se os dados do comando excederem o limite de tokens, os tokens serão truncados e não serão incluídos no processamento dos dados.

  6. Digite o comando de texto no painel Prompt.

  7. Opcional: para conferir o ID do token para texto e os IDs de token, clique na contagem de tokens no painel Comando.

  8. Clique em Enviar.

  9. Opcional: para salvar o comando em Meus comandos, clique em Salvar.

  10. Opcional: para receber o código Python ou um comando curl para seu comando, clique em Criar com código > Receber código.

Python

Instalar

pip install --upgrade google-genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

from google import genai
from google.genai.types import GenerateContentConfig, HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
prompt = """
Transcribe the interview, in the format of timecode, speaker, caption.
Use speaker A, speaker B, etc. to identify speakers.
"""
response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[
        prompt,
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/audio/pixel.mp3",
            mime_type="audio/mpeg",
        ),
    ],
    # Required to enable timestamp understanding for audio-only files
    config=GenerateContentConfig(audio_timestamp=True),
)
print(response.text)
# Example response:
# [00:00:00] **Speaker A:** your devices are getting better over time. And so ...
# [00:00:14] **Speaker B:** Welcome to the Made by Google podcast where we meet ...
# [00:00:20] **Speaker B:** Here's your host, Rasheed Finch.
# [00:00:23] **Speaker C:** Today we're talking to Aisha Sharif and DeCarlos Love. ...
# ...

Go

Saiba como instalar ou atualizar a Go.

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateAudioTranscript shows how to generate an audio transcript.
func generateAudioTranscript(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: `Transcribe the interview, in the format of timecode, speaker, caption.
Use speaker A, speaker B, etc. to identify speakers.`},
			{FileData: &genai.FileData{
				FileURI:  "gs://cloud-samples-data/generative-ai/audio/pixel.mp3",
				MIMEType: "audio/mpeg",
			}},
		},
			Role: genai.RoleUser},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// 00:00:00, A: your devices are getting better over time.
	// 00:01:13, A: And so we think about it across the entire portfolio from phones to watch, ...
	// ...

	return nil
}

Node.js

Instalar

npm install @google/genai

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const prompt = `Transcribe the interview, in the format of timecode, speaker, caption.
    Use speaker A, speaker B, etc. to identify speakers.`;

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      {text: prompt},
      {
        fileData: {
          fileUri: 'gs://cloud-samples-data/generative-ai/audio/pixel.mp3',
          mimeType: 'audio/mpeg',
        },
      },
    ],
    // Required to enable timestamp understanding for audio-only files
    config: {
      audioTimestamp: true,
    },
  });

  console.log(response.text);

  // Example response:
  // [00:00:00] **Speaker A:** your devices are getting better over time. And so ...
  // [00:00:14] **Speaker B:** Welcome to the Made by Google podcast where we meet ...
  // [00:00:20] **Speaker B:** Here's your host, Rasheed Finch.
  // [00:00:23] **Speaker C:** Today we're talking to Aisha Sharif and DeCarlos Love. ...
  // ...

  return response.text;
}

Java

Saiba como instalar ou atualizar a Java.

Para mais informações, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa do Google com a Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class TextGenerationTranscriptWithGcsAudio {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates transcript with audio input
  public static String generateContent(String modelId) {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      String prompt =
          "Transcribe the interview, in the format of timecode, speaker, caption.\n"
              + "Use speaker A, speaker B, etc. to identify speakers.";

      // Enable audioTimestamp to generate timestamps for audio-only files.
      GenerateContentConfig contentConfig =
          GenerateContentConfig.builder().audioTimestamp(true).build();

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromUri(
                      "gs://cloud-samples-data/generative-ai/audio/pixel.mp3", "audio/mpeg"),
                  Part.fromText(prompt)),
              contentConfig);

      System.out.print(response.text());
      // Example response:
      // 00:00 - Speaker A: your devices are getting better over time. And so we think about it...
      // 00:14 - Speaker B: Welcome to the Made by Google Podcast, where we meet the people who...
      // 00:41 - Speaker A: So many features. I am a singer, so I actually think recorder...
      return response.text();
    }
  }
}

REST

Depois de configurar o ambiente, use REST para testar um comando de texto. O exemplo a seguir envia uma solicitação ao endpoint do modelo de editor.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: .
  • FILE_URI: o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
    • URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no mesmo projeto do Google Cloud que está enviando a solicitação.
    • URL HTTP: o URL do arquivo precisa ser legível publicamente e não pode exceder 15 MiB por arquivo. Os modelos padrão do Gemini 3 e versões mais recentes aceitam até 3.000 imagens e PDFs combinados, 1.000 arquivos de áudio ou 10 vídeos por solicitação (até 6.500 arquivos no total, incluindo arquivos de texto simples). Os endpoints do Gemini 2.5 não migrados e o gemini-3.1-pro-preview-customtools limitam os URLs HTTP ou HTTPS a 10 imagens, 1 arquivo de áudio ou 1 vídeo por solicitação.
    • URL do vídeo do YouTube: o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console do Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.

    Quando audioTimestamp é definido como true, cada turno de Content pode incluir no máximo um arquivo de áudio ou vídeo.

    Ao especificar um fileURI, você também precisa especificar o tipo de mídia (mimeType) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia para fileURI.

    Se você não tiver um arquivo de áudio no Cloud Storage, use o seguinte arquivo disponível publicamente: gs://cloud-samples-data/generative-ai/audio/pixel.mp3 com um tipo MIME de audio/mp3. Para ouvir este áudio: abra o arquivo MP3 de exemplo .

  • MIME_TYPE: o tipo de mídia do arquivo especificado nos campos data ou fileUri. Os valores aceitáveis são os seguintes:

    Clique para expandir os tipos MIME.

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT
    As instruções de texto a serem incluídas no comando. Por exemplo, Can you transcribe this interview, in the format of timecode, speaker, caption. Use speaker A, speaker B, etc. to identify speakers.

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  },
  "generationConfig": {
    "audioTimestamp": true
  }
}
EOF

Depois execute o comando a seguir para enviar a solicitação REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent"

PowerShell

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  },
  "generationConfig": {
    "audioTimestamp": true
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Depois execute o comando a seguir para enviar a solicitação REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a seguinte.

Observe o seguinte no URL deste exemplo:
  • Use o generateContent para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando o streamGenerateContent .
  • O ID do modelo multimodal está localizado no final do URL, antes do método (por exemplo, gemini-3.5-flash). Este exemplo pode oferecer suporte a outros modelos.
  • Quando você usa um endpoint de API regional (por exemplo, us-central1), a região do URL do endpoint determina onde a solicitação é processada. Qualquer local conflitante no caminho do recurso é ignorado.

Definir parâmetros opcionais do modelo

Cada modelo tem um conjunto de parâmetros opcionais que podem ser definidos. Para mais informações, consulte Parâmetros de geração de conteúdo.

Limitações

Embora os modelos multimodais do Gemini sejam eficientes em muitos casos de uso multimodais, é importante entender as limitações dos modelos:

  • Reconhecimento de som sem fala: os modelos compatíveis com áudio podem cometer erros ao reconhecer sons que não são fala.
  • Carimbos de data/hora somente de áudio: para gerar carimbos de data/hora com precisão para arquivos somente de áudio, configure o parâmetro audio_timestamp em generation_config.

A seguir