# セッションオーディオ処理と音声切り替え Aura はセッションベースのオーディオ処理ループを実装します。状態管理のための音声コマンドは、確立された録音セッション内でのみアクティブになります。 ## 構成 セッション内部の動作は次によって制御されます。 `ENABLE_WAKE_WORD = True/False` (`config/settings.py` 内) ## 演算ロジック 永続的なバックグラウンドリスナーとは異なり、Aura の STT エンジン (Vosk) は、録音セッションが外部 (ホットキーなどを介して) トリガーされた場合にのみオーディオを処理します。 > **Aura は PC 用の望遠鏡 🔭: 遠くから制御!** ### セッション中の切り替え (「テレスコープ」) `ENABLE_WAKE_WORD` が **True** に設定されている場合: 1. **トリガー:** ユーザーが手動でセッションを開始します。 2. **切り替え:** セッション中に「Teleskop」と言うと、**ACTIVE** と **SUSPENDED** の状態が切り替わります。 3. **動作:** これにより、ユーザーはオーディオ ストリームを終了することなく、音声コマンドを使用してテキスト処理を「一時停止」および「再開」できます。 ### プライバシーと効率性 `ENABLE_WAKE_WORD` が **False** (デフォルト) に設定されている場合: - **STT 抑制:** 一時停止状態の間、`AcceptWaveform` および `PartialResult` への呼び出しは完全にスキップされます。 - **プライバシー:** システムが明示的にアクティブ状態にない限り、音声データは分析されません。 - **リソース管理:** 一時停止中にニューラル ネットワーク分析をバイパスすることにより、CPU 使用率が最小限に抑えられます。 ## レイテンシとパフォーマンス - **即時再開:** 「RawInputStream」はセッション全体を通じて開いたままであるため、SUSPENDED から ACTIVE に戻ると **0ms の追加遅延**が発生します。 - **ループ タイミング:** 処理ループは約 100 ミリ秒の間隔 (`q.get(timeout=0.1)`) で動作し、ほぼ瞬時の応答時間を確保します。