FFmpeg 8.0 menambahkan dukungan Whisper
(code.ffmpeg.org)- 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 -
- Contoh pembuatan file subtitle SRT
1 komentar
Komentar Hacker News
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 float32agar bisa berjalan normal. Jika muncul error, mungkin perlu memasang ulang library torch dari indeks tertentu seperti pada perintah berikut. 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
Backend bisa dipilih otomatis dengan perintah berikut.
uv pip install torch torchvision torchaudio --torch-backend=autoTautan panduan lengkap
Paket terkait torch diunduh dari indeks torch, sedangkan sisanya dari PyPI, jadi tidak perlu khawatir bentrok.
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.
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.
"How to wreck a nice beach you sing calm incense"
Tautan paper
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.
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”.
Run Whisper audio transcriptions with one FFmpeg command
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.
Lihat penjelasan Whisper di Wikipedia
Daftar lengkap model Whisper
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.
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.srtModel “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: Jepang → Inggris: Tautan referensi whisper-standalone-win
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.
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.
Ia sering menambahkan kalimat acak yang sebenarnya tidak ada.
Mungkin masih layak untuk klasifikasi kelas, tetapi kurang memadai untuk transkripsi subtitle.
Akan bagus kalau bisa langsung berjalan di Mac tanpa perlu mencari model sendiri.
Dokumentasi SpeechTranscriber
Dokumentasi SpeechAnalyzer
Ulasan penggunaan nyata dan perbandingan dengan Whisper
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.
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).
Masih ada error dan halusinasi, tetapi secara umum berjalan sesuai yang saya butuhkan.
Dalam situasi seperti itu, pengenalan pembicara (speaker recognition) akan sangat penting.