पायथन में वॉयस एआई बनाएं: संपूर्ण स्पीच-टू-टेक्स्ट डेवलपर गाइड (2026)
इस संपूर्ण 2026 स्पीच-टू-टेक्स्ट डेवलपर गाइड के साथ Python में Voice AI बनाएं। रीयल-टाइम ट्रांसक्रिप्शन, API, मॉडल और प्रोडक्शन की सर्वोत्तम प्रथाएं सीखें।
TL;DR – त्वरित एकीकरण अवलोकन
API प्लेटफॉर्म: Smallest AI द्वारा Pulse STT – एक अत्याधुनिक स्पीच-टू-टेक्स्ट API जो रीयल-टाइम स्ट्रीमिंग और बैच ऑडियो ट्रांसक्रिप्शन का समर्थन करती है।
प्रमुख विशेषताएँ:
स्वचालित भाषा पहचान के साथ 32+ भाषाओं में ट्रांसक्राइब करता है
अल्ट्रा-लो लेटेंसी: स्ट्रीमिंग के लिए पहले-ट्रांसक्रिप्ट-तक-का-समय ~64ms
समृद्ध मेटाडेटा: शब्द टाइमस्टैम्प, स्पीकर डायराइजेशन, भावना पहचान, आयु/लिंग अनुमान, PII संपादन
एकीकरण के तरीके:
पहले से रिकॉर्ड किया गया ऑडियो:POST https://waves-api.smallest.ai/api/v1/pulse/get_text – बैच प्रोसेसिंग के लिए फ़ाइलें अपलोड करें
रीयल-टाइम स्ट्रीमिंग:wss://waves-api.smallest.ai/api/v1/pulse/get_text – लाइव ट्रांसक्रिप्शन के लिए WebSocket
डेवलपर अनुभव: किसी भी HTTP/WebSocket क्लाइंट या आधिकारिक SDKs (Python, Node.js) का उपयोग करें। एक ही API कुंजी के माध्यम से प्रमाणीकरण।
Pulse STT ही क्यों? अन्य प्रदाताओं की तुलना में, Pulse तेज़ प्रतिक्रिया (विशिष्ट क्लाउड STT के लिए 200-500ms बनाम 64ms) और ऑल-इन-वन सुविधाएँ प्रदान करता है (स्पीकर आईडी, भावना या PII मास्किंग के लिए अलग सेवाओं की कोई आवश्यकता नहीं है)।
आवाज उपयोगकर्ता की बातचीत का अगला साधन बनती जा रही है। वर्चुअल असिस्टेंट और वॉयस बॉट्स से लेकर मीटिंग्स में रीयल-टाइम ट्रांसक्रिप्शन तक, स्पीच इंटरफेस सॉफ्टवेयर को अधिक सुलभ और उपयोगकर्ता के अनुकूल बना रहे हैं। डेवलपर्स के पास आज ऑटोमैटिक स्पीच रिकॉग्निशन (ASR) APIs तक पहुंच है जो आवाज को टेक्स्ट में बदलते हैं, जिससे हैंड्स-फ्री कंट्रोल, लाइव कैप्शन, वॉयस सर्च और बहुत कुछ की संभावनाएं खुलती हैं।
हालांकि, वॉयस एआई को एकीकृत करना केवल ऑडियो से कच्चा टेक्स्ट प्राप्त करने से कहीं अधिक है। आधुनिक उपयोग के मामलों में गति और सटीकता की मांग होती है – एक वॉयस असिस्टेंट को कमांड को लगभग तुरंत ट्रांसक्राइब करने की आवश्यकता होती है, और एक कॉल सेंटर एनालिटिक्स टूल को न केवल ट्रांसक्रिप्ट की बल्कि यह भी आवश्यकता हो सकती है कि किसने कब और कैसे बात की।
लेटेंसी अत्यंत महत्वपूर्ण है। बातचीत में एक सेकंड की भी देरी सुस्त महसूस होती है। पारंपरिक क्लाउड स्पीच APIs में लाइव ट्रांसक्रिप्शन के लिए अक्सर 500-1200ms की लेटेंसी होती है, जबकि बेहतर APIs में यह 200-250ms के आसपास होती है। इसने उद्योग को सहज वास्तविक समय के इंटरैक्शन को सक्षम करने के लिए बेहद कम लेटेंसी – 300ms से कम – की ओर धकेला है।
इस गाइड में, हम सीखेंगे कि Smallest AI के Pulse STT का उपयोग करके इन आधुनिक मांगों को पूरा करने वाले AI वॉयस और स्पीच API को कैसे एकीकृत किया जाए। अंत तक, आप जानेंगे कि कैसे:
एक साधारण HTTP API का उपयोग करके ऑडियो फ़ाइलों (WAV/MP3) को टेक्स्ट में ट्रांसक्राइब करें
WebSockets के माध्यम से त्वरित ट्रांसक्रिप्ट के लिए लाइव ऑडियो स्ट्रीम करें
टाइमस्टैम्प, स्पीकर डायराइजेशन और भावना पहचान जैसी उन्नत सुविधाओं का लाभ उठाएं
आवाज क्षमताओं को एकीकृत करने के लिए Python और Node.js दोनों का उपयोग करें
Pulse STT को समझना
Pulse, Smallest AI के "Waves" प्लेटफॉर्म का स्पीच-टू-टेक्स्ट/ASR (ऑटोमैटिक स्पीच रिकॉग्निशन) मॉडल है। इसे स्ट्रीमिंग ऑडियो के लिए पहले ट्रांसक्राइब किए गए शब्द TTFT के लिए उद्योग-अग्रणी लेटेंसी – लगभग 64 मिलीसेकंड – के साथ तेज़, सटीक और समृद्ध ट्रांसक्रिप्शन के लिए डिज़ाइन किया गया है। यह कई अन्य विकल्पों की तुलना में बहुत तेज़ है।
प्रमुख विशेषताएँ
विशेषता
विवरण
रीयल-टाइम और बैच मोड
WebSocket के माध्यम से लाइव ऑडियो स्ट्रीम करें या HTTP POST के माध्यम से फ़ाइलें अपलोड करें
32+ भाषाएँ
अंग्रेजी, स्पेनिश, हिंदी, फ्रेंच, जर्मन, अरबी, जापानी और बहुत कुछ स्वतः पहचान के साथ
शब्द/वाक्य टाइमस्टैम्प
सटीक रूप से जानें कि प्रत्येक शब्द कब बोला गया था (उपशीर्षक के लिए बेहतरीन)
स्पीकर डायराइजेशन
वक्ताओं में अंतर करें: "वक्ता ए ने एक्स कहा, वक्ता बी ने वाई कहा"
भावना पहचान
भावनाओं के साथ सेगमेंट को टैग करें: खुश, गुस्से में, न्यूट्रल, आदि।
आयु/लिंग अनुमान
एनालिटिक्स के लिए वक्ता जनसांख्यिकी का अनुमान लगाएं
PII/PCI संपादन
क्रेडिट कार्ड, SSN और व्यक्तिगत जानकारी को स्वचालित रूप से छिपाएं
64ms लेटेंसी
स्ट्रीमिंग मोड में पहले-ट्रांसक्रिप्ट-तक-का-समय
शुरू करना: प्रमाणीकरण
चरण 1: अपनी API कुंजी प्राप्त करें
Smallest AI कंसोल पर साइन अप करें और एक API कुंजी उत्पन्न करें। यह कुंजी आपके सभी अनुरोधों को प्रमाणित करती है।
{"status":"success","transcription":"Hello, this is a test transcription.","words":[{"start":0.0,"end":0.88,"word":"Hello,","confidence":0.82,"speaker":0,"speaker_confidence":0.61},{"start":0.88,"end":1.04,"word":"this","confidence":1.0,"speaker":0,"speaker_confidence":0.76},{"start":1.04,"end":1.20,"word":"is","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.20,"end":1.36,"word":"a","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.36,"end":1.68,"word":"test","confidence":0.99,"speaker":0,"speaker_confidence":0.99},{"start":1.68,"end":2.16,"word":"transcription.","confidence":0.99,"speaker":0,"speaker_confidence":0.99}],"utterances":[{"start":0.0,"end":2.16,"text":"Hello, this is a test transcription.","speaker":0}],"age":"adult","gender":"female","emotions":{"happiness":0.28,"sadness":0.0,"anger":0.0,"fear":0.0,"disgust":0.0},"metadata":{"duration":1.97,"fileSize":63236}}
{"status":"success","transcription":"Hello, this is a test transcription.","words":[{"start":0.0,"end":0.88,"word":"Hello,","confidence":0.82,"speaker":0,"speaker_confidence":0.61},{"start":0.88,"end":1.04,"word":"this","confidence":1.0,"speaker":0,"speaker_confidence":0.76},{"start":1.04,"end":1.20,"word":"is","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.20,"end":1.36,"word":"a","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.36,"end":1.68,"word":"test","confidence":0.99,"speaker":0,"speaker_confidence":0.99},{"start":1.68,"end":2.16,"word":"transcription.","confidence":0.99,"speaker":0,"speaker_confidence":0.99}],"utterances":[{"start":0.0,"end":2.16,"text":"Hello, this is a test transcription.","speaker":0}],"age":"adult","gender":"female","emotions":{"happiness":0.28,"sadness":0.0,"anger":0.0,"fear":0.0,"disgust":0.0},"metadata":{"duration":1.97,"fileSize":63236}}
{"status":"success","transcription":"Hello, this is a test transcription.","words":[{"start":0.0,"end":0.88,"word":"Hello,","confidence":0.82,"speaker":0,"speaker_confidence":0.61},{"start":0.88,"end":1.04,"word":"this","confidence":1.0,"speaker":0,"speaker_confidence":0.76},{"start":1.04,"end":1.20,"word":"is","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.20,"end":1.36,"word":"a","confidence":1.0,"speaker":0,"speaker_confidence":0.99},{"start":1.36,"end":1.68,"word":"test","confidence":0.99,"speaker":0,"speaker_confidence":0.99},{"start":1.68,"end":2.16,"word":"transcription.","confidence":0.99,"speaker":0,"speaker_confidence":0.99}],"utterances":[{"start":0.0,"end":2.16,"text":"Hello, this is a test transcription.","speaker":0}],"age":"adult","gender":"female","emotions":{"happiness":0.28,"sadness":0.0,"anger":0.0,"fear":0.0,"disgust":0.0},"metadata":{"duration":1.97,"fileSize":63236}}
भाग 2: रीयल-टाइम स्ट्रीमिंग (WebSocket API)
लाइव ऑडियो – वॉयस असिस्टेंट, लाइव कैप्शनिंग, कॉल सेंटर एनालिटिक्स – के लिए ऑडियो स्ट्रीम आने पर आंशिक परिणामों के साथ सब-सेकंड लेटेंसी के लिए WebSocket API का उपयोग करें।
WebSocket एंडपॉइंट
क्वेरी पैरामीटर
पैरामीटर
प्रकार
डिफ़ॉल्ट
विवरण
language
string
en
भाषा कोड या स्वतः पहचान के लिए multi
encoding
string
linear16
ऑडियो प्रारूप: linear16, linear32, alaw, mulaw, opus
{"session_id":"sess_12345abcde","transcript":"Hello, how are you?","full_transcript":"Hello, how are you?","is_final":true,"is_last":false,"language":"en","words":[{"word":"Hello,","start":0.0,"end":0.5,"confidence":0.98,"speaker":0},{"word":"how","start":0.5,"end":0.7,"confidence":0.99,"speaker":0},{"word":"are","start":0.7,"end":0.9,"confidence":0.97,"speaker":0},{"word":"you?","start":0.9,"end":1.2,"confidence":0.99,"speaker":0}]}
{"session_id":"sess_12345abcde","transcript":"Hello, how are you?","full_transcript":"Hello, how are you?","is_final":true,"is_last":false,"language":"en","words":[{"word":"Hello,","start":0.0,"end":0.5,"confidence":0.98,"speaker":0},{"word":"how","start":0.5,"end":0.7,"confidence":0.99,"speaker":0},{"word":"are","start":0.7,"end":0.9,"confidence":0.97,"speaker":0},{"word":"you?","start":0.9,"end":1.2,"confidence":0.99,"speaker":0}]}
{"session_id":"sess_12345abcde","transcript":"Hello, how are you?","full_transcript":"Hello, how are you?","is_final":true,"is_last":false,"language":"en","words":[{"word":"Hello,","start":0.0,"end":0.5,"confidence":0.98,"speaker":0},{"word":"how","start":0.5,"end":0.7,"confidence":0.99,"speaker":0},{"word":"are","start":0.7,"end":0.9,"confidence":0.97,"speaker":0},{"word":"you?","start":0.9,"end":1.2,"confidence":0.99,"speaker":0}]}
मुख्य प्रतिक्रिया फ़ील्ड
फ़ील्ड
विवरण
is_final
false = आंशिक/अंतरिम ट्रांसक्रिप्ट; true = अंतिम रूप दिया गया सेगमेंट
is_last
पूरा सत्र समाप्त होने पर true
transcript
वर्तमान सेगमेंट का टेक्स्ट
full_transcript
पूरे सत्र से संचित टेक्स्ट (यदि सक्षम हो)
words
शब्द-स्तरीय टाइमस्टैम्प (यदि सक्षम हो)
भाग 3: उन्नत विशेषताएँ
स्पीकर डायराइजेशन (Diarization)
अलग-अलग वक्ताओं की पहचान करने के लिए diarize=true सक्षम करें:
{"words":[{"word":"Hello","speaker":0,"speaker_confidence":0.95},{"word":"Hi","speaker":1,"speaker_confidence":0.92}],"utterances":[{"text":"Hello, how can I help?","speaker":0},{"text":"I have a question.","speaker":1}]}
{"words":[{"word":"Hello","speaker":0,"speaker_confidence":0.95},{"word":"Hi","speaker":1,"speaker_confidence":0.92}],"utterances":[{"text":"Hello, how can I help?","speaker":0},{"text":"I have a question.","speaker":1}]}
{"words":[{"word":"Hello","speaker":0,"speaker_confidence":0.95},{"word":"Hi","speaker":1,"speaker_confidence":0.92}],"utterances":[{"text":"Hello, how can I help?","speaker":0},{"text":"I have a question.","speaker":1}]}
भावना पहचान (Emotion Detection)
वक्ता की भावनाओं का विश्लेषण करने के लिए emotion_detection=true सक्षम करें:
Next.js (पोर्ट 3000) — रिएक्ट UI परोसता है और /api/transcribe के माध्यम से फ़ाइल अपलोड को संभालता है
WebSocket प्रॉक्सी (पोर्ट 3001) — ब्राउज़र से पल्स STT WebSocket API में ऑडियो को सुरक्षित रूप से प्रॉक्सी करता है
यह आर्किटेक्चर रीयल-टाइम स्ट्रीमिंग को सक्षम करते हुए सर्वर पर आपकी API कुंजी को सुरक्षित रखता है।
परियोजना संरचना (Project Structure)
स्क्रिप्ट
कमांड
विवरण
npm run dev
केवल Next.js प्रारंभ करें
npm run dev:ws
केवल WebSocket प्रॉक्सी प्रारंभ करें
npm run dev:all
दोनों प्रारंभ करें (अनुशंसित)
उत्पादन ऐप्स के लिए यह आर्किटेक्चर पैटर्न अनुशंसित है — API कुंजियाँ सर्वर-साइड रहती हैं जबकि रिएक्ट फ्रंटएंड फ़ाइल अपलोड और रीयल-टाइम माइक्रोफ़ोन ट्रांसक्रिप्शन दोनों के साथ एक सहज उपयोगकर्ता अनुभव प्रदान करता है।
निष्कर्ष
अपने वर्कफ़्लो और ऐप्स में आवाज और भाषण क्षमताओं को एकीकृत करने से उपयोगकर्ता अनुभव में काफी सुधार हो सकता है। Pulse STT के साथ, डेवलपर्स केवल कुछ API कॉल के साथ उच्च-सटीकता, कम-लेटेंसी ट्रांसक्रिप्शन प्राप्त कर सकते हैं।
REST API का उपयोग कब करें:
पॉडकास्ट ट्रांसक्रिप्शन
मीटिंग रिकॉर्डिंग
वॉयस मेल प्रोसेसिंग
बैच एनालिटिक्स
WebSocket API का उपयोग कब करें:
लाइव कैप्शनिंग
वॉयस असिस्टेंट
कॉल सेंटर रीयल-टाइम एनालिटिक्स
इंटरैक्टिव वॉयस एप्लिकेशन्स
इस गाइड के कोड पैटर्न सीधे प्रोडक्शन पर लागू होते हैं। प्रोटोटाइपिंग के लिए REST API से शुरुआत करें, फिर वास्तविक समय की बातचीत की आवश्यकता होने पर WebSocket स्ट्रीमिंग जोड़ें।