31 puan yazan GN⁺ 2025-08-14 | 1 yorum | WhatsApp'ta paylaş
  • FFmpeg 8.0 sürümü, Whisper konuşma tanıma modeli desteğini resmî olarak ekledi
  • Whisper, OpenAI tarafından geliştirilen açık kaynaklı bir konuşma tanıma modeli olup farklı dillerde otomatik konuşma dönüştürme için kullanılıyor
  • Bu özelliğin eklenmesiyle video ve ses işleme görevlerinde doğrudan konuşmadan metne dönüştürme iş akışlarını otomatikleştirme olasılığı arttı
  • Geliştiriciler ve medya otomasyonu alanında FFmpeg'in kullanım alanı ve verimliliği önemli ölçüde güçlendi
  • En yeni konuşma tanıma özelliğini yerleşik olarak sunarken ek harici araçlara veya karmaşık entegrasyon süreçlerine duyulan yükü azaltıyor

FFmpeg 8.0'da Whisper desteğine genel bakış

  • FFmpeg 8.0 sürümü, Whisper konuşma tanıma modeli desteğini ekleyerek farklı dillerde ses verisini otomatik olarak metne dönüştürme işlevi sunuyor
  • Whisper, OpenAI tarafından geliştirilen derin öğrenme tabanlı algoritma kullanarak yüksek doğrulukta konuşmadan metne dönüştürme performansı sağlıyor
  • Mevcut FFmpeg kullanıcıları, harici araçlardan geçmeden yerleşik Whisper desteği sayesinde video ve ses dosyalarından altyazı üretebilir veya konuşma içeriğini çıkarabilir

Whisper entegrasyonunun başlıca avantajları

  • Whisper entegrasyonu sayesinde FFmpeg tabanlı medya işleme ve otomasyon pipeline'larında verimli ve ölçeklenebilir konuşma tanıma iş akışları kurulabiliyor
  • Konuşma tanıma algoritmasının yerleşik hale gelmesiyle geliştiriciler, karmaşık ek entegrasyonlar ya da ayrı script yazma yükü olmadan yalnızca basit komutlarla konuşmadan metne dönüştürme sonuçları alabiliyor

FFmpeg ve Whisper kombinasyonunun sektörel önemi

  • Büyük medya varlıklarının yönetimi, altyazı üretimi, video verisi arşivleme gibi çeşitli alanlarda FFmpeg + Whisper kombinasyonu maliyet verimliliği ve otomasyonu aynı anda gerçekleştirme avantajı sunuyor
  • Daha önce FFmpeg ile ayrı açık kaynak konuşma tanıma araçlarını entegre etmek gerekiyordu; artık doğrudan FFmpeg içinde işleme ile iş akışı sadeleşmesi ve işlem hızında artış beklenebiliyor

Teknik ayrıntılar

  • FFmpeg'e, Whisper.cpp kütüphanesi temel alınarak FFmpeg içinde doğrudan otomatik konuşma tanıma (ASR) gerçekleştiren bir ses filtresi eklendi
  • --enable-whisper seçeneğiyle etkinleştirilebiliyor ve model yolu (model) zorunlu olarak belirtilmeli
  • Başlıca seçenekler: dil ayarı (language), GPU kullanımı (use_gpu), kuyruk boyutu (queue), çıktı biçimi (format: text/srt/json), VAD (ses etkinliği algılama) modeli ve eşik ayarı vb.
    • queue değeri küçük olursa gerçek zamanlılık artar ancak doğruluk düşer ve CPU yükü yükselir; büyük olursa doğruluk artar ancak gecikme büyür
    • destination seçeneğiyle sonuçlar çıktı dosyasına, URL'ye veya metadata'ya kaydedilebilir; AVIO protokolü de desteklenir
  • Örnek olarak SRT altyazı üretimi, JSON biçiminde HTTP gönderimi, mikrofon girişinin gerçek zamanlı dökümü (VAD kullanarak) senaryoları yer alıyor
    • SRT altyazı dosyası oluşturma örneği
      ffmpeg -i input.mp4 -vn \  
      -af "whisper=model=../whisper.cpp/models/ggml-base.en.bin:language=en:queue=3:destination=output.srt:format=srt" \  
      -f null -  
      

1 yorum

 
GN⁺ 2025-08-14
Hacker News görüşleri
  • Whisper'ın gerçekten inanılmaz bir araç olduğunu bizzat deneyimledim; doğru prompt verildiğinde hayatı olumlu yönde değiştirebiliyor
    Subtitle Edit'i tavsiye etmek isterim (geliştiriciye bağış yapmak da iyi bir fikir). Subtitle Edit, Whisper ile denemeler yapmak için iyi bir arayüz sunuyor. Eskiden Aegisub kullananlar için Subtitle Edit'e Aegisub 2.0 demek mümkün
    NASIL YAPILIR: Video veya ses dosyasını sağ taraftaki pencereye sürükleyin, ardından Video > Audio to text (Whisper) yolunu izleyin. Benim deneyimimde genelde Faster-Whisper-XXL en iyi sonucu verdi. Mümkünse large-v2 kullanmanızı öneririm (large-v3 bazı konularda gerileme gösteriyor). Mükemmel değil ama Subtitle Edit'in Tools > Fix common errors gibi özellikleriyle yeterince düzeltilebiliyor
    Yeni Nvidia ekran kartlarında düzgün çalışması için --compute_type float32 girmeniz gerekebilir. Hata alırsanız, aşağıdaki komuttaki gibi torch kütüphanesini belirli bir index üzerinden yeniden kurmanız gerekebilir
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118  
    
    uv pip install --system torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118  
    
    Bu tür bir hatayı çözdüyseniz, hangi sorun olduğunu ve çözümü yorum olarak paylaşırsanız başkalarına da yardımcı olur (web aramalarında da bulunur)
    Subtitle Edit ana sayfası
    Subtitle Edit geliştiricisine bağış sayfası
    Subtitle Edit son sürüm releases
    • uv, torch ile ilgili paketleri kurarken CUDA sürücüsüne uygun tensor sürümünü otomatik seçiyor. Yine de bunu sistem Python'u yerine sanal ortamda (venv) kullanmak daha iyi
      Aşağıdaki komutla otomatik backend seçimi yapılabilir
      uv pip install torch torchvision torchaudio --torch-backend=auto
      Ayrıntılı açıklama bağlantısı
      torch ile ilgili paketler torch index'inden, diğerleri ise PyPI'dan indirildiği için çakışma konusunda endişe etmeye gerek yok
    • Aegisub da hâlâ fork'lanmış durumda ve geliştirilmeye devam ediyor. İki yazılımın karakteri farklı olduğu için doğrudan kıyaslamak zor; birbirini tamamlayarak kullanılabilirler. Subtitle Edit gerçek transkripsiyon için çok daha uygunken, Aegisub tipografi işleri gibi alanlarda hâlâ güçlü
    • Subtitle Edit harika ama donanım açısından bazı kısıtlar olabilir (Python, Nvidia GPU vb.). GPU'nuz yoksa veya sunucu kurulumu zahmetliyse, lemonfox.ai gibi basit ve ucuz bir API de bir seçenek
    • Whisper sayesinde hayatınızın ciddi biçimde iyileştiğini somut örneklerle anlatabilir misiniz, merak ettim
    • Whisper'ın performansı çok iyi ama YouTube'un otomatik altyazıları neden hâlâ bu kadar kötü, merak ediyorum. Whisper'ın en küçük modeli bile Google'ın çözümünden daha iyi; acaba bunun sebebi lisans meselesi mi yoksa büyük ölçekte dağıtımın zorluğu mu?
  • Yerel transkripsiyon daha yaygın kullanılırsa, video üreticilerinin videonun içine parlayan ve dikkat dağıtan altyazıları gömmekten vazgeçmesini umuyorum
    Profesyonelce hazırlanmış teknik videolarda bile gereksiz, kaldırılamayan altyazılar gördüm. Kedi videosu değilse bu kadarına gerek yok
    Yerel transkripsiyon kullanılırsa otomatik çeviri mümkün olur ve zaten videoya gömülü olan altyazının üstüne bir de yeni altyazı bindirme gibi kötü deneyimler de ortadan kalkar
    • Videoya gömülü altyazının asıl amacının kullanıcı deneyiminden çok "engagement" artırmak olduğu belirtiliyor
    • Karşılaştırmak gerekirse, eskiden hayranların anime açılışları için yaptığı temalı altyazıların, günümüzdeki videolardaki gömülü altyazılardan çok daha havalı olduğunu düşünüyorum
    • Sonuçta bunda algoritmanın etkisi büyük. Tüm cihazlarda gerçek zamanlı ve %100 doğru altyazı olsa bile, videonun performansı daha iyi oluyorsa gömülü altyazı kullanılmaya devam eder
    • Gömülü altyazının bir sorunu da dil değiştirilememesi
    • Bu durumun bir nedeni de YouTube'un "sessiz otomatik oynatma" özelliği. Gömülü altyazılar insanların videoya çekilmesine yardımcı oluyor
  • Whisper bir ses transkripsiyon modeli ama dinleme sırasında önceki kısmı sonradan düzeltme becerisi olup olmadığını merak ediyorum
    Örneğin "I scream" ile "Ice cream" gibi telaffuzu benzer ama anlamı tamamen farklı ifadelerde, daha sonraki bağlamı kullanarak önceki metin sonucunu değiştirebiliyor mu, bunu öğrenmek istiyorum
    Bunun hem gerçek zamanlılığı hem de doğruluğu birlikte sağlayabilmek için gerekli bir koşul olduğunu düşünüyorum. Nitekim Android'deki transkripsiyonda konuşma sürerken metnin anlık olarak düzeltildiğini gördüm
    • En sevdiğim makale başlıklarından birini önermek isterim
      "How to wreck a nice beach you sing calm incense"
      Makale bağlantısı
    • İnsan altyazıcılar ya da senaristler, bilerek muğlak bırakılmış sözler, kelime oyunları ya da hikâye açısından yanlış anlaşılmasının önemli olduğu replikleri nasıl yazıya dökeceklerini her zaman düşünüyordur diye tahmin ediyorum. Duyulan şeyi ifade etmekle asıl söylenen şeyi yazmak farklı şeyler
      Doğuştan işitme engelli kişilerin, ses temelli kelime oyunlarını (dil oyunları, ritim vb.) anlamak ya da üretmek için ayrıca çalışıp çalışmadığını merak ediyorum
      Bu, deneyimsel sezgi olmadan soyut matematikle uğraşmaya benziyor gibi geliyor; gerçi matematikçiler de kendi soyutlamalarından müzik gibi deneyimsel olgular üretebildiklerini söylüyor, bu da ilginç bir nokta
    • Whisper 30 saniyelik parçalarla çalışıyor. Bu ağ yapısı sayesinde önceki ve sonraki bağlama bakıp sonucu değiştirebiliyor. Ancak bu yüzden çok fazla halüsinasyon da üretiyor
    • "I scream" ifadesinde "I" sesinin, "ice cream"e göre daha vurgulu çıktığını düşünüyorum. Yine de bağlamın kesinlikle gerekli olduğu fikrine katılıyorum
    • Bu konuyu merak ediyorsanız Stanford'un "Speech and Language Processing" kitabında 16.3'ten sonraki bölümleri öneririm
      İlgili pdf bağlantısı
      Whisper'ın yapısını tam bilmiyorum ama genel olarak ASR modellerinde decoder, mevcut parçadan sonraki sesi de dikkate alarak bağlamı anlamaya çalışır. Böylece "I like ice cream" gibi dilbilgisel olarak doğal bir biçime yönelmek için dil modeliyle düzeltme yapılır
  • Bununla ilgili olarak, bu yamayı hazırlayan yazarın blog yazısını da öneririm
    Run Whisper audio transcriptions with one FFmpeg command
  • Umarım bu, FFmpeg'e daha fazla ML tabanlı filtrenin eklenmesinin başlangıcı olur
    Daha önce sr (super resolution) filtresi eklenmişti ama artık eski kaldı; ağırlıkları edinmek de karmaşık, çeşitli ML kütüphanelerine (libtorch vb.) destek eklense de başlamak kolay değil
    Keşke kullanıma hazır modeller bir models klasöründe toplansa da upscaling, gürültü engelleme, zaman serisi upscaling gibi çeşitli modelleri hızlıca kullanabilsek
    Günümüzde ses ve video filtreleri araştırmalarının çoğu ML tabanlı, yeni codec'lerin de muhtemelen ML tabanlı olması bekleniyor
  • Burada sözü edilen Whisper, OpenAI'ın geliştirdiği konuşma tanıma yapay zeka modeli mi?
    Whisper hakkında Wikipedia açıklaması
    • Evet, ayrıca bir C++ uygulaması da var: whisper.cpp GitHub
    • Evet. Belgelerden doğrudan alıntılayayım

      It runs automatic speech recognition using the OpenAI's Whisper model.

    • Tam olarak tek bir model değil, bir "ses transkripsiyon modeli ailesi" (birden fazla sürüm ve model grubu)
      Whisper tam model listesi
  • Whisper hakkında hiçbir şey bilmiyorum ama otomatik çeviri için de kullanılabiliyor mu, özellikle Japonca→İngilizce?
    Elimde çok eski bir Japon filmi var ama İngilizce çevirisi olmadığı için izleyemiyorum
    Daha önce Fiverr üzerinden çevirmen aramıştım; resmî fiyatlarla birkaç bin doları buluyordu, pazarlıkla birkaç yüz dolara kadar indi ama sonunda iletişim kesildi
    • Whisper kesinlikle Japoncayı İngilizceye transkribe edip çevirebiliyor
      Kalite lehçeye ve ses kalitesine bağlı olarak değişir; en iyi sonuçları large-v3 modeli veriyor
      FFmpeg entegrasyonunu aşağıdaki gibi bir komutla kullanabilirsiniz
      ffmpeg -i movie.mp4 -af whisper=model=large-v3:task=translate output.srt
    • Benim deneyimimde genel olarak kullanılabilir düzeydeydi
      "İngilizce" modeli aslında birçok dili destekliyor ve doğrudan İngilizceye çevirebiliyor
      Ayrıca önce Japonca transkripsiyon alıp sonra başka bir çeviri aracıyla İngilizceye çevirmek de mümkün. Anlam bakımından karmaşık diyaloglarda bu yöntem bazen daha iyi sonuç verebilir
      Örnek:
      Doğrudan çeviri:
      faster-whisper-xxl.exe --language English --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      Japonca→İngilizce:
      faster-whisper-xxl.exe --language Japanese --task translate --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      whisper-standalone-win referans bağlantısı
    • Benim deneyimimde transkripsiyon tamamen başarısız oldu
      Seste olmayan şeyler uydurduğu çok oldu ve videoda birden fazla dil karışınca tamamen kafası karışıyor
      Bağlamı hiç anlamadığı için, YouTube gibi otomatik çeviri sistemlerinde görülen hatalar burada da sıkça ortaya çıkıyor
    • Whisper ile Japonca videoları altyazılamak ve çevirmek (yalnızca İngilizceye) mümkün
      En yüksek performans en büyük modelle elde ediliyor ama hız donanıma göre değişir
      Bir başka yöntem de VideoToTextAI gibi araçlarla altyazıyı çıkarıp 100'den fazla dile çevirerek SRT dosyası olarak kaydetmek olabilir
    • Whisper'ın halüsinasyon sorunu ciddi
      Var olmayan cümleleri rastgele eklediği çok oluyor
      Sınıfandırma için işe yarayabilir ama altyazı transkripsiyonu için yetersiz
  • Apple'ın yakında çıkacak speech API'sinin de FFmpeg'e eklenip eklenemeyeceğini merak ediyorum
    Model kaynağı ayarlamadan doğrudan Mac üzerinde çalışabilirse güzel olur
    SpeechTranscriber belgeleri
    SpeechAnalyzer belgeleri
    Gerçek kullanım incelemesi ve Whisper ile karşılaştırma
  • Bu PR/yamadaki tek sorun, yalnızca whisper.cpp kütüphanesinin avfilter sarmalayıcısını sunması ve bağımlılık yönetimini kullanıcıya bırakması
    Yani:
    1. whisper.cpp git clone
    2. O kütüphane için bağımlılıkları kur
    3. Derlemeyi başarıyla tamamla
    4. Gerçek modeli indir
    ancak bunlardan sonra -af "whisper=model... filtresini kullanabiliyorsun
    Ön hazırlık yoksa çalışmayacak ve bu da yeni başlayanlar için büyük bir hayal kırıklığı olur
    Bence Whisper avfilter'ını yerel olarak sağlamak ve yalnızca modeli indirtmek daha verimli olurdu; böylece gerçek kullanıcı sayısı da çok daha artardı
    • Son kullanıcı açısından daha iyi olurdu ama FFmpeg tarafında bakım yükü zorlayıcı olur
      whisper-cpp projesinin değişim hızını da hesaba katmak gerekir
      Diğer filtrelerde (vmaf gibi) olduğu gibi bağımlılık derleme ve model indirme gereksinimleri varsa, yakında yeni başlayanlar için önceden derlenmiş binary'ler de sunulacaktır diye düşünüyorum (whisper-cpp MIT lisanslı olduğu için)
  • FFmpeg ve Whisper kullanarak şehrimizdeki polis telsizi canlı ses akışını gerçek zamanlı kaydedip transkribe ediyor, ardından bunu doğrudan web sitesinde güncelliyorum
    Hatalar ve halüsinasyonlar var ama istediğim seviyede çalışıyor
    • Site herkese açıksa mutlaka görmek isterim
    • Ben de bunu yaşadığım bölgedeki ilçe meclisi toplantılarına uygulamayı düşünmüştüm
      Bu tür durumlarda konuşmacı tanıma özellikle önemli olur