セッションオーディオ処理と音声切り替え

Aura はセッションベースのオーディオ処理ループを実装します。状態管理のための音声コマンドは、確立された録音セッション内でのみアクティブになります。

## 構成 セッション内部の動作は次によって制御されます。 ENABLE_WAKE_WORD = True/False (config/settings.py 内)

演算ロジック

永続的なバックグラウンドリスナーとは異なり、Aura の STT エンジン (Vosk) は、録音セッションが外部 (ホットキーなどを介して) トリガーされた場合にのみオーディオを処理します。

Aura は PC 用の望遠鏡 🔭: 遠くから制御!

セッション中の切り替え (「テレスコープ」)

ENABLE_WAKE_WORDTrue に設定されている場合:

  1. トリガー: ユーザーが手動でセッションを開始します。

  2. 切り替え: セッション中に「Teleskop」と言うと、ACTIVESUSPENDED の状態が切り替わります。

  3. 動作: これにより、ユーザーはオーディオ ストリームを終了することなく、音声コマンドを使用してテキスト処理を「一時停止」および「再開」できます。

プライバシーと効率性

ENABLE_WAKE_WORDFalse (デフォルト) に設定されている場合:

  • STT 抑制: 一時停止状態の間、AcceptWaveform および PartialResult への呼び出しは完全にスキップされます。

  • プライバシー: システムが明示的にアクティブ状態にない限り、音声データは分析されません。

  • リソース管理: 一時停止中にニューラル ネットワーク分析をバイパスすることにより、CPU 使用率が最小限に抑えられます。

レイテンシとパフォーマンス

  • 即時再開: 「RawInputStream」はセッション全体を通じて開いたままであるため、SUSPENDED から ACTIVE に戻ると 0ms の追加遅延が発生します。

  • ループ タイミング: 処理ループは約 100 ミリ秒の間隔 (q.get(timeout=0.1)) で動作し、ほぼ瞬時の応答時間を確保します。