SYSTRAN/faster-whisper

Faster Whisper transcription with CTranslate2

무엇인가

faster-whisper는 OpenAI의 Whisper 음성-텍스트 모델을 실행하는 Python 라이브러리이지만, 고성능 추론 엔진 CTranslate2를 사용합니다. CTranslate2 위에서 모델을 재구현함으로써 원래 openai/whisper 코드보다 최대 4배 빠르게 전사할 수 있으며, 메모리 사용량은 거의 동일합니다. 이 패키지는 CPU, GPU에서 작동하며, 추가 속도를 얻기 위해 8비트 양자화도 지원합니다.

왜 중요한가

Whisper는 오디오를 텍스트로 변환하는 인기 있고 품질이 높은 모델이지만, 참조 구현은 특히 더 큰 모델 크기에서 상대적으로 느리고 메모리를 많이 사용합니다. Faster-whisper는 최신 GPU나 우수한 멀티코어 CPU 외에 특별한 하드웨어 없이도 실시간 또는 실시간에 가까운 시나리오(예: 라이브 캡션, 긴 녹음 배치 처리)에서 동일한 정확도를 달성할 수 있게 합니다. 속도 향상은 대규모 전사 파이프라인의 클라우드 컴퓨팅 비용도 낮춥니다.

시작하는 방법

  1. 설치 – 라이브러리는 PyPI에 있습니다:
    pip install faster-whisper
    
    (선택 사항: README에 표시된 URL을 사용하여 특정 커밋 또는 master 브랜치를 설치합니다.)
  2. 모델 크기 선택 – 예: "large-v3", "distil-large-v3" 또는 Hugging Face Hub에서 지원하는 모든 Whisper 크기.
  3. 장치와 정밀도를 지정하여 모델 생성:
    from faster_whisper import WhisperModel
    model = WhisperModel("large-v3", device="cuda", compute_type="float16")
    
  4. 오디오 파일 전사:
    segments, info = model.transcribe("audio.mp3", beam_size=5)
    print(info.language, info.language_probability)
    for s in segments:
        print(f"[{s.start:.2f}s -> {s.end:.2f}s] {s.text}")
    
    segments는 생성기이므로 반복할 때 전사가 실행됩니다.
  5. 선택적 추가 기능 – 단어 수준 타임스탬프, VAD 기반 무음 제거, 또는 더 높은 처리량을 위한 배치 전사 활성화(정확한 인자는 README 참조).

언제 사용할까

  • 라이브 또는 실시간에 가까운 캡션 – GPU 배치 모드는 13분 비디오를 약 16초에 처리할 수 있습니다.
  • 대규모 오디오 컬렉션 배치 처리 – CPU int8 모드는 속도와 메모리 간의 좋은 균형을 제공합니다.
  • Whisper 호환 출력이 필요하지만 원래 런타임을 감당할 수 없는 프로젝트 – 예: 웹 서비스, 데스크톱 앱, 연구 파이프라인.
  • 증류된 Whisper 모델을 실험하고 싶을 때 – 라이브러리는 distil-large-v3 체크포인트를 직접 지원합니다.

제한 사항 및 주의점

  • GPU 요구 사항 – CUDA 12, cuBLAS 및 cuDNN 9가 필요합니다(또는 이전 CUDA 버전용으로 ctranslate2를 다운그레이드). Windows에서 이러한 라이브러리를 설치하는 것은 까다로울 수 있습니다.
  • 메모리 사용량 – 가장 빠른 배치 모드는 VRAM을 증가시킵니다(3070 Ti에서 배치 크기 8의 경우 최대 약 6GB). GPU 리소스를 그에 따라 계획하세요.
  • 기본 빔 크기 – 라이브러리의 기본 빔 크기는 5로, openai/whisper의 기본값보다 큽니다. 빔이 클수록 정확도는 향상되지만 지연 시간이 증가합니다.
  • 모델 변환 – 사용자 지정 또는 미세 조정된 Whisper 체크포인트를 실행하려면 제공된 ct2-transformers-converter 스크립트를 사용하여 CTranslate2 형식으로 변환해야 합니다.
  • Silero VAD – VAD 필터링은 배치 전사에서 기본적으로 활성화됩니다. 일부 응용 프로그램에서 음성으로 간주하는 매우 짧은 일시 중지를 놓칠 수 있습니다.

TL;DR: Faster-whisper는 CTranslate2를 활용하는 Whisper용 드롭인, 더 빠르고 메모리 사용량이 적은 Python 래퍼입니다. pip로 설치하고, 모델을 선택하고, model.transcribe를 호출하세요. 실시간 또는 대규모 전사에 적합하지만 GPU 사용에는 호환 CUDA 라이브러리가 필요하며 사용자 지정 모델을 변환해야 할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트