31 पॉइंट द्वारा GN⁺ 2025-08-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 -  
      

1 टिप्पणियां

 
GN⁺ 2025-08-14
Hacker News की राय
  • मैंने खुद अनुभव किया है कि Whisper सच में एक कमाल का टूल है; सही prompt दिया जाए तो यह जीवन में सकारात्मक बदलाव ला सकता है।
    मैं 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 करना पड़ सकता है।
    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  
    
    अगर इससे error ठीक हो जाए, तो किस समस्या और किस समाधान से ठीक हुआ यह comment में लिख दें; इससे दूसरों को मदद मिलेगी (और web search में भी काम आएगा)।
    Subtitle Edit होमपेज
    Subtitle Edit डेवलपर donation पेज
    Subtitle Edit latest version releases
    • uv में torch से जुड़े packages install करते समय यह cuda driver के हिसाब से सही tensor version अपने-आप चुन लेता है। लेकिन इसे system Python की बजाय virtual environment (venv) में इस्तेमाल करना बेहतर है।
      नीचे दिए command से automatic backend selection किया जा सकता है।
      uv pip install torch torchvision torchaudio --torch-backend=auto
      विस्तृत गाइड लिंक
      torch वाले packages torch index से और बाकी PyPI से डाउनलोड होते हैं, इसलिए conflict की चिंता नहीं है।
    • Aegisub का development अब भी fork के रूप में जारी है। दोनों software का स्वभाव अलग है, इसलिए सीधी तुलना मुश्किल है; इन्हें पूरक रूप में इस्तेमाल किया जा सकता है। वास्तविक transcription के लिए Subtitle Edit कहीं अधिक उपयुक्त है, जबकि typography जैसे कामों में Aegisub अब भी मज़बूत है।
    • Subtitle Edit शानदार है, लेकिन hardware (Python, Nvidia GPU आदि) की सीमाएँ हो सकती हैं। अगर GPU नहीं है या server setup झंझट लगे, तो lemonfox.ai जैसा सरल और सस्ता API भी एक विकल्प है।
    • क्या आप कुछ ठोस उदाहरण दे सकते हैं कि Whisper ने आपकी ज़िंदगी किस तरह बहुत बेहतर बनाई?
    • Whisper का प्रदर्शन बहुत अच्छा है, तो फिर YouTube के automatic subtitles अब भी इतने खराब क्यों हैं? Whisper का सबसे छोटा model भी Google के solution से बेहतर लगता है; क्या यह licensing issue है या बड़े पैमाने पर deploy करना कठिन है?
  • उम्मीद है कि अगर local transcription का इस्तेमाल और व्यापक हुआ, तो वीडियो बनाने वाले लोग चमकीले और परेशान करने वाले subtitles को वीडियो में सीधे burn-in करना कम करेंगे।
    मैंने professionally बने tech videos में भी ऐसे subtitles देखे हैं जिन्हें हटाया नहीं जा सकता, जबकि उनकी ज़रूरत नहीं थी। यह कोई cat video नहीं है, फिर भी ऐसा करना कुछ ज़्यादा ही है।
    local transcription से auto-translation संभव हो जाता है, और पहले से जले हुए subtitles के ऊपर फिर से subtitles दिखाने वाली असुविधाजनक स्थिति भी खत्म हो सकती है।
    • वीडियो में burn-in subtitles डालने का मकसद user experience से ज़्यादा 'engagement' बढ़ाना होता है।
    • तुलना करनी हो तो, पहले fans जो anime openings के लिए themed subtitles बनाते थे, वे आजकल के burn-in subtitles से कहीं ज़्यादा अच्छे लगते थे।
    • आखिरकार इसमें algorithm का प्रभाव बहुत बड़ा है। मान लें कि हर device पर real-time 100% accurate subtitles भी मिल जाएँ, तब भी अगर burn-in subtitles से वीडियो बेहतर perform करता है, तो लोग उन्हें लगाते रहेंगे।
    • burn-in subtitles की समस्या यह भी है कि भाषा बदली नहीं जा सकती।
    • इस प्रवृत्ति का एक कारण YouTube का 'soundless autoplay' feature भी है। जले हुए subtitles लोगों को वीडियो की ओर खींचने में मदद करते हैं।
  • Whisper एक audio transcription model है, तो क्या इसमें सुनते समय पहले के हिस्से को बाद में जाकर संशोधित करने की क्षमता होती है?
    उदाहरण के लिए, “I scream” और “Ice cream” जैसे मामले में, जहाँ उच्चारण मिलता-जुलता है लेकिन अर्थ बिल्कुल अलग है, क्या यह बाद में आने वाले लंबे context के आधार पर पहले के text result को बदल सकता है?
    मुझे लगता है कि real-time होने के साथ accuracy भी पाने के लिए यह ज़रूरी शर्त है। वास्तव में Android transcription में मैंने देखा है कि बोलते समय text लगातार adjust होता रहता है।
    • मैं अपने सबसे पसंदीदा paper titles में से एक की सिफारिश करता/करती हूँ।
      "How to wreck a nice beach you sing calm incense"
      पेपर लिंक
    • मुझे लगता है कि मानव subtitle writers या script writers हमेशा इस बात पर सोचते होंगे कि जानबूझकर अस्पष्ट संवाद, wordplay, या कहानी में अहम गलतफहमी वाले dialogues को text में कैसे उतारा जाए। जो सुना गया उसे लिखना और वास्तव में जो कहा गया उसे लिखना, ये दो अलग बातें हैं।
      मैं यह भी सोचता/सोचती हूँ कि जन्मजात श्रवण-बाधित लोग क्या spoken wordplay (भाषाई खेल, लय आदि) को समझने/रचने के लिए अलग से अध्ययन करते हैं।
      यह कुछ वैसा होगा जैसे बिना अनुभवजन्य संवेदना के abstract mathematics से काम करना; हालाँकि गणितज्ञ भी कहते हैं कि उनके abstraction से संगीत जैसे अनुभवात्मक phenomena निकलते हैं, इसलिए यह बात दिलचस्प है।
    • Whisper 30-second chunks में काम करता है। इस network structure की वजह से यह आगे-पीछे के context को देखकर output बदल सकता है। लेकिन इसी कारण इसमें hallucination भी काफ़ी होते हैं।
    • “I scream”, “ice cream” की तुलना में ‘I’ पर अधिक ज़ोर देता लगता है। फिर भी मैं सहमत हूँ कि context ज़रूरी है।
    • अगर इस विषय में रुचि है, तो Stanford की “Speech and Language Processing” किताब का chapter 16.3 और उसके बाद वाले chapters देखिए।
      संबंधित pdf लिंक
      मुझे Whisper की architecture की पूरी जानकारी नहीं है, लेकिन सामान्यतः ASR models में decoder मौजूदा chunk के बाद आने वाली ध्वनि को भी देखकर context समझता है। इसलिए language model इसे “I like ice cream” जैसे व्याकरणिक रूप से स्वाभाविक वाक्य का अनुमान लगाने में मदद करता है।
  • इसी संदर्भ में, इस patch के लेखक का यह blog भी सुझाया गया है।
    Run Whisper audio transcriptions with one FFmpeg command
  • उम्मीद है कि यह FFmpeg में और अधिक ML-आधारित filters जुड़ने की शुरुआत होगी।
    पहले 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 की बात हो रही है, क्या वह OpenAI का speech recognition AI model ही है?
    Whisper Wikipedia विवरण
    • हाँ, और इसका C++ implementation भी मौजूद है: whisper.cpp GitHub
    • हाँ। documentation से सीधा उद्धरण:

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

    • पूरी तरह एक model नहीं, बल्कि एक 'audio transcription model family' है (कई versions और model groups)।
      Whisper full model list
  • मुझे Whisper के बारे में बिल्कुल जानकारी नहीं है; क्या इसे automatic translation, खासकर Japanese → English, के लिए भी इस्तेमाल किया जा सकता है?
    मेरे पास एक बहुत पुरानी Japanese film है, लेकिन उसका English translation नहीं है, इसलिए मैं उसे देख नहीं पा रहा/रही हूँ।
    पहले मैंने Fiverr पर translator ढूँढने की कोशिश की थी; आधिकारिक rate पर यह हज़ारों डॉलर पड़ता, मोलभाव करके इसे सैकड़ों डॉलर तक लाया गया, लेकिन फिर संपर्क ही टूट गया।
    • Whisper निश्चित रूप से Japanese को English में transcribe और translate कर सकता है।
      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 में यह तरीका कभी-कभी बेहतर होता है।
      उदाहरण)
      सीधा अनुवाद:
      faster-whisper-xxl.exe --language English --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      Japanese→English:
      faster-whisper-xxl.exe --language Japanese --task translate --model large-v2 --ff_vocal_extract mdx_kim2 --vad_method pyannote_v3 --standard   
      
      whisper-standalone-win संदर्भ लिंक
    • मेरे अनुभव में transcription पूरी तरह विफल रहा।
      यह अक्सर ऑडियो में मौजूद न होने वाली चीज़ें बना देता था, और जब वीडियो में कई भाषाएँ मिली हों तो यह पूरी तरह भ्रमित हो जाता था।
      यह context को बिल्कुल नहीं समझ पाया, इसलिए YouTube जैसी automatic translation में दिखने वाली गलतियाँ बार-बार नज़र आईं।
    • Whisper से Japanese videos के लिए subtitles और translation (सिर्फ English) दोनों संभव हैं।
      सर्वोत्तम प्रदर्शन सबसे बड़े model के साथ मिलता है, लेकिन speed hardware पर निर्भर करती है।
      दूसरा तरीका VideoToTextAI जैसा workflow भी है, जिसमें subtitle extraction → 100+ भाषाओं में translation → SRT फ़ाइल के रूप में save किया जाता है।
    • Whisper में hallucination गंभीर समस्या है।
      यह अक्सर ऐसी पंक्तियाँ random जोड़ देता है जो असल में मौजूद ही नहीं होतीं।
      class classification के लिए तो यह चल सकता है, लेकिन subtitle transcription के लिए अभी कमज़ोर है।
  • क्या Apple का आने वाला speech API भी ffmpeg में जोड़ा जा सकता है?
    अगर यह model sourcing के बिना Mac पर सीधे चल सके तो अच्छा होगा।
    SpeechTranscriber दस्तावेज़
    SpeechAnalyzer दस्तावेज़
    व्यावहारिक समीक्षा और Whisper से तुलना
  • इस PR/patch की एकमात्र समस्या यह है कि यह सिर्फ whisper.cpp library के लिए avfilter wrapper देता है, और dependency management उपयोगकर्ता को खुद करना पड़ता है।
    यानी,
    1. whisper.cpp git clone
    2. उस library की dependencies install करें
    3. build सफल करें
    4. असली model डाउनलोड करें
    तभी जाकर -af "whisper=model... filter इस्तेमाल किया जा सकता है।
    अगर यह तैयारी न की जाए तो सब फेल हो जाता है, और नए उपयोगकर्ताओं के लिए यह बहुत निराशाजनक होगा।
    बेहतर होता कि Whisper avfilter को native बनाया जाता और सिर्फ model download करना पड़ता; इससे यह अधिक कुशल होता और वास्तविक users की संख्या भी कहीं ज़्यादा होती।
    • end users के लिए यह बेहतर होता, लेकिन FFmpeg की ओर से maintenance के लिहाज़ से यह काफ़ी कठिन है।
      whisper-cpp project की बदलाव की गति को ध्यान में रखना होगा।
      दूसरे filters (जैसे vmaf) की तरह, जहाँ dependency build और model download दोनों की ज़रूरत पड़ती है, संभावना है कि जल्द ही beginners के लिए precompiled binaries भी मिलेंगी (whisper-cpp MIT license पर भी है)।
  • मैं FFmpeg और Whisper का उपयोग करके अपने शहर के police scanner की live audio को real-time में record और transcribe कर रहा/रही हूँ, और उसे तुरंत website पर update भी कर रहा/रही हूँ।
    गलतियाँ और hallucinations हैं, लेकिन यह मेरी ज़रूरत के हिसाब से ठीक काम कर रहा है।
    • अगर website सार्वजनिक है, तो मैं उसे ज़रूर देखना चाहूँगा/चाहूँगी।
    • मैं यह सुविधा अपने इलाके की county council meetings पर लागू करना चाहता/चाहती था/थी।
      ऐसे मामलों में speaker recognition विशेष रूप से महत्वपूर्ण लगेगा।