OpenAI Whisper에서 항상 완전한 무음이 아랍어로 "ترجمة نانسي قنقر"로 환각됨
(github.com/openai)- 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보다 더 나은 모델이 있는지에 대한 추가 논의가 있었으나, 뚜렷한 대안 모델은 제시되지 않음
Hacker News 의견
-
whisper-large-v3로 중국어 음성을 전사할 때, 침묵 구간이 “좋아요, 공유, 즐겨찾기 부탁드림” 같은 엉뚱한 문장으로 출력됨을 여러 번 경험함, 모델 학습 시 유튜브 동영상에서 무작위로 데이터를 수집해 유용한 자료로 엄선하지 않았다는 의심이 듦
- 중국어 전사에서는 종종 "연구/학습 목적의 자막입니다. 48시간 후 삭제해주세요." 같은 문구도 추가되는 걸 봄, 이는 자막 봉사자들이 (불법) 영화나 쇼의 자막에 추가하는 면책 문구임
- 또 다른 모델을 써도 침묵 구간이 ‘시청해 주셔서 감사합니다!’나 ‘[MUSIC]’ 등으로 변환되는 현상을 지속적으로 경험함, 이런 오류가 QA 과정에서 걸러지지 않고 다양한 전사 모델에서 반복되는 점이 아쉬움, 오디오 입력에 침묵 구간이 포함되는 일은 정말 흔하게 발생할 상황임
- whisper를 테스트해봤을 때, 유튜브나 핸드폰으로 찍은 동영상에선 성능이 좋지 않다는 인상을 받음, 아마 학습 자료 대부분이 자막이거나 대본일 거라 추측함, 내가 시도한 동영상들은 중국어(만다린)였고, whisper-large-v3를 써서 전형적인 오해와 의미 없는 결과가 나오긴 했지만, 그래도 다른 소프트웨어와 비교하면 성능이 꽤 우수했음, 다만 화자 이름을 임의로 만들어내거나 대사의 앞부분에 붙이기도 하고, 간헐적으로 간체와 번체를 바꿔 사용함, 침묵 구간에서는 마지막 문장을 반복적으로 출력하거나 가끔 영어로 연출 지침처럼 보이는 텍스트를 삽입하는 일도 있었음, 자막이나 엔딩 크레딧 같은 건 못 봤고, 한 영상에선 화자가 감기에 걸려 코를 훌쩍였더니 whisper가 울고 있다고(“* crying ”) 전사하고, 기침은 “ door closing *”으로 번역함, 그다음 줄은 꽤 불친절한 내용으로 전사되기도 했음, 코훌쩍임 부분을 잘라내니까 이상한 전사가 사라졌지만, 이번엔 다시 번체로 전환됨
- “청바지를 계산기에 넣으면, 제대로 된 답이 나올까요?”와 비슷한 기분임
- 유튜브가 캡션 자동 작성 기능을 만들기 시작했을 때, 잡음이나 음악(특히 산업 현장 소음 등)을 항상 “[foreign]”으로 표시했었음, 이해하지 못하는 소리는 오랫동안 “foreign”으로 취급된 경험이 있음
-
LLM도 마찬가지로, 명확하지 않은 데이터에 치우친 "오버피팅" 현상의 고전적인 사례임, 아웃 오브 오피스 자동응답을 그대로 번역결과로 내놓는 것과 비슷함, 관련 기사 참고 https://www.theguardian.com/theguardian/2008/nov/01/5
- 이런 현상이 정말 오버피팅인지, 아니면 데이터 품질 또는 분류 문제인지 궁금함
-
검색 시간을 줄이기 위해 안내함: 아랍어 "رجمة نانسي قنقر"의 뜻은 "Nancy Qanqar의 번역" 또는 "Nancy Qanqar가 번역"임, "رجمة"는 번역, "نانسي قنقر"는 이름임
- 체코어에서 whisper는 침묵 시 종종 “Titulky vytvořil JohnyX”(자막 제작: JohnyX)로 전사되는 경우가 많음, 비슷한 이유에서임
- 철자가 잘못 됨을 지적함, "رجمة"가 아니라 맨 앞에 ت가 붙은 "ترجمة"가 맞는 번역임
- 이러한 전사의 원인은 학습 데이터가 주로 영화의 비공식 자막에서 온 것이기 때문임, 이러한 자막은 영화 끝부분에 “XXX가 번역”과 같이 자주 들어감, 이때 화면에 자막은 나오지만 실제로는 침묵 구간임
-
Whisper는 환각(hallucination)이 너무 잦아서 쓸 수 없는 수준임, 이런 현상은 여러 번 잘 문서화됨, 오디오에서 침묵을 제거하면 좀 줄어들지만, 문법 자동 교정(예를 들어 이중 언어 스피치 번역 등) 등의 이슈도 있음, 최신 오디오 모델에서 개선은 되었지만 완전히 해결되진 않음 https://news.ycombinator.com/item?id=43427376
- 개인적으로 “쓸 수 없다”기보단, Whisper의 한계를 먼저 이해하고 우회 방법을 찾는 게 관건임, Whisper 위에서 비즈니스를 만들었는데, 환각을 줄이기 위해 초기에 음성 활성 검출(VAD) 모델을 도입한 게 핵심임, 참고 https://speechischeap.com
- 대형 모델만 쓸 때 문제임, 항상 작은 위성 모델이나 로직과 함께 조합해야 함, 환각은 기존 ML/DL 모델로도 쉽게 감지 가능함, 침묵 구간에서는 텍스트가 없어야 하는데 이를 감지하는 코드는 만들기 쉬움
- 문법 자동 교정은 일반 자막에서도 흔함, 참고 영상 "자막은 왜 더빙과 다를까?" https://youtu.be/pU9sHwNKc2c
-
Whisper 영어 버전에서도 침묵 재생 시 “[ sub by sk cn2 ]”, “어쨌든 시청해주셔서 감사합니다! 구독과 좋아요 부탁드려요! 안녕!” 또는 “이 영상이 종료되었습니다. 시청해주셔서 감사합니다. 유익했다면 채널 구독 부탁드립니다.” 등 자주 등장함
- 이런 이유는 모델이 불법 미디어나 유튜브 영상으로 학습하기 때문임, 좋은 방법이긴 한데 품질 관리가 안 되거나 저작권 이슈에 걸릴 위험이 있음
-
러시아어에서는 종종 “Субтитры сделал DimaTorzok”(자막 제작: DimaTorzok)라는 환각이 마지막에 들어가는 경우가 많음, 실제로 그렇게 입력된 자막이 많은지도 궁금해서 유튜브에서 찾아봤지만 많지 않은 듯함
- 검색해보니 텔레그램 사용자들도 음성 인식 시 이 문구가 왜 나오는지, DimaTorzok가 누구인지 궁금해하는 질문이 있음, 또 러시아 게임 유튜브 동영상 등에서 이런 자막이 보인다는 쓰레드를 찾았음 https://github.com/openai/whisper/discussions/2372 https://www.youtube.com/watch?v=FAqyUuahMlc&t=401s
- 어쩌면 opensubtitles.org처럼 공개 자막을 배포하는 누군가가 있을 수도 있음
-
녹취 전화의 처음 30초가 벨소리나 DTMF일 경우(기업에 전화할 때 거의 항상 발생) Whisper가 종종 언어를 Nynorsk나 웨일즈어로 잘못 선택함, 어떤 텍스트가 전사되는지까지는 확인하지 않았지만 아마 비슷하게 엉뚱한 내용일 듯함, 내게는 실용상 문제 없지만, 이중 언어 콜센터 등에는 꽤 불편할 수 있음
-
“Nicolai Winther는 누구인가?”라는 질문에 대해 https://medium.com/@lehandreassen/who-is-nicolai-winther-985409568201
- “미래에는 모두가 자신이 속한 마이크로 틈새 기술-언어 커뮤니티에서, AI가 휘몰아치는 시기에, 15분간 유명해질 것임”이라는 문구를 남김
-
"OpenAI, 불법 영화로 학습했다는 증거 공개"로 제목을 바꿔야 한다고 주장함
- 당연함, 돈만 많으면 불법 콘텐츠 학습도 합법이 되는 것임
- 이 내용이 정말 증거로 볼 수 있는지 궁금함, 온라인 자막 커뮤니티나 DVD에서 이미 애초에 허용된 저작권 자료를 쓰고 있다는 점은 이미 업계에서도 잘 알려진 사실로 봄, AI 모델 학습이 여러 저작권 자료를 쓰는 건 이미 보여진 일임
- Hacker News는 주관적 제목 편집에 매우 엄격함, 사실로서 의심의 여지 없어도 이런 식으로 제목을 바꾸면 글이 바로 신고당함
-
“Nancy Qunqar가 기계적으로 일일이 전사한 게 아닐까”라는 농담도 있음, “Nancy 화이팅! 계속 힘내렴!”식의 격려도 덧붙임
- 이 글이 스팸이 아닌지 의심됨, 이 이름은 인스타그램과 이 글타래에서만 보임, 혹시 인스타 팔로워 구하는 신종 스팸 수법 아닌지 궁금함