Gemini 3.1 Flash Live API ガイド:リアルタイム音声・カメラ・画面共有エージェント
Gemini 3.1 Flash Live で低遅延マルチモーダルエージェントを構築 — WebSocket アーキテクチャ、ネイティブ音声、1 FPS カメラ/画面共有、ツール呼び出し、エフェメラルトークン、2.5 Flash Live からの移行。
2026 年 8 月に Gemini 3.1 Flash Live が重要な理由
Google は 2026 年 3 月に Gemini Live API 経由で Gemini 3.1 Flash Live をローンチし、8 月時点で本番向け音声・ビジョンエージェントの推奨モデルとなっています。バッチ generateContent とは異なり、Live は 永続 WebSocket セッション を維持し、音声・ビデオフレーム・テキストを双方向ストリーミング — STT/TTS を別途用意せず、モデルが聞き・見て・話します。
2026 年 8 月の実務上の変化:
- 2.5 Flash Live は非推奨 — 新規は
gemini-3.1-flash-live-previewへ。 - エコシステム成熟 — Stitch、Ato、Weekend RPG などカメラ対応エージェントが本番投入。
- Live API と Gemini 3.7 Flash の併用 — Live はサブ秒対話、3.7 Flash REST は深いコーディング推論(3.7 Flash 発表)。
アーキテクチャ:REST ではなく WebSocket セッション
Live API は ステートフル です。WSS で接続し、最初に BidiGenerateContentSetup、続けて BidiGenerateContentRealtimeInput をストリームします。
| レイヤ | 役割 |
|---|---|
| トランスポート | ステートフル WSS |
| Setup | モデル ID、モダリティ、システム指示、ツール、VAD |
| リアルタイム入力 | PCM チャンク、JPEG/PNG(≤1 FPS)、テキスト |
| 出力 | PCM 24 kHz、転写、ツール呼び出し |
サーバー間 と クライアント直接 の 2 トポロジ。前者はログ・レート制限、後者は低遅延(エフェメラルトークン必須)。
音声:ネイティブ E2E スピーチ
| 方向 | 形式 | レート |
|---|---|---|
| 入力 | 16-bit PCM LE mono | 16 kHz |
| 出力 | 16-bit PCM LE | 24 kHz 固定 |
Web Audio は float32 → PCM16 変換が必要。VAD でターンテイキング。Push-to-talk は activityStart/activityEnd を手動送信。
ビデオ:1 FPS カメラ・画面共有
JPEG/PNG フレームストリーム、最大 1 FPS。カメラ Q&A、画面共有によるコードレビュー・デザイン批評(Stitch)に対応。
コスト: デフォルト TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO — 発話中の全フレームが課金対象。常時画面送信時は発話検出時のみ送ると節約。
セッション制限
| 種別 | 上限 | 延長 |
|---|---|---|
| 音声のみ | 15 分 | セッション再開 + コンテキスト圧縮 |
| 音声+ビデオ | 2 分 | 同上 |
ツール呼び出し
同期 function calling。Search grounding 対応。3.1 は NON_BLOCKING 非対応 — 順次実行のみ。
thinkingLevel と 90+ 言語
minimal(デフォルト)〜 high。90 以上の言語でリアルタイムマルチモーダル会話。
セキュリティ
API キーをクライアントに埋め込まない — エフェメラルトークン をバックエンドで発行。
2.5 からの移行
モデル ID 更新、thinkingBudget → thinkingLevel、send_realtime_input でテキスト、複数 part イベント処理、turnCoverage 見直し。
3.1 Live vs 3.7 Flash REST
| 3.1 Live | 3.7 REST | |
|---|---|---|
| プロトコル | WebSocket | HTTP |
| 用途 | 音声エージェント | コーディング・RAG |