- Whisper मॉडल में पूरी तरह मौन wav फ़ाइल इनपुट देने पर, यह हमेशा अरबी में "ترجمة نانسي قنقر" (Translation by Nancy Qunqar) वही टेक्स्ट hallucination के रूप में आउटपुट करता है
ffmpeg से मौन ऑडियो बनाकर Whisper में अरबी और large-v3 मॉडल निर्दिष्ट करके चलाने पर हमेशा वही परिणाम आउटपुट होता है
- लगता है कि Whisper मॉडल को इस तरह train किया गया है कि वह मौन ऑडियो को एक विशेष टेक्स्ट के रूप में interpret करे
- पुराने मॉडल (
small आदि) में suppress_tokens, initial prompt, logprob_threshold जैसे parameters समायोजित करके इसे कुछ हद तक दबाया जा सकता था, लेकिन v3 (खासकर large-v3) में इसका असर कम है
- VAD(Voice Activity Detection) का उपयोग या ऑडियो के मौन हिस्सों को पहले से फ़िल्टर करने जैसी विधियाँ workaround के रूप में सुझाई गई हैं
इश्यू का व्यवहार
- Whisper
large-v3 में मौन ऑडियो के लिए हमेशा "ترجمة نانسي قنقر" नाम का अरबी वाक्य hallucination के रूप में आउटपुट होने की समस्या रिपोर्ट की गई है
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 मॉडल, पहले की ऑडियो-विवरण जैसी शैली के बजाय, मौन पर मनमाना hallucinated आउटपुट बनाने की प्रवृत्ति दिखाते हैं
- पुराने मॉडल (
small आदि) भी मौन में इधर-उधर का (random) आउटपुट बनाते हैं, लेकिन suppress_tokens, initial prompt, logprob_threshold जैसे कई विकल्पों से इन्हें कुछ हद तक नियंत्रित किया जा सकता है
v3 में ऊपर बताए गए तरीके अच्छी तरह काम नहीं करते, और एक स्थिर hallucinated परिणाम दिखाई देता है
workaround और समाधान के सुझाव
- VAD(Voice Activity Detection) लागू करना: ऑडियो में सिर्फ वही हिस्से Whisper को देना जहाँ वास्तव में आवाज़ हो, और मौन को बिल्कुल इनपुट न करना
suppress_tokens, initial prompt, logprob_threshold जैसे parameters समायोजित करना: कुछ मॉडलों में असर होता है, लेकिन large-v3 में बहुत कम
- पूरी तरह मौन या बहुत कमजोर सिग्नल वाले ऑडियो के लिए Whisper के बजाय किसी और तरीके से post-processing की ज़रूरत हो सकती है
अन्य चर्चा
- अरबी में
large-v3 से बेहतर कोई मॉडल है या नहीं, इस पर अतिरिक्त चर्चा हुई, लेकिन कोई स्पष्ट वैकल्पिक मॉडल प्रस्तुत नहीं किया गया
1 टिप्पणियां
Hacker News टिप्पणी
whisper-large-v3से चीनी ऑडियो का transcription करते समय कई बार देखा कि साइलेंस वाले हिस्से “लाइक, शेयर, फेवरेट करना न भूलें” जैसी बेढंगी पंक्तियों के रूप में आउटपुट हो जाते हैं; इससे शक होता है कि मॉडल ट्रेनिंग के समय YouTube वीडियो से डेटा रैंडम तरीके से उठाया गया और उसे उपयोगी सामग्री के रूप में ठीक से छांटा नहीं गयाwhisperको टेस्ट किया, तो लगा कि YouTube या फ़ोन से शूट किए गए वीडियो में इसका प्रदर्शन अच्छा नहीं है; शायद ट्रेनिंग डेटा का ज़्यादातर हिस्सा subtitles या scripts रहा होगा। जिन वीडियो पर मैंने कोशिश की वे चीनी (Mandarin) में थे, औरwhisper-large-v3के साथ सामान्य तरह की गलतफ़हमियाँ और निरर्थक नतीजे आए, लेकिन फिर भी दूसरे software की तुलना में प्रदर्शन काफ़ी अच्छा था। हालांकि यह मनमाने speaker names बना देता था या उन्हें dialogue की शुरुआत में जोड़ देता था, और बीच-बीच में simplified और traditional script के बीच बदलता रहता था। साइलेंस वाले हिस्सों में आख़िरी वाक्य को बार-बार दोहराता था या कभी-कभी अंग्रेज़ी में stage direction जैसा text डाल देता था। मुझे subtitles या ending credits तो नहीं दिखे, लेकिन एक वीडियो में speaker को ज़ुकाम था और वह नाक सुड़क रहा था, तोwhisperने उसे “* crying ” लिख दिया, और खाँसी को “ door closing *” में बदल दिया। उसके बाद वाली पंक्ति का transcription भी काफ़ी असभ्य था। जब मैंने नाक सुड़कने वाला हिस्सा काट दिया तो अजीब transcription ग़ायब हो गया, लेकिन इस बार यह फिर traditional script पर लौट गयाLLM में भी यही बात एक क्लासिक उदाहरण है, जहाँ अस्पष्ट डेटा की ओर झुका हुआ "overfitting" दिखता है; यह वैसा है जैसे out-of-office auto-reply को सीधे translation result के रूप में निकाल देना। संबंधित लेख: https://www.theguardian.com/theguardian/2008/nov/01/5
खोज का समय बचाने के लिए बता दूँ: अरबी "رجمة نانسي قنقر" का मतलब है "Nancy Qanqar का अनुवाद" या "Nancy Qanqar द्वारा अनुवाद"; "رجمة" का अर्थ translation है, और "نانسي قنقر" एक नाम है
whisperअक्सर साइलेंस के दौरान “Titulky vytvořil JohnyX” (subtitles by JohnyX) का transcription करता है; वजह मिलती-जुलती लगती हैWhisperमें hallucination इतनी बार होती है कि यह इस्तेमाल लायक नहीं लगता; यह कई बार अच्छी तरह documented है। ऑडियो से साइलेंस हटाने पर कुछ कमी आती है, लेकिन grammar auto-correction (जैसे bilingual speech translation) जैसी समस्याएँ भी हैं। नए audio models में सुधार हुआ है, पर पूरी तरह हल नहीं हुआ https://news.ycombinator.com/item?id=43427376Whisperकी सीमाएँ समझी जाएँ और फिर workaround निकाला जाए। मैंनेWhisperपर business बनाया है, और hallucination कम करने के लिए शुरुआती चरण में voice activity detection (VAD) model जोड़ना सबसे अहम था। संदर्भ: https://speechischeap.comWhisperके English version में भी साइलेंस चलने पर अक्सर “[ sub by sk cn2 ]”, “वैसे भी देखने के लिए धन्यवाद! subscribe और like ज़रूर करें! अलविदा!” या “यह वीडियो समाप्त हो गया है। देखने के लिए धन्यवाद। अगर यह उपयोगी लगा हो तो चैनल subscribe करें।” जैसी पंक्तियाँ आती हैंरूसी में अक्सर अंत में “Субтитры сделал DimaTorzok” (subtitles by DimaTorzok) जैसी hallucination जुड़ जाती है। यह जानने के लिए कि क्या वास्तव में ऐसे subtitles बहुत हैं, मैंने YouTube पर खोजा, लेकिन ज़्यादा नहीं दिखे
अगर recorded call के पहले 30 सेकंड में ringtone या DTMF हो — जो किसी कंपनी को कॉल करने पर लगभग हमेशा होता है — तो
Whisperअक्सर भाषा को Nynorsk या Welsh के रूप में ग़लत चुन लेता है। कौन-सा text transcribe होता है, यह मैंने नहीं देखा, लेकिन शायद उसी तरह की अजीब चीज़ें होंगी। मेरे लिए यह व्यावहारिक समस्या नहीं है, लेकिन bilingual call centers के लिए यह काफ़ी असुविधाजनक हो सकता है“Nicolai Winther कौन है?” इस सवाल पर: https://medium.com/@lehandreassen/who-is-nicolai-winther-985409568201
कुछ लोगों का कहना है कि शीर्षक बदलकर "OpenAI ने अवैध फिल्मों पर training के सबूत दिखा दिए" होना चाहिए
एक मज़ाक यह भी था कि “क्या Nancy Qunqar खुद मशीन की तरह एक-एक करके transcription कर रही थी”, और साथ में “Nancy, हिम्मत रखो! लगे रहो!” जैसी हौसला-अफ़ज़ाई भी जोड़ी गई