FFmpeg 8.0 में Whisper सपोर्ट जोड़ा गया
(code.ffmpeg.org)- FFmpeg 8.0 वर्शन में Whisper speech recognition model के सपोर्ट को आधिकारिक रूप से जोड़ा गया है
- Whisper, OpenAI द्वारा विकसित एक open source speech recognition model है, जिसका उपयोग कई भाषाओं में automatic speech transcription के लिए किया जाता है
- इस फीचर के जुड़ने से video और audio processing workflows में सीधे speech-to-text conversion automation की संभावना बढ़ गई है
- डेवलपर्स और media automation क्षेत्र में FFmpeg की उपयोगिता और efficiency काफी मजबूत हुई है
- latest speech recognition फीचर्स built-in होने से अतिरिक्त external tools या complex integration process का बोझ कम होता है
FFmpeg 8.0 में Whisper सपोर्ट का अवलोकन
- FFmpeg 8.0 वर्शन, Whisper speech recognition model सपोर्ट जोड़कर कई भाषाओं में speech data को text में अपने-आप बदलने की सुविधा देता है
- Whisper, OpenAI द्वारा बनाया गया deep learning आधारित algorithm उपयोग करता है, जो high-accuracy speech-to-text conversion performance सुनिश्चित करता है
- मौजूदा FFmpeg users अब external tools के बिना, built-in Whisper support के जरिए video और audio files से subtitles बना सकते हैं या speech content निकाल सकते हैं
Whisper integration के मुख्य फायदे
- Whisper integration के कारण FFmpeg-आधारित media processing और automation pipelines में efficient और scalable speech recognition workflows लागू करना संभव हो गया है
- speech recognition algorithm built-in होने से डेवलपर्स को complex अतिरिक्त integration work या अलग scripts लिखने की जरूरत के बिना, सिर्फ simple commands से speech-to-text conversion results पाने का फायदा मिलता है
FFmpeg और Whisper संयोजन का औद्योगिक महत्व
- विशाल media asset management, subtitle generation, video data archiving जैसे कई क्षेत्रों में FFmpeg + Whisper का संयोजन cost efficiency और automation दोनों को एक साथ हासिल करने की ताकत रखता है
- पहले अलग open source speech recognition tools को FFmpeg के साथ integrate करना पड़ता था, लेकिन अब सीधे FFmpeg के भीतर processing करके workflow simplification और processing speed improvement की उम्मीद की जा सकती है
तकनीकी विवरण
- FFmpeg में Whisper.cpp library पर आधारित एक audio filter जोड़ा गया है, जो FFmpeg के भीतर सीधे automatic speech recognition (ASR) चलाता है
- इसे
--enable-whisperविकल्प से सक्रिय किया जा सकता है, और model path (model) देना अनिवार्य है - मुख्य विकल्प: language setting (language), GPU उपयोग (use_gpu), queue size (queue), output format (format: text/srt/json), VAD (voice activity detection) model और threshold settings आदि
- queue value को छोटा रखने पर real-time responsiveness बढ़ती है, लेकिन accuracy घट सकती है और CPU load बढ़ सकता है; बड़ा रखने पर accuracy बढ़ती है, लेकिन latency बढ़ती है
- destination विकल्प से output file, URL, या metadata में results सेव किए जा सकते हैं, और AVIO protocol भी सपोर्ट होता है
- उदाहरणों में SRT subtitle generation, JSON format में HTTP transmission, microphone input की real-time transcription (VAD के साथ) जैसे scenarios शामिल हैं
- SRT subtitle file generation example
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 -
- SRT subtitle file generation example
1 टिप्पणियां
Hacker News की राय
मैं Subtitle Edit की सिफारिश करना चाहूँगा/चाहूँगी (और डेवलपर को donation देना भी ठीक है)। Subtitle Edit, Whisper के साथ प्रयोग करने और इस्तेमाल करने के लिए बहुत अच्छा interface देता है। जिन्होंने पहले Aegisub इस्तेमाल किया है, वे Subtitle Edit को Aegisub 2.0 कह सकते हैं।
HOWTO: वीडियो या ऑडियो फ़ाइल को दाईं विंडो में drag करें, फिर Video > Audio to text (Whisper) पर जाएँ। मेरे अनुभव में आमतौर पर Faster-Whisper-XXL ने सबसे अच्छा प्रदर्शन किया। अगर संभव हो तो large-v2 इस्तेमाल करने की सलाह दूँगा/दूँगी (large-v3 में उल्टे कुछ regressions हैं)। यह परफेक्ट नहीं है, लेकिन Subtitle Edit के Tools > Fix common errors जैसे फ़ीचर से काफ़ी सुधार हो जाता है।
अगर आपके पास नया Nvidia graphics card है, तो "--compute_type float32" डालना पड़ सकता है ताकि यह सही चले। अगर error आए, तो नीचे दिए गए command की तरह torch library को किसी खास index से दोबारा install करना पड़ सकता है। अगर इससे error ठीक हो जाए, तो किस समस्या और किस समाधान से ठीक हुआ यह comment में लिख दें; इससे दूसरों को मदद मिलेगी (और web search में भी काम आएगा)।
Subtitle Edit होमपेज
Subtitle Edit डेवलपर donation पेज
Subtitle Edit latest version releases
नीचे दिए command से automatic backend selection किया जा सकता है।
uv pip install torch torchvision torchaudio --torch-backend=autoविस्तृत गाइड लिंक
torch वाले packages torch index से और बाकी PyPI से डाउनलोड होते हैं, इसलिए conflict की चिंता नहीं है।
मैंने professionally बने tech videos में भी ऐसे subtitles देखे हैं जिन्हें हटाया नहीं जा सकता, जबकि उनकी ज़रूरत नहीं थी। यह कोई cat video नहीं है, फिर भी ऐसा करना कुछ ज़्यादा ही है।
local transcription से auto-translation संभव हो जाता है, और पहले से जले हुए subtitles के ऊपर फिर से subtitles दिखाने वाली असुविधाजनक स्थिति भी खत्म हो सकती है।
उदाहरण के लिए, “I scream” और “Ice cream” जैसे मामले में, जहाँ उच्चारण मिलता-जुलता है लेकिन अर्थ बिल्कुल अलग है, क्या यह बाद में आने वाले लंबे context के आधार पर पहले के text result को बदल सकता है?
मुझे लगता है कि real-time होने के साथ accuracy भी पाने के लिए यह ज़रूरी शर्त है। वास्तव में Android transcription में मैंने देखा है कि बोलते समय text लगातार adjust होता रहता है।
"How to wreck a nice beach you sing calm incense"
पेपर लिंक
मैं यह भी सोचता/सोचती हूँ कि जन्मजात श्रवण-बाधित लोग क्या spoken wordplay (भाषाई खेल, लय आदि) को समझने/रचने के लिए अलग से अध्ययन करते हैं।
यह कुछ वैसा होगा जैसे बिना अनुभवजन्य संवेदना के abstract mathematics से काम करना; हालाँकि गणितज्ञ भी कहते हैं कि उनके abstraction से संगीत जैसे अनुभवात्मक phenomena निकलते हैं, इसलिए यह बात दिलचस्प है।
संबंधित pdf लिंक
मुझे Whisper की architecture की पूरी जानकारी नहीं है, लेकिन सामान्यतः ASR models में decoder मौजूदा chunk के बाद आने वाली ध्वनि को भी देखकर context समझता है। इसलिए language model इसे “I like ice cream” जैसे व्याकरणिक रूप से स्वाभाविक वाक्य का अनुमान लगाने में मदद करता है।
Run Whisper audio transcriptions with one FFmpeg command
पहले sr (super resolution) filter जोड़ा गया था, लेकिन वह पुराना हो चुका है और उसके weights हासिल करना भी जटिल है; कई ML libraries (जैसे libtorch) का support भी जोड़ा गया है, लेकिन शुरुआत करना अब भी आसान नहीं है।
बेहतर होगा कि ready-to-use models को एक “models” folder में रखा जाए और upscale, noise cancel, temporal upscale जैसे कई models जल्दी इस्तेमाल किए जा सकें।
आजकल audio और video filters पर अधिकांश research ML-आधारित है, और नए codecs भी शायद ML-आधारित होने की दिशा में जाएँगे।
Whisper Wikipedia विवरण
Whisper full model list
मेरे पास एक बहुत पुरानी Japanese film है, लेकिन उसका English translation नहीं है, इसलिए मैं उसे देख नहीं पा रहा/रही हूँ।
पहले मैंने Fiverr पर translator ढूँढने की कोशिश की थी; आधिकारिक rate पर यह हज़ारों डॉलर पड़ता, मोलभाव करके इसे सैकड़ों डॉलर तक लाया गया, लेकिन फिर संपर्क ही टूट गया।
quality dialect और audio quality पर निर्भर करती है, और "large-v3" model सबसे अच्छे नतीजे देता है।
ffmpeg integration feature को इस तरह के command से इस्तेमाल किया जा सकता है:
ffmpeg -i movie.mp4 -af whisper=model=large-v3:task=translate output.srt“English” model भी वास्तव में कई भाषाओं को support करता है और सीधे English में translate कर देता है।
एक और तरीका यह है कि पहले Japanese में transcription करें और फिर किसी दूसरे translator से उसे English में बदलें। अर्थ की दृष्टि से जटिल dialogues में यह तरीका कभी-कभी बेहतर होता है।
उदाहरण)
सीधा अनुवाद: Japanese→English: whisper-standalone-win संदर्भ लिंक
यह अक्सर ऑडियो में मौजूद न होने वाली चीज़ें बना देता था, और जब वीडियो में कई भाषाएँ मिली हों तो यह पूरी तरह भ्रमित हो जाता था।
यह context को बिल्कुल नहीं समझ पाया, इसलिए YouTube जैसी automatic translation में दिखने वाली गलतियाँ बार-बार नज़र आईं।
सर्वोत्तम प्रदर्शन सबसे बड़े model के साथ मिलता है, लेकिन speed hardware पर निर्भर करती है।
दूसरा तरीका VideoToTextAI जैसा workflow भी है, जिसमें subtitle extraction → 100+ भाषाओं में translation → SRT फ़ाइल के रूप में save किया जाता है।
यह अक्सर ऐसी पंक्तियाँ random जोड़ देता है जो असल में मौजूद ही नहीं होतीं।
class classification के लिए तो यह चल सकता है, लेकिन subtitle transcription के लिए अभी कमज़ोर है।
अगर यह model sourcing के बिना Mac पर सीधे चल सके तो अच्छा होगा।
SpeechTranscriber दस्तावेज़
SpeechAnalyzer दस्तावेज़
व्यावहारिक समीक्षा और Whisper से तुलना
यानी,
1. whisper.cpp git clone
2. उस library की dependencies install करें
3. build सफल करें
4. असली model डाउनलोड करें
तभी जाकर
-af "whisper=model...filter इस्तेमाल किया जा सकता है।अगर यह तैयारी न की जाए तो सब फेल हो जाता है, और नए उपयोगकर्ताओं के लिए यह बहुत निराशाजनक होगा।
बेहतर होता कि Whisper avfilter को native बनाया जाता और सिर्फ model download करना पड़ता; इससे यह अधिक कुशल होता और वास्तविक users की संख्या भी कहीं ज़्यादा होती।
whisper-cpp project की बदलाव की गति को ध्यान में रखना होगा।
दूसरे filters (जैसे vmaf) की तरह, जहाँ dependency build और model download दोनों की ज़रूरत पड़ती है, संभावना है कि जल्द ही beginners के लिए precompiled binaries भी मिलेंगी (whisper-cpp MIT license पर भी है)।
गलतियाँ और hallucinations हैं, लेकिन यह मेरी ज़रूरत के हिसाब से ठीक काम कर रहा है।
ऐसे मामलों में speaker recognition विशेष रूप से महत्वपूर्ण लगेगा।