
1つのソケットで低遅延の音声会話が可能で、30の音声、ライブビデオ入力、ツール呼び出し、話しながら割り込める返信も可能です。
1つのソケットで低遅延の音声会話が可能で、30の音声、ライブビデオ入力、ツール呼び出し、話しながら割り込める返信も可能です。
セッションはリクエストパラメータではなく、ソケット上でセッション・アップデートイベントで設定されます。テキストトークンとオーディオトークンは別々の料金で請求されます。
別名 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 から 2 | サンプリング温度を0.2から2に。値が低いほど返答の安定性が高まります。会話が始まる前に設定してください。 |
| input_audio_format | enum | pcm16 | pcm16, pcm24 | 入力バッファに追加する音声のエンコード:pcm16はbase64の16ビットPCMで16kHz、pcm24は同じ24kHzです。 |
| output_audio_format | enum | pcm24 | pcm24 | モデルがストリーミングバックする音声のエンコード:16ビットPCM、24kHz。 |
| turn_detection | string | {"type":"server_vad"} | - | 音声活動検出:話し終えたタイミングとモデルの返信を決定します。デフォルトではserver_vadとしてオンになっています。server_vadでは閾値が0から1の数値です。0.5を超えると、ターンはより明確な会話が必要で、騒がしい部屋では役立ちます。prefix_padding_msターンを始めるために話し続ける時間と終了までにどれ... |
| max_response_output_tokens | number | - | 4096 から 65536 | 1つの回答で使える最大出力トークン数:4096から65536までで、より大きな数は65536、つまりモデル自身の限界の「inf」となります。max_output_tokensとしても受け入れられます。省略した場合はモデル自身のデフォルトが適用されます。会話が始まる前に設定してください。 |
| input_audio_transcription | string | - | - | あなたの発言の書き起こしに関するヒント:言語はenやfr-FRのような言語コードであり、プロンプトは最大1,000語の単語と名前をカンマで区切って最大20,000文字でリストアップします。書き起こしは常にこのモデルから得られます。トランスクリプトイベントが起きない場合はnullに設定してください。会話が始まる前に言語とプロンプトを設... |
| media_resolution | enum | - | low, medium, high | 送信する各ビデオフレームでモデルが見るディテール:低いフレームは1フレームあたりの入力トークンを最も少なく、ミディアムとハイはより多くのディテールを表示します。省略した場合はモデル自身のデフォルトが適用されます。会話が始まる前に設定してください。 |
通常のAuthorization Bearerヘッダーで認証されたWebSocketを経由した全二重音声をwss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-liveで送信します。最初の音声(音声、指示、ターン検出、ツール)を送信する前に、セッションを設定しsession.updateてください。これらの設定は会話開始時に修正されます。
音声トークンとテキストトークンは両方向に別々に価格設定され、ビデオフレームは入力トークンとして、推論トークンは出力トークンとして請求されます。完了した各ターンは、モデルが報告する使用状況(あなたが中断した返信を含む)から個別に請求されます。
EmpirioLabs では Gemini 3.8 Live は従量課金です: 入力: 音声 $7.80 1Mのオーディオ入力トークンあたり; 入力 $2.60 1Mプロンプトトークンあたり; 出力 $11.70 生成された1Mトークンあたり; 出力: 音声 $31.20 生成された1Mの音声トークンあたり。このページのライブ料金表は常に API の請求額と一致します。
Gemini 3.8 Live は 128K トークンのコンテキストウィンドウに対応しています(1回の応答あたり最大 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でキーを生成してください。課金は従量制クレジットなので、実行したリクエストの分だけ支払います。