הגדרת אווטארים בשידור חי

במאמר הזה מוסבר איך להגדיר אווטרים במצב לייב ב-Gemini Live API. אווטארים בזמן אמת מאפשרים ליצור סרטון בזמן אמת של אווטאר מדבר, שמסונכרן עם תשובות של דיבור מסונתז ממודל gemini-3.8-live. אתם יכולים לבחור מתוך מגוון אווטארים מובנים ולשייך להם קולות מוכנים מראש שנתמכים גם במסוף Cloud de Confiance וגם ב-Gemini Live API.

הגדרת אווטארים בשידור חי במסוף Cloud de Confiance

מבצעים את הפעולות הבאות:

  1. במסוף Cloud de Confiance , נכנסים לדף Agent Platform > Studio > Stream realtime.

    מעבר לסטרימינג בזמן אמת

  2. לוחצים על החלפת מודל.

  3. ברשימת המודלים, בוחרים באפשרות gemini-3.8-live.

  4. בחלונית הראשית, לוחצים על אווטאר בזמן אמת.

  5. ברשימה אווטאר, בוחרים אווטאר.

  6. ברשימה Voice, בוחרים קול.

  7. אופציונלי: מוסיפים הוראות למערכת כדי להנחות את ההתנהגות והפלט.

  8. אופציונלי: מפעילים את קלט המצלמה כדי לשתף וידאו עם Gemini Live API.

  9. בחלונית הראשית, לוחצים על התחלת הסשן.

הגדרת אווטארים בשידור חי באמצעות ה-API

מבצעים את הפעולות הבאות:

  1. בgeneration_config מגדירים את "response_modalities": ["VIDEO"].

  2. באובייקט avatar_config, מציינים את השם של האווטאר המובנה.

  3. באובייקט speech_config, מציינים את הקול המובנה.

הגדרת WebSocket

חיבורי WebSocket נוצרים באמצעות לחיצת יד רגילה של WebSocket. נקודת הקצה היא אזורית ומשתמשת בטוקנים מסוג Bearer של OAuth 2.0 לאימות. בדרך כלל, טוקן האימות מועבר בכותרות של WebSocket, כמו Authorization: Bearer [TOKEN].

הדוגמה הבאה מציגה הגדרת WebSocket:

import asyncio
import json
import websockets

# Replace PROJECT_ID and LOCATION with your Project ID and location.
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"

# Authentication
token_list = !gcloud auth application-default print-access-token
ACCESS_TOKEN = token_list[0]

# Configuration
MODEL_ID = "gemini-3.8-live"
MODEL = f"projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"

config = {
    "response_modalities": ["VIDEO"],
    "speech_config": {
        "voice_config": {
            "prebuilt_voice_config": {
                "voice_name": "Puck",
            }
        }
    },
}

avatar_config = {
    "avatar_name": "Ben",
}

# Construct the WSS URL
HOST = f"{LOCATION}-aiplatform.googleapis.com"
URI = f"wss://{HOST}/ws/google.cloud.aiplatform.v1.LlmBidiService/BidiGenerateContent"

async def main():
    headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}

    async with websockets.connect(URI, additional_headers=headers) as ws:
        print("Session established.")

        # Send Setup (Handshake)
        await ws.send(json.dumps({
            "setup": {
                "model": MODEL,
                "generation_config": config,
                "avatar_config": avatar_config,
            }
        }))
        # Send and receive audio/video streams...

if __name__ == "__main__":
    asyncio.run(main())

הגדרה של Python SDK

בדוגמה הבאה אפשר לראות איך מגדירים אווטרים בזמן אמת באמצעות Google Gen AI SDK:

from google import genai
from google.genai import types

client = genai.Client()

config = types.LiveConnectConfig(
    response_modalities=["VIDEO"],
    speech_config=types.SpeechConfig(
        voice_config=types.VoiceConfig(
            prebuilt_voice_config=types.PrebuiltVoiceConfig(
                voice_name="Puck",
            )
        )
    ),
    avatar_config=types.AvatarConfig(
        avatar_name="Ben",
    ),
    system_instruction=types.Content(
        parts=[types.Part.from_text(text="You are a helpful customer service assistant.")]
    ),
)

async with client.aio.live.connect(model="gemini-3.8-live", config=config) as session:
    # Interact with the live session...
    pass

שימוש באווטאר בהתאמה אישית

במקום לבחור אווטאר מוכן מראש, אתם יכולים לספק תמונת הפניה של פנים, ו-Gemini Live API ייצור את סרטון האווטאר על סמך הדמיון לתמונה. הגדרת סמלים מותאמים אישית מתבצעת לכל סשן בשדה customized_avatar של avatar_config.

דרישות לגבי תמונות רפרנס

תמונת ההפניה צריכה לעמוד במפרט הבא:

  • פורמט התמונה: מומלץ PNG. ‫PNG משתמש בדחיסה ללא אובדן נתונים, ושקיפות אלפא מונעת הצגה של תיבה גלויה מסביב לאווטאר במצבים בהירים וכהים.
  • מצב צבע: RGB.
  • גודל התמונה: מינימום ‎704 x 1280 פיקסלים (לאורך), מינימום ‎1280 x 704 פיקסלים (לרוחב).
  • רזולוציה: 720p ומעלה.
  • יחס גובה-רוחב: 9:16 (לאורך) ו-16:9 (לרוחב) הם יחסי הגובה-רוחב הסטנדרטיים.
  • גודל הקובץ: פחות מ-5MB
  • איכות: ללא טשטוש או תוצרי דחיסה.

כדי לקבל את התוצאות הטובות ביותר, כדאי לפעול גם לפי ההנחיות הבאות לגבי קומפוזיציה:

  • קומפוזיציה: השתמשו בצילום של פלג הגוף העליון, שבו הראש והכתפיים תופסים יותר מ-60% מהפריים. חיתוך של החלק התחתון של הגוף, הידיים, הזרועות וכל חפץ שמוחזק ביד, כמו מיקרופון או טלפון.

  • רקע: השתמשו ברקע פשוט ונקי, ללא אנשים אחרים או אובייקטים בולטים.

  • פרספקטיבה: מסתכלים ישירות אל המצלמה, כשהראש ישר והעיניים מופנות אל העדשה.

  • הבעה: ההבעה צריכה להיות ניטרלית ובמצב מנוחה, בלי חיוך, מצמוץ או שיניים גלויות.

  • בטיחות: אל תשתמשו בתמונות של קטינים, סלבריטאים או תוכן פוגעני.

הגדרת אווטאר בהתאמה אישית ב Cloud de Confiance מסוף

מבצעים את הפעולות הבאות:

  1. במסוף Cloud de Confiance , נכנסים לדף Agent Platform > Studio > Stream realtime.

    סטרימינג בזמן אמת

  2. ברשימת המודלים, בוחרים באפשרות gemini-3.8-live.

  3. בחלונית הראשית, לוחצים על אווטאר בזמן אמת.

  4. בוחרים באפשרות 'העלאה' בקטע 'אפשרויות האווטאר' ומעלים תמונה של אווטאר.

  5. לוחצים על התחלת סשן ואז על התחלת שיחה.

הגדרת אווטאר בהתאמה אישית באמצעות ה-API

מגדירים את האווטאר המותאם אישית במטען הייעודי (payload) הראשוני של setup ששולחים דרך חיבור ה-WebSocket:

import base64
import json
import websockets

# Load custom avatar image (PNG format, 704x1280 min)
with open("/path/to/your/sample_avatar.png", "rb") as f:
    avatar_b64 = base64.b64encode(f.read()).decode("utf-8")

GENERATION_CONFIG = {
    "response_modalities": ["VIDEO"],
}

# Setup avatar config with custom face image
AVATAR_CONFIG = {
    "customized_avatar": {
        "image_data": avatar_b64,
        "image_mime_type": "png",
    }
}

# Session setup message
SETUP_MESSAGE = {
    "setup": {
        "model": "gemini-3.8-live",
        "generation_config": GENERATION_CONFIG,
        "avatar_config": AVATAR_CONFIG,
        "system_instruction": {
            "parts": [{"text": "Your system instruction here"}]
        },
        "input_audio_transcription": {},
        "output_audio_transcription": {},
    }
}

בדוגמה שלמעלה נעשה שימוש בשדות הבאים:

נתיב השדה סוג תיאור
generation_config.response_modalities list[string] צריך להגדיר את הערך ["VIDEO"] כדי להפעיל את פלט הווידאו של האווטאר.
avatar_config.customized_avatar.image_data string מחרוזת של תמונה בקידוד Base64.
avatar_config.customized_avatar.image_mime_type string פורמט MIME של התמונה ("png").

אתם יכולים לשלב אווטאר בהתאמה אישית עם קול מוכן מראש או עם קול בהתאמה אישית.

קולות מוכנים מראש שזמינים לשימוש

אתם יכולים להתאים אווטארים מוכנים מראש לכל אחד מהקולות המוכנים מראש באיכות HD ב-Gemini Live API. מידע נוסף על קולות מוכנים מראש זמין במאמר בנושא קולות מוכנים מראש.

המאמרים הבאים