AI配信アシスタント
はじめに
ライブ配信中にリアルタイムでコメントに反応し、音声で返答し、画面にオーバーレイを表示する——そんなAI配信アシスタントを Claude Code + VOICEVOX + OBS で構築した。
本記事では、このシステムのアーキテクチャと使い方を紹介する。
アーキテクチャ
Claude Code エージェントは CLIコマンド と HTTPリクエスト でバックエンドサービスとやり取りする。バックエンドはわんコメ・VOICEVOX・OBS との接続を一手に管理する。
必要なもの
| ソフトウェア | 用途 |
|---|---|
| Python 3.11+ | バックエンド実行環境 |
| Claude Code | AIエージェント実行環境 |
| VOICEVOX | 音声合成エンジン |
| わんコメ | マルチプラットフォームコメントビューア |
| OBS Studio | 配信ソフト(WebSocket API で画面取得) |
CUDA対応GPUがあると、faster-whisper(音声認識)がGPUで動作し高速になる。CPUのみでも動作可能。
セットアップ
1. インストール
これで live-assistant コマンドがグローバルに使えるようになる。
2. 外部サービスの起動
- VOICEVOX を起動(
localhost:50021) - わんコメ を起動し、配信URLを接続(
localhost:11180) - OBS を起動し、WebSocket サーバーを有効化(
localhost:4455)- ツール → WebSocket サーバー設定 → WebSocket サーバーを有効にする
3. 設定ファイル
config.yaml で各サービスの接続先やパラメータを調整する。
CPU環境の場合は device: "cpu", compute_type: "int8", model: "small" に変更すること。
4. OBS ブラウザソース
オーバーレイを配信画面に表示するため、OBSにブラウザソースを追加する。
| 項目 | 設定値 |
|---|---|
| URL | http://localhost:50700/overlay/ |
| 幅・高さ | 配信解像度に合わせる |
CLIコマンド
live-assistant CLI で利用可能なコマンド一覧:
| コマンド | 説明 |
|---|---|
live-assistant serve | バックエンドサーバー起動 |
live-assistant wait --timeout-sec 15 | コメント・マイクイベントを待機 |
live-assistant speak "テキスト" | VOICEVOX で音声読み上げ |
live-assistant status | サーバーの稼働状態を確認 |
live-assistant activity "テキスト" | オーバーレイに稼働状況テキストを表示 |
各コマンドの詳細オプションは live-assistant <command> --help で確認できる。
サーバーの機能
live-assistant serve を起動すると、以下のバックグラウンドタスクが自動的に開始される。
- マイク音声の録音・VAD・文字起こし — Silero VAD でリアルタイム音声区間検出し、faster-whisper で文字起こし
- わんコメ経由のコメント受信 — WebSocket でリアルタイム受信
- OBS スクリーンショットの自動保存 — 設定した間隔(デフォルト2秒)でプロジェクトルートの
screenshot.jpgに自動保存 - オーバーレイのファイル監視 —
overlay/slots/配下のファイル変更を0.5秒間隔で検知し、SSE経由でブラウザに自動反映
オーバーレイ(スロット方式)
配信画面へのHTML表示は スロット方式 で管理する。overlay/slots/<name>.json にJSONファイルを書き込むだけで、配信画面にリアルタイム反映される。
基本の使い方
スロットの特徴
- 独立管理 — 1つのスロットを変更しても他のスロットに影響しない
- 自動反映 — サーバーがファイル変更を検知し、SSEでブラウザに即座に反映
- ページリロード復元 —
/api/overlay/slotsAPIで全スロットが自動復元される - 削除はファイル削除 — スロットを消すにはJSONファイルを削除するだけ
スロットの使用例
| スロット名 | 用途 |
|---|---|
bgm.json | BGM再生用のaudioタグ |
effects.json | 画面エフェクト(キラキラ等) |
news.json | ニューステロップ |
clock.json | 時計ウィジェット |
配信アシスタントの運用
1. サーバー起動
2. Claude Code でスキル実行
サーバーが起動した状態で、Claude Code のチャットに /live-assistant と入力する。エージェントが以下を自動実行する:
live-assistant statusでサーバー起動を確認- メインループを開始 —
wait→ 応答生成 →speak→ ループ - 沈黙が15秒以上続くと自律行動(ニュース検索、画面実況、オーバーレイ更新など)
3. 配信終了
サーバーを起動したターミナルで Ctrl+C を押して停止する。
エージェントの自律行動
Claude Code エージェントは、コメントやマイク入力がない沈黙時に自律的に行動する。
- Web検索 — 最新ニュースや話題を調べて紹介
- 画面実況 —
screenshot.jpgを読み取って配信画面を実況 - オーバーレイ更新 — スロットにHTML/SVGグラフ等を書き込んで画面演出
- ComfyUI連携 —
http://127.0.0.1:8000/promptにAPIリクエストを送信して画像や音楽を生成 - 雑談 — 直近の話題を発展させたり、チャンネル登録を促したり
ComfyUI APIを使えば、配信中にリアルタイムでAI画像生成やAI音楽生成ができる。利用可能なモデル: sdxl_lightning_4step.safetensors(画像)、ace_step_1.5_turbo_aio.safetensors(音楽)
HTTP API
バックエンドは http://127.0.0.1:50700 でHTTP APIを公開している。CLIコマンド以外にも、直接APIを叩いて操作できる。
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/wait | POST | イベント待機 |
/api/speak | POST | 音声読み上げ |
/api/status | GET | サーバー状態取得 |
/api/activity | POST | アクティビティテキスト設定 |
/api/overlay/event | POST | カスタムSSEイベント送信 |
/api/overlay/slots | GET | 全スロットの状態取得 |
/overlay/events | GET | SSEイベントストリーム |
/overlay/ | GET | オーバーレイUI |
ライセンス
本リポジトリのコードは MIT License で提供する。実行時に読み込む外部サービス・素材には個別のライセンスが適用される。