STT VAD 빈 오디오 에러 방어: VAD가 전체 제거 시 VAD 없이 재시도
- faster-whisper VAD가 짧은 오디오를 전부 무음 처리 → max() empty sequence 에러 - catch 후 vad_filter=False로 재시도하여 최소한 빈 텍스트 반환
This commit is contained in:
parent
eed225c8d4
commit
9d5594e848
1 changed files with 10 additions and 1 deletions
|
|
@ -222,7 +222,16 @@ async def transcribe(
|
||||||
transcribe_kwargs["initial_prompt"] = initial_prompt
|
transcribe_kwargs["initial_prompt"] = initial_prompt
|
||||||
|
|
||||||
# faster-whisper 전사 실행
|
# faster-whisper 전사 실행
|
||||||
|
# VAD가 전체 오디오를 제거하면 max() 에러 발생 → VAD 없이 재시도
|
||||||
|
try:
|
||||||
segments_iter, info = _model.transcribe(audio_array, **transcribe_kwargs)
|
segments_iter, info = _model.transcribe(audio_array, **transcribe_kwargs)
|
||||||
|
except ValueError as ve:
|
||||||
|
if "empty sequence" in str(ve) and transcribe_kwargs.get("vad_filter"):
|
||||||
|
logger.warning("VAD가 전체 오디오를 제거함 → VAD 없이 재시도")
|
||||||
|
transcribe_kwargs["vad_filter"] = False
|
||||||
|
segments_iter, info = _model.transcribe(audio_array, **transcribe_kwargs)
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
|
||||||
# 세그먼트 수집
|
# 세그먼트 수집
|
||||||
segments_list: list[dict] = []
|
segments_list: list[dict] = []
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue