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 接收轉錄結果。

主要功能

  • 即時與批次模式 – 可串流麥克風輸入或轉錄整個音訊檔案。
  • 多種推論後端
    • faster-whisper(透過 CTranslate2 支援 CPU/GPU)
    • NVIDIA TensorRT(高吞吐量 GPU 推論,可選 Docker 設定)
    • Intel OpenVINO(CPU、iGPU、dGPU)
    • AMD ROCm 對 CTranslate2 的支援。
  • 進階輸出選項
    • 單字級時間戳與置信度分數。
    • 自訂詞彙表 / 熱詞增強。
    • 說話人分離(可選 pyannote.audio)。
    • 可選的翻譯功能,將轉錄內容翻譯為其他語言。
  • 批次推論 – 將多個客戶端串流合併為單一 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 – 參見 ROCm_whisper.md 以取得 AMD GPU 支援的說明。

Docker 快速啟動(GPU)

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

(依需求替換為 TensorRT、OpenVINO 或 ROCm 的鏡像標籤。)

為何重要 – WhisperLive 使強大的 Whisper 語音轉文字模型能應用於生產級低延遲情境(如即時字幕、會議轉錄、語音控制應用),同時提供硬體後端、語言翻譯、說話人分離與自訂詞彙表的彈性。

進一步閱讀 – 倉儲中連結的部落格文章詳細介紹了生產使用案例與 WhisperFusion 聊天機器人整合。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • 專案