DEV Community

정상록
정상록

Posted on

insanely-fast-whisper: 2.5시간 오디오를 98초에 트랜스크립션하는 CLI 도구

TL;DR

insanely-fast-whisper는 OpenAI Whisper를 극한 속도로 실행하는 CLI 도구예요. 150분 오디오를 98초에 처리하고, 설치는 pipx install 한 줄이면 끝나요.

이 도구를 찾게 된 계기

팟캐스트 에피소드를 텍스트로 바꾸는 작업을 자동화하고 있었는데요. 원래 Whisper로 2.5시간 파일을 돌리면 20분 넘게 걸렸어요. 파이프라인에서 이게 병목이었거든요.

여러 대안을 비교해봤는데, insanely-fast-whisper가 압도적이었어요.

속도 비교 (같은 Whisper Large v3 모델 기준)

도구                       | 150분 오디오  | 원본 대비
---------------------------|-------------|----------
insanely-fast-whisper      | ~98초        | 12.5배
faster-whisper             | ~350초       | 3-5배
WhisperX                   | ~400초       | 3-4배
OpenAI Whisper (원본)       | ~1200초      | 기준
Enter fullscreen mode Exit fullscreen mode

정확도는 같은 모델 가중치를 사용하니까 동일해요.

빨라지는 원리

세 가지 최적화가 합쳐진 거예요.

1. Flash Attention 2

기존 Attention은 시퀀스 길이의 제곱에 비례하는 메모리를 먹어요. Flash Attention 2는 이걸 IO-aware 알고리즘으로 재설계해서 메모리도 줄이고 속도도 올려요.

# 한 줄로 활성화
insanely-fast-whisper --file-name audio.mp3 --flash True
Enter fullscreen mode Exit fullscreen mode

2. Batched Inference

긴 오디오를 청크 단위로 쪼개서 GPU에서 동시에 처리해요. 기본 batch-size가 24인데, VRAM에 따라 조절하면 돼요.

3. BetterTransformer

HuggingFace Optimum의 커널 퓨전으로 불필요한 GPU 호출을 줄여요. 이 세 가지가 합쳐지니까 RTX 4090에서 실시간 대비 100배 속도가 나오는 거예요.

설치 및 실행

# 설치 (한 줄)
pipx install insanely-fast-whisper==0.0.15 --force

# 기본 트랜스크립션
insanely-fast-whisper --file-name audio.mp3

# Flash Attention 2 활성화 (NVIDIA Ampere+)
insanely-fast-whisper --file-name audio.mp3 --flash True

# Mac (Apple Silicon)
insanely-fast-whisper --file-name audio.mp3 --device-id mps --batch-size 4

# Turbo 모델 (속도 2배+, 정확도 차이 ~1%)
insanely-fast-whisper --file-name audio.mp3 --model-name openai/whisper-large-v3-turbo

# 한국어 지정 (정확도 + 속도 향상)
insanely-fast-whisper --file-name audio.mp3 --language ko

# 화자 분리
insanely-fast-whisper --file-name meeting.mp3 \
  --hf-token YOUR_TOKEN \
  --diarization_model pyannote/speaker-diarization-3.1
Enter fullscreen mode Exit fullscreen mode

배치 처리 스크립트

여러 파일을 한꺼번에 처리하고 싶으면 이렇게 하면 돼요:

#!/bin/bash
for file in /path/to/audio/*.mp3; do
  filename=$(basename "$file" .mp3)
  insanely-fast-whisper \
    --file-name "$file" \
    --model-name openai/whisper-large-v3-turbo \
    --flash True \
    --transcript-path "/path/to/output/${filename}.json"
done
Enter fullscreen mode Exit fullscreen mode

단점도 솔직히

  • GPU 필수: CPU로는 안 돌아가요. GPU 없으면 faster-whisper 쓰세요
  • AMD GPU 미지원: CUDA 기반이라 NVIDIA만 가능
  • Flash Attention 2 설치: CUDA 툴킷 호환성 맞추는 게 좀 까다로울 수 있어요
  • 실시간 스트리밍 제한: 파일 기반 배치에 최적화되어 있어요

제가 쓰는 파이프라인

오디오 녹음 → insanely-fast-whisper (98초) → JSON 트랜스크립트 → LLM 요약 → 콘텐츠 자동 발행
Enter fullscreen mode Exit fullscreen mode

기존에 트랜스크립션이 20분 걸려서 병목이었는데, 98초로 줄이니까 전체 파이프라인이 5분 이내로 끝나게 됐어요.

마무리

GPU가 있고 대량의 오디오를 텍스트로 바꿔야 한다면, 현재 가장 빠른 선택지예요.

pipx install insanely-fast-whisper==0.0.15 --force
insanely-fast-whisper --file-name your-audio.mp3 --flash True
Enter fullscreen mode Exit fullscreen mode

이 두 줄이면 시작할 수 있어요.

혹시 비슷한 파이프라인 운영하시는 분 있나요? 어떤 트랜스크립션 도구 쓰시는지 궁금해요.


Top comments (0)