GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/API / SDK
API / SDK/2026-04-30上級

電話を受けるAIを本番投入する:Gemini Live API × Twilio Media Streams で構築する電話応答エージェント

Twilio Voice と Gemini Live API を WebSocket で橋渡しし、電話に出る AI 音声エージェントを本番運用するための実装手順・割り込み処理・Function Calling・コスト試算までを完全コード付きで解説します。

gemini-live-apitwiliovoice-agent2websocket4fastapi5production105media-streams

プレミアム記事

「電話を受ける AI」と聞くと、多くの方は IVR(自動音声応答)の延長を思い浮かべるのではないでしょうか。決まったメニューを読み上げ、プッシュ番号で分岐する、あの少しよそよそしい仕組みです。ところが Gemini Live API が登場してから、その先のレベル — 自然な会話で予約を受け、必要に応じて社内データベースに書き込み、難しい問い合わせは人間にエスカレーションする音声エージェント — が、個人開発者の射程にも入ってきました。

私自身、ある小規模店舗向けに「営業時間外の電話を AI で受ける」プロトタイプを試した際、ブラウザ上の WebSocket デモと電話回線とでは、ほとんど別物と言っていいほど実装が違うことを思い知りました。8kHz μ-law と 16kHz PCM の壁、Twilio Media Streams が要求する base64 で包まれたフレーム、無音検知よりも難しい「割り込み」の扱い — 公式ドキュメントのサンプルだけでは、実際の通話に耐える応答エージェントは組み上がりません。

ここで扱うのはその経験をもとに Twilio Voice の着信を Gemini Live API に橋渡しし、本番運用に耐える電話応答エージェントを構築する手順 をまとめました。コードはすべて動く完全な形で、エラーハンドリング・割り込み制御・落とし穴・コスト試算まで含めて掘り下げています。Gemini Live API の基本を理解された中〜上級の開発者を主な対象としています。

前提: WebSocket と ephemeral token の基本については Gemini Live API WebSocket × Ephemeral Token 本番設計 を、Live API そのものの導入は Gemini Live API 完全ガイド を併読することをおすすめします。

ブラウザの音声デモがそのまま電話に乗らない理由

最初に、なぜ電話回線が特別なのかを整理しておきます。ここを理解しないまま実装に入ると、「マイクからは動くのに、電話からだとノイズしか返ってこない」という典型的な詰まり方をします。

電話回線(PSTN)は 8kHz サンプリング・8bit μ-law(u-law)圧縮・モノラル が事実上の標準です。これは 1970 年代に決まった規格で、人の声が伝わる帯域に最適化されており、帯域は驚くほど狭いものです。一方、Gemini Live API が要求する音声フォーマットは 16kHz サンプリング・16bit リニア PCM・モノラル です。サンプリングレートが 2 倍、ビット深度も 2 倍、さらに圧縮方式も違います。

加えて Twilio の Media Streams は、生のバイナリではなく base64 で包まれた JSON フレーム を WebSocket で送ってきます。フレームには event フィールドがあり、startmediamarkstop の状態遷移を扱う必要があります。逆方向(AI からユーザーへ)も同じフォーマットで返さなければなりません。

つまり中継サーバーがやることは、おおまかに次の 4 つです。

  • Twilio から届いた base64+μ-law を decode し、16kHz PCM にアップサンプリング
  • それを Gemini Live API の WebSocket にバイナリで送信
  • Gemini が返す 24kHz PCM 応答を 8kHz μ-law にダウンサンプリングして base64 で包む
  • それを Twilio に WebSocket で送り返す

「ただの WebSocket リレー」では済まないことがお分かりいただけると思います。ここを最短距離で実装するのが本記事のゴールです。

アーキテクチャ全体像 — 3 つのコンポーネント

実装に入る前に、登場人物を整理します。本記事のシステムは次の 3 つから成り立ちます。

  • Twilio Voice: 電話番号の貸与と、着信を WebSocket(Media Streams)に流す責務を持ちます。TwiML という小さな XML で着信時の振る舞いを制御します。
  • 中継サーバー(FastAPI + WebSocket): Twilio と Gemini の橋渡しをします。音声フォーマット変換、割り込み制御、Function Calling の橋渡しが主な仕事です。Cloud Run にデプロイする想定で書きます。
  • Gemini Live API: 音声を受け取って音声で返す本体です。Function Calling・System Instructions・割り込み(interrupt)通知も担当します。

データの流れは次のようになります。

  1. ユーザーが電話をかける → Twilio が Voice URL の Webhook を呼ぶ
  2. 中継サーバーは TwiML で <Connect><Stream url="wss://.../media"> を返す
  3. Twilio が中継サーバーの WebSocket に接続し、ユーザーの音声を流し始める
  4. 中継サーバーは Gemini Live API にも WebSocket で接続し、双方向ブリッジを開始
  5. Gemini の応答音声が中継サーバー経由で Twilio に戻り、ユーザーに聞こえる
  6. 通話終了で Twilio が stop を送り、中継サーバーが Gemini セッションを閉じる

ここまでが概観です。順番に実装していきましょう。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
ブラウザの音声デモで動いていたコードを電話回線に持ち込もうとして詰まっていた人が、μ-law 8kHz と PCM 16kHz の橋渡しまで含めた動く実装を今日手に入れられる
Twilio Media Streams と Gemini Live API の双方向ストリーミングを FastAPI WebSocket で中継する完全コードと、割り込み・ハングアップ処理のパターンを習得できる
電話受付の予約・問い合わせ・一次対応を AI で自動化したい個人開発者が、Cloud Run へのデプロイとコスト試算まで含めて本番投入の見取り図を持てる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-04-15
Gemini API 本番プロンプト管理基盤の設計と実装 — バージョン管理・A/Bテスト・カナリアロールアウト
コードに直書きされたプロンプトの劣化・属人化を解消する、Gemini API 向けプロンプト管理基盤の実装ガイドです。テンプレートストアのバージョン管理、A/B テストエンジン、カナリアデプロイの段階的ロールアウト、本番アプリへの組み込みまで設計します。
API / SDK2026-03-19
Gemini 2.5 Pro × FastAPI: プロダクション対応AIバックエンドの実装ガイド
Gemini 2.5 Pro APIとFastAPIを組み合わせ、ストリーミング・レート制限・Function Calling・Dockerデプロイまで網羅したプロダクション対応AIバックエンドの構築方法を徹底解説します。
高度な活用2026-03-17
Gemini Live API × Google ADK で構築する本番グレード音声AIエージェント【2026年実装ガイド】
Gemini Live API と Google Agent Development Kit (ADK) を組み合わせ、Function Calling・WebSocket・Cloud Run を活用した本番グレードの音声AIエージェントを設計・実装・デプロイする完全実践ガイド。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →