collabora/WhisperLive

A nearly-live implementation of OpenAI's Whisper.

WhisperLive – OpenAIのWhisperを用いたニアリアルタイム音声認識

何であるか – WhisperLiveは、音声をほぼリアルタイムでテキストに変換するオープンソースアプリケーションです。Whisperモデル(faster-whisper、TensorRT、OpenVINOバックエンド経由)をホストするサーバーと、マイク、ファイル、RTSP、HLS、または生のPCM音声をストリーミングし、WebSocketまたはREST APIで認識結果を受け取るクライアントを1つ以上持つシステムです。

主な機能

  • ライブモードとバッチモード – マイク入力のストリーミングまたは音声ファイル全体の変換が可能。
  • 複数の推論バックエンド
    • faster-whisper(CPU/GPU、CTranslate2経由)
    • NVIDIA TensorRT(高スループットGPU推論、オプションのDocker設定)
    • Intel OpenVINO(CPU、iGPU、dGPU)
    • AMD ROCmサポート(CTranslate2用)。
  • 高度な出力オプション
    • 単語レベルのタイムスタンプと信頼度スコア。
    • カスタム語彙 / ホットワード強調。
    • スピーカーの話者分離(オプション pyannote.audio)。
    • 話者トランスクリプトを別の言語に翻訳するオプション。
  • バッチ推論 – 複数のクライアントストリームを1つのGPU呼び出しに統合し、より高いスループットを実現。
  • クライアントAPI – 簡単なファイル/マイク利用向けの高レベル TranscriptionClient と、手動でチャンク音声を供給し、部分的・最終結果のコールバックを受け取る StreamingTranscriptionClient
  • クロスプラットフォーム – Linux、macOS、Windows(GPUバックエンドはDocker経由)。Chrome/Firefox拡張機能とネイティブiOSクライアントも提供。
  • Dockerイメージ – GPU(TensorRT、OpenVINO、ROCm)およびCPUデプロイ用の即時実行コンテナ。

一般的なワークフロー

  1. システム依存関係のインストールportaudio(マイク用)とPython 3.12。
  2. 仮想環境の作成 および pip install whisper-live
  3. サーバーの起動(例:faster-whisperバックエンド):
    python3 run_server.py --port 9090 --backend faster_whisper \
        --max_clients 4 --max_connection_time 600
    
  4. クライアントの実行 – ファイル、マイク、RTSPまたはHLSストリームの変換:
    python3 run_client.py --files mytalk.wav
    # またはライブマイク
    python3 run_client.py
    
    またはPython APIを使用:
    from whisper_live.client import TranscriptionClient
    client = TranscriptionClient("localhost", 9090, model="small", translate=True, target_language="hi")
    client("tests/jfk.wav")
    
  5. オプション機能 – クライアントを構築する際に word_timestamps=Truehotwords="WhisperLive,TensorRT"、または enable_diarization=True を追加可能。

インストールスニペット

bash scripts/setup.sh               # portaudio開発ライブラリのインストール
python3.12 -m venv whisper_env && source whisper_env/bin/activate
pip install whisper-live

ハードウェアアクセラレーションでの実行

  • TensorRT – TensorRTエンジンの構築(TensorRT_whisper.mdを参照)し、--backend tensorrt および --trt /path/to/engine でサーバーを起動。
  • OpenVINO – OpenVINOランタイムをインストール後、python3 run_server.py -p 9090 -b openvino(Dockerイメージ ghcr.io/collabora/whisperlive-openvino はドライバーを自動処理)。
  • ROCm – AMD GPUサポートのための手順は ROCm_whisper.md を参照。

Dockerクイックスタート(GPU)

docker run -it --gpus all -p 9090:9090 ghcr.io/collabora/whisperlive-gpu:latest

(必要に応じてTensorRT、OpenVINO、ROCm用のイメージタグに置き換える。)

なぜ重要か – WhisperLiveは、強力なWhisper音声認識モデルを、ライブ字幕、会議記録、音声制御アプリなど、生産環境向けの低遅延シナリオで利用可能にします。また、ハードウェアバックエンド、言語翻訳、話者分離、カスタム語彙の柔軟性も提供します。

さらに読む – リポジトリ内のリンクされたブログ記事では、生産環境での利用事例とWhisperFusionチャットボット統合について詳しく説明されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト