広告

Google Gemini 3.1 Flash Live と VideoSDK でリアルタイムAIボイスエージェントを構築する

Dev.to / 2026/3/31

📰 ニュースDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • Google は Gemini 3.1 Flash Live Preview をローンチし、低遅延の会話体験向けのより高品質なリアルタイム音声モデルとして位置付けた。
  • このモデルは音声から音声へ(まず音声認識テキストへ変換するのではなく)対応し、やり取りをより速く自然に感じさせる。さらに、低遅延や背景ノイズへの対応力強化といった利点もある。
  • それはピッチ、話す速さ、トーンといった音響的なニュアンスを捉え、90以上の言語でリアルタイムの多言語会話をサポートする。また、会話メモリは従来世代の約2倍の長さを提供する。
  • Gemini 3.1 Flash Live Preview では、ライブでの対話中にツールを会話の途中で使用できる。対話が進むにつれて、外部API/関数/検索をリアルタイムにトリガーできる。
  • この記事では、VideoSDK の Python SDK を介してモデルを接続し、動作するAIボイスエージェントを作るための手順を、専用のPython仮想環境のセットアップから始めて段階的に解説している。

GoogleがGemini 3.1 Flash Live Previewを発表しました。これは、これまでで最も高性能なリアルタイムの音声・オーディオモデルです。AIボイスエージェントや会話アプリ、低遅延の音声インテリジェンスが必要なものを作っているなら、このモデルは大きな意味を持ちます。そしてVideoSDKのPython SDKを使えば、アプリに組み込むのは数分でできます。

このブログでは、新しいモデルでできることを紹介した後、VideoSDKを使って段階的に動作するボイスエージェントを構築します。

Gemini 3.1 Flash Live Previewで新しくなったこと

Googleはこれを「これまでで最高品質のオーディオおよび音声モデル」と説明しており、実際にそれを裏付けるポイントがいくつかあります。

このモデルは、リアルタイムで“音が主役”の体験のために作られています。音声をテキストに変換してから処理するモデルとは異なり、Gemini 3.1 Flash Liveはオーディオtoオーディオです。つまり、あなたの声を聞いて、応答も音声として返すため、会話が自然で速いままになります。

ここが特に注目ポイントです:

  • 以前より低遅延。2.5 Flash Native Audioと比べると、このモデルは明らかに速いです。気まずい間(ポーズ)が減り、レスポンスが機敏になります。遅延が体験を壊してしまうようなボイスエージェントを作るとき、この差は非常に大きいです。
  • あなたが話す“言い方”をちゃんと理解します。このモデルは、音響的なニュアンス、ピッチ、話す速さ、トーンを捉えます。そのため、カジュアルな質問をしているのか、切迫している/混乱しているように聞こえるのかを判別できます。
  • バックグラウンドノイズへの対応が改善。ノイズをより効果的にフィルタリングするため、静かなスタジオだけでなく、実環境で動作します。
  • 多言語に最初から対応。リアルタイム会話で90以上の言語に対応します。
  • 会話の記憶がより長い。従来世代の2倍の長さで会話の流れを追跡できます。そのため、長時間のセッション中にエージェントが「さっき言われたこと」を忘れてしまうことがありません。
  • ライブ会話中のツール利用。これはエージェントを作る人にとって非常に重要です。モデルは、ターンの最後だけでなく、ライブ会話が進行している最中に外部ツール(API、関数、検索など)をトリガーできるようになりました。
  • マルチモーダルな認識。音声と映像の入力を同時に扱えるため、見ているものと聞いているものの両方に合わせて同時に応答するエージェントを作れます。
  • モデルIDは:gemini-3.1-flash-live-preview

VideoSDKでボイスエージェントを作る

VideoSDKは、Gemini 3.1 Flash Liveを実際の音声アプリに接続するために必要なものをすべて提供します。ゼロからセットアップする手順を紹介します。

ステップ1:Pythonの仮想環境を作成して有効化する

まず、プロジェクトの依存関係を分離した状態に保つため、クリーンなPython環境を作成します。

python3 -m venv venv

有効化します:

macOS/Linux

source venv/bin/activate

Windows

venv\Scripts\activate

ターミナルに(venv)が表示されれば、準備完了です。

ステップ2:環境変数を設定する

プロジェクトのルートに .env ファイルを作成し、APIキーを追加します:

VIDEOSDK_AUTH_TOKEN=your_videosdk_token_here
GOOGLE_API_KEY=your_google_api_key_here

VideoSDKの認証トークンはVideoSDKダッシュボードから取得でき、GoogleのAPIキーはGoogle AI Studioから取得できます。

重要: GOOGLE_API_KEY を .env ファイルに設定する場合、コードで api_key をパラメータとして渡さないでください。SDKが自動的に読み取ります。

ステップ3:必要なパッケージをインストールする

Googleプラグインと一緒に、VideoSDKのエージェントSDKをインストールします:

pip install "videosdk-agents[google]"

ステップ4:エージェントを作成する(main.py)

プロジェクトフォルダ内に main.py というファイルを作成し、次のコードを貼り付けます:

from videosdk.agents import Agent, AgentSession, Pipeline, JobContext, RoomOptions, WorkerJob
from videosdk.plugins.google import GeminiRealtime, GeminiLiveConfig
import logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", handlers=[logging.StreamHandler()])

class MyVoiceAgent(Agent):
    def __init__(self):
        super().__init__(
            instructions="You Are VideoSDK's Voice Agent.You are a helpful voice assistant that can answer questions and help with tasks.")

    async def on_enter(self) -> None:
        await self.session.say("Hello, how can I help you today?")

返却形式: {"translated": "翻訳されたHTML"}async def on_exit(self) -> None:
        await self.session.say("さようなら!")

async def start_session(context: JobContext):
    agent = MyVoiceAgent()
    model = GeminiRealtime(
        model="gemini-3.1-flash-live-preview",
        # .env に GOOGLE_API_KEY が設定されている場合は api_key パラメータを渡さないでください
        # api_key="AIXXXXXXXXXXXXXXXXXXXX", 
        config=GeminiLiveConfig(
            voice="Leda", # Puck, Charon, Kore, Fenrir, Aoede, Leda, Orus, and Zephyr.
            response_modalities=["AUDIO"]
        )
    )

    pipeline = Pipeline(llm=model)
    session = AgentSession(
        agent=agent,
        pipeline=pipeline
    )

    await session.start(wait_for_participant=True, run_until_shutdown=True)

def make_context() -> JobContext:
    room_options = RoomOptions(
        # room_id="<room_id>", # 実際の room_id に置き換えてください
        name="Gemini Realtime Agent",
        playground=True,
    )

    return JobContext(room_options=room_options)

if __name__ == "__main__":
    job = WorkerJob(entrypoint=start_session, jobctx=make_context)
    job.start()

エージェントを実行するには:

python main.py

このコマンドを実行すると、ターミナルにプレイグラウンドの URL が表示されます。この URL を使って AI エージェントとやり取りできます。

この内容で何を作れますか?

Gemini 3.1 Flash Live + VideoSDK は、実世界のユースケースをかなり幅広く開きます:

  • カスタマーサポートの音声ボット。コールセンターを、トーンを理解し、リアルタイムで多言語の顧客対応ができるエージェントで置き換えたり補完したりできます。
  • AI ミーティングアシスタント。通話に参加し、メモを取り、参加者からの質問に答え、会話の途中でフォローアップアクションをトリガーするエージェントです。
  • ヘルスケアの受付エージェント。音声ベースのトリアージで、患者情報を収集し、追加の質問を行い、自然な話し言葉のやり取りの中で適切な部署へ振り分けます。
  • 語学チューター。発音の問題をリアルタイムに見つけ、学習者に応じてペースを調整し、自然に応答する会話パートナーです。
  • 音声制御の IoT とホームオートメーション。連続的に聞き取り、文脈を理解し、ツールの利用によってデバイス操作をサブ秒の応答時間でトリガーするエージェントです。
  • ライブ面接の準備ツール。候補者が質問に対して口頭で答える練習を行い、話し言葉のフィードバックを即座に得られます。

結論

Gemini 3.1 Flash Live Preview は、リアルタイム音声 AI にとって意味のある前進です。レイテンシ、ノイズ対応、多言語対応、そして特にライブツール利用の改善により、本番用の音声エージェントの強固な土台ができました。

VideoSDK はそれらをすべて、クリーンな Python SDK にまとめており、わずか数行でゼロから実行中のエージェントまで到達できます。試作であっても、リリースを意図した何かを作る場合であっても、ここでのセットアップはしっかりした出発点になります。

次のステップとリソース

広告