라이브 아바타 구성

이 문서에서는 Gemini Live API에서 라이브 아바타를 구성하는 방법을 설명합니다. 라이브 아바타를 사용하면 gemini-3.8-live 모델의 합성된 음성 응답과 동기화된 말하는 아바타의 실시간 동영상을 생성할 수 있습니다. 다양한 내장 아바타 중에서 선택하고 Google Cloud 콘솔과 Gemini Live API 모두에서 지원되는 사전 빌드된 음성과 페어링할 수 있습니다.

Google Cloud 콘솔에서 라이브 아바타 구성

다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Agent Platform > Studio > Stream realtime 페이지로 이동합니다.

    실시간 스트리밍으로 이동

  2. 모델 전환을 클릭합니다.

  3. 모델 목록에서 gemini-3.8-live를 선택합니다.

  4. 기본 패널에서 라이브 아바타를 선택합니다.

  5. 아바타 목록에서 아바타를 선택합니다.

  6. 음성 목록에서 음성을 선택합니다.

  7. 선택사항: 동작과 출력을 안내하는 시스템 요청 사항을 추가합니다.

  8. 선택사항: 카메라 입력을 사용 설정하여 Gemini Live API와 동영상을 공유합니다.

  9. 기본 패널에서 세션 시작을 클릭합니다.

API를 사용하여 실시간 아바타 구성

다음 단계를 따르세요.

  1. generation_config에서 "response_modalities": ["VIDEO"]을 설정합니다.

  2. avatar_config 객체에서 사전 제작된 아바타 이름을 지정합니다.

  3. speech_config 객체에서 사전 빌드된 음성을 지정합니다.

WebSocket 구성

WebSocket 연결은 표준 WebSocket 핸드셰이크를 통해 설정됩니다. 엔드포인트는 리전별이며 인증에 OAuth 2.0 Bearer 토큰을 사용합니다. 인증 토큰은 일반적으로 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 생성형 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가 해당 유사성을 기반으로 아바타 동영상을 생성합니다. 맞춤 아바타는 avatar_config의 customized_avatar 필드에서 세션별로 구성됩니다.

참고 이미지 요구사항

참고 이미지는 다음 사양을 충족해야 합니다.

  • 이미지 형식: PNG 권장 PNG는 무손실 압축을 사용하며 알파 투명도를 사용하면 밝은 모드와 어두운 모드에서 아바타 주변에 보이는 상자가 표시되지 않습니다.
  • 색상 모드: RGB
  • 이미지 크기: 최소 704x1,280픽셀 (세로), 최소 1,280x704픽셀 (가로)
  • 해상도: 720p 이상
  • 가로세로 비율: 9:16 (세로) 및 16:9 (가로)가 표준입니다.
  • 파일 크기: 5MB 미만
  • 품질: 흐림이나 압축 아티팩트가 없습니다.

최상의 결과를 얻으려면 다음 구성 가이드라인도 따르세요.

  • 프레임: 머리와 어깨가 프레임의 60% 이상을 차지하는 클로즈업을 사용합니다. 하체, 팔, 손, 마이크나 휴대전화와 같은 들고 있는 물체를 잘라냅니다.

  • 배경: 다른 사람이나 눈에 띄는 물체가 없는 단순하고 깔끔한 배경을 사용하세요.

  • 시점: 머리를 수평으로 유지하고 눈이 렌즈를 향하도록 카메라를 정면으로 바라봅니다.

  • 표정: 미소나 눈을 가늘게 뜨거나 치아가 보이는 표정 없이 중립적이고 편안한 표정을 유지합니다.

  • 안전: 미성년자, 유명인 또는 불쾌감을 주는 콘텐츠의 이미지를 사용하지 마세요.

Google Cloud 콘솔에서 맞춤 아바타 구성

다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Agent Platform > Studio > Stream realtime 페이지로 이동합니다.

    실시간 스트리밍

  2. 모델 목록에서 gemini-3.8-live를 선택합니다.

  3. 기본 패널에서 라이브 아바타를 클릭합니다.

  4. 아바타 옵션에서 업로드를 선택하고 아바타 이미지를 업로드합니다.

  5. 세션 시작을 클릭한 다음 대화 시작을 클릭합니다.

API를 사용하여 맞춤 아바타 구성

WebSocket 연결을 통해 전송하는 초기 setup 페이로드에서 맞춤 아바타를 구성합니다.

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")입니다.

맞춤 아바타를 사전 빌드된 음성 또는 맞춤 음성과 페어링할 수 있습니다.

사용 가능한 사전 빌드 음성

Gemini Live API의 사전 빌드된 HD 음성과 사전 빌드된 아바타를 페어링할 수 있습니다. 사전 제작된 음성에 대한 자세한 내용은 사전 제작된 음성을 참고하세요.

다음 단계