julius_handler

Julius 音声認識エンジンを安全に扱うためのラッパーモジュール。

class mike.julius_handler.JuliusHandler(config)

Bases: VoiceRecognitionInterface

Julius を安全に扱うためのハンドラークラス。

【役割】 - 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 – 音声処理に致命的エラーが発生した場合