Ce tutoriel vous explique comment vous connecter à l'API Gemini Live à l'aide de la version Python du SDK Google Gen AI. Dans ce tutoriel, vous allez configurer un projetGoogle Cloud pour utiliser l'API Live avec le SDK Gen AI, envoyer un fichier audio au modèle et recevoir de l'audio en réponse.
Avant de commencer
Avant de pouvoir envoyer des requêtes, vous devez configurer l'authentification avec Vertex AI. Vous pouvez configurer l'authentification à l'aide d'une clé API ou d'identifiants par défaut de l'application (ADC).
Pour ce tutoriel, le moyen le plus rapide de commencer est d'utiliser une clé API :
Si vous êtes un nouvel utilisateur de Google Cloud, obtenez une clé API en mode express.
Si vous disposez déjà d'un projet Google Cloud , obtenez une clé API Google Cloud associée à un compte de service. Il n'est possible de lier une clé API à un compte de service que si cette option est activée dans les paramètres de la règle de l'organisation. Si vous ne pouvez pas activer ce paramètre, utilisez plutôt les identifiants par défaut de l'application.
Pour obtenir des instructions sur la configuration de l'authentification à l'aide d'ADC, consultez notre démarrage rapide.
Installer le SDK Gen AI
Exécutez la commande suivante pour installer la bibliothèque google-genai :
pip install --upgrade google-genai
Configurer des variables d'environnement
Définissez des variables d'environnement pour l'ID et l'emplacement de votre projet. Remplacez PROJECT_ID par l'ID du projet Google Cloud.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True
Démarrer une session audio
Cet exemple établit une session, diffuse l'audio d'un fichier et affiche la taille des blocs audio dans la réponse.
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())