[Update] Optimize initialization process: reduce startup time, implement caching for model weight checks, and enhance parallel processing for AI model checks.

This commit is contained in:
misyaguziya
2026-01-03 08:35:39 +09:00
parent b0cf8bf335
commit 312999a50b
3 changed files with 364 additions and 175 deletions

View File

@@ -4,6 +4,15 @@
`controller.py` は VRCT アプリケーションのビジネスロジック層であり、フロントエンドUIとバックエンドModelの間の制御フローを担当する。音声認識、翻訳、OSC通信、オーバーレイ表示など、VRCT の全機能の調整役として動作し、各種設定の取得・更新、デバイス管理、エラーハンドリングを提供する。
## 最近の更新 (2026-01-03)
- 起動高速化: 初期化時間を約12.6s→8.9sに短縮
- AI Models Check 並列化: CTranslate2/Whisperの重みチェックを2並列で実行
- 翻訳エンジン判定の非同期化: LMStudio/Ollamaをバックグラウンド判定、他APIは4並列
- 重みチェック結果のキャッシュ: `_ctranslate2_available_cache` / `_whisper_available_cache` を導入し後続処理で再利用
- 音声認識エンジン判定の高速化: Whisperはキャッシュ結果を利用し0.56s→0.00s
- ソフトウェア更新チェックの非同期化: GitHub APIチェックをバックグラウンド化
## アーキテクチャ上の位置づけ
```

View File

@@ -4,6 +4,26 @@
VRCTアプリケーションのビジネスロジックを制御するコントローラークラスです。UI層とモデル層の間に位置し、ユーザーの入力を適切な処理に変換し、結果を UI に返す役割を担います。全ての機能制御、設定管理、状態管理を一元的に行います。
## 最近の更新 (2026-01-03)
### 起動高速化・非同期化
- 初期化時間を約12.6s→8.9sに短縮(環境計測値)
- AI Models Check を2並列化CTranslate2/Whisperし、結果を `_ctranslate2_available_cache` / `_whisper_available_cache` に保存
- 翻訳エンジン判定を並列化ThreadPoolExecutor, max_workers=4し、LMStudio/Ollamaはバックグラウンド判定に変更
- ソフトウェア更新チェックをバックグラウンド化
- OSC受信初期化をバックグラウンド化し、OSCQueryサービス生成は接続成功まで継続リトライ
- 翻訳/音声認識エンジンのセット処理で重みチェックキャッシュを再利用し再計測を排除0.98s/0.52s→0.00s
### 影響
| 項目 | 内容 |
|------|------|
| 起動時間 | 約3.7s短縮12.6s→8.9s |
| 並列・非同期化 | 翻訳・音声認識エンジン判定を並列/バックグラウンド化 |
| 安定性 | OSCQuery起動のリトライ上限でブロッキングを抑制 |
| 再利用性 | 重みチェック結果をキャッシュし重複I/Oを削減 |
## 最近の更新 (2025-10-20)
### 新規ローカルLLM翻訳エンジン統合