Compreensão de áudio (apenas voz)

Pode adicionar áudio aos pedidos do Gemini para realizar tarefas que envolvam a compreensão do conteúdo do áudio incluído. Esta página mostra como adicionar áudio aos seus pedidos ao Gemini no Vertex AI através da consolaGoogle Cloud e da API Vertex AI.

Modelos suportados

A tabela seguinte lista os modelos que suportam a compreensão de áudio:

Modelo Detalhes de multimédia Tipos MIME
Gemini 2.5 Flash (pré-visualização)
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da 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
Gemini 2.5 Flash-Lite (Pré-visualização)
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
Gemini 2.5 Flash-Lite
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
Gemini 2.5 Flash com áudio nativo da API Live (Pré-visualização)
  • Duração máxima da conversa: Predefinição de 10 minutos que pode ser prolongada.
  • Formato de entrada de áudio necessário: Áudio PCM de 16 bits não processado a 16 kHz, little-endian
  • Formato de saída de áudio necessário: Áudio PCM de 16 bits não processado 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
Gemini 2.0 Flash com API Live (Pré-visualização)
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da fala para: Resumo, transcrição e tradução de áudio
  • Máximo de tokens por minuto (TPM):
    • US/Asia: 1,7 M
    • UE: 0,4 M
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
Gemini 2.0 Flash com geração de imagens (Pré-visualização)
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da fala para: Resumo, transcrição e tradução de áudio
  • Máximo de tokens por minuto (TPM):
    • US/Asia: 1,7 M
    • UE: 0,4 M
Gemini 2.5 Pro
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da 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
Gemini 2.5 Flash
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da 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
Gemini 2.0 Flash
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da fala para: Resumo, transcrição e tradução de áudio
  • Máximo de tokens por minuto (TPM):
    • US/Asia: 3,5 M
    • UE: 3,5 M
  • audio/x-aac
  • audio/flac
  • audio/mp3
  • audio/m4a
  • audio/mpeg
  • audio/mpga
  • audio/mp4
  • audio/ogg
  • audio/pcm
  • audio/wav
  • audio/webm
Gemini 2.0 Flash-Lite
  • Duração máxima do áudio por comando: Aproximadamente 8, 4 horas ou até 1 milhão de tokens
  • Número máximo de ficheiros de áudio por comando: 1
  • Compreensão da fala para: Resumo, transcrição e tradução de áudio
  • Máximo de tokens por minuto (TPM):
    • US/Asia: 3,5 M
    • UE: 3,5 M

A métrica de quota é generate_content_audio_input_per_base_model_id_and_resolution.

Para ver uma lista de idiomas compatíveis com os modelos do Gemini, consulte as informações do modelo Modelos Google. Para saber mais sobre como criar comandos multimodais, consulte o artigo Crie comandos multimodais. Se procura uma forma de usar o Gemini diretamente a partir das suas apps para dispositivos móveis e Web, consulte os SDKs do cliente da Firebase AI Logic para apps Swift, Android, Web, Flutter e Unity.

Adicione áudio a um pedido

Pode adicionar ficheiros de áudio aos seus pedidos ao Gemini.

Áudio único

O exemplo seguinte mostra como usar um ficheiro de áudio para resumir um podcast.

Consola

Para enviar um comando multimodal através da Google Cloud consola, faça o seguinte:

  1. Na secção Vertex AI da Google Cloud consola, aceda à página Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. Clique em Criar comando.

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

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançadas e configure da seguinte forma:

    Clique para expandir as configurações avançadas

    • Top-K: use o controlo de deslize ou a caixa de texto para introduzir um valor para o top-K.

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

      Para cada passo de seleção de tokens, são amostrados os K principais tokens com as probabilidades mais elevadas. Em seguida, os tokens são filtrados com base no top-P, com o token final selecionado através da amostragem de temperatura.

      Especifique um valor inferior para respostas menos aleatórias e um valor superior para respostas mais aleatórias.

    • Top-P: use o controlo de deslize ou a caixa de texto para introduzir um valor para o top-P. Os tokens são selecionados do mais provável para o menos provável até que a soma das respetivas probabilidades seja igual ao valor de top-P. Para obter os resultados menos variáveis, defina o top-P como 0.
    • Respostas máximas: use o controlo de deslize ou a caixa de texto para introduzir um valor para o número de respostas a gerar.
    • Respostas graduais: ative esta opção para imprimir as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite da probabilidade de ver respostas que possam ser prejudiciais.
    • Ativar fundamentação: a fundamentação não é suportada para comandos multimodais.
    • Região: selecione a região que quer usar.
    • Temperatura: use o controlo de deslize ou a caixa de texto para introduzir 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.

      </li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. 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.

      Specify a lower value for shorter responses and a higher value for potentially longer responses.

      </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 multimédia e selecione uma origem para o ficheiro.

    Carregar

    Selecione o ficheiro que quer carregar e clique em Abrir.

    Por URL

    Introduza o URL do ficheiro que quer usar e clique em Inserir.

    Cloud Storage

    Selecione o contentor e, de seguida, o ficheiro do contentor que quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e dê o seu consentimento ao Vertex AI Studio para aceder à sua conta na primeira vez que selecionar esta opção. Pode carregar vários ficheiros com um tamanho total de até 10 MB. Um único ficheiro não pode exceder os 7 MB.
    2. Clique no ficheiro que quer adicionar.
    3. Clique em Selecionar.

      A miniatura do ficheiro é apresentada no painel Comando. Também é apresentado o número total de tokens. Se os dados dos comandos excederem o limite de tokens, os tokens são truncados e não são incluídos no processamento dos seus dados.

  6. Introduza o comando de texto no painel Comando.

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

  8. Clique em Enviar.

  9. Opcional: para guardar o comando em Os meus comandos, clique em Guardar.

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

Python

Instalação

pip install --upgrade google-genai

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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-2.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 o Go.

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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: "user"},
	}

	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

Instalação

npm install @google/genai

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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 o Java.

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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 seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o seu ID do projeto.
  • FILE_URI: O URI ou o URL do ficheiro a incluir no comando. Os valores aceitáveis incluem o seguinte:
    • URI do contentor do Cloud Storage: o objeto tem de ser legível publicamente ou residir no mesmo projeto Google Cloud que está a enviar o pedido. Para gemini-2.0-flash e gemini-2.0-flash-lite, o limite de tamanho é de 2 GB.
    • URL HTTP: o URL do ficheiro tem de ser legível publicamente. Pode especificar um ficheiro de vídeo, um ficheiro de áudio e até 10 ficheiros de imagem por pedido. Os ficheiros de áudio, os ficheiros de vídeo e os documentos não podem exceder os 15 MB.
    • URL do vídeo do YouTube: o vídeo do YouTube tem de ser propriedade da conta que usou para iniciar sessão na Google Cloud consola ou ser público. Apenas é suportado um URL de vídeo do YouTube por pedido.

    Quando especifica um fileURI, também tem de especificar o tipo de suporte (mimeType) do ficheiro. Se o VPC Service Controls estiver ativado, a especificação de um URL de ficheiro multimédia para fileURI não é suportada.

    Se não tiver um ficheiro de áudio no Cloud Storage, pode usar o seguinte ficheiro 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 ficheiro MP3 de amostra.

  • MIME_TYPE: o tipo de suporte do ficheiro especificado nos campos data ou fileUri Os valores aceitáveis incluem o seguinte:

    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 incluir 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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

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

Em seguida, execute o seguinte comando para enviar o seu pedido 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-2.0-flash:generateContent"

PowerShell

Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

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

Em seguida, execute o seguinte comando para enviar o seu pedido 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-2.0-flash:generateContent" | Select-Object -Expand Content

Deve receber uma resposta JSON semelhante à seguinte.

Tenha em atenção o seguinte no URL deste exemplo:
  • Use o método generateContent para pedir que a resposta seja devolvida após a geração completa. Para reduzir a perceção de latência para um público humano, transmita a resposta à medida que está a ser gerada através do método streamGenerateContent.
  • O ID do modelo multimodal encontra-se no final do URL antes do método (por exemplo, gemini-2.0-flash). Este exemplo também pode suportar outros modelos.

Transcrição de áudio

As instruções seguintes mostram como usar um ficheiro de áudio para transcrever uma entrevista. Para ativar a compreensão das indicações de tempo para ficheiros apenas de áudio, ative o parâmetro audioTimestamp em GenerationConfig.

Consola

Para enviar um comando multimodal através da Google Cloud consola, faça o seguinte:

  1. Na secção Vertex AI da Google Cloud consola, aceda à página Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. Clique em Criar comando.

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

    • Modelo: selecione um modelo.
  4. Opcional: para configurar parâmetros avançados, clique em Avançadas e configure da seguinte forma:

    Clique para expandir as configurações avançadas

    • Top-K: use o controlo de deslize ou a caixa de texto para introduzir um valor para o top-K.

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

      Para cada passo de seleção de tokens, são amostrados os K principais tokens com as probabilidades mais elevadas. Em seguida, os tokens são filtrados com base no top-P, com o token final selecionado através da amostragem de temperatura.

      Especifique um valor inferior para respostas menos aleatórias e um valor superior para respostas mais aleatórias.

    • Top-P: use o controlo de deslize ou a caixa de texto para introduzir um valor para o top-P. Os tokens são selecionados do mais provável para o menos provável até que a soma das respetivas probabilidades seja igual ao valor de top-P. Para obter os resultados menos variáveis, defina o top-P como 0.
    • Respostas máximas: use o controlo de deslize ou a caixa de texto para introduzir um valor para o número de respostas a gerar.
    • Respostas graduais: ative esta opção para imprimir as respostas à medida que são geradas.
    • Limite do filtro de segurança: selecione o limite da probabilidade de ver respostas que possam ser prejudiciais.
    • Ativar fundamentação: a fundamentação não é suportada para comandos multimodais.
    • Região: selecione a região que quer usar.
    • Temperatura: use o controlo de deslize ou a caixa de texto para introduzir 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.

      </li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. 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.

      Specify a lower value for shorter responses and a higher value for potentially longer responses.

      </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 multimédia e selecione uma origem para o ficheiro.

    Carregar

    Selecione o ficheiro que quer carregar e clique em Abrir.

    Por URL

    Introduza o URL do ficheiro que quer usar e clique em Inserir.

    Cloud Storage

    Selecione o contentor e, de seguida, o ficheiro do contentor que quer importar e clique em Selecionar.

    Google Drive

    1. Escolha uma conta e dê o seu consentimento ao Vertex AI Studio para aceder à sua conta na primeira vez que selecionar esta opção. Pode carregar vários ficheiros com um tamanho total de até 10 MB. Um único ficheiro não pode exceder os 7 MB.
    2. Clique no ficheiro que quer adicionar.
    3. Clique em Selecionar.

      A miniatura do ficheiro é apresentada no painel Comando. Também é apresentado o número total de tokens. Se os dados dos comandos excederem o limite de tokens, os tokens são truncados e não são incluídos no processamento dos seus dados.

  6. Introduza o comando de texto no painel Comando.

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

  8. Clique em Enviar.

  9. Opcional: para guardar o comando em Os meus comandos, clique em Guardar.

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

Python

Instalação

pip install --upgrade google-genai

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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-2.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 o Go.

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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: "user"},
	}

	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

Instalação

npm install @google/genai

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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 o Java.

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

Defina variáveis de ambiente para usar o SDK de IA gen com o 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_VERTEXAI=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 seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: .
  • FILE_URI: O URI ou o URL do ficheiro a incluir no comando. Os valores aceitáveis incluem o seguinte:
    • URI do contentor do Cloud Storage: o objeto tem de ser legível publicamente ou residir no mesmo projeto Google Cloud que está a enviar o pedido. Para gemini-2.0-flash e gemini-2.0-flash-lite, o limite de tamanho é de 2 GB.
    • URL HTTP: o URL do ficheiro tem de ser legível publicamente. Pode especificar um ficheiro de vídeo, um ficheiro de áudio e até 10 ficheiros de imagem por pedido. Os ficheiros de áudio, os ficheiros de vídeo e os documentos não podem exceder os 15 MB.
    • URL do vídeo do YouTube: o vídeo do YouTube tem de ser propriedade da conta que usou para iniciar sessão na Google Cloud consola ou ser público. Apenas é suportado um URL de vídeo do YouTube por pedido.

    Quando especifica um fileURI, também tem de especificar o tipo de suporte (mimeType) do ficheiro. Se o VPC Service Controls estiver ativado, a especificação de um URL de ficheiro multimédia para fileURI não é suportada.

    Se não tiver um ficheiro de áudio no Cloud Storage, pode usar o seguinte ficheiro 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 ficheiro MP3 de amostra.

  • MIME_TYPE: o tipo de suporte do ficheiro especificado nos campos data ou fileUri Os valores aceitáveis incluem o seguinte:

    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 incluir 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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

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

Em seguida, execute o seguinte comando para enviar o seu pedido 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-2.0-flash:generateContent"

PowerShell

Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

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

Em seguida, execute o seguinte comando para enviar o seu pedido 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-2.0-flash:generateContent" | Select-Object -Expand Content

Deve receber uma resposta JSON semelhante à seguinte.

Tenha em atenção o seguinte no URL deste exemplo:
  • Use o método generateContent para pedir que a resposta seja devolvida após a geração completa. Para reduzir a perceção de latência para um público humano, transmita a resposta à medida que está a ser gerada através do método streamGenerateContent.
  • O ID do modelo multimodal encontra-se no final do URL antes do método (por exemplo, gemini-2.0-flash). Este exemplo também pode suportar outros modelos.

Defina parâmetros do modelo opcionais

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

Limitações

Embora os modelos multimodais do Gemini sejam poderosos em muitos exemplos de utilização multimodal, é importante compreender as limitações dos modelos:

  • Reconhecimento de sons que não são voz: os modelos que suportam áudio podem cometer erros ao reconhecer sons que não são voz.
  • Indicações de tempo apenas de áudio: para gerar indicações de tempo com precisão para ficheiros apenas de áudio, tem de configurar o parâmetro audio_timestamp em generation_config.

O que se segue?