Linux RTX 上で NVIDIA ACE 系の digital human 構成を試すためのリポジトリです。現在の主経路は Tokkio 5.0 を使った browser-first / Kubernetes / multi-service 構成で、既存の Audio2Face + MetaHuman + ASR/LLM/TTS 直結サンドボックスは Unreal 中心の研究用サブパスとして残しています。
大きなキャッシュ、生成音声、Docker bind mount、UE の重い生成物は repo の外に置きます。Tokkio の作業ディレクトリは infra/tokkio/workspace に置きますが、Git 管理外です。既定の外部永続領域は /home2/ko66/ace-sandbox です。
docs/architecture/tokkio-reference-stack.md: Tokkio 5.0 を主系にした構成メモinfra/tokkio: Tokkio one-click deployment 用の前提チェック、環境変数雛形、実行ラッパdocs/architecture/ace-sandbox.md: 全体アーキテクチャ、状態遷移、WebSocket プロトコル、運用前提infra/compose/docker-compose.yml:GPU1に固定した ASR/TTS NIM 起動雛形services/orchestrator: FastAPI + asyncio ベースの half-duplex 会話オーケストレータunreal/Plugins/ACEConversation: UE 5.6 プロジェクトへ組み込むための C++ コンポーネント雛形
初回に以下を作成します。
mkdir -p /home2/ko66/ace-sandbox/{nim-cache/{asr,tts},logs,audio,ue-ddc,docker}
mkdir -p infra/tokkio/workspace/{controller,logs,state}Tokkio を主系で使う場合は、まず infra/tokkio を使って controller 側の準備を行います。ここで行うのは my-config.env 生成、永続ディレクトリの作成、envbuild.sh 実行ラッパの提供です。Tokkio 本体は NVIDIA 配布の NVIDIA/ACE repo 側にあります。
cp infra/tokkio/.env.example infra/tokkio/.env
python3 infra/tokkio/prepare_tokkio_workspace.py --env-file infra/tokkio/.envその後、NVIDIA 公式 quickstart に沿って NVIDIA/ACE を infra/tokkio/workspace/NVIDIA-ACE に取得し、infra/tokkio/deploy_tokkio.sh で init-config と install を実行します。
infra/tokkio/deploy_tokkio.sh init-config --env-file infra/tokkio/.env
$EDITOR /home/kyano/workspace/ACE/infra/tokkio/workspace/controller/ace-app-config.yml
infra/tokkio/deploy_tokkio.sh install --env-file infra/tokkio/.env
python3 infra/tokkio/check_tokkio_endpoints.py --insecure --kubectl --ui-url https://<app-ip>:30111 --api-url https://<app-ip>:30888詳細は infra/tokkio/README.md と docs/architecture/tokkio-reference-stack.md にまとめています。
以下は Tokkio ではなく、Unreal 直結の研究用サンドボックスです。
infra/compose/.env.exampleをinfra/compose/.envにコピーして、NGC とイメージ名を埋めます。- 起動します。
docker compose --env-file infra/compose/.env -f infra/compose/docker-compose.yml up -dASR は host の 50051/9000、TTS は 50052/9001 を使う前提です。
cd services/orchestrator
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env
python3 tools/init_storage.py
uvicorn app.main:app --host 0.0.0.0 --port 8080ACE_NIM_API_KEY、ACE_NIM_LLM_MODEL、Speech NIM の接続先を .env で調整してください。既定では起動時に /v1/models で LLM モデル存在確認を行います。
起動後は GET /status で外部依存を含む状態確認ができます。モックモードの疎通確認には services/orchestrator/tools/demo_client.py を使えます。
unreal/README.md に組み込み手順をまとめています。重要なポイントは次のとおりです。
- UE 5.6 の C++ プロジェクトを作成する
- MetaHuman と ACE Unreal Plugin を入れる
Face_AnimBPにApply ACE Face Animationsを追加するmh_arkit_mapping_pose_A2Fを使うMouth Closeの既定カーブ干渉を無効化するConversationBridgeComponentで WebSocket と PCM の受け渡しを接続するACEAudioPlaybackComponentで受信 PCM をUSoundWaveProceduralへ流す
Tokkio の確認は infra/tokkio/check_tokkio_endpoints.py を使います。Unreal 中心のサンドボックスを確認する場合は、依存が入った環境で以下を順に確認します。
python3 -m unittest discover -s services/orchestrator/tests
python3 services/orchestrator/tools/demo_client.py --url ws://127.0.0.1:8080/ws/session --mock-audio
curl -s http://127.0.0.1:8080/status