ओपनएआई व्हिस्पर (OpenAI Whisper) (CLI और Python) कैसे चलाएं: टाइमस्टैम्प, फॉर्मेट और ट्रबलशूटिंग

एआई (AI) के साथ सारांशित करें

हमारे साथ अपने संपर्क केंद्रों (Contact Centers) को स्वचालित करें

तेज़ लेटेंसी, मजबूत सुरक्षा और असीमित स्पीच जनरेशन का अनुभव करें।

हवा में तैरते हुए टेक्स्ट बार के साथ बातचीत करते हुए एक व्यक्ति का अमूर्त चित्रण, जो OpenAI Whisper ट्रांसक्रिप्शन, CLI कमांड और पायथन वर्कफ़्लो का प्रतीक है।
हवा में तैरते हुए टेक्स्ट बार के साथ बातचीत करते हुए एक व्यक्ति का अमूर्त चित्रण, जो OpenAI Whisper ट्रांसक्रिप्शन, CLI कमांड और पायथन वर्कफ़्लो का प्रतीक है।

जानें कि CLI और Python के ज़रिए OpenAI Whisper को कैसे चलाएं, टाइमस्टैम्प को कैसे संभालें, फ़ॉर्मेट एक्सपोर्ट करें, और ट्रांसक्रिप्शन की सामान्य समस्याओं को कैसे ठीक करें।

ओपनएआई व्हिस्पर (OpenAI Whisper) उपलब्ध सबसे लोकप्रिय ओपन-सोर्स स्पीच रिकग्निशन टूल्स में से एक बन गया है। इसे 680,000 घंटे के बहुभाषी ऑडियो पर प्रशिक्षित किया गया था, और ईमानदारी से कहें तो, एक मुफ्त मॉडल के लिए इसके परिणाम काफी ठोस हो सकते हैं। उस ने कहा, यदि आप ट्रांसक्रिप्शन, सबटाइटल जनरेशन, या वॉयस-संचालित ऐप्स के लिए इसका मूल्यांकन कर रहे हैं, तो यह समझना मददगार होगा कि यह क्या अच्छा करता है और कहाँ यह कम पड़ता है। यह ट्यूटोरियल आपको कमांड लाइन और पायथन के माध्यम से व्हिस्पर का उपयोग करने का तरीका बताता है, व्यावहारिक उदाहरणों के साथ जिन्हें आप कॉपी और रन कर सकते हैं, ताकि आप खुद न्याय कर सकें कि यह आपकी आवश्यकताओं के अनुकूल है या नहीं।

हम पूरी प्रक्रिया को कवर करेंगे: अपना एनवायरनमेंट सेटअप करना, व्हिस्पर इंस्टॉल करना, ट्रांसक्रिप्शन चलाना, आउटपुट फॉर्मेट के साथ काम करना, और उन समस्याओं को ठीक करना जो लोगों को परेशान करती हैं (जैसे कि अविश्वसनीय टाइमस्टैम्प)। यहाँ इसका मोटा रोडमैप है:

  • चरण 1: अपना एनवायरनमेंट सेटअप करें। पायथन, पिप (pip) और एफएफएमपीईजी (FFmpeg) इंस्टॉल करें और तैयार रखें।

  • चरण 2: OpenAI Whisper इंस्टॉल करें। pip का उपयोग करके इसकी आधिकारिक रिपॉजिटरी से लाइब्रेरी प्राप्त करें।

  • चरण 3: CLI का उपयोग करके ऑडियो ट्रांसक्राइब करें। बुनियादी कमांड चलाएं और भाषा और मॉडल चयन के विकल्पों का पता लगाएं।

  • चरण 4: पायथन का उपयोग करके ऑडियो ट्रांसक्राइब करें। एक छोटा स्क्रिप्ट लिखें जो आपको आउटपुट पर अधिक प्रोग्रामेटिक नियंत्रण देता है।

  • चरण 5: टाइमस्टैम्प और आउटपुट फॉर्मेट को संभालें। टाइमस्टैम्प जेनरेट और व्याख्या करें, और SRT, VTT और अन्य फॉर्मेट में एक्सपोर्ट करें।

  • चरण 6: सामान्य समस्याओं का निवारण करें। मेमोरी एरर, धीमा परफॉर्मेंस, और टाइमस्टैम्प ड्रिफ्ट (timestamp drift) से निपटें।

पूर्वापेक्षाएँ: आपको क्या चाहिए होगा

शुरू करने से पहले, सुनिश्चित करें कि आपके पास ये टूल तैयार हैं। शुरुआत में ही सेटअप सही करने से बाद में आपको बहुत सी परेशानियों से बचत होगी।



  • पायथन 3.8+: व्हिस्पर एक पायथन पैकेज है, इसलिए आपको पायथन इंस्टॉल होना चाहिए। `python --version` के साथ अपना वर्जन चेक करें। यदि यह नहीं है, तो आधिकारिक पायथन वेबसाइट से नवीनतम वर्जन प्राप्त करें।

  • Pip: पायथन पैकेज इंस्टॉलर। यह आमतौर पर पायथन के साथ आता है, और आप इसका उपयोग व्हिस्पर और इसकी डिपेंडेंसीज़ को इंस्टॉल करने के लिए करेंगे।

  • FFmpeg: यह टूल लोगों को चौंका देता है। व्हिस्पर ऑडियो फाइलों को पढ़ने और बदलने के लिए FFmpeg पर निर्भर करता है, इसलिए इसे अलग से इंस्टॉल करने की आवश्यकता होती है। macOS पर, `brew install ffmpeg` चलाएं। विंडोज पर, `choco install ffmpeg` का उपयोग करें। डेबियन/उबंटू पर, यह `sudo apt update && sudo apt install ffmpeg` है।

  • बुनियादी कमांड-लाइन ज्ञान: आपको टर्मिनल खोलने, डायरेक्टरी नेविगेट करने और कमांड चलाने में सहज होना चाहिए।

  • (वैकल्पिक) CUDA के साथ GPU: यदि आप तेज़ ट्रांसक्रिप्शन चाहते हैं, विशेष रूप से बड़े मॉडल के साथ, तो CUDA सपोर्ट वाला NVIDIA GPU बहुत बड़ा अंतर पैदा करता है। केवल-CPU मोड काम करता है, लेकिन यह ध्यान देने योग्य रूप से धीमा है।

चरण 1: अपना पायथन एनवायरनमेंट सेटअप करें

वर्चुअल एनवायरनमेंट का उपयोग करना उन चीजों में से एक है जो तब तक अतिरिक्त काम की तरह लगती हैं जब तक कि यह आपको डिपेंडेंसी संघर्ष से नहीं बचा लेती। यह आपकी व्हिस्पर इंस्टॉलेशन को आपके सिस्टम की बाकी सभी चीजों से अलग रखता है। अपना टर्मिनल खोलें, अपने प्रोजेक्ट फ़ोल्डर पर जाएं और चलाएं:

# For macOS / Linux python3 -m venv whisper-env source whisper-env/bin/activate# For Windows python -m venv whisper-env whisper-env\Scripts\activate

आपको पता चल जाएगा कि यह काम कर गया जब आपका टर्मिनल प्रॉम्प्ट शुरुआत में `(whisper-env)` दिखाएगा। अब से, आप pip के साथ जो कुछ भी इंस्टॉल करेंगे वह इसी एनवायरनमेंट के अंदर रहेगा।

चरण 2: OpenAI Whisper इंस्टॉल करें

अपने वर्चुअल एनवायरनमेंट के सक्रिय होने पर, सीधे आधिकारिक OpenAI GitHub रिपॉजिटरी से व्हिस्पर इंस्टॉल करें। यह PyTorch सहित सभी डिपेंडेंसीज़ को खींच लाता है।

pip install git+https://github.com/openai/whisper.git

यदि आपके पास NVIDIA GPU है, तो यह सुनिश्चित करना उचित है कि आपके पास PyTorch का CUDA-कम्पैटिबल वर्जन है। PyTorch वेबसाइट पर जाएं और अपने विशिष्ट सेटअप के लिए इंस्टॉल निर्देशों का पालन करें। यदि आप इस चरण को छोड़ देते हैं, तो ऊपर दिया गया कमांड डिफ़ॉल्ट रूप से केवल-CPU बिल्ड पर चला जाएगा, जो अभी भी काम करता है लेकिन आपको गति का लाभ नहीं देगा।



एक सफल pip इंस्टॉलेशन व्हिस्पर और उसकी आवश्यक लाइब्रेरीज़ को डाउनलोड और सेटअप कर देगा।

चरण 3: CLI का उपयोग करके ऑडियो ट्रांसक्राइब करें

ट्रांसक्रिप्शन प्राप्त करने का सबसे तेज़ तरीका CLI है। सिंटैक्स बेहद सरल है: `whisper <audio_file>`। मान लें कि आपके पास अपनी वर्तमान डायरेक्टरी में `interview.mp3` नामक एक फ़ाइल है:

whisper interview.mp3

जब आप इसे पहली बार चलाते हैं, तो व्हिस्पर स्वचालित रूप से `small` मॉडल डाउनलोड करता है (यह गति और सटीकता के बीच एक अच्छा मध्यम मार्ग है)। यह ऑडियो को प्रोसेस करता है, ट्रांसक्रिप्शन को आपके टर्मिनल पर प्रिंट करता है, और कुछ आउटपुट फाइलें जेनरेट करता है: `interview.json`, `interview.srt`, `interview.tsv`, `interview.txt`, और `interview.vtt`।

यहाँ कुछ फ़्लैग्स दिए गए हैं जिनके बारे में आप जानना चाहेंगे:

  • `--model <model_name>`: एक अलग मॉडल चुनें। ये `tiny` (तेज़ लेकिन रफ) से लेकर `large` (धीमा लेकिन बहुत सटीक) तक होते हैं। उदाहरण: `whisper interview.mp3 --model medium`।

  • `--language <language_code>`: व्हिस्पर को बताएं कि ऑडियो किस भाषा में है। यदि आप जानते हैं कि यह अंग्रेजी है, तो `en` पास करें। स्पेनिश? `es`। इससे सटीकता में सुधार होता है। उदाहरण: `whisper audio_es.wav --language Spanish`।

  • `--output_dir <path>`: आउटपुट फाइलों को वर्तमान डायरेक्टरी के बजाय किसी विशिष्ट स्थान पर सहेजें। उदाहरण: `whisper interview.mp3 --output_dir transcripts`।

  • `--task <transcribe|translate>`: डिफ़ॉल्ट रूप से, व्हिस्पर ट्रांसक्राइब करता है। इसे `translate` पर सेट करें और यह गैर-अंग्रेजी ऑडियो को अंग्रेजी में अनुवाद कर देगा।

चरण 4: पायथन का उपयोग करके ऑडियो ट्रांसक्राइब करें

यदि आपको अधिक नियंत्रण की आवश्यकता है, या आप व्हिस्पर को किसी बड़े एप्लिकेशन में बना रहे हैं, तो पायथन बेहतर मार्ग है। आपको ट्रांसक्रिप्शन डेटा तक सीधी पहुंच मिलती है, जिससे आउटपुट के साथ कुछ भी करना आसान हो जाता है। यहाँ एक बुनियादी स्क्रिप्ट है:

import whisper# Load the desired model # Model options: tiny, base, small, medium, large model = whisper.load_model("base")# Load the audio file and transcribe # The transcribe function can take the file path directly result = model.transcribe("interview.mp3")# Print the full transcription text print(result["text"])# You can also access segments with timestamps for segment in result["segments"]:start_time = segment['start']end_time = segment['end']text = segment['text']print(f"[{start_time:.2f}s -> {end_time:.2f}s] {text}")

इसे `transcribe.py` के रूप में सहेजें और इसे `python transcribe.py` के साथ चलाएं। `result` ऑब्जेक्ट एक डिक्शनरी है जिसमें पूरा टेक्स्ट, पहचानी गई भाषा और सेगमेंट की एक सूची होती है। प्रत्येक सेगमेंट में अपना स्वयं का टेक्स्ट, आरंभ समय, समाप्ति समय और अन्य मेटाडेटा शामिल होता है। यदि आप कुछ ऐसा बना रहे हैं जो टेक्स्ट को ऑडियो प्लेबैक के साथ सिंक करता है, तो यह स्ट्रक्चर्ड आउटपुट बिल्कुल वही है जिसकी आपको आवश्यकता है।



पायथन में व्हिस्पर का उपयोग करने से टेक्स्ट सेगमेंट और टाइमस्टैम्प सहित स्ट्रक्चर्ड डेटा तक पहुंच मिलती है।

चरण 5: टाइमस्टैम्प और आउटपुट फॉर्मेट को संभालें

टाइमस्टैम्प सबसे उपयोगी चीजों में से एक है जो व्हिस्पर आपको प्रदान करता है। जैसा कि आपने पायथन उदाहरण में देखा, आउटपुट आरंभ और समाप्ति समय के साथ खंडित होकर आता है। ये वाक्य-स्तर (utterance-level) के टाइमस्टैम्प हैं, इसलिए ये व्यक्तिगत शब्दों के बजाय वाक्यांशों या वाक्यों को चिह्नित करते हैं। अधिकांश उपयोग के मामलों के लिए यह ठीक है, लेकिन कभी-कभी सटीकता थोड़ी कम हो सकती है (इसके बारे में नीचे दिए गए समस्या निवारण अनुभाग में अधिक जानकारी दी गई है)।

जब आप CLI का उपयोग करते हैं, तो व्हिस्पर स्वचालित रूप से मानक सबटाइटल और कैप्शन फ़ाइलें जेनरेट करता है। ये वे फॉर्मेट हैं जिन्हें आप देखेंगे:

सामान्य आउटपुट फॉर्मेट:

  • `.txt`: प्लेन टेक्स्ट। केवल शब्द, और कुछ नहीं।

  • `.srt` (SubRip Subtitle): सबसे व्यापक रूप से समर्थित सबटाइटल फॉर्मेट। प्रत्येक प्रविष्टि में एक संख्या, एक समय सीमा और टेक्स्ट होता है।

  • `.vtt` (WebVTT): SRT के समान लेकिन वेब के लिए डिज़ाइन किया गया। अधिक स्टाइलिंग और मेटाडेटा विकल्पों का समर्थन करता है।

  • `.json`: एक स्ट्रक्चर्ड फॉर्मेट में पूरा रॉ आउटपुट डेटा। सेगमेंट, टाइमिंग, मेटाडेटा। यदि आप आउटपुट को प्रोग्रामेटिक रूप से प्रोसेस कर रहे हैं तो उपयोग करने के लिए यह सबसे सही है।



व्हिस्पर का CLI स्वचालित रूप से ट्रांसक्रिप्शन को कई मानक फॉर्मेट्स में एक्सपोर्ट कर सकता है।

चरण 6: सामान्य समस्याओं का निवारण करें

व्हिस्पर ठोस है, लेकिन यह अपनी कुछ कमियों के बिना नहीं है। यहाँ वे समस्याएँ दी गई हैं जो सबसे अधिक बार सामने आती हैं और उनसे कैसे निपटा जाए।

1. धीमी ट्रांसक्रिप्शन गति

दस में से नौ बार, धीमी ट्रांसक्रिप्शन का मतलब है कि आप CPU पर चल रहे हैं। व्हिस्पर के पीछे का ट्रांसफार्मर आर्किटेक्चर भारी है, और इसे वास्तव में एक GPU की आवश्यकता होती है। यदि आपके लिए गति मायने रखती है, तो NVIDIA GPU एकमात्र सबसे बड़ा सुधार है जो आप कर सकते हैं। कोई GPU नहीं है? `tiny` या `base` जैसे छोटे मॉडल का उपयोग करें। आप कुछ सटीकता खो देंगे, लेकिन गति का अंतर नाटकीय होगा।

tiny

39 M

~32x

तेज़, कम-संसाधन वाला ट्रांसक्रिप्शन जहाँ सटीकता महत्वपूर्ण नहीं है।

base

74 M

~16x

CPU-आधारित एप्लिकेशन्स के लिए अच्छा संतुलन।

small

244 M

~6x

डिफ़ॉल्ट मॉडल; सामान्य उपयोग के लिए ठोस प्रदर्शन।

medium

769 M

~2x

उच्च सटीकता, उचित गति के लिए एक अच्छे GPU की आवश्यकता होती है।

large

1550 M

1x (बेसलाइन)

उच्चतम सटीकता, शक्तिशाली हार्डवेयर वाले अनुसंधान और उत्पादन प्रणालियों के लिए।

2. मेमोरी एरर (आउट ऑफ मेमोरी)

`medium` और `large` मॉडल्स काफी संसाधन मांगते हैं। उन्हें बहुत अधिक VRAM (GPU) या RAM (CPU) की आवश्यकता होती है, और यदि आपका हार्डवेयर लोड नहीं संभाल पाता है, तो आपको "आउट ऑफ मेमोरी" एरर दिखाई देगा। इसका समाधान सीधा है: किसी छोटे मॉडल पर आएं, या यदि आप बहुत लंबी ऑडियो फाइलों के साथ काम कर रहे हैं, तो व्हिस्पर को देने से पहले अपने पायथन स्क्रिप्ट में उन्हें छोटे टुकड़ों में तोड़ लें। इससे मेमोरी उपयोग को नियंत्रण में रखने में मदद मिलती है।

3. गलत टाइमस्टैम्प

यह शायद सबसे आम शिकायत है। व्हिस्पर के टाइमस्टैम्प वाक्य-स्तर के होते हैं, और वे हमेशा कराओके-शैली के कैप्शन या सटीक शब्द-स्तर के सिंक जैसी चीजों के लिए पर्याप्त सटीक नहीं होते हैं। कभी-कभी मॉडल भाषण की शुरुआत के बजाय ठहराव के अंत में एक टाइमस्टैम्प रख देता है। यदि आपको बेहतर सटीकता की आवश्यकता है, तो WhisperX को देखें। यह व्हिस्पर के ट्रांसक्रिप्शन और मूल ऑडियो को संरेखित करने के लिए फोर्स्ड एलाइनमेंट (forced alignment) का उपयोग करता है, फिर प्रत्येक शब्द के सटीक आरंभ और समाप्ति समय को इंगित करता है। यह उन एप्लिकेशन्स के लिए एक महत्वपूर्ण सुधार है जहाँ टाइमिंग वास्तव में मायने रखती है।



अधिक सटीक शब्द-स्तर के टाइमस्टैम्प प्राप्त करने के लिए WhisperX जैसे टूल्स का उपयोग किया जा सकता है।

प्रोडक्शन एनवायरनमेंट्स में सामान्य चुनौतियाँ

स्थानीय स्तर पर व्हिस्पर चलाना प्रयोग और छोटे प्रोजेक्ट्स के लिए बहुत अच्छा है, लेकिन प्रोडक्शन की बात कुछ और है। सेल्फ-होस्टिंग का मतलब है कि आप GPU इंफ्रास्ट्रक्चर, कई समवर्ती अनुरोधों को संभालने के लिए स्केलिंग, और सब कुछ सुचारू रूप से चलाने के लिए खुद जिम्मेदार हैं। हार्डवेयर और इंजीनियरिंग समय, दोनों में लागत तेजी से बढ़ती है। और यदि आपको रीयल-टाइम ट्रांसक्रिप्शन की आवश्यकता है, तो बड़े व्हिस्पर मॉडल की लेटेंसी (latency) एक वास्तविक समस्या हो सकती है क्योंकि वे बैच प्रोसेसिंग के लिए डिज़ाइन किए गए थे, स्ट्रीमिंग के लिए नहीं।

यही वह जगह है जहाँ प्रबंधित समाधान (managed solutions) बहुत मायने रखते हैं। Smallest.ai पर, हमने विशेष रूप से इन प्रोडक्शन चुनौतियों से निपटने के लिए अपने स्पीच मॉडल बनाए हैं: कम लेटेंसी, उच्च थ्रूपुट, और उस तरह की विश्वसनीयता जिसकी आपको कुशल AI वॉयस बॉट्स बनाने जैसे रीयल-टाइम एप्लिकेशन्स के लिए आवश्यकता होती है। हम इंफ्रास्ट्रक्चर की देखभाल करते हैं ताकि आप GPU प्रोविज़निंग या मॉडल ऑप्टिमाइज़ेशन के बारे में सोचे बिना एक साधारण API कॉल के माध्यम से स्पीच-टू-टेक्स्ट को एकीकृत कर सकें। ओपन-सोर्स व्हिस्पर कई उपयोग के मामलों के लिए शानदार है, लेकिन जब आपको कम लेटेंसी के साथ स्केल करने की आवश्यकता होती है, तो एक विशेष सेवा अक्सर अधिक व्यावहारिक और लागत प्रभावी विकल्प होती है।



प्रबंधित सेवाएं ASR इंफ्रास्ट्रक्चर को स्केल करने और बनाए रखने की जटिलताओं को दूर करती हैं।

निष्कर्ष और आगे कहाँ जाएँ

इस बिंदु पर, आपके पास स्पीच रिकग्निशन के लिए OpenAI Whisper चलाने के लिए आवश्यक सब कुछ है। हमने एनवायरनमेंट सेटअप, इंस्टॉलेशन, CLI और पायथन के माध्यम से ट्रांसक्रिप्शन, आउटपुट फॉर्मेट और आपके सामने आने वाली सबसे आम समस्याओं को कवर किया। यह सभी प्रकार के ऑडियो ट्रांसक्रिप्शन कार्य से निपटने के लिए एक ठोस आधार है।

एक बार जब आप बुनियादी बातों से सहज हो जाते हैं, तो तलाशने के लिए और भी बहुत कुछ है। आप व्हिस्पर को एक बड़े एप्लिकेशन में प्लग कर सकते हैं, विशेष शब्दावली के लिए एक कस्टम डेटासेट पर फाइन-ट्यूनिंग का प्रयोग कर सकते हैं, या वॉयस बॉट आर्किटेक्चर में गहराई से जाकर देख सकते हैं कि ट्रांसक्रिप्शन एक बड़ी प्रणाली में कैसे फिट बैठता है। वॉयस एआई एक ऐसा क्षेत्र है जहाँ दिलचस्प चीजें बनाने की बहुत गुंजाइश है, और व्हिस्पर के साथ व्यावहारिक अनुभव प्राप्त करना एक मजबूत शुरुआती बिंदु है। अधिक गाइड और अंतर्दृष्टि के लिए, हमारा ब्लॉग देखें।

एआई (AI) के साथ सारांशित करें

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104