PunithVT/ai-avatar-system
🎭 AI Avatar / digital human platform — upload a photo, clone a voice, talk to any face in real time with lip-sync video. Open-source, self-hosted. Claude · Whisper · Chatterbox · MuseTalk.
🎭 AvatarAI – 実時間AIアバター プラットフォーム
何であるか – 任意のポートレート写真と短い音声サンプルを、リアルタイムで口パク付きの会話可能なデジタル人間に変換できる、オープンソースでプロダクション対応のスタックです。顔をアップロードし、短い音声サンプルを提供すれば、ライブで口パク付きの会話が可能になります。システムはLLM生成テキストをストリーミングし、TTSエンジンを経由して音声を処理し、音声を口パクモデルに送信し、WebSocket経由でブラウザに動画チャンクを送信します。数秒で完了します。
コア機能(READMEに記載)
| 機能 | 動作方法 | 主な詳細 |
|---|---|---|
| ゼロショット音声クローン | Chatterbox Multilingual を使用。10〜60秒の音声で23言語の合成音声が作成可能。 | 外部API不要。オプションのフォールバックチェーン(Chatterbox → edge-tts → gTTS)あり。 |
| 写実的な口パク | MuseTalk V1.5 は恒常的なGPUワーカーとして動作し、A10G GPU上で約30 FPSで256×256の口のフレームを生成。 | CPUベースのFFmpegにフォールバック可能。より明確な出力のため、GFPGANによる顔修復をオプションで利用可。 |
| ストリーミングLLMパイプライン | Whisper(STT)→ Claude / GPT-4o / ローカルLLM(Ollama, vLLM, LM Studio)→ 文単位TTS → MuseTalk → WebSocket動画チャンク。 | LLMからのトークンをストリーミングするため、AWS GPU環境では2〜4秒後に最初の動画チャンクが表示されます。 |
| バージイン(中断) | フロントエンドが音声活動を検出。停止信号を送信すると、数ミリ秒以内に進行中のターンをキャンセル。 | |
| マルチLLMサポート | クラウドAPI(Claude, GPT-4o)またはOllama/vLLM/LM Studioによる無料ローカルモデル。 | |
| 認証と永続化 | JWT + http-only cookie、PostgreSQL(Alembicマイグレーション)でユーザー、アバター、会話履歴を管理。Redisでレート制限とCeleryタスクキュー。 | |
| 可観測性 | Prometheusメトリクス、Celery Flower UI、Sentry統合(オプション)、構造化ログ。 | |
| デプロイ性 | Docker-Composeでローカル開発(CPUのみ)およびGPU対応プロダクション。ワンコマンドEC2デプロイスクリプト。Terraformで管理されたECS + RDS + ElastiCache + CloudFront。 | |
| 拡張可能なアバターエンジン | AVATAR_ENGINE環境変数 – simple(口パクなし)、musetalk(デフォルト)、オプションのliveavatar(高精細だが48〜80GB VRAM必要)。 |
アーキテクチャの概要
ブラウザ(Next.js) FastAPIバックエンド(Python)
├─ アバタースタジオ(アップロード) ├─ WebSocketマネージャー(文単位ストリーミング)
├─ 音声スタジオ(クローン) ├─ Whisper STT(faster-whisper, CUDA)
└─ チャットUI(WebSocket動画) ├─ LLMアダプタ(Claude, GPT-4o, Ollama, vLLM)
├─ TTS(XTTS v2, Chatterbox, edge-tts)
└─ MuseTalkワーカー(GPU、恒常)
データストア:PostgreSQL(ユーザー、アバター、会話)、Redis(レート制限、Celeryブローカー)、ローカルファイルシステムまたはS3(アップロード、生成動画)、Prometheus/Sentry(メトリクス)。
クイックスタート(Dockerのみ、CPU開発)
git clone https://github.com/PunithVT/ai-avatar-system.git
cd ai-avatar-system
cp .env.example .env # AnthropicまたはOpenAIキーを追加
docker compose up -d # バックエンド、フロントエンド、redis、postgresをビルド
- フロントエンド: http://localhost:3000
- バックエンドAPI: http://localhost:8000(Swaggerは /docs)
- Celery Flower(オプション): http://localhost:5555
準備済みアバターを試すには:
backend/venv/bin/python scripts/seed_demo.py --with-voices
GPU / AWSデプロイ
- 推奨インスタンス:g5.xlarge(A10G、24GB VRAM) – 約30 FPSの口パク。
- ワンコマンドEC2スクリプト(
scripts/deploy-aws.sh)はDockerのインストール、イメージの取得、MuseTalkの重み(約9GB)のダウンロード、GPUパススルー付きでスタックを起動。 - 完全に管理されたセットアップの場合は、
infrastructure/内のTerraformファイルを実行(ECSサービス、RDS、ElastiCache、S3 + CloudFrontを生成)し、その後bash deploy.sh productionを実行。
ロードマップのハイライト(READMEより)
- RAG統合 – ベクトルストアの検索を追加し、LLMの応答を強化。
- 高精細な動画エンジン – MuseTalkより優れたオフラインレンダリング用。
- 改善された顔修復パイプライン – GFPGANのよりスムーズな統合。
- マルチアバターのオーケストレーション – 複数の異なるアバターとの同時会話に対応。
誰が使うべきか?
- 開発者 – 商用AIアシスタントやバーチャルホストサービスを構築し、すぐに使える自己ホスティングスタックが必要な人。
- 研究者 – 実時間マルチモーダルパイプライン(STT → LLM → TTS → 口パク)を実験したいが、多数の別々のリポジトリを組み合わせたくない人。
- コンテンツクリエイター – 自分の顔と声でカスタマイズ可能なローカル実行アバターを探している人。
結論 – AvatarAIは、音声収集からアニメーション動画出力までをカバーするフルスタックのオープンソースプラットフォームであり、クラウドAPIと完全ローカル実行の両方のパスを提供します。リアルタイムAIアバター分野で最も機能が充実したプロジェクトであり、プロダクションデプロイやさらなる研究に最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト