collabora/WhisperLive

A nearly-live implementation of OpenAI's Whisper.

WhisperLive – OpenAI의 Whisper를 활용한 실시간 가까운 음성 인식

무엇인가요 – WhisperLive는 말하는 음성을 거의 실시간으로 텍스트로 변환하는 오픈소스 애플리케이션입니다. faster-whisper, TensorRT, 또는 OpenVINO 백엔드를 통해 Whisper 모델을 호스팅하는 서버와 마이크, 파일, RTSP, HLS 또는 원시 PCM 오디오를 스트리밍하고 WebSocket 또는 REST API를 통해 인식 결과를 수신하는 클라이언트를 하나 이상 갖습니다.

주요 기능

  • 라이브 및 배치 모드 – 마이크 입력을 스트리밍하거나 전체 오디오 파일을 변환할 수 있습니다.
  • 다중 추론 백엔드
    • faster-whisper (CPU/GPU, CTranslate2를 통해)
    • 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=True, hotwords="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 엔진 구축 (see 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
  • 프로젝트