In dieser Anleitung erfahren Sie, wie Sie mit der Python-Version des Google Gen AI SDK eine Verbindung zur Gemini Live API herstellen. In diesem Tutorial richten Sie einGoogle Cloud -Projekt ein, um die Live API mit dem Gen AI SDK zu verwenden, senden eine Audiodatei an das Modell und erhalten eine Audioantwort.
Hinweise
Bevor Sie Anfragen senden können, müssen Sie die Authentifizierung mit Vertex AI einrichten. Sie können die Authentifizierung entweder mit einem API-Schlüssel oder mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) einrichten.
Für diese Anleitung ist die Verwendung eines API-Schlüssels der schnellste Weg, um loszulegen:
Wenn Sie ein neuer Nutzer von Google Cloudsind, benötigen Sie einen API-Schlüssel für den Express-Modus.
Wenn Sie bereits ein Google Cloud Projekt haben, rufen Sie einen Google Cloud API-Schlüssel ab, der an ein Dienstkonto gebunden ist. Das Binden eines API-Schlüssels an ein Dienstkonto ist nur möglich, wenn es in den Einstellungen der Organisationsrichtlinie aktiviert ist. Wenn Sie diese Einstellung nicht aktivieren können, verwenden Sie stattdessen Standardanmeldedaten für Anwendungen.
Eine Anleitung zum Einrichten der Authentifizierung mit ADC finden Sie in unserer Schnellstartanleitung.
Gen AI SDK installieren
Führen Sie den folgenden Befehl aus, um die google-genai-Bibliothek zu installieren:
pip install --upgrade google-genai
Umgebungsvariablen einrichten
Legen Sie Umgebungsvariablen für Ihre Projekt-ID und Ihren Standort fest. Ersetzen Sie PROJECT_ID durch Ihre Google CloudProjekt-ID.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True
Audiositzung starten
In diesem Beispiel wird eine Sitzung eingerichtet, Audio aus einer Datei gestreamt und die Größe der Audio-Chunks in der Antwort ausgegeben.
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())