
한 소켓에서 30개의 음성 채팅, 실시간 영상 입력, 툴 호출, 그리고 말하는 동안 끊을 수 있는 응답 기능을 지원합니다.
한 소켓에서 30개의 음성 채팅, 실시간 영상 입력, 툴 호출, 그리고 말하는 동안 끊을 수 있는 응답 기능을 지원합니다.
세션은 요청 매개변수 대신 소켓을 통한 세션 업데이트(session.update events)로 구성됩니다. 텍스트 토큰과 오디오 토큰은 별도의 요금으로 청구됩니다.
다른 이름 Gemini Live, Google Gemini 3.8 Live
gemini-3-8-live/v1/realtimegemini-3.8-livegoogle/gemini-3.8-liveEmpirioLabs 카탈로그의 실시간 종량제 요금입니다. 사용한 만큼만 결제하며 월 최소 요금이 없습니다.
Gemini 3.8 Live 은(는) HTTP 엔드포인트가 아니라 wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live 의 WebSocket에서 실시간 대화를 진행합니다. 모델 ID gemini-3-8-live 로 연결하고 핸드셰이크 시 EmpirioLabs API 키를 Authorization: Bearer 헤더로 보내세요. 오디오는 base64 16비트 PCM으로 양방향 전송됩니다. 브라우저는 WebSocket에 헤더를 설정할 수 없으므로 이 연결은 서버에서 열고 오디오는 자체 소켓으로 브라우저에 중계하세요. EmpirioLabs 대시보드에서 API 키를 발급받으세요.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Say hello."}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.audio.delta":
... # base64 audio chunk, append to your playback buffer
elif event["type"] == "response.done":
break
asyncio.run(main())EmpirioLabs에서 Gemini 3.8 Live API가 지원하는 요청 파라미터입니다. 필드를 생략하면 기본값이 적용됩니다.
| 파라미터 | 유형 | 기본값 | 범위 / 값 | 설명 |
|---|---|---|---|---|
| voice | enum | Puck | Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callir... | 세션 중 음성 재생. 대화 시작 전에 session.update로 설정하세요; 대화 이후에는 변경할 수 없습니다. |
| instructions | string | - | - | 모델이 어떻게 동작하고 말하는지에 대한 시스템 가이드라인. 대화가 시작되기 전에 session.update로 설정하세요. |
| temperature | number | - | 0 ~ 2 | 온도를 0에서 2로 샘플링하세요. 낮은 값은 답변을 더 일관되게 만듭니다. 대화가 시작되기 전에 설정하세요. |
| input_audio_format | enum | pcm16 | pcm16, pcm24 | 입력 버퍼에 추가하는 오디오 인코딩: pcm16은 base64 16비트 PCM(16 kHz), pcm24는 24 kHz에서 동일합니다. |
| output_audio_format | enum | pcm24 | pcm24 | 모델이 스트리밍하는 오디오 인코딩: 24kHz의 16비트 PCM. |
| turn_detection | string | {"type":"server_vad"} | - | 서버 측 음성 활동 감지. 말을 멈췄을 때 모델을 결정하고 모델이 응답해야 합니다. 기본적으로 켜져 있습니다; input_audio_buffer.commit로 매 턴을 끝내도록 null로 설정하세요. |
연결 wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live에서 WebSocket을 통한 전이중 음성, 일반 Authorization Bearer 헤더로 인증. 첫 오디오(음성, 지시, 턴 감지, 도구)를 보내기 전에 session.update와 세션을 구성하세요. 이 설정들은 대화가 시작되면 수정됩니다. 오디오 및 비디오 전송 - 마이크 오디오를 input_audio_buffer.append 이벤트로 추가하세요: 16비트 PCM 16kHz 또는 24kHz에서 pcm24 설정input_audio_format. - 라이브 비디오 프레임을 input_image_buffer.append 이벤트로 추가하고, base64 JPEG 또는 PNG 이미지로 추가하세요. - 음성 활동 감지는 기본적으로 켜져 있으니, 말이 끝난 후 약 1초간 스트리밍을 계속하세요. turn_detection를 null로 설정하여 각 턴을 input_audio_buffer.commit로 직접 종료하세요. 음성 및 언어 - voice 목록 내 30개 음성 중 하나를 사용하세요. 예를 들어 Puck, Kore, Charon 등입니다. 다른 값은 거부됩니다. - 모델이 당신이 말하는 언어로 응답합니다. 응답 - 음성 response.audio.delta 이벤트로 스트리밍되며, 24kHz의 16비트 PCM으로 단어가 session.update 0__ 이벤트로 전송됩니다. 자신의 음성 역시 전사됩니다. - 모델이 응답하는 동안 말하는 것이 음성 신호를 중단합니다. 도구 - JSON 스키마 매개변수를 이용한 함수 호출. 각 결과는 session.update 2 session.update 1__ 항목으로 반환합니다. 청구 오디오 및 텍스트 토큰은 양방향으로 별도로 가격이 책정되며, 비디오 프레임은 입력 토큰으로, 추론 토큰은 출력 토큰으로 청구됩니다. 완료된 각 턴은 모델이 보고한 사용량에 따라 별도로 청구되며, 당신이 방해한 답변도 포함됩니다.
EmpirioLabs에서 Gemini 3.8 Live은(는) 종량제로 청구됩니다: 입력: 오디오 $7.80 1M 오디오 입력 토큰당; 입력 $2.60 1M 프롬프트 토큰당; 제품정보 $11.70 생성된 토큰 1M 단위; 출력: 오디오 $31.20 생성된 1M 오디오 토큰당. 이 페이지의 실시간 요금표는 항상 API 청구 금액과 일치합니다.
Gemini 3.8 Live은(는) 128K 토큰 컨텍스트 윈도우를 지원합니다 (응답당 최대 65,536 출력 토큰).
Gemini 3.8 Live은(는) api.empiriolabs.ai의 WEBSOCKET /v1/realtime를 통해 제공되며 표준 Bearer 토큰 인증을 사용합니다.
EmpirioLabs 플레이그라운드 를 열고 Start session 을 누르면 브라우저에서 바로 사용해 볼 수 있습니다. Gemini 3.8 Live 은(는) 요청과 응답이 아니라 WebSocket으로 동작하므로 직접 연동할 때는 실시간 음성 퀵스타트 부터 시작하세요. EmpirioLabs API 키와 모델 ID gemini-3-8-live 로 서버에서 연결한 뒤 오디오를 양방향으로 스트리밍하면 됩니다.
EmpirioLabs 계정을 만든 다음 대시보드의 API Keys에서 키를 생성하세요. 요금은 종량제 크레딧이라 실행한 요청에 대해서만 결제합니다.