Whisper API सर्वर: सेटअप विकल्प और टेक्स्ट चरण
Whisper API सर्वर एक HTTP सर्विस है जो ऑडियो स्वीकार करता है और ट्रांसक्रिप्ट लौटाता है। यह केवल स्पीच संभालता है, इसलिए शब्दों के बाद जो भी करना हो, उसके लिए अलग टेक्स्ट मॉडल की आवश्यकता होती है।
अपडेट किया गया

मुख्य बिंदु
- Whisper एक स्पीच-टू-टेक्स्ट मॉडल है; एक सर्वर इसे HTTP एंडपॉइंट के पीछे लपेटता है।
- आप एक होस्टेड एंडपॉइंट किराए पर ले सकते हैं, स्वयं होस्ट करने वाला व्रैपर सेट कर सकते हैं, या लोकल बाइनरी चला सकते हैं।
- यह API केवल टेक्स्ट के लिए है: यह ट्रांसक्रिप्शन के बाद का चरण करता है, ऑडियो चरण नहीं।
- दोनों चरण Python का उपयोग करके OpenAI SDK के दो बार कॉल से जुड़ते हैं।
संक्षिप्त उत्तर
Whisper एक ओपन-सोर्स स्पीच रिकग्निशन मॉडल है जिसे OpenAI ने प्रकाशित किया है। अकेला यह एक मॉडल फ़ाइल और कुछ इनफ़रेंस कोड है। एक सर्वर इसके सामने एक HTTP इंटरफ़ेस लगाता है, ताकि आपका ऐप ऑडियो फ़ाइल भेज सके और टेक्स्ट प्राप्त कर सके, बिना सीधे Python फ़ंक्शन कॉल किए।
अधिकांश सर्वर OpenAI ट्रांसक्रिप्शन एंडपॉइंट की संरचना की नकल करते हैं, POST /v1/audio/transcriptions, जो ऑडियो फ़ाइल और मॉडल नाम के साथ एक मल्टीपार्ट अपलोड लेता है। यही संरचना वह कारण है कि एक ही क्लाइंट लाइब्रेरी होस्टेड सेवा, अपनी मशीन पर एक कंटेनर, या किसी अन्य व्यक्ति द्वारा लिखे गए एक छोटे वेपर से बात कर सकती है।
- इनपुट: एक ऑडियो फ़ाइल, आमतौर पर mp3, wav, m4a या इसी प्रकार की।
- आउटपुट: सादा टेक्स्ट, या सेगमेंट और टाइमस्टैम्प के साथ JSON, सर्वर के अनुसार।
- शामिल नहीं: सारांश, परिष्कृत भाषा में अनुवाद, कार्य-अनुसार आइटम निकालना। इनके लिए एक भाषा मॉडल की आवश्यकता होती है।
Whisper सर्वर प्राप्त करने के तीन तरीके
1. एक होस्टेड एंडपॉइंट
OpenAI एक होस्टेड ट्रांसक्रिप्शन एंडपॉइंट प्रदान करता है, और अन्य प्रदाता Whisper-आधारित ट्रांसक्रिप्शन भी बेचते हैं। आप उपयोग के लिए भुगतान करते हैं, आप हार्डवेयर प्रबंधित नहीं करते हैं, और आप अपने ऑडियो किसी अन्य व्यक्ति की इंफ्रास्ट्रक्चर पर भेजते हैं। प्रदाताओं के बीच बिलिंग मॉडल अलग-अलग होते हैं, और स्पीच सेवाएं आमतौर पर ऑडियो अवधि के आधार पर चार्ज करती हैं, इसलिए किसी भी मात्रा के लिए प्रतिबद्ध होने से पहले उनकी वर्तमान मूल्य सूची जांचें।
2. एक सेल्फ-होस्टेड व्रैपर
कई ओपन-सोर्स प्रोजेक्ट Whisper या इसके पुनः कार्यान्वयन को एक वेब सर्वर में घेरते हैं जो OpenAI ट्रांसक्रिप्शन राउट की नकल करता है। आप इसे GPU वाले मशीन पर Docker में चलाते हैं, या CPU पर यदि आप धीमी प्रोसेसिंग स्वीकार करते हैं। यह आपको यह नियंत्रण देता है कि ऑडियो कहाँ जाता है। यह आपको मॉडल डाउनलोड, अपडेट, क्यूइंग और रीस्टार्ट की जिम्मेदारी भी देता है।
3. एक लोकल बाइनरी
whisper.cpp प्रोजेक्ट मॉडल का C और C++ पोर्ट है, और इसके रिपॉजिटरी में एक उदाहरण HTTP सर्वर शामिल है। यह साधारण लैपटॉप और छोटे सर्वरों पर चलता है, जो इसे एक प्रोटोटाइप या एक अकेले उपयोगकर्ता के लिए अच्छा विकल्प बनाता है जो दिन में कुछ रिकॉर्डिंग्स ट्रांसक्राइब करता है। सैकड़ों घंटों के बैच जॉब्स के लिए, GPU-सहायक सेवा आमतौर पर अधिक व्यावहारिक होती है।
तीन प्रश्नों के आधार पर चुनें: ऑडियो कहाँ जा सकता है, आप मासिक रूप से कितने घंटे प्रोसेस करते हैं, और सेवा को चलाने वाला कौन है। नीचे वर्णित टेक्स्ट स्टेप तीनों में से किसी के साथ समान तरीके से काम करता है।
ट्रांसक्रिप्शन के बाद टेक्स्ट LLM API कहाँ फिट बैठता है
एक कच्चा Whisper ट्रांसक्रिप्ट टेक्स्ट की एक दीवार होता है। इसमें पैराग्राफ के कम ब्रेक होते हैं, स्पीकर के नाम गायब रहते हैं जब तक कि आप डायरिज़ेशन अलग से न जोड़ें, और फ़िलर शब्द वैसे ही रह जाते हैं। Whisper उत्पाद नामों, जार्गन और उचित नामों के साथ भी गलतियाँ करता है। लगभग हर वास्तविक प्रोजेक्ट में टेक्स्ट पर काम करने वाला एक दूसरा चरण जोड़ा जाता है।
आम तौर पर दूसरे चरण के कार्य:
- विराम चिह्नों को ठीक करें, पैराग्राफ में विभाजित करें, गलत शुरुआतें हटाएं।
- कॉल या व्याख्यान का सारांश कुछ बुलेट पॉइंट्स में बनाएं।
- संरचित डेटा जैसे निर्णय, नाम और तारीखें JSON के रूप में निकालें।
- बोली गई सामग्री को एक आर्टिकल, स्क्रिप्ट या शो नोट्स में फिर से लिखें।
- साफ़ किए गए टेक्स्ट का अनुवाद या स्थानीयकरण करें।
यह सेवा यहाँ फिट बैठती है। यह एक OpenAI-अनुकूल टेक्स्ट API है जिसमें एक मॉडल, uncensored, 100,000-टोकन की कॉन्टेक्स्ट विंडो और स्ट्रीमिंग शामिल है। एक दो घंटे की इंटरव्यू ट्रांसक्रिप्ट अक्सर एक ही अनुरोध में फिट हो जाती है, इसलिए आप उन छोटी कॉन्टेक्स्ट विंडो द्वारा आपको थोपे गए चंकिंग लॉजिक को छोड़ सकते हैं। लंबी सामग्री के लिए अनुरोध विवरण के लिए क्विकस्टार्ट दस्तावेज़ देखें।
मॉडल को कानूनी वयस्क उपयोग के लिए बिना सेंसर जवाब देने के लिए ट्यून किया गया है। यह ट्रांसक्रिप्शन पाइपलाइन्स के लिए मायने रखता है क्योंकि स्रोत ऑडियो अप्रत्याशित होता है: इंटरव्यू, पॉडकास्ट, कथात्मक पठन और सपोर्ट कॉल में कठोर भाषा और कठिन विषय होते हैं। एक ऐसा मॉडल जो बोलने वाले के गाली देने के कारण ट्रांसक्रिप्ट को साफ़ नहीं करता, एक भुगतान वाली ट्रांसक्रिप्शन रन बर्बाद करता है। एकमात्र कठोर सीमा यह है कि नाबालिगों से जुड़े यौन सामग्री को स्वीकार नहीं किया जाता।
एक कार्यरत दो-चरणीय पाइपलाइन
OpenAI Python SDK आपको अलग-अलग बेस URL के साथ दो क्लाइंट बनाने की अनुमति देता है। एक आपकी Whisper सर्वर की ओर इशारा करता है, दूसरा इस API की ओर। अपनी स्वयं की ट्रांसक्रिप्शन सेवा के लिए पर्यावरण चर सेट करें; दूसरा क्लाइंट इस साइट के लिए बेस URL का उपयोग करता है।
import os
from openai import OpenAI
# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])
# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])
with open("call.mp3", "rb") as f:
transcript = stt.audio.transcriptions.create(
model=os.environ["STT_MODEL"], # the model name your server expects
file=f,
)
resp = llm.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
{"role": "user", "content": transcript.text},
],
temperature=0.2,
)
print(resp.choices[0].message.content)OpenAI Python SDK आपको अलग-अलग बेस URL के साथ दो क्लाइंट बनाने की अनुमति देता है। एक आपकी Whisper सर्वर की ओर इशारा करता है, दूसरा इस API की ओर। अपने ट्रांसक्रिप्शन सेवा के लिए एन्वायरनमेंट वेरिएबल सेट करें; दूसरा क्लाइंट इस साइट के बेस URL का उपयोग करता है।
यदि आप शेल पसंद करते हैं, तो टेक्स्ट चरण एक सामान्य चैट कम्प्लीशन अनुरोध है:
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
]
}'प्रमाणीकरण Authorization हेडर में एक Bearer कुंजी है, और एंडपॉइंट POST /v1/chat/completions और GET /v1/models हैं। आप API कुंजी पेज से एक कुंजी प्राप्त कर सकते हैं; नए खातों वहाँ एक क्लिक से $0.50 का मुफ़्त ट्रायल क्रेडिट दावा कर सकते हैं, जो 7 दिनों के लिए मान्य है और बिना कार्ड के।
व्यावहारिक रूप से टूटने वाली चीज़ें
बड़े ऑडियो फ़ाइलें
अधिकांश Whisper सर्वर अपलोड साइज़ को सीमित करते हैं, और लंबे रिकॉर्डिंग अनुरोध के बीच में टाइमआउट हो सकते हैं। ffmpeg जैसे टूल का उपयोग करके ऑडियो को दस से तीस मिनट के टुकड़ों में विभाजित करें, प्रत्येक टुकड़े का ट्रांसक्रिप्ट तैयार करें, और फिर टेक्स्ट को जोड़ें। चूँकि टेक्स्ट API 100,000 टोकन तक स्वीकार करता है, आप टुकड़ों को जोड़कर उन्हें एक प्रॉम्प्ट के रूप में भेज सकते हैं। इस API पर अनुरोध बॉडी की सीमा 8 MB है, जो किसी भी ट्रांसक्रिप्ट की आवश्यकता से कहीं अधिक है।
रेट और कन्करेंसी सीमाएँ
एक पूर्ण कुंजी 8 समानांतर अनुरोध और प्रति मिनट 300 अनुरोधों की अनुमति देती है; ट्रायल कुंजी 2 और 60 की अनुमति देती है। यदि आप कई वर्कर्स के साथ एक कतार चला रहे हैं, तो इसे अपनी कुंजी की समानांतरता पर सीमित करें। अधिक जाने पर HTTP 429 लौटाया जाता है, जिसमें प्रति मिनट अनुरोधों के लिए rate_limited और एक साथ बहुत अधिक अनुरोधों के लिए concurrency कोड होता है। एक स्ट्रीम किए गए अनुरोध में अपनी जगह तब तक बनी रहती है जब तक कि स्ट्रीम समाप्त न हो जाए, इसलिए एक अवरुद्ध क्लाइंट आपकी उम्मीद से अधिक समय के लिए एक जगह ब्लॉक कर सकता है। पीछे हटें और पुनः प्रयास करें; यदि प्रतिक्रिया में Retry-After: 5 हेडर है, तो उतना ही समय प्रतीक्षा करें।
वे ट्रांसक्रिप्शन त्रुटियाँ जिन्हें LLM नहीं देख सकता
यदि Whisper ने गलत शब्द सुना, तो टेक्स्ट मॉडल केवल गलत शब्द देखता है। यह गलती को छिपा भी सकता है और उसे जानबूझकर किया हुआ दिखा सकता है। नामों और शब्दों की एक ग्लोसरी सिस्टम प्रॉम्प्ट में डालें, और मॉडल को अनुमान लगाने के बजाय अनिश्चित खंडों को चिह्नित करने के लिए कहें। महत्वपूर्ण सामग्री के लिए, साफ़ की गई ट्रांसक्रिप्ट के बगल में मूल ट्रांसक्रिप्ट रखें।
हल्युसिनेटेड फिलर
Whisper कभी-कभी मौन या संगीत के दौरान काल्पनिक पाठ उत्पन्न करता है। भेजने से पहले मौन को काटें, और दूसरे चरण से कहें कि वे वाक्य जो असंगत लगें, उन्हें चिह्नित करें। एक कम temperature, जैसे 0.2, सफाई को स्रोत के करीब रखता है।
यह API क्या नहीं करती
यह ऑडियो ट्रांसक्राइब नहीं करता है। कोई ऑडियो इनपुट, कोई स्पीच आउटपुट, कोई इमेज या वीडियो जनरेशन, कोई एम्बेडिंग और कोई फाइन-ट्यूनिंग नहीं है। यह एक चैट पूर्णता एंडपॉइंट के पीछे एक होस्टेड टेक्स्ट मॉडल है, जो एक स्वतंत्र प्रदाता द्वारा चलाया जाता है, और यह OpenAI या किसी अन्य मॉडल विक्रेता की आधिकारिक API नहीं है। यदि आपके प्रोजेक्ट को दोनों आधे हिस्सों की आवश्यकता है, तो आपको पहले के लिए एक स्पीच सर्वर और दूसरे के लिए इस सेवा की आवश्यकता होगी।
प्रॉम्प्ट प्रशिक्षण के लिए उपयोग नहीं किए जाते। यह आपके स्पीच प्रदाता द्वारा ऑडियो के साथ जो कुछ भी करता है, उससे अलग है, इसलिए उस प्रदाता की अपनी शर्तें पढ़ें।
लागत योजना के लिए, पाठ पक्ष प्रति टोकन के आधार पर चार्ज किया जाता है: $0.15 प्रति मिलियन इनपुट टोकन और $0.50 प्रति मिलियन आउटपुट टोकन, प्रीपेड क्रेडिट से जो कभी खत्म नहीं होता। मूल्य निर्धारण पृष्ठ पर टॉप-अप आकार और बोनस सूचीबद्ध हैं। विफल या अस्वीकृत अनुरोधों के लिए चार्ज नहीं किया जाता है, जिससे रीट्राई लूप में आपको पैसा खर्च नहीं करना पड़ता।
शुरुआत करने का एक समझदारी भरा तरीका
- एक Whisper-अनुकूल सर्वर चलाएं, होस्टेड या स्थानीय, और पुष्टि करें कि यह एक मिनट की फ़ाइल के लिए टेक्स्ट लौटाता है।
- एक खाता बनाएँ, ट्रायल क्रेडिट दावा करें, और एक छोटे ट्रांसक्रिप्शन के साथ ऊपर दिया गया curl कमांड चलाएँ।
- पायथन स्क्रिप्ट का उपयोग करके दोनों क्लाइंट्स को आपकी इच्छित क्लीनअप शैली के लिए अपने सिस्टम प्रॉम्प्ट के साथ जोड़ें।
- केवल तभी एक कतार जोड़ें जब सिंगल-फ़ाइल फ्लो काम कर ले, और इसे अपनी कुंजी की समानांतरता के अनुसार सेट करें।
ज्यादातर प्रयास प्रॉम्प्ट और ऑडियो हैंडलिंग में जाता है, न कि ग्लू कोड में। एक रिकॉर्डिंग से शुरू करें जिसके बारे में आपको अच्छी जानकारी है, आउटपुट को उस आवाज़ से तुलना करें जिसे आपने सुना, और स्केल अप करने से पहले निर्देशों में सुधार करें।
अधिक गाइड
प्रश्न और उत्तर
क्या Whisper API सर्वर OpenAI API के समान है?
नहीं। Whisper एक मॉडल है, और सर्वर वह प्रोग्राम है जो इसे HTTP पर एक्सपोज़ करता है। OpenAI एक होस्टेड वर्जन चलाता है, और कई लोग ओपन-सोर्स टूल्स से उसी ट्रांसक्रिप्शन राउट को कॉपी करके अपना सर्वर चलाते हैं।
क्या यह API ऑडियो फ़ाइलों का ट्रांसक्रिप्शन कर सकता है?
नहीं। यह केवल टेक्स्ट स्वीकार करता है। ऑडियो चरण के लिए वॉइस सर्विस या अपना Whisper सर्वर उपयोग करें, फिर ट्रांसक्रिप्ट यहाँ भेजें।
टेक्स्ट चरण के लिए मुझे कौन सा मॉडल नाम उपयोग करना चाहिए?
मॉडल ID के रूप में uncensored का उपयोग करें, बेस URL https://api.whisperapis.com/v1 और अपनी कुंजी को Bearer टोकन के रूप में सेट करें।
मैं कितना लंबा ट्रांसक्रिप्ट भेज सकता हूँ?
कॉन्टेक्स्ट विंडो 100,000 टोकन की है, जो प्रॉम्प्ट और कंप्लीशन दोनों को कवर करती है। यह एक ही अनुरोध में कई घंटों के रिकॉर्डिंग के लिए पर्याप्त है।
इसे आज़माने के लिए कार्ड की आवश्यकता है?
नहीं। नए उपयोगकर्ता साइन-अप के बाद API कुंजी पृष्ठ पर एक क्लिक से $0.50 का ट्रायल क्रेडिट दावा कर सकते हैं, बिना कार्ड के।
आपकी कुंजी बस एक फ़ॉर्म दूर है
एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। सेटअप यही है।