- Whisper 모델에서 완전히 무음인 wav 파일을 입력하면, 항상 아랍어로 "ترجمة نانسي قنقر"(Translation by Nancy Qunqar)라는 동일한 텍스트를 환각(hallucination)하여 출력하는 현상이 있음
- ffmpeg로 무음 오디오를 생성하고 Whisper에 아랍어 및 large-v3 모델을 지정해 돌리면 항상 동일한 결과를 출력함
- 이 문제는 Whisper 모델이 무음 오디오를 특정 텍스트로 해석하도록 학습된 것으로 보임
- 과거 모델(small 등)에서는 suppress_tokens, initial prompt, logprob_threshold 등 파라미터 조정으로 어느 정도 억제 가능했지만, v3(특히 large-v3)에서는 효과가 적음
- "VAD(Voice Activity Detection)를 사용하는 방법"이나 오디오의 무음 구간을 미리 걸러내는 방식이 우회법으로 제안됨
이슈 현상
- Whisper large-v3에서 무음 오디오에 대해 항상 "ترجمة نانسي قنقر" 라는 아랍어 문장을 환각하여 출력하는 문제가 보고됨
- ffmpeg로 아래와 같이 30초 무음 wav 파일을 생성
ffmpeg -f lavfi -i anullsrc=r=44100\:cl=stereo -t 30 silence.wav
- Whisper 명령어 실행 예시
whisper ./silence.wav --language Arabic --model large-v3
- 결과:
\[00:00.000 --> 00:29.980] ترجمة نانسي قنقر
원인 및 분석
- large-v3 등 최신 Whisper 모델은 오디오 설명 등 예전 방식 대신, 무음에 대해 임의의 환각 출력을 생성하는 경향이 있음
- 이전 모델(small 등)도 무음에서 잡다한(랜덤) 출력을 생성하지만, suppress_tokens, initial prompt, logprob_threshold 등 다양한 옵션으로 일부 통제 가능함
- v3에서는 위 방법이 잘 통하지 않고, 고정된 환각 결과가 나타남
우회 및 해결책 제안
-
VAD(Voice Activity Detection) 적용: 오디오에 실제 음성이 있는 구간만 Whisper로 돌리고, 무음은 아예 입력하지 않는 방법
- suppress_tokens, initial prompt, logprob_threshold 등 파라미터 조정: 일부 모델에선 효과 있으나 large-v3에선 미미함
- 완전히 무음이거나 신호가 약한 오디오는 Whisper가 아닌 다른 방법으로 후처리 필요
기타 논의
- 아랍어에서 large-v3보다 더 나은 모델이 있는지에 대한 추가 논의가 있었으나, 뚜렷한 대안 모델은 제시되지 않음