Zettelkasten

Whisper 음성 처리와 최적화 방식

·수정 1

요약

  • Whisper는 30초 단위 sliding window로 추론하며, faster-whisper(CTranslate2)로 가속 가능
  • 긴 음성은 쪼개서 처리하되, init_prompt를 활용하면 품질 개선 가능

본문

30초 이상 음성 처리 방식

  • Whisper는 오디오를 30초 길이의 Mel Spectrogram으로 변환해 모델에 입력함
  • 30초 보다 길면 sliding window를 사용해서 30초씩 잘라서 여러번 추론하는데, overlap을 N초 기준으로
    • 0~ 30s, 25 ~ 55s, 50 ~ 80s 이런식으로 겹치면서 추론함
  • chunk 단위에서 attention이 작동해서, 30초 이상 장기 문맥을 모델이 직접 기억하지 못함

faster-whisper vs whisper

  • CTranslate2를 활용해서 OpenAI Whisper 모델을 실행시킨 버전
  • CTranslate2는 C++를 이용해서, 트랜스포머 추론을 가속화한 모델
  • 구현 내용:
    • weights quantization
    • layers fusion
    • batch reordering

음성 쪼개기 최적화

참고