- Whisper modeline tamamen sessiz bir wav dosyası verildiğinde, her seferinde Arapça "ترجمة نانسي قنقر" (Nancy Qunqar tarafından çeviri) metnini halüsinasyon olarak üretme durumu var
- ffmpeg ile sessiz ses oluşturup Whisper'ı Arapça dili ve large-v3 modeliyle çalıştırınca sonuç her zaman aynı çıkıyor
- Bu sorun, Whisper modelinin sessiz sesi belirli bir metin olarak yorumlayacak şekilde eğitilmiş göründüğünü düşündürüyor
- Geçmiş modellerde (
small gibi) suppress_tokens, başlangıç istemi (initial prompt), logprob_threshold gibi parametre ayarlarıyla bir ölçüde bastırmak mümkündü, ancak v3'te (özellikle large-v3) etkisi az
- Geçici çözüm olarak "VAD (Voice Activity Detection) kullanma" ya da sesin sessiz bölümlerini önceden filtreleme yöntemi öneriliyor
Sorunun görünümü
- Whisper
large-v3'te sessiz ses için her zaman "ترجمة نانسي قنقر" Arapça cümlesinin halüsinasyon olarak üretilmesi sorunu bildirildi
ffmpeg ile aşağıdaki gibi 30 saniyelik sessiz bir wav dosyası oluşturuluyor
ffmpeg -f lavfi -i anullsrc=r=44100\:cl=stereo -t 30 silence.wav
- Whisper komutunu çalıştırma örneği
whisper ./silence.wav --language Arabic --model large-v3
- Sonuç:
\[00:00.000 --> 00:29.980] ترجمة نانسي قنقر
Neden ve analiz
large-v3 gibi yeni Whisper modelleri, eskiden olduğu gibi ses açıklaması üretmek yerine sessizlik için rastgele halüsinasyon çıktısı üretme eğiliminde
- Önceki modeller (
small gibi) de sessizlikte çeşitli (rastgele) çıktılar üretiyor, ancak suppress_tokens, başlangıç istemi (initial prompt), logprob_threshold gibi çeşitli seçeneklerle kısmen kontrol edilebiliyor
- v3'te ise bu yöntemler pek işe yaramıyor ve sabit bir halüsinasyon sonucu ortaya çıkıyor
Geçici çözümler ve çözüm önerileri
- VAD (Voice Activity Detection) uygulama: Seste gerçekten konuşma olan bölümleri yalnızca Whisper'a verip, sessiz bölümleri hiç girdi olarak vermemek
suppress_tokens, başlangıç istemi (initial prompt), logprob_threshold gibi parametre ayarları: Bazı modellerde etkili olsa da large-v3'te etkisi sınırlı
- Tamamen sessiz ya da sinyali zayıf sesler için Whisper dışında başka bir yöntemle sonradan işleme gerekebilir
Diğer tartışmalar
- Arapça için
large-v3'ten daha iyi bir model olup olmadığına dair ek tartışmalar vardı, ancak belirgin bir alternatif model önerilmedi
1 yorum
Hacker News yorumu
whisper-large-v3ile Çince sesi yazıya dökerken, sessizlik bölümlerinin “beğenin, paylaşın, favorilere ekleyin lütfen” gibi alakasız cümleler olarak çıktığını defalarca yaşadım; bu da model eğitilirken YouTube videolarından verilerin rastgele toplanıp işe yarar materyal olarak özenle seçilmediğinden şüphelenmeme neden oluyorwhisperı test ettiğimde, YouTube veya telefonla çekilmiş videolarda pek iyi performans vermediği izlenimi edindim; muhtemelen eğitim verisinin çoğu altyazı ya da senaryo metinlerinden oluşuyor diye tahmin ediyorum. Denediğim videolar Çinceydi (Mandarin) vewhisper-large-v3ile tipik yanlış anlama ve anlamsız sonuçlar çıktı, ama yine de başka yazılımlarla kıyaslandığında performansı oldukça iyiydi. Yine de konuşmacı isimlerini uydurabiliyor ya da repliklerin başına ekleyebiliyor, ayrıca arada bir basitleştirilmiş ve geleneksel Çince arasında geçiş yapıyor. Sessizlik bölümlerinde son cümleyi tekrar tekrar yazdırdığı ya da bazen İngilizce sahne yönergesi gibi görünen metinler eklediği de oldu. Altyazı ya da jenerik görmedim ama bir videoda konuşmacı soğuk algınlığı nedeniyle burnunu çekincewhisperbunu ağlıyor diye (“* crying ”) yazdı; öksürüğü ise “ door closing *” olarak çevirdi. Sonraki satır da oldukça kaba bir içerik olarak yazıya döküldü. Burnunu çektiği kısmı kesince garip transkripsiyon ortadan kayboldu ama bu kez yeniden geleneksel Çinceye geçtiLLM’lerde de benzer şekilde, belirsiz veriye kaymış klasik bir “overfitting” örneği bu; otomatik ofis dışı yanıtını aynen çeviri sonucu olarak vermeye benziyor, ilgili haber: https://www.theguardian.com/theguardian/2008/nov/01/5
Arama süresini azaltmak için bilgi vereyim: Arapça "رجمة نانسي قنقر" ifadesi "Nancy Qanqar’ın çevirisi" veya "Nancy Qanqar tarafından çevrildi" anlamına geliyor; "رجمة" çeviri, "نانسي قنقر" ise bir isim
whisper, sessizlik sırasında sık sık “Titulky vytvořil JohnyX” (altyazıları hazırlayan: JohnyX) diye transkripsiyon yapıyor; benzer bir sebeptenWhisper halüsinasyonu o kadar sık yapıyor ki kullanılmaz seviyede; bu durum birçok kez iyi biçimde belgelendi. Sesteki sessizliği kaldırmak biraz azaltıyor ama dilbilgisini otomatik düzeltme (örneğin iki dilli konuşma çevirisi) gibi sorunlar da var. En yeni ses modellerinde iyileşme oldu ama tamamen çözülmedi https://news.ycombinator.com/item?id=43427376
Whisper’ın İngilizce sürümünde de sessizlik oynatıldığında sık sık “[ sub by sk cn2 ]”, “her neyse, izlediğiniz için teşekkürler! Abone olmayı ve beğenmeyi unutmayın! Hoşça kalın!” ya da “bu video sona ermiştir. İzlediğiniz için teşekkürler. Faydalı bulduysanız kanala abone olun.” gibi şeyler çıkıyor
Rusçada da sonunda sık sık “Субтитры сделал DimaTorzok” (altyazıları hazırlayan: DimaTorzok) halüsinasyonu ekleniyor. Gerçekten bu şekilde girilmiş çok sayıda altyazı mı var diye merak edip YouTube’da aradım ama çok fazla görünmüyor
Kayıtlı telefon görüşmesinin ilk 30 saniyesi zil sesi ya da DTMF ise (şirket ararken neredeyse her zaman olur), Whisper bazen dili yanlışlıkla Nynorsk ya da Galce seçiyor. Ne tür bir metin yazıya döküldüğünü kontrol etmedim ama muhtemelen benzer şekilde alakasız şeylerdir. Benim için pratikte sorun değil ama iki dilli çağrı merkezleri için epey can sıkıcı olabilir
“Nicolai Winther kimdir?” sorusuna dair https://medium.com/@lehandreassen/who-is-nicolai-winther-985409568201
Başlığın “OpenAI, yasa dışı filmlerle eğitildiğine dair kanıt ortaya koydu” olarak değiştirilmesi gerektiğini savunanlar var
“Nancy Qunqar hepsini tek tek mekanik biçimde transkribe etmiş olabilir” diye şaka yapanlar da var; “Nancy, devam et, pes etme!” tarzı teşvikler de eklenmiş