Gemini 3.1 Flash Liveは、Gemini APIのLive APIで使う音声対音声(audio-to-audio)モデルです。モデルIDは gemini-3.1-flash-live-preview で、2026年3月26日にプレビューとして公開されました。2026年9月15日に後継の gemini-3.8-live が一般提供(GA)となり、10月上旬には非推奨ページに終了予定日として2026年11月17日が載りました。
この記事では、3.1 Flash Liveの仕様とPythonでの接続方法、料金を1時間あたりに直した目安、3.8 Liveへ移すときに変わる設定と移行先の選び方を、Googleの公式ドキュメントに沿って整理します。
まとめ:Gemini 3.1 Flash Liveの現状と判断ポイント
- モデルIDは
gemini-3.1-flash-live-preview。2026年10月時点もプレビューのままで、非推奨ページでは2026年11月17日が終了予定日(最短)、置き換え先がgemini-3.8-liveです。 - 1つ前の
gemini-2.5-flash-native-audio-preview-12-2025も同じ11月17日が終了予定日です。2.5に戻すのは逃げ道になりません。 - トークン単価は3.8 Liveと同じで、音声入力0.005ドル/分・音声出力0.018ドル/分です。1時間話し続けると入力約0.30ドル・出力約1.08ドルで、これに会話履歴の再課金が毎ターン加わります。
- 3.8 Liveでは
thinking_levelを送れず、関数呼び出しは非同期が既定になり、プロアクティブ音声が常に有効です。移行時は思考の設定を外し、結果を待たせたい関数にだけBLOCKINGを指定します。 - 3.1 Flash Liveで本番を動かしているなら、11月17日より前に3.8 Liveでの検証と切り替えを終えてください。新しく作るなら最初から3.8 Liveを選びます。
Gemini 3.1 Flash Liveの仕様と提供状況
3.1 Flash Liveは、音声・画像・動画・テキストを入力として受け取り、音声で答えるリアルタイム対話用のモデルです。音声をいったん文字に起こしてから合成する方式ではなく、モデルが音声を直接生成します。公式のモデルページにある仕様は次のとおりです。英語版のモデルページは、このモデルを「legacy preview model」と呼び、3.8 Liveへの更新を勧めています。
| 項目 | Gemini 3.1 Flash Live |
|---|---|
| モデルID | gemini-3.1-flash-live-preview |
| 公開日 | 2026年3月26日(プレビュー) |
| 入力 | テキスト・画像・音声・動画 |
| 出力 | 音声(文字起こし併用可) |
| トークン上限 | 入力131,072/出力65,536 |
| 音声形式 | 入力16kHz・出力24kHz(16bit PCM) |
| 対応 | 関数呼び出し・Google検索グラウンディング・思考 |
| 非対応 | キャッシュ・コード実行・構造化出力・Batch API |
| 終了予定日 | 2026年11月17日(最短) |
| 推奨の置き換え先 | gemini-3.8-live |
コンテキストキャッシュに対応していないため、長い会話の入力料金をキャッシュで減らす設計は取れません。セッションを長く保つには、後述のコンテキスト ウィンドウ圧縮を使います。
話す言語はモデルが自動で選び、言語コードを明示的に指定する設定はありません。公式の機能ガイドは、話す言語をシステム指示で絞れると案内しています。日本語で応答させたい場合は、システム指示に「日本語で答える」と書きます。
2.5 Flash Native Audioからの変更点とベンチマーク
3.1 Flash Liveの前は gemini-2.5-flash-native-audio-preview-12-2025 がLive APIの主力でした。Googleの発表(2026年3月26日)では、複数の制約付きの関数呼び出しを音声で行うComplexFuncBench Audioで90.8%、割り込みや言いよどみを含む音声での指示追従を測るScale AIのAudio MultiChallengeで36.1%(思考オン)を記録しています。Geminiアプリの会話機能Gemini Liveでは、会話の流れを追える長さが従来の2倍になったと説明されています。
2.5から移行するときに変える設定
モデルページの移行ガイドは、2.5 Flash Native Audioから移るときの注意点を7つ挙げています。そのうち、まず確認したい設定と受信処理の変更点は次の4つです。
- 思考の設定が
thinkingBudget(トークン数)からthinkingLevel(minimal・low・medium・high)に変わりました。既定はレイテンシ優先のminimalです。 - 1つのサーバーイベントに、音声チャンクと文字起こしなど複数のパートが同時に入るようになりました。先頭のパートだけ読む実装では音声や文字が欠けます。
- 非同期の関数呼び出し(
NON_BLOCKING)は使えません。ツールの結果を返すまで、モデルは話し始めません。 - プロアクティブ音声と感情的な会話(affective dialog)は未対応です。設定に残っている場合は削除します。
もう1点、ターンに含まれる範囲の既定が「音声のある区間と全動画フレーム」に変わりました。カメラ映像を常に送り続けると、その分が入力として課金されます。公式は、音声がある間だけ動画フレームを送るよう推奨しています。
料金は、音声の入出力単価が2.5と同じで、動画入力は100万トークンあたり3.00ドルから1.00ドルへ下がり、テキストの単価は上がりました(入力0.50→0.75ドル、出力2.00→4.50ドル/100万トークン)。
Live APIでGemini 3.1 Flash Liveを使う手順
Live APIはWebSocketでつなぎ続けるAPIで、通常の generateContent とは呼び出し方が違います。コードを書かずに声を確認するなら、Google AI Studioで「Stream」を選びます。アプリへ組み込む場合はSDKで接続します。
Python SDKでの接続例(思考レベル・音声・関数呼び出し)
実行前にPython 3.10以上でgoogle-genai(2026年10月14日公開の2.31.0で確認)をインストールし、環境変数 GEMINI_API_KEY と、実行ディレクトリ内のquestion_16k.pcm(16bit・16kHz・モノラルのRAW PCM)を用意します。次のコードは短い録音ファイルを一括送信し、モデルの音声を24kHzのWAVに保存する例です。マイクからのリアルタイム入力では、公式推奨の20〜40ミリ秒程度のチャンクに分けて送信します。関数 lookup_order が呼ばれると、注文番号にかかわらず固定のダミー結果「発送済み」を返します。実際の配送状況は照会しません。送信内容を模擬WebSocketサーバーに記録し、設定・音声・ツール応答が送られ、1つのイベントに入った2つの音声パートがどちらもWAVに書き込まれることを確認しました(実APIでの応答品質は未検証)。
import asyncio
import wave
from google import genai
from google.genai import types
client = genai.Client() # 環境変数 GEMINI_API_KEY を読む
MODEL = "gemini-3.1-flash-live-preview"
lookup_order = {
"name": "lookup_order",
"description": "注文番号から配送状況を返す",
"parameters": {"type": "OBJECT",
"properties": {"order_id": {"type": "STRING"}},
"required": ["order_id"]},
}
config = types.LiveConnectConfig(
response_modalities=["AUDIO"],
system_instruction="あなたは通販サイトの一次受付です。日本語で簡潔に答えます。",
speech_config=types.SpeechConfig(voice_config=types.VoiceConfig(
prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name="Kore"))),
thinking_config=types.ThinkingConfig(thinking_level="low"), # 既定は minimal
input_audio_transcription=types.AudioTranscriptionConfig(),
output_audio_transcription=types.AudioTranscriptionConfig(),
context_window_compression=types.ContextWindowCompressionConfig(
sliding_window=types.SlidingWindow()),
session_resumption=types.SessionResumptionConfig(handle=None),
tools=[{"function_declarations": [lookup_order]}],
)
async def main():
pcm = open("question_16k.pcm", "rb").read() # 16bit・16kHz・モノラルのRAW PCM
out = wave.open("answer_24k.wav", "wb")
out.setnchannels(1); out.setsampwidth(2); out.setframerate(24000)
async with client.aio.live.connect(model=MODEL, config=config) as session:
await session.send_realtime_input(
audio=types.Blob(data=pcm, mime_type="audio/pcm;rate=16000"))
await session.send_realtime_input(audio_stream_end=True)
async for msg in session.receive():
if msg.session_resumption_update and msg.session_resumption_update.new_handle:
handle = msg.session_resumption_update.new_handle # 再接続時に渡す
if msg.tool_call: # 3.1 Flash Live は同期のみ。返すまでモデルは話さない
await session.send_tool_response(function_responses=[
types.FunctionResponse(id=fc.id, name=fc.name,
response={"status": "発送済み"})
for fc in msg.tool_call.function_calls])
sc = msg.server_content
if sc is None:
continue
if sc.model_turn: # 1イベントに複数パートが入るので全部処理する
for part in sc.model_turn.parts:
if part.inline_data:
out.writeframes(part.inline_data.data)
if sc.output_transcription:
print("AI:", sc.output_transcription.text)
if sc.turn_complete:
break
out.close()
asyncio.run(main())
声は voice_name で指定し、TTSモデルと同じ名前の声が使えます。一覧はAI Studioで試聴できます。VAD(発話検出)は既定で自動に働き、ユーザーが話し始めるとモデルの発話は中断されます。
セッションの上限と再接続
Live APIのセッションには時間の上限があり、長い通話ではここが最初につまずく点です。
- 圧縮を使わない場合、音声のみのセッションは15分、音声と動画のセッションは2分で終わります。
- WebSocket接続そのものも約10分で切れます。接続が切れるとセッションも終わります。
context_window_compressionを設定すると、古い部分を切り詰めてセッションを時間の上限なく延ばせます。音声は1秒あたり約25トークン溜まり、ネイティブ音声モデルのコンテキストは128Kトークンです。session_resumptionを設定すると、サーバーが再開用のハンドルを送ってきます。次の接続でそのハンドルを渡せば会話を続けられ、ハンドルは前のセッション終了から2時間有効です。
上のコードは圧縮と再開用ハンドルの受信を有効にしていますが、切断後の再接続処理は実装していません。約10分で接続が切れる場合に備え、長時間の会話を継続する実装では、最新の再開可能なハンドルの保存と再接続処理を組み込みます。
ブラウザから直接つなぐ場合のエフェメラルトークン
ブラウザやスマホアプリから直接WebSocketをつなぐと、音声がバックエンドを経由しない分レイテンシは下がります。ただしAPIキーをクライアントに置くことになるため、公式はエフェメラルトークン(短命トークン)の利用を勧めています。トークンはバックエンドで発行し、既定では新しいセッションの開始に使えるのが発行から1分、有効期限が30分です。使えるのはLive APIだけで、APIバージョンもv1betaに限られます。システム指示やモデルをトークン側に固定しておけば、クライアントで設定を書き換えられることも防げます。
WebSocketを自前で管理したくない場合は、Live APIの公式ドキュメントが挙げるLiveKit・Pipecat・Fishjam・Vision Agents・Voximplant(電話回線)を経由する方法もあります。LiveKitの仕組みと料金は別記事で解説しています。
Gemini 3.1 Flash Liveの料金と1時間あたりの目安
料金はGemini APIの料金ページにある100万トークンあたりの単価で決まり、音声には分単価も併記されています。この単価は2026年4月・8月の保存版と10月17日時点の料金ページで同じで、3.8 Live・3.8 Live Extended Thinkingと同じ1つの料金表にまとめられています。
| 区分(有料枠) | 3.1 Flash Live/3.8 Live | 2.5 Flash Native Audio |
|---|---|---|
| テキスト入力 | 0.75ドル | 0.50ドル |
| 音声入力 | 3.00ドル(0.005ドル/分) | 3.00ドル |
| 画像・動画入力 | 1.00ドル(0.002ドル/分) | 3.00ドル(動画) |
| テキスト出力 | 4.50ドル | 2.00ドル |
| 音声出力 | 12.00ドル(0.018ドル/分) | 12.00ドル |
単価は100万トークンあたり、出力は思考トークンを含みます。無料枠でも使えますが、無料枠の入出力はGoogleの製品改善に使われます。有料枠のGoogle検索グラウンディングは、Gemini 3以降のモデルで共有する月5,000件の無料枠があり、超過分は検索クエリ1,000件あたり14ドルです。Geminiへの1回のリクエストで複数の検索クエリが実行される場合があります。
分単価をそのまま時間に直すと、音声入力は1時間0.30ドル、音声出力は1時間1.08ドルです。音声出力の分単価0.018ドルは、Live APIのベストプラクティスにある「音声1秒あたり約25トークン」(1時間90,000トークン)で計算した額と一致します。
たとえば1通話5分で、利用者とAIが半分ずつ話すと、分単価で見た音声の料金は約0.06ドル(2.5分×0.005ドル+2.5分×0.018ドル)です。1日1,000通話を30日続けると約1,700ドルになります。ただし、これは料金表の丸められた分単価による概算で、会話履歴の再課金や文字起こしなどの追加料金を含みません。掲載コードのように入出力の文字起こしを有効にすると、そのテキストにも出力単価が適用されます。
Live APIは、ターン(利用者の発話1回とモデルの応答1回)ごとに、コンテキストに残っているすべてのトークンを入力として課金します。履歴は音声トークンのまま保持され、毎ターン音声入力の単価で課金し直されます。10分話した時点の履歴は約15,000トークン(25トークン×600秒)なので、次の1ターンだけで入力約0.045ドルがかかります。やり取りの回数が多い通話ほど、分単価の計算から離れていきます。
対策は2つあります。context_window_compression のスライディングウィンドウで履歴の上限を決めることと、音声がない間は動画フレームを送らないことです。実額は、サーバーメッセージの usage_metadata に出るトークン数を試験通話で測ってから見積もってください。
3.8 Liveへの移行と11月17日の終了予定
2026年9月15日、Gemini APIで gemini-3.8-live と gemini-3.8-live-extended-thinking がGAになりました。3.1 Flash Liveと3.8 Liveのトークン単価は同じですが、実際の料金まで同じになるとは限りません。3.8 Liveはプロアクティブ音声が常時有効で、APIが音声を聞いている間は入力が課金されます。3.1 Flash Liveで課金されるのは音声を送っている間だけなので、設定の互換性とともに移行後の使用量も検証します。3.8 Liveそのものの仕様、上位版 Extended Thinking との使い分け、非同期関数呼び出しの実装コードはGemini 3.8 Liveとは?Extended Thinkingとの違いとLive APIの非同期関数呼び出し実装で解説しています。
| 項目 | 3.1 Flash Live | 3.8 Live | 3.8 Live Extended Thinking |
|---|---|---|---|
| 区分 | プレビュー | 安定版(GA) | GA(Gemini API) |
| 思考の設定 | thinkingLevel(既定minimal) | 送るとNG(省略する) | low・medium・high |
| 関数呼び出し | 同期のみ | 非同期が既定・BLOCKINGも可 | 非同期のみ |
| プロアクティブ音声 | 非対応 | 常に有効(falseはエラー) | 常に有効 |
| 感情的な会話 | 非対応 | APIから削除 | APIから削除 |
上のPythonコードを3.8 Liveに移すなら、MODEL を gemini-3.8-live に替え、thinking_config の行を消します。関数呼び出しは既定で非同期になり、ツールの結果を待つ間もモデルが話し続けます。3.1と同じく結果を待たせたい関数は、宣言に "behavior": "BLOCKING" を付けます。この3点を書き換えたコードもgoogle-genai 2.31.0で模擬サーバーに送り、setupから思考の設定が消え、関数の宣言に BLOCKING が載ることを確認しました。
注意したいのはプロアクティブ音声です。この機能は、入力が関係のない内容だとモデルが判断したときに応答しないというものです。3.8 Liveでは常に有効で、止める設定がありません。「話しかけられたら必ず応える」前提のIVR(自動音声応答)やテストシナリオは、移行前に聞き直しの流れを確かめてください。
3.1 Flash Liveの移行期限と切り替え作業
非推奨ページの終了予定日は、Internet Archiveの10月2日の保存版では「No shutdown date announced」でした。10月7日の保存版から「November 17, 2026」に変わっています。リリースノートには3.1 Flash Live単独の告知は出ていません。
非推奨ページは、表の日付を「モデルが終了しうる最も早い日」と説明し、正確な日は事前に知らせるとしています。11月17日を過ぎてもすぐ止まるとは限りません。ただし、同じGemini 3系のプレビューでは、gemini-3-pro-preview が2026年2月26日の告知から11日後の3月9日に停止しました。11月17日を期限として動くのが安全です。
- モデルIDを
gemini-3.8-liveに替え、思考の設定を外したうえで、会話の流れと関数呼び出しのタイミングを検証環境で確かめる。 - 2.5 Flash Native Audioへ戻す案は取らない。
gemini-2.5-flash-native-audio-preview-12-2025も同じ11月17日が終了予定日で、置き換え先は同じ3.8 Liveです。 - エフェメラルトークンでモデルを固定している場合は、トークンを発行するバックエンド側のモデル名も替える。
Live APIで選べる移行先モデル
Gemini APIのLive APIで2026年10月時点に終了予定日が付いていないモデルは次の4つです。音声で会話するエージェントなら3.8 Live、推論の深さが必要なら3.8 Live Extended Thinkingを選びます。通訳や文字起こしだけが目的なら、会話用のモデルより専用モデルのほうが用途に合っています。
| モデルID | 区分 | 用途 |
|---|---|---|
gemini-3.8-live |
GA | 音声エージェントの既定 |
gemini-3.8-live-extended-thinking |
GA | 推論を深くしたい音声対話 |
gemini-3.5-live-translate-preview |
プレビュー | 音声から音声へのリアルタイム翻訳 |
gemini-3.5-transcribe-live |
GA | ストリーミング文字起こし(音声は返さない) |
料金ページでは、3.5 Live Translateが音声入力0.0053ドル/分・音声出力0.0315ドル/分、3.5 Transcribe Liveが音声入力0.005ドル/分・テキスト出力0.004ドル/分です。翻訳の使い方はGemini 3.5 Live Translateの使い方で扱っています。
Gemini Live・検索Liveと3.1 Flash Liveの関係
3.1 Flash Liveは開発者向けAPIだけのモデルではありませんでした。公開時は、Geminiアプリの音声会話(Gemini Live)とGoogle検索の音声・カメラ会話機能「検索Live」の裏側でも使われ、検索Liveはこの公開に合わせて200以上の国と地域に広がりました。企業向けには、コンタクトセンター向けのGemini Enterprise for Customer Experienceでも提供されました。
2026年9月15日の3.8 Live発表では、検索Liveは3.8 Live、Geminiアプリは3.8 Live Extended Thinkingで提供を始めたと案内されています。発表は提供開始の案内で、すべての利用者の切り替えが済んだとまでは書かれていません。3.1 Flash Liveの音声には、生成物であることを検出できるSynthIDの透かしが入っており、3.8 Liveも同様です。
自社の電話窓口や受付にLive APIを組み込む場合、モデルの切り替えに加えて、通話録音・文字起こし・既存システムとの連携への影響を確認し、必要な部分を改修します。設計から任せたい場合はAI音声認識システム開発で相談を受け付けています。
よくある質問
Gemini 3.1 Flash Liveはいつ終了しますか?
Gemini APIの非推奨ページでは、2026年11月17日が終了予定日です。これは終了しうる最も早い日で、正確な日は事前に通知されます。推奨の置き換え先は gemini-3.8-live です。
Gemini 3 Flash Liveとは違うモデルですか?
「Gemini 3 Flash Live」という名前のモデルはありません。Gemini APIのモデル一覧・非推奨ページ・リリースノートのどれにも gemini-3-flash-live というIDは出てきません。Gemini 3系のLive API用モデルは、3.1 Flash Live(プレビュー)と3.8 Live・3.8 Live Extended Thinking(GA)です。
Gemini 3.1 Flash Liveは無料で使えますか?
Gemini APIの無料枠とGoogle AI Studioで無料で試せます。無料枠の入出力はGoogleの製品改善に使われます。有料枠では製品改善に使われませんが、音声がGoogleのサーバーへ送られる点は同じなので、社外に出せない音声を扱えるかどうかは自社の規程で判断します。
Gemini 3.1 Flash Liveは日本語で話せますか?
話せます。Live APIの機能ガイド(英語版・2026年10月時点)は対応言語を99と記載し、日本語も含まれます。3.1 Flash Liveの発表時の説明は「90以上の言語」でした。言語はモデルが自動で選び、言語コードを指定する設定はないため、日本語に固定したい場合はシステム指示で指定します。
Vertex AIでもGemini 3.1 Flash Liveを使えますか?
Google Cloudの汎用モデル基盤(Gemini Enterprise Agent Platform、旧Vertex AI)のLive API概要が対応モデルとして挙げるのは、gemini-3.8-live と gemini-live-2.5-flash-native-audio(ともにGA)、文字起こし専用の gemini-3.5-transcribe-live-preview で、3.1 Flash Liveは入っていません。gemini-live-3.1-flash-native-audio というIDも公式ドキュメントにはありません。一方、コンタクトセンター向けのCX Agent Studioでは、gemini-3.1-flash-live(末尾にpreviewが付かないID)が音声最適化モデルとして提供されています。Google Cloudで新しく作るなら3.8 Liveを選びます。Gemini APIとの認証や料金の違いはVertex AIとGemini APIの違いで比べています。