Rollback web speaker diarization; HF token helper for whisper_stt

- Remove app/diarize.py and pyannote from requirements.txt; web uses faster-whisper only
- Revert main.py job/transcribe flow and index.html meta/hints
- Add app/pyannote_auth.py for Pipeline.from_pretrained(..., token=...) used by whisper_stt
- Expand whisper_stt / README / requirements-whisper-stt for gated repos (community-1, 403)

Made-with: Cursor
This commit is contained in:
dosangyoon
2026-03-23 13:31:38 +09:00
parent 2e503d1a56
commit 13d1f75b34
8 changed files with 60 additions and 220 deletions

View File

@@ -314,8 +314,7 @@
<div class="hint">
- 허용: mp3, m4a, wav, mp4, aac, ogg, flac, webm<br />
- 첫 실행 시 Whisper 모델 다운로드로 시간이 걸릴 수 있습니다.<br />
- 완료 후 pyannote로 화자 구분을 시도합니다 (<code>models/pyannote-diarization-3.1</code> 필요).
- 첫 실행 시 Whisper 모델 다운로드로 시간이 걸릴 수 있습니다.
</div>
<div class="progress">
@@ -614,10 +613,7 @@
const lang = body.detected_language ? `${body.detected_language}` : "-";
const prob = typeof body.language_probability === "number" ? body.language_probability.toFixed(3) : "-";
const dur = typeof body.duration_sec === "number" ? `${body.duration_sec.toFixed(1)}s` : "-";
let diarizeMeta = "";
if (body.speaker_diarization === true) diarizeMeta = " · 화자 구분: 적용";
else if (body.diarize_skip_reason) diarizeMeta = " · 화자 구분: 생략";
metaEl.textContent = `감지 언어: ${lang} (p=${prob}), 오디오 길이: ${dur}${diarizeMeta}`;
metaEl.textContent = `감지 언어: ${lang} (p=${prob}), 오디오 길이: ${dur}`;
if (startedAt) {
timingEl.textContent = `${((performance.now() - startedAt) / 1000).toFixed(2)}s`;