Este tutorial mostra como estabelecer ligação à API Live através da versão Python do SDK de IA gen da Google. Neste tutorial, vai configurar um Google Cloud projeto para usar a API Live com o SDK de IA gen., enviar um ficheiro de áudio para o modelo e receber áudio em resposta.
Antes de começar
Antes de poder enviar pedidos, tem de configurar a autenticação com a Vertex AI. Pode configurar a autenticação através de uma chave da API ou através das Credenciais padrão da aplicação (ADC).
Para este tutorial, a forma mais rápida de começar é usar uma chave da API:
Se for um novo utilizador do Google Cloud, obtenha uma chave da API do modo expresso.
Se já tiver um Google Cloud projeto, obtenha uma Google Cloud chave de API associada a uma conta de serviço. Só é possível associar uma chave da API a uma conta de serviço se esta opção estiver ativada nas definições da política da organização. Se não conseguir ativar esta definição, use as credenciais predefinidas da aplicação.
Para obter instruções sobre como configurar a autenticação através do ADC, consulte o nosso guia de início rápido.
Instale o SDK de IA gen
Execute o seguinte comando para instalar a biblioteca google-genai:
pip install --upgrade google-genai
Configure variáveis de ambiente
Defina as variáveis de ambiente para o ID do projeto e a localização. Substitua PROJECT_ID pelo seu Google Cloud
ID do projeto.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True
Inicie uma sessão de áudio
Este exemplo estabelece uma sessão, transmite áudio a partir de um ficheiro e imprime o tamanho dos fragmentos 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())