Neste tutorial, mostramos como se conectar à API Gemini Live usando a versão em Python do SDK da IA generativa do Google. Neste tutorial, você vai configurar um projetoGoogle Cloud para usar a API Live com o SDK da IA generativa, enviar um arquivo de áudio para o modelo e receber áudio em resposta.
Antes de começar
Antes de enviar solicitações, você precisa configurar a autenticação com a Vertex AI. É possível configurar a autenticação usando uma chave de API ou usando as credenciais padrão do aplicativo (ADC).
Para este tutorial, a maneira mais rápida de começar é usar uma chave de API:
Se você for um novo usuário do Google Cloud, receba uma chave de API do modo expresso.
Se você já tiver um projeto Google Cloud , receba uma chave de API Google Cloud vinculada a uma conta de serviço. Só é possível vincular uma chave de API a uma conta de serviço se ela estiver ativada nas configurações da política da organização. Se não for possível ativar essa configuração, use as credenciais padrão do aplicativo.
Para instruções sobre como configurar a autenticação usando o ADC, consulte nosso guia de início rápido.
Instalar o SDK de IA generativa
Execute o seguinte comando para instalar a biblioteca google-genai:
pip install --upgrade google-genai
Configurar variáveis de ambiente
Defina variáveis de ambiente para o ID e o local do projeto. Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True
Iniciar uma sessão de áudio
Este exemplo estabelece uma sessão, transmite áudio de um arquivo e imprime o tamanho dos trechos de áudio na resposta.
import asyncio
import os
import sys
from pathlib import Path
from google import genai
from google.genai import types
# Configuration
MODEL = "gemini-live-2.5-flash-preview-native-audio-09-2025"
config = {
"response_modalities": ["audio"],
}
client = genai.Client()
async def main():
# Establish WebSocket session
async with client.aio.live.connect(model=MODEL, config=config) as session:
print("Session established. Sending audio...")
# Download sample if missing
if not os.path.exists("input.wav"):
!wget -q https://storage.googleapis.com/cloud-samples-data/generative-ai/audio/where_the_nearest_train_station_is.wav -O input.wav
# Send Input (Simulated from file)
# In production, this would be a microphone stream
# Format: PCM, 16kHz, 16-bit, Mono, Little-Endian
with open("input.wav", "rb") as f:
while chunk := f.read(1024):
await session.send_realtime_input(
audio=types.Blob(data=chunk, mime_type="audio/pcm;rate=16000")
)
await asyncio.sleep(0.01) # Simulate real-time stream
# Receive Output
async for message in session.receive():
if message.server_content:
# Check for interruptions (User barge-in)
if message.server_content.interrupted:
print("[Interrupted] Clear client audio buffer immediately.")
continue
# Process Audio Chunks
model_turn = message.server_content.model_turn
if model_turn and model_turn.parts:
for part in model_turn.parts:
if part.inline_data:
# Output is PCM, 24kHz, 16-bit, Mono
audio_data = part.inline_data.data
print(f"Received audio chunk: {len(audio_data)} bytes")
if message.server_content.turn_complete:
print("Turn complete.")
if "ipykernel" in sys.modules:
# Run directly in notebook
await main()
else:
# Run as standard .py script
asyncio.run(main())