Speech Engine क्विकस्टार्ट
Speech Engine क्विकस्टार्ट
ElevenLabs SDK का इस्तेमाल करके अपने चैट एजेंट में वॉइस जोड़ें।
यह गाइड आपको Speech Engine के साथ वॉइस-आधारित एजेंट बनाना सिखाती है। आप एक सर्वर सेट अप करेंगे जो आपके LLM को ElevenLabs से जोड़ता है, फिर एक ब्राउज़र क्लाइंट जोड़ेंगे ताकि यूज़र आपके एजेंट से वॉइस में बातचीत कर सकें।
अपने चैट एजेंट में वॉइस जोड़ने के लिए ElevenLabs Speech Engine skill का इस्तेमाल करें:
Speech Engine कैसे काम करता है
Speech Engine आपके LLM को ElevenLabs से जोड़ता है, ताकि यूज़र आपके एजेंट से बात कर सकें और उसका जवाब सुन सकें। ElevenLabs स्पीच टू टेक्स्ट और टेक्स्ट टू स्पीच संभालता है; आपका सर्वर LLM लॉजिक देता है।
हर WebSocket कनेक्शन एक बातचीत को दर्शाता है। जब यूज़र बोलता है, तो ElevenLabs ऑडियो को ट्रांसक्राइब करके ट्रांसक्रिप्ट आपके सर्वर पर भेजता है। आपका सर्वर इसे आपके LLM को भेजता है, फिर जवाब को स्ट्रीम करके वापस भेजता है। ElevenLabs टेक्स्ट को स्पीच में बदलता है और उसे ब्राउज़र में चलाता है। SDK कनेक्शन मैनेजमेंट, टर्न-टेकिंग और इंटरप्शन डिटेक्शन संभालता है।
ज़रूरी शर्तें
यह ट्यूटोरियल LLM के लिए OpenAI के API का इस्तेमाल करता है। आपको OPENAI_API_KEY एनवायरनमेंट वेरिएबल में एक OpenAI API key सेट करनी होगी।
सर्वर सेटअप
API key बनाएं
डैशबोर्ड में यहां API key बनाएं, जिसका इस्तेमाल आप API एक्सेस करने के लिए सुरक्षित रूप से करेंगे।
key को मैनेज्ड सीक्रेट के रूप में स्टोर करें और अपनी पसंद के अनुसार इसे SDKs को .env फ़ाइल के ज़रिए एनवायरनमेंट वेरिएबल के रूप में या सीधे अपने ऐप के कॉन्फ़िगरेशन में पास करें।
सर्वर को एक्सपोज़ करें
Speech Engine को सार्वजनिक रूप से पहुंच सकने वाला URL चाहिए। अपने लोकल सर्वर को एक्सपोज़ करने के लिए ngrok इस्तेमाल करें। सर्वर अभी बना नहीं है, लेकिन ngrok को पहले चलाना होगा ताकि अगले चरण के लिए आपके पास URL हो।
फ़ॉरवर्डिंग URL कॉपी करें (जैसे, https://abc123.ngrok.io)।
Speech Engine इंस्टेंस बनाएं
SDK से एक Speech Engine इंस्टेंस बनाएं और WebSocket URL के तौर पर अपना ngrok URL दें, जिसके अंत में /ws पाथ जोड़ा गया हो।
यह स्क्रिप्ट चलाएं और अगले चरण के लिए Speech Engine ID (जैसे, seng_8k3m9xr4hjnfg983brhmhkd98n6) कॉपी करें।
सर्वर बनाएं
server.py या server.mts नाम की फ़ाइल बनाएं और उसमें निम्न कॉन्टेंट डालें। यह सर्वर सेट अप करता है, /ws पाथ पर Speech Engine जोड़ता है और जवाब जनरेट करने के लिए OpenAI इस्तेमाल करता है।
onTranscript / on_transcript कॉलबैक को पूरा बातचीत इतिहास और मौजूदा सेशन मिलता है। TypeScript SDK एक AbortSignal भी देता है, जो यूज़र के जवाब के बीच में इंटरप्ट करने पर ट्रिगर होता है। OpenAI कॉल में signal पास करने से इंटरप्शन होने पर LLM रिक्वेस्ट अपने-आप रद्द हो जाती है।
sendResponse() / send_response() एक स्ट्रिंग, async iterable या OpenAI, Anthropic या Google Gemini की स्ट्रीम स्वीकार करता है। SDK टेक्स्ट कॉन्टेंट अपने-आप निकाल लेता है।
ऊपर दिए उदाहरण में यूज़र का पूरा ट्रांसक्रिप्ट LLM को भेजा जाता है। प्रोडक्शन एनवायरनमेंट में, किसी भी प्रॉम्प्ट इंजेक्शन या मैनिपुलेशन की कोशिश को रोकने के लिए आपको गार्डरेल्स जोड़ने चाहिए।
क्लाइंट सेटअप
टोकन एंडपॉइंट बनाएं
एक सर्वर-साइड एंडपॉइंट जोड़ें जो बातचीत टोकन जनरेट करे। इससे आपकी API key ब्राउज़र से बाहर रहती है और बेहतर ऑडियो क्वालिटी के लिए WebRTC इस्तेमाल होता है।
बातचीत UI बनाएं
अपने सर्वर से बातचीत टोकन फ़ेच करें और सेशन शुरू करने के लिए इसका इस्तेमाल करें।
React
JavaScript
इसे आज़माएं
पक्का करें कि ये तीन प्रोसेस चल रहे हैं:
- ngrok - पोर्ट 3001 पर फ़ॉरवर्ड कर रहा है
- आपका Speech Engine सर्वर -
python server.pyयाnpx tsx server.mts - टोकन सर्वर -
npx tsx token-server.mtsयाpython token_server.py
ब्राउज़र में अपना क्लाइंट ऐप खोलें और Start conversation पर क्लिक करें। प्रॉम्प्ट मिलने पर माइक्रोफ़ोन एक्सेस दें, फिर बोलें। आपको एजेंट का जवाब अपने स्पीकर से सुनाई देना चाहिए।
अगर सर्वर पर debug: true चालू है, तो आपको कंसोल में आने वाले ट्रांसक्रिप्ट और बाहर जाने वाले जवाब लॉग होते दिखेंगे।
सेशन इवेंट्स
एजेंट का पहला संदेश कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, एजेंट यूज़र के पहले बोलने का इंतज़ार करता है। बातचीत शुरू होने पर एजेंट से यूज़र का अभिवादन करवाने के लिए, सेशन शुरू करते समय क्लाइंट के overrides विकल्प में पहला संदेश सेट करें।
कनेक्शन स्थापित होते ही एजेंट पहला संदेश बोलता है। इससे आपके सर्वर पर onTranscript कॉलबैक ट्रिगर नहीं होता—इसे पूरी तरह ElevenLabs की ओर से संभाला जाता है।