Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIに実況させる / AI Streamer

AIに実況させる / AI Streamer

Avatar for motemen

motemen

May 29, 2025
Tweet

More Decks by motemen

Other Decks in Technology

Transcript

  1. 1. 対戦の録画と分析 • OBS Studio + 激安キャプチャカードによる録画 • 動画を解析して相手の構築と勝敗などを記録する $

    uv run eapu2.py video.mp4 INFO 対戦相手の構築: パオジアン/カイリュー/水オーガポン/キョジオーン/ハバタクカミ/ミミッキュ INFO Scene change detected: SceneKind.PARTY_SELECTION INFO Scene change detected: SceneKind.IN_BATTLE INFO [02:24] 対面: ブリジュラスvsミミッキュ INFO [02:44] メッセージ: 相手の ミミッキュの おにび! INFO [02:52] メッセージ: プリジュラスは やけどを負った! INFO [02:55] メッセージ: プリジュラスの ステルスロック! INFO [03:00] メッセージ: 相手の周りに とかった岩が ただよい始めた! INFO [03:05] メッセージ: プリジュラスは やけどのダメージを受けた! ...
  2. 技術: OBS Browser Source • Chromium ベースのブラウザ画面 をソースとして取り込む • ゲーム画面の上にHTMLを重ねるよ

    うなイメージ • 描画を更新すれば反映される • ページ上で再生した音声もいける • つまりなんでもできる
  3. ai-streamer • ふつうのリアルタイムWebアプリケーションを書けばよい • サーバ: 台詞生成(OpenAI)→ 音声生成(VOICEVOX) ◦ POST /api/chat

    • フロントエンド(OBS 内): ◦ Server-Sent Events でリアルタイムにコマンドを受け取り… ◦ 音声を再生 ◦ 表情を変える ◦ 字幕を表示
  4. 実況っぽくする工夫 • レイテンシを下げるため Streaming response + 句読点で分割 ◦ for await

    (chunk of responseStream) しつつ ◦ 句読点がやってきたらすぐに音声生成へ • n秒間発話がなかったら雑談 ◦ 発話が終わったことはフロントエンド側でしかわからない ◦ ので、フロント側から POST /api/idle する • 過去の発話もプロンプトに含めて、一貫性を維持 ◦ これがないと毎回新鮮な反応を返すbotになってしまう…