टेक्स्ट टू स्पीच बनाम टेक्स्ट टू डायलॉग WebSockets
यह गाइड बताती है कि स्ट्रीमिंग स्पीच के लिए सही WebSocket कैसे चुनें और दोनों प्रोटोकॉल में क्या अंतर है।
ElevenLabs सिंथेसाइज़्ड स्पीच को स्ट्रीम करने के लिए WebSocket प्रोडक्ट्स की दो फैमिली देता है। हर फैमिली में single-stream वैरिएंट और multi-context वैरिएंट होता है, जो एक कनेक्शन पर कई स्वतंत्र स्ट्रीम्स को मल्टीप्लेक्स करता है। ये अलग-अलग समस्याएं हल करते हैं, अलग-अलग मैसेज फ़ॉर्मैट स्वीकार करते हैं और अलग-अलग मॉडल्स के लिए बनाए गए हैं।
मुझे कौन-सा WebSocket इस्तेमाल करना चाहिए?
जब आप एक कनेक्शन पर एक वॉइस के लिए सादा टेक्स्ट स्ट्रीम करते हैं (वॉइस URL में तय होती है) और आपको Flash या Multilingual v2 जैसे non-v3 मॉडल्स, वैकल्पिक SSML, chunk schedules या एजेंट-स्टाइल interruption handling के लिए multi-context वैरिएंट चाहिए, तो टेक्स्ट टू स्पीच (TTS) WebSocket इस्तेमाल करें।
जब आपको Eleven v3 डायलॉग व्यवहार चाहिए—expressive delivery, हर chunk के लिए voice_id, turn boundaries (new_turn) और सर्वर पर v3 के लिए इस्तेमाल होने वाली वही डायलॉग-आधारित buffering—तो टेक्स्ट टू डायलॉग (TTD) WebSocket इस्तेमाल करें।
जब आपको वही Eleven v3 डायलॉग व्यवहार और एक ही कनेक्शन पर कई concurrent या interleaved streams चाहिए—जैसे कोई conversational agent जिसे हर बार नया socket खोले बिना डायलॉग को interrupt और restart करना हो—तो TTD multi-context WebSocket इस्तेमाल करें।
batch या HTTP streaming डायलॉग के लिए (एक कॉल में पूरा request), WebSocket की जगह Create dialogue या Stream dialogue इस्तेमाल करें।
तुलना
जब TTS WebSocket बेहतर विकल्प है
- आप latency या language coverage के लिए पहले से Flash या Multilingual v2 इंटीग्रेट कर चुके हैं।
- आप हर कनेक्शन पर एक narrator voice और आसान text-per-frame protocol चाहते हैं।
- आपको barge-in और parallel utterances के लिए multi-context orchestration चाहिए (multi-context गाइड)।
TTS WebSocket की पूरी जानकारी के लिए Generate audio in real-time देखें।
जब TTD WebSocket बेहतर विकल्प है
- आप Eleven v4 डायलॉग (expressive tags, conversational pacing, multi-speaker lines) का लक्ष्य रखते हैं।
- आप scripted या LLM-generated dialogue स्ट्रीम करते हैं, जिसमें बोलने वाली वॉइस हर लाइन के लिए बदल सकती है, बिना नया कनेक्शन खोले।
- आप सर्वर पर v4-only डायलॉग generation के साथ WebSocket-जैसा incremental input चाहते हैं।
व्यावहारिक जानकारी के लिए Realtime Text to Dialogue देखें। प्रोटोकॉल की जानकारी API रेफरेंस में है।
Multi-context WebSockets
दोनों प्रोडक्ट्स में multi-context वैरिएंट है, जो एक WebSocket कनेक्शन पर कई स्वतंत्र streams को multiplex करता है। हर context की पहचान client द्वारा चुने गए context_id से होती है, वह अपना टेक्स्ट खुद buffer करता है और उस context_id से टैग किए गए ऑडियो chunks भेजता है। TTS contexts कनेक्शन URL से voice_id साझा करते हैं, जबकि TTD contexts अपनी वॉइसेस और settings रजिस्टर करते हैं। जब आपको interruption handling के साथ concurrent या interleaved generation चाहिए, तब यह फ़ॉर्मैट इस्तेमाल करें—जैसे कोई voice agent जिसे कनेक्शन बंद किए बिना चल रहे utterance को रद्द करके नया शुरू करना हो।
जब TTD multi-context WebSocket बेहतर विकल्प है
- आपको Eleven v3 डायलॉग व्यवहार (expressive delivery, हर chunk के लिए
voice_id, turn boundaries) और एक कनेक्शन पर concurrent या interleaved streams चाहिए। - आप एक conversational agent बना रहे हैं, जिसे हर बार नया socket खोले बिना डायलॉग को interrupt और restart करना हो।
- आप एक authenticated कनेक्शन पर कई स्वतंत्र v3 dialogue sessions—जैसे parallel scenes या speakers—चलाना चाहते हैं।
Single-stream TTD WebSocket के लिए Realtime Text to Dialogue देखें। TTS multi-context WebSocket के लिए Multi-context WebSocket गाइड देखें। TTD multi-context endpoint के प्रोटोकॉल की जानकारी API रेफरेंस में है।