はじめに
Google AI から Gemini API に関する 2 つの重要なアップデートが発表されました。
-
gemini-3.1-flash-tts-previewモデルでの音声生成ストリーミング対応(新機能) - 実験的な GMP Contextual View ツールの廃止(2026年6月15日 シャットダウン済み)
特に後者はすでにシャットダウンされた破壊的変更です。Grounding with Google Maps の出力表示に GMP Contextual View を利用しているプロジェクトは、即時の移行対応が必要です。
📌 影響を受ける人
- Gemini API で Text-to-Speech (TTS) を使って音声を生成しているエンジニア
- Grounding with Google Maps の結果を GMP Contextual View で表示しているエンジニア
- Google AI を用いたアプリケーション開発者全般
変更の全体像
変更内容
1. 音声生成ストリーミング対応(severity: medium)
| 項目 | 詳細 |
|---|---|
| 対象モデル | gemini-3.1-flash-tts-preview |
| 対応 API |
streamGenerateContent、Interactions API(stream: true) |
| 変更種別 | 新機能追加 |
| 対応要否 | 任意(既存コードへの影響なし) |
これまで Gemini の TTS (Text-to-Speech) 機能は、レスポンス全体が生成されてから返却される形式のみでした。今回のアップデートにより、ストリーミングで音声チャンクをリアルタイムに受け取ることが可能になりました。
ストリーミング対応によって次のようなユースケースが実現しやすくなります。
- 会話 AI の応答を即座に読み上げる: テキスト生成と並行して音声を再生できるため、体感レイテンシが大幅に改善します
- 長い文章の読み上げ: 全体の生成完了を待たずに再生を開始できます
- リアルタイム音声アシスタント: チャンク単位で処理を挟むことで、より自然な会話体験を構築できます
💡 Tips
ストリーミング TTS はgemini-3.1-flash-tts-previewが対象です。他の TTS モデルや安定版モデルでの利用可否は、Google AI の公式 Text-to-Speech ガイドで確認してください。
2. GMP Contextual View ツールの廃止(severity: high)
| 項目 | 詳細 |
|---|---|
| 廃止対象 | GMP Contextual View(実験的ツール) |
| シャットダウン日 | 2026年6月15日(すでに廃止済み) |
| 関連機能 | Grounding with Google Maps |
| 対応要否 | 必須 |
⚠️ Breaking Change
GMP Contextual View は 2026年6月15日にシャットダウン済みです。このツールを使用しているコードは現在すでに動作しない状態です。代替手段への移行を直ちに実施してください。
GMP Contextual View は、Grounding with Google Maps の出力結果をユーザーに提示するための実験的な固定インターフェースとして提供されていました。しかし、実験的ステータスのままシャットダウンされたため、利用者は独自の表示実装へ移行する必要があります。
影響と対応
GMP Contextual View を使用している場合(優先度:高)
移行ステップ:
-
影響箇所の特定:
GMP Contextual Viewに関連するコード(API 呼び出し、UI コンポーネント等)を洗い出す - 代替手段の選定: Grounding with Google Maps のレスポンスデータを直接パースし、Google Maps JavaScript API や Maps Embed API などを使って独自の地図表示 UI を構築する
- テストと置き換え: 既存の表示ロジックを新しい実装に差し替え、動作確認を行う
ストリーミング TTS を活用したい場合(優先度:任意)
既存の TTS 実装を streamGenerateContent または Interactions API の stream: true に切り替えることで、ユーザー体験を向上させることができます。
コード例
TTS ストリーミング:Before / After
Before(非ストリーミング)
import google.generativeai as genai
model = genai.GenerativeModel("gemini-3.1-flash-tts-preview")
# レスポンス全体が揃うまで待機
response = model.generate_content(
"こんにちは、今日の天気を教えてください。",
generation_config={"response_modalities": ["AUDIO"]}
)
# 全音声データをまとめて処理
audio_data = response.candidates[0].content.parts[0].inline_data.data
save_audio(audio_data)
After(ストリーミング対応)
import google.generativeai as genai
model = genai.GenerativeModel("gemini-3.1-flash-tts-preview")
# streamGenerateContent でチャンク単位に受け取る
response_stream = model.generate_content(
"こんにちは、今日の天気を教えてください。",
generation_config={"response_modalities": ["AUDIO"]},
stream=True # ストリーミングを有効化
)
# チャンクが届くたびにリアルタイム処理
for chunk in response_stream:
if chunk.candidates and chunk.candidates[0].content.parts:
audio_chunk = chunk.candidates[0].content.parts[0].inline_data.data
play_audio_chunk(audio_chunk) # 逐次再生
💡 Tips
ストリーミングを使うと、最初の音声チャンクが届いた時点で再生を開始できます。特に長いテキストの読み上げや、チャット応答のリアルタイム音声化に効果的です。
GMP Contextual View:移行イメージ
Before(廃止済み)
// ❌ GMP Contextual View を使った表示(現在は動作しない)
const result = await model.generateContent(prompt);
const groundingMetadata = result.response.candidates[0].groundingMetadata;
// GMP Contextual View に渡して表示
gmpContextualView.render(groundingMetadata.searchEntryPoint);
After(独自実装への移行例)
// ✅ Grounding レスポンスを直接パースして独自表示
const result = await model.generateContent(prompt);
const groundingMetadata = result.response.candidates[0].groundingMetadata;
// groundingChunks からロケーション情報を取得
const locations = groundingMetadata.groundingChunks
.filter(chunk => chunk.web?.uri)
.map(chunk => ({
title: chunk.web.title,
uri: chunk.web.uri,
}));
// 独自の UI コンポーネントで表示
renderLocationList(locations);
まとめ
| 変更 | 種別 | 対応要否 | 優先度 |
|---|---|---|---|
TTS ストリーミング対応(gemini-3.1-flash-tts-preview) |
新機能 | 任意 | 低(改善目的なら検討) |
| GMP Contextual View 廃止 | 廃止・破壊的変更 | 必須 | 高(すでに動作不可) |
今回のアップデートで最も重要なのは GMP Contextual View のシャットダウンです。2026年6月15日の時点ですでに廃止されているため、このツールに依存している実装は現在動作していません。早急にコードを確認し、Grounding with Google Maps のレスポンスを独自に処理・表示する形へ移行してください。
一方、TTS ストリーミング対応は既存コードへの影響はなく、任意の対応です。音声 AI アシスタントや読み上げ機能を持つアプリケーションを開発している場合は、ユーザー体験向上の観点から積極的に活用を検討する価値があります。