From 9d5594e848fc99f023f5fdf418d4934da4c9438b Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Sun, 5 Apr 2026 10:16:10 +0900 Subject: [PATCH] =?UTF-8?q?STT=20VAD=20=EB=B9=88=20=EC=98=A4=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EC=97=90=EB=9F=AC=20=EB=B0=A9=EC=96=B4:=20VAD?= =?UTF-8?q?=EA=B0=80=20=EC=A0=84=EC=B2=B4=20=EC=A0=9C=EA=B1=B0=20=EC=8B=9C?= =?UTF-8?q?=20VAD=20=EC=97=86=EC=9D=B4=20=EC=9E=AC=EC=8B=9C=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - faster-whisper VAD가 짧은 오디오를 전부 무음 처리 → max() empty sequence 에러 - catch 후 vad_filter=False로 재시도하여 최소한 빈 텍스트 반환 --- sidecar/main.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sidecar/main.py b/sidecar/main.py index 70051ca..78d9e51 100644 --- a/sidecar/main.py +++ b/sidecar/main.py @@ -222,7 +222,16 @@ async def transcribe( transcribe_kwargs["initial_prompt"] = initial_prompt # faster-whisper 전사 실행 - segments_iter, info = _model.transcribe(audio_array, **transcribe_kwargs) + # VAD가 전체 오디오를 제거하면 max() 에러 발생 → VAD 없이 재시도 + try: + 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] = []