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 외에 특별한 하드웨어 없이도 실시간 또는 실시간에 가까운 시나리오(예: 라이브 캡션, 긴 녹음 배치 처리)에서 동일한 정확도를 달성할 수 있게 합니다. 속도 향상은 대규모 전사 파이프라인의 클라우드 컴퓨팅 비용도 낮춥니다.
시작하는 방법
- 설치 – 라이브러리는 PyPI에 있습니다:
(선택 사항: README에 표시된 URL을 사용하여 특정 커밋 또는 master 브랜치를 설치합니다.)pip install faster-whisper - 모델 크기 선택 – 예:
"large-v3","distil-large-v3"또는 Hugging Face Hub에서 지원하는 모든 Whisper 크기. - 장치와 정밀도를 지정하여 모델 생성:
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") - 오디오 파일 전사:
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는 생성기이므로 반복할 때 전사가 실행됩니다. - 선택적 추가 기능 – 단어 수준 타임스탬프, 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 라이브러리가 필요하며 사용자 지정 모델을 변환해야 할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트