OHF-Voice/wyoming-faster-whisper
Wyoming protocol server for faster whisper speech to text system
Wyoming Faster Whisper
概要
Wyoming Faster Whisperは、Wyomingプロトコルを実装したサーバーであり(Home Assistantが音声認識に使用する軽量なRPCプロトコル)、音声を faster-whisper 音声認識エンジンに転送します。簡単に言えば、Home Assistant(またはその他のWyomingクライアント)が、TCPソケット経由で高速なWhisperベースの文字起こしモデルと通信できるようにするものです。
特徴
- 速度と効率 – faster-whisperはCTranslate2を使用してWhisperモデルを実行するため、低スペックなハードウェア(Raspberry Piなど)でもリアルタイムの文字起こしが可能です。
- Home Assistant統合 – このサーバーはWyoming STTサービスとして自身をアドバタイズするため、Home Assistantはすぐに音声コマンド用として利用できます。
- 自動言語処理 – 選択したバックエンドが対応している言語を正確に報告するため、Home Assistantは適切なパイプラインを選択できます。
- 名前のバイアス設定 (Name-biasing) – Home Assistantインスタンスからエンティティ名を抽出し、プロンプトとしてモデルに供給することで、デバイス名の誤認識を劇的に減らすことができます。
- 柔軟なデプロイ – ローカル、Docker、またはGPU搭載マシンで実行可能で、モデルがキャッシュされればインターネットなしでも動作します。
導入方法
ローカルへのクイックインストール
git clone https://github.com/OHF-Voice/wyoming-faster-whisper.git
cd wyoming-faster-whisper
script/setup # 仮想環境の作成と依存関係のインストール
script/run \
--model tiny-int8 \
--language en \
--uri 'tcp://0.0.0.0:10300' \
--data-dir /data \
--download-dir /data
tiny-int8 はお好みのWhisperモデルに置き換えてください。Hugging-Faceのチェックポイントを指定することも可能です。
Docker (CPU)
docker run -it -p 10300:10300 \
-v /path/to/local/data:/data \
rhasspy/wyoming-whisper \
--model tiny-int8 --language en
モデルファイルはマウントされた /data ボリュームに保存されます。
Docker (GPU) – オプション
# GPUイメージのビルド (NVIDIA toolkitが必要)
git clone https://github.com/OHF-Voice/wyoming-faster-whisper.git
cd wyoming-faster-whisper
docker build -f Dockerfile.gpu -t wyoming-whisper:gpu .
# 実行
docker run -it --gpus all -p 10300:10300 \
-v /path/to/local/data:/data \
wyoming-whisper:gpu --model Systran/faster-whisper-large-v3 --language en
Home Assistant アドオン
このプロジェクトは、Home Assistantの公式 core_whisper アドオンとしてもパッケージ化されています。UIからアドオンを有効にするだけで、自動的に同じサーバーが起動します。
主な機能と設定
| 機能 | 有効化方法 | 内容 |
|---|---|---|
| VAD 終端処理 | --vad-endpointing <seconds> |
一定の無音状態(Silero VADで検出)を検知してリスニングを停止し、即座に文字起こし結果を返します。Home Assistant側の終端処理は不要になります。 |
| 名前のバイアス設定 | --hass-token <token> (wyoming-faster-whisper[hass] をインストール) |
Home Assistantのエンティティ/エリア名を抽出し、プロンプトとして供給することでデバイス名の認識精度を向上させます。 |
| バックエンド選択 | --stt-library <name> または --stt-library auto |
faster-whisper、transformers、qwen3-asr、sherpa、funasr、onnx-asrなどから選択可能で、それぞれ対応言語が異なります。 |
| ローカルのみモード | --local-files-only または WYO_WHISPER_LOCAL_FILES_ONLY=true |
サーバーが不足しているモデルをダウンロードしようとするのを防ぎます。オフライン環境やエアギャップ環境で便利です。 |
| デバッグ / ヘルスチェック | --debug または python -m wyoming_faster_whisper.health_check を実行 |
追加のログを出力し、Dockerが適切なヘルスチェックステータスを報告できるようにします。 |
推奨ユーザー
- Home Assistantユーザー:高速でローカル実行され、デバイス名を理解できるSTTエンジンを求めている方。
- Raspberry Pi / エッジデバイス愛好家:音声をクラウドに送信せずにリアルタイムの文字起こしを実現したい方。
- 開発者:他の音声アシスタントプロジェクトに組み込むためのWyoming互換STTサービスが必要な方。
すべての詳細はリポジトリのREADMEから直接引用しており、追加機能の推測は含まれていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト