Python SDK रेफ़रेंस
Python SDK रेफ़रेंस
Speech Engine Python SDK के लिए क्लास, तरीके और इवेंट्स।
यह पेज Speech Engine Python SDK (elevenlabs) के सार्वजनिक API का दस्तावेज़ है।
Speech Engine रिसोर्स पाना
इंजन ID से SpeechEngineResource पाएं। रिटर्न किया गया ऑब्जेक्ट सर्वर शुरू करने, अनुरोधों को सत्यापित करने या अलग-अलग सेशन बनाने के तरीके देता है।
SpeechEngineResource
प्रॉपर्टीज़
serve
एक स्टैंडअलोन WebSocket सर्वर शुरू करें। रुकने तक ब्लॉक करता है।
ऑथेंटिकेशन बंद करना
डिफ़ॉल्ट रूप से serve() हर आने वाले कनेक्शन पर X-Elevenlabs-Speech-Engine-Authorization हेडर सत्यापित करता है। अगर आपका सर्वर ऐसी इन्फ्रास्ट्रक्चर लेयर के पीछे है जो पहले से आने वाले ट्रैफ़िक को ElevenLabs तक सीमित करती है (आमतौर पर ElevenLabs की egress रेंज तक सीमित IP allowlist), तो disable_auth=True देकर JWT सत्यापन छोड़ सकते हैं:
ऑथ बंद होने पर सर्वर तक पहुंच सकने वाला कोई भी क्लाइंट स्वीकार किया जाता है और शुरू होने पर UserWarning जारी होता है।
disable_auth=True का इस्तेमाल केवल तब करें जब सर्वर के सामने IP allowlist, कस्टम हेडर वैल्यू या
नेटवर्क स्तर की ऐसी ही कोई पाबंदी हो। इनके बिना, इंटरनेट पर कोई भी व्यक्ति सेशन खोल सकता है और
आपका कंप्यूट तथा डाउनस्ट्रीम LLM कोटा इस्तेमाल कर सकता है।
verify_request
सत्यापित करें कि आने वाला अनुरोध ElevenLabs Speech Engine API से आया है। आपके API key के SHA-256 हैश से साइन किए गए वैध JWT के लिए X-Elevenlabs-Speech-Engine-Authorization हेडर जांचता है।
इसकी ज़रूरत केवल तब है जब आप WebSocket अपग्रेड खुद मैनेज करते हैं। serve() इस्तेमाल करने पर सत्यापन अपने-आप हो जाता है (disable_auth=True सेट होने के अलावा)।
रिटर्न: bool — अनुरोध वैध होने पर True।
create_session
स्वीकार किए गए WebSocket को SpeechEngineSession में रैप करें। कस्टम सर्वर इंटीग्रेशन (जैसे FastAPI, Starlette या मैन्युअल WebSocket हैंडलिंग) के लिए इसका इस्तेमाल करें।
रिटर्न: SpeechEngineSession
SpeechEngineSession
एक WebSocket कनेक्शन को रैप करता है। हर कनेक्शन एक बातचीत दर्शाता है। सेशन ट्रांसक्रिप्ट और लाइफ़साइकल बदलावों के लिए इवेंट जारी करता है और LLM रिस्पॉन्स वापस भेजने के तरीके देता है।
नया ट्रांसक्रिप्ट आने पर, पिछले ट्रांसक्रिप्ट हैंडलर को अपने-आप रद्द कर दिया जाता है, जिससे चल रही LLM कॉल बाधित हो जाती है।
प्रॉपर्टीज़
on
किसी इवेंट के लिए हैंडलर रजिस्टर करें। चेनिंग के लिए सेशन रिटर्न करता है।
off
पहले रजिस्टर किया गया हैंडलर हटाएं।
once
ऐसा हैंडलर रजिस्टर करें जो एक बार चले और फिर खुद को हटा दे।
send_response
टेक्स्ट-टू-स्पीच सिंथेसिस के लिए Speech Engine API को LLM रिस्पॉन्स वापस भेजें। इसे on_transcript हैंडलर के अंदर कॉल करना ज़रूरी है। हैंडलर के बाहर कॉल करने पर चेतावनी जारी होती है और बिना भेजे रिटर्न हो जाता है।
SDK नीचे दिए गए LLM स्ट्रीम फ़ॉर्मैट से टेक्स्ट को अपने-आप पहचानकर निकालता है:
run
WebSocket बंद होने तक रिसीव लूप चलाएं। create_session() से मैन्युअल रूप से सेशन बनाने के बाद यही मुख्य एंट्री पॉइंट है।
close
सेशन और उसके WebSocket कनेक्शन को बंद करें।
कॉलबैक
serve() को दिए गए keyword arguments। सभी कॉलबैक वैकल्पिक हैं। हैंडलर सिंक्रोनस या एसिंक्रोनस (coroutine) फ़ंक्शन हो सकते हैं।
इवेंट्स
कॉलबैक की जगह सीधे session.on() इस्तेमाल करने पर, ये इवेंट नाम और उनके हैंडलर सिग्नेचर हैं।
टाइप-सुरक्षित इस्तेमाल के लिए इवेंट नाम कॉन्स्टेंट उपलब्ध हैं:
ConversationMessage
बातचीत के इतिहास में एक संदेश। हर टर्न पर पूरा ट्रांसक्रिप्ट on_transcript को दिया जाता है।
वायर प्रोटोकॉल
रेफ़रेंस के लिए, ये WebSocket कनेक्शन पर एक्सचेंज होने वाले JSON संदेश हैं। SDK सीरियलाइज़ेशन और डिसीरियलाइज़ेशन अपने-आप संभालता है।