31 poin oleh GN⁺ 2025-08-14 | 1 komentar | Bagikan ke WhatsApp
  • FFmpeg versi 8.0 secara resmi menambahkan dukungan untuk model pengenalan suara Whisper
  • Whisper adalah model pengenalan suara open-source yang dikembangkan oleh OpenAI, dan digunakan untuk konversi ucapan otomatis dalam berbagai bahasa
  • Dengan hadirnya fitur ini, kemungkinan otomatisasi alur kerja konversi ucapan ke teks langsung di dalam tugas pemrosesan video dan audio menjadi semakin besar
  • Di kalangan developer dan bidang otomatisasi media, kegunaan dan efisiensi FFmpeg meningkat secara signifikan
  • Dengan menyertakan fitur pengenalan suara terbaru, beban penggunaan alat eksternal tambahan atau proses integrasi yang rumit dapat dikurangi

Gambaran umum dukungan Whisper di FFmpeg 8.0

  • FFmpeg versi 8.0 menambahkan dukungan untuk model pengenalan suara Whisper, sehingga menyediakan kemampuan untuk secara otomatis mengubah data suara menjadi teks dalam berbagai bahasa
  • Whisper memanfaatkan algoritme berbasis deep learning buatan OpenAI untuk memberikan performa konversi ucapan ke teks dengan akurasi tinggi
  • Pengguna FFmpeg yang sudah ada kini mendapatkan kemudahan untuk membuat subtitle atau mengekstrak isi ucapan dari file video dan audio melalui dukungan Whisper bawaan, tanpa harus melewati alat eksternal

Manfaat utama integrasi Whisper

  • Berkat integrasi Whisper, implementasi alur kerja pengenalan suara yang efisien dan mudah diskalakan menjadi mungkin di dalam pipeline pemrosesan dan otomatisasi media berbasis FFmpeg
  • Karena algoritme pengenalan suara sudah terintegrasi, developer memiliki keuntungan berupa hasil konversi suara ke teks hanya dengan perintah sederhana, tanpa beban integrasi tambahan yang kompleks atau penulisan skrip terpisah

Signifikansi industri dari kombinasi FFmpeg dan Whisper

  • Di berbagai bidang seperti pengelolaan aset media berskala besar, pembuatan subtitle, dan pengarsipan data video, kombinasi FFmpeg + Whisper memiliki keunggulan dalam mewujudkan efisiensi biaya sekaligus otomatisasi
  • Sebelumnya, alat pengenalan suara open-source terpisah perlu dihubungkan dengan FFmpeg, tetapi sekarang pemrosesan dapat dilakukan langsung di FFmpeg itu sendiri, sehingga penyederhanaan workflow dan peningkatan kecepatan pemrosesan dapat diharapkan

Detail teknis

  • Berdasarkan library Whisper.cpp, sebuah filter audio ditambahkan ke FFmpeg untuk menjalankan automatic speech recognition (ASR) langsung di dalam FFmpeg
  • Dapat diaktifkan dengan opsi --enable-whisper, dan path model (model) wajib ditentukan
  • Opsi utama: pengaturan bahasa (language), apakah menggunakan GPU (use_gpu), ukuran antrean (queue), format output (format: text/srt/json), serta pengaturan model dan ambang VAD (voice activity detection)
    • Jika nilai queue dibuat kecil, respons real-time meningkat tetapi akurasi menurun dan beban CPU bertambah; jika dibuat besar, akurasi meningkat tetapi latensi membesar
    • Dengan opsi destination, hasil dapat disimpan ke file output, URL, atau metadata, dan protokol AVIO juga didukung
  • Termasuk skenario contoh seperti pembuatan subtitle SRT, pengiriman HTTP dalam format JSON, dan transkripsi real-time dari input mikrofon (menggunakan VAD)
    • Contoh pembuatan file subtitle SRT
      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 komentar

 
GN⁺ 2025-08-14
Komentar Hacker News
  • Saya sudah merasakan sendiri bahwa Whisper benar-benar alat yang luar biasa; dengan prompt yang tepat, pengalaman menggunakannya bisa membawa perubahan positif dalam hidup.
    Saya ingin merekomendasikan Subtitle Edit (dan tidak masalah juga kalau ingin berdonasi ke pengembangnya). Subtitle Edit adalah antarmuka yang bagus untuk bereksperimen dengan Whisper. Bagi yang pernah memakai Aegisub dulu, Subtitle Edit bisa dibilang seperti Aegisub 2.0.
    HOWTO: seret file video atau audio ke panel kanan, lalu buka Video > Audio to text (Whisper). Saya biasanya mendapat hasil terbaik dengan Faster-Whisper-XXL. Jika memungkinkan, saya sarankan memakai large-v2 (large-v3 justru punya beberapa regresi). Memang tidak sempurna, tetapi masih cukup mudah diperbaiki dengan fitur seperti Tools > Fix common errors di Subtitle Edit.
    Kalau memakai kartu grafis Nvidia terbaru, Anda perlu memasukkan --compute_type float32 agar bisa berjalan normal. Jika muncul error, mungkin perlu memasang ulang library torch dari indeks tertentu seperti pada perintah berikut.
    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  
    
    Kalau ini menyelesaikan error yang Anda alami, tolong tinggalkan komentar tentang masalah dan solusinya agar bisa membantu orang lain juga (dan berguna untuk pencarian web).
    Situs resmi Subtitle Edit
    Halaman donasi pengembang Subtitle Edit
    Rilis versi terbaru Subtitle Edit
    • Saat memasang paket terkait torch dengan uv, versi tensor yang sesuai dengan driver cuda akan dipilih otomatis. Namun sebaiknya dipakai di virtual environment (venv), bukan Python sistem.
      Backend bisa dipilih otomatis dengan perintah berikut.
      uv pip install torch torchvision torchaudio --torch-backend=auto
      Tautan panduan lengkap
      Paket terkait torch diunduh dari indeks torch, sedangkan sisanya dari PyPI, jadi tidak perlu khawatir bentrok.
    • Aegisub juga masih terus dikembangkan lewat fork. Kedua perangkat lunak ini punya karakter berbeda, jadi sulit dibandingkan secara langsung dan lebih cocok dipakai saling melengkapi. Subtitle Edit jauh lebih cocok untuk transkripsi nyata, sementara Aegisub masih unggul untuk hal seperti pekerjaan tipografi.
    • Subtitle Edit memang hebat, tetapi bisa terkendala persyaratan hardware (Python, GPU Nvidia, dll.). Jika tidak punya GPU atau konfigurasi server terasa merepotkan, API sederhana dan murah seperti lemonfox.ai juga bisa jadi pilihan.
    • Saya penasaran apakah bisa diberi contoh yang lebih konkret tentang bagaimana Whisper membuat hidup jauh lebih baik.
    • Performa Whisper sangat bagus, jadi saya penasaran kenapa subtitle otomatis YouTube masih belum bagus. Bahkan model Whisper yang paling kecil pun lebih baik daripada solusi Google; apakah ini karena masalah lisensi atau sulitnya deployment skala besar?
  • Saya berharap jika transkripsi lokal makin luas dipakai, para pembuat video bisa menahan diri untuk tidak langsung membakar subtitle yang mencolok dan mengganggu ke dalam video.
    Saya pernah melihat video teknis yang dibuat secara profesional tetapi tetap diberi subtitle permanen yang tidak perlu dan tidak bisa dihapus. Itu berlebihan kalau videonya bukan video kucing.
    Dengan transkripsi lokal, terjemahan otomatis jadi mungkin, dan pengalaman tidak nyaman saat harus menampilkan subtitle baru di atas subtitle yang sudah dibakar ke video juga bisa dihindari.
    • Perlu dicatat bahwa memasukkan subtitle burn-in ke video sering kali lebih bertujuan meningkatkan engagement daripada pengalaman pengguna.
    • Kalau mau dibandingkan, menurut saya subtitle tema untuk opening anime buatan fans dulu jauh lebih keren daripada subtitle burn-in di video zaman sekarang.
    • Pada akhirnya pengaruh algoritme sangat besar. Sekalipun semua perangkat nanti punya subtitle real-time 100% akurat, kalau video tetap tampil lebih baik performanya, orang akan terus memasang subtitle burn-in.
    • Subtitle burn-in juga bermasalah karena bahasanya tidak bisa diganti.
    • Fenomena ini juga sebagian disebabkan fitur autoplay tanpa suara di YouTube. Subtitle yang dibakar ke video membantu menarik orang untuk mulai menonton.
  • Karena Whisper adalah model transkripsi audio, saya penasaran apakah ia punya kemampuan untuk merevisi bagian awal setelah mendengar bagian berikutnya.
    Misalnya pada kasus seperti “I scream” dan “Ice cream”, yang pelafalannya mirip tetapi maknanya sangat berbeda; saya ingin tahu apakah teks awal bisa diubah berdasarkan informasi konteks yang muncul belakangan.
    Saya rasa ini syarat penting kalau ingin mendapatkan real-time sekaligus akurasi. Di Android saya pernah melihat transkripsi yang menyesuaikan teks sambil orang masih berbicara.
    • Saya ingin merekomendasikan judul paper favorit saya.
      "How to wreck a nice beach you sing calm incense"
      Tautan paper
    • Saya membayangkan penulis subtitle atau penulis naskah manusia pasti selalu memikirkan bagaimana menuliskan ucapan yang sengaja ambigu, permainan kata, atau dialog yang penting justru karena salah paham dalam alur cerita. Menuliskan apa yang didengar berbeda dengan menuliskan teks aslinya (apa yang benar-benar diucapkan).
      Saya juga penasaran apakah orang yang tuli sejak lahir mempelajari secara terpisah cara memahami atau membuat permainan kata berbasis bunyi (permainan bahasa, rima, dan sebagainya).
      Rasanya ini seperti menangani matematika abstrak tanpa sensasi empiris, walau para matematikawan juga mengklaim bahwa dari abstraksi mereka bisa lahir fenomena yang dialami seperti musik, jadi bagian ini juga menarik.
    • Whisper bekerja dalam potongan 30 detik. Berkat struktur jaringannya, ia bisa melihat konteks sebelum dan sesudah lalu mengubah hasilnya. Namun karena itu juga, halusinasi cukup sering terjadi.
    • “I scream” rasanya memang punya penekanan yang lebih kuat pada bunyi ‘I’ dibanding “ice cream”. Tapi saya setuju bahwa konteks tetap sangat penting.
    • Jika tertarik dengan topik ini, saya merekomendasikan buku Stanford “Speech and Language Processing”, mulai dari bab 16.3 dan seterusnya.
      Tautan pdf terkait
      Saya tidak terlalu paham arsitektur Whisper, tetapi secara umum model ASR membuat decoder juga mempertimbangkan suara setelah chunk saat ini untuk memahami konteks. Karena itu ia dibantu language model agar menyimpulkan bentuk yang lebih alami secara tata bahasa, seperti “I like ice cream”.
  • Terkait ini, saya merekomendasikan blog yang ditulis oleh penulis patch ini.
    Run Whisper audio transcriptions with one FFmpeg command
  • Saya berharap ini menjadi awal dari penambahan lebih banyak filter berbasis ML ke FFmpeg.
    Dulu pernah ada filter sr (super resolution), tetapi sudah lama dan mendapatkan bobot modelnya juga rumit, dan meski dukungan untuk berbagai library ML (libtorch, dll.) sudah ditambahkan, memulainya tetap tidak mudah.
    Akan lebih baik kalau model siap pakai dikumpulkan saja di folder “models”, sehingga berbagai model untuk upscale, noise canceling, upscale deret waktu, dan lain-lain bisa dipakai dengan cepat.
    Sebagian besar riset filter audio dan video saat ini berbasis ML, dan codec baru juga kemungkinan besar akan berbasis ML.
  • Whisper yang dimaksud di sini memang model AI pengenal suara buatan OpenAI, kan?
    Lihat penjelasan Whisper di Wikipedia
    • Benar, dan ada juga implementasi C++-nya: GitHub whisper.cpp
    • Ya. Kutipan langsung dari dokumentasinya.

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

    • Tidak sepenuhnya tepat, ini adalah 'keluarga model transkripsi audio' (berbagai versi dan varian model).
      Daftar lengkap model Whisper
  • Saya sama sekali belum paham Whisper, tetapi apakah ini juga bisa dipakai untuk terjemahan otomatis (terutama Jepang → Inggris)?
    Saya punya film Jepang yang sangat tua, tetapi tidak ada terjemahan bahasa Inggris sehingga saya belum bisa menontonnya.
    Dulu saya pernah mencari penerjemah di Fiverr; kalau pakai tarif resmi biayanya ribuan dolar, setelah negosiasi turun jadi ratusan dolar, tetapi akhirnya mereka menghilang.
    • Whisper memang bisa mentranskripsikan dan menerjemahkan bahasa Jepang ke bahasa Inggris.
      Kualitasnya tergantung dialek dan kualitas audio, dan model "large-v3" memberi hasil terbaik.
      Integrasi ffmpeg bisa dipakai dengan perintah seperti berikut.
      ffmpeg -i movie.mp4 -af whisper=model=large-v3:task=translate output.srt
    • Dari pengalaman saya, hasilnya umumnya cukup bisa dipakai.
      Model “English” juga sebenarnya mendukung banyak bahasa dan bisa langsung menerjemahkan ke bahasa Inggris.
      Selain itu, Anda juga bisa mentranskripsikan dulu ke bahasa Jepang lalu memakai penerjemah lain untuk menerjemahkannya ke bahasa Inggris. Untuk percakapan yang secara makna rumit, cara ini kadang lebih baik.
      Contoh:
      Terjemahan langsung:
      faster-whisper-xxl.exe --language English --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      Jepang → Inggris:
      faster-whisper-xxl.exe --language Japanese --task translate --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      Tautan referensi whisper-standalone-win
    • Dalam pengalaman saya, transkripsinya benar-benar gagal total.
      Ia sering membuat isi yang sebenarnya tidak ada di audio, dan jika ada beberapa bahasa tercampur dalam video, ia jadi benar-benar bingung.
      Ia sama sekali tidak memahami konteks, jadi sering muncul kesalahan seperti yang biasa terlihat pada terjemahan otomatis YouTube.
    • Whisper juga bisa dipakai untuk membuat subtitle dan menerjemahkan video bahasa Jepang (ke bahasa Inggris saja).
      Performa terbaik hanya bisa didapat saat memakai model terbesar, tetapi kecepatannya tergantung hardware.
      Cara lain adalah menggunakan pendekatan seperti VideoToTextAI: ekstrak subtitle → terjemahkan ke 100+ bahasa → simpan sebagai file SRT.
    • Halusinasi Whisper cukup serius.
      Ia sering menambahkan kalimat acak yang sebenarnya tidak ada.
      Mungkin masih layak untuk klasifikasi kelas, tetapi kurang memadai untuk transkripsi subtitle.
  • Saya penasaran apakah speech API Apple yang akan segera dirilis juga bisa ditambahkan ke ffmpeg.
    Akan bagus kalau bisa langsung berjalan di Mac tanpa perlu mencari model sendiri.
    Dokumentasi SpeechTranscriber
    Dokumentasi SpeechAnalyzer
    Ulasan penggunaan nyata dan perbandingan dengan Whisper
  • Satu-satunya masalah pada PR/patch ini adalah ia hanya menyediakan wrapper avfilter untuk library whisper.cpp, dan pengguna tetap harus mengurus dependensi sendiri.
    Artinya:
    1. clone git whisper.cpp
    2. pasang dependensi library tersebut
    3. build sampai berhasil
    4. unduh model yang sebenarnya
    Baru setelah itu filter -af "whisper=model... bisa dipakai.
    Tanpa persiapan sebelumnya, ini akan gagal, dan bagi pemula bisa sangat membuat frustrasi.
    Menurut saya akan lebih efisien jika Whisper avfilter dibuat native dan pengguna hanya perlu mengunduh model; dengan begitu jumlah pengguna nyata juga akan jauh lebih banyak.
    • Dari sudut pandang end-user itu memang lebih baik, tetapi dari sisi FFmpeg pemeliharaannya jadi jauh lebih sulit.
      Perlu mempertimbangkan seberapa cepat proyek whisper-cpp berubah.
      Untuk filter lain (seperti vmaf) yang juga memerlukan build dependensi dan unduhan model, kemungkinan sebentar lagi akan tersedia binary precompiled untuk pemula (apalagi whisper-cpp berlisensi MIT).
  • Saya memakai FFmpeg dan Whisper untuk merekam serta mentranskripsikan audio siaran langsung scanner polisi di kota kami secara real-time, lalu langsung memperbaruinya ke situs web.
    Masih ada error dan halusinasi, tetapi secara umum berjalan sesuai yang saya butuhkan.
    • Kalau situs webnya publik, saya benar-benar ingin melihatnya.
    • Saya ingin mencoba fitur ini untuk rapat dewan county di daerah kami.
      Dalam situasi seperti itu, pengenalan pembicara (speaker recognition) akan sangat penting.