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
음성 쪼개기 최적화
참고