whisper-diarization — Whisper 기반 화자 분리 ASR
GitHub: MahmoudAshraf97/whisper-diarization
Stars: 5,530 | License: BSD-2-Clause
Language: Python / Jupyter Notebook
개요
OpenAI Whisper + NVIDIA NeMo를 결합해 누가 언제 말했는지까지 구분하는 ASR 파이프라인. 단순 전사(Speech-to-Text)를 넘어 화자 분리(Speaker Diarization)까지 처리한다.
파이프라인
- 음성 추출 — Demucs로 배경음악/노이즈 제거 후 보컬만 분리
- Whisper ASR — Faster Whisper로 전사
- 타임스탬프 정렬 — ctc-forced-aligner로 Whisper의 부정확한 타임스탬프 보정
- VAD & 분할 — MarbleNet으로 묵음 제거, 발화 구간 분할
- 화자 임베딩 — TitaNet으로 각 세그먼트의 화자 식별
- 매칭 & 재정렬 — 보정된 타임스탬프와 화자 정보 매칭, 구두점 모델로 재정렬
설치 및 사용
# FFMPEG + Cython 필요
pip install cython
pip install -c constraints.txt -r requirements.txt
# 실행
python diarize.py -a audio_file.wav
# VRAM >=10GB면 병렬 모드 사용 가능
python diarize_parallel.py -a audio_file.wav핵심 기술 스택
| 구성요소 | 역할 | 출처 |
|---|---|---|
| Faster Whisper | ASR (음성→텍스트) | OpenAI / guillaumekln |
| MarbleNet | VAD (화자 활동 감지) | NVIDIA NeMo |
| TitaNet | 화자 임베딩 | NVIDIA NeMo |
| Demucs | 음원 분리 | Facebook Research |
| ctc-forced-aligner | 타임스탬프 보정 |
관련 페이지
- 2026-03-27-insanely-fast-whisper — Whisper 고속 추론
- 2026-04-08-ghost-pepper-local-mac-stt — 로컬 macOS STT
- 2026-04-26-vibevoice-microsoft-voice-ai — Microsoft VibeVoice (60분 ASR)
- moc-multimedia — 멀티미디어 MOC