julius_handler¶
Julius 音声認識エンジンを安全に扱うためのラッパーモジュール。
- class mike.julius_handler.JuliusHandler(config)¶
Bases:
VoiceRecognitionInterfaceJulius を安全に扱うためのハンドラークラス。
【役割】 - Julius 音声認識エンジンの初期化と管理 - 音声入力→認識→テキスト抽出の自動化 - エラーハンドリングと再試行機構
【特徴】 - 単語認識用途向け - 随時起動型 Julius クライアント を使用 - マイク占有時間を最小化し、他の音声処理と共存できる構造 - AudioStreamManager でストリーム管理
【認識の流れ】 1. RecordWithVAD() で音声検出と録音 2. WAVファイルを JuliusStdinClient に送信 3. 認識精度スコア(cmscore1)で品質判定 4. 精度不足または認識失敗時は再試行 5. 最後に記号除去など整形を行い返却
【再試行ルール】 - 最大 3 回まで再試行 - 認識結果が空:再試行 - 信頼度スコア < 0.90:再試行 - Julius エラー発生:再試行
- close()¶
終了処理。
Julius ハンドラーをクローズして リソースを解放します。
- connect()¶
接続確認処理(将来的な拡張用)。
現在はログ出力のみです。
- Returns:
接続状態(0: 成功)
- Return type:
int
- get_command(device_index=0) str | None¶
音声入力→録音→Julius認識→テキスト返却のメイン処理。
【処理フロー】 1. RecordWithVAD() で音声検出・録音(無音スキップ) 2. Julius へ WAV ファイルを送信して認識(随時起動型) 3. 認識精度スコア(cmscore1)をチェック 4. 精度不足または認識失敗時は再試行(最大3回) 5. 記号など不要文字を除去して返却
【再試行条件】 - 認識結果が空文字列 - Julius エラー発生 - 信頼度スコア < 0.90
- Parameters:
device_index (int) – オーディオデバイスインデックス(デフォルト: 0)
- Returns:
認識した音声テキスト(コマンド)、例:「ライト オン」
- Return type:
str
- Raises:
Exception – 音声処理に致命的エラーが発生した場合