
हमारे डॉक के लिए एक प्रभावी वॉइस एजेंट बनाना
यूज़र की >80% पूछताछ को सफलतापूर्वक हल करना
लेटेंसी ही अच्छे और बेहतरीन कन्वर्सेशनल AI ऐप्लिकेशन्स में फर्क लाती है
ज्यादातर ऐप्लिकेशन्स में लेटेंसी ज्यादा मायने नहीं रखती। लेकिन कन्वर्सेशनल AI में यही अच्छे और बेहतरीन ऐप्लिकेशन्स में फर्क करती है।
शुरुआत के लिए, कन्वर्सेशनल AI का मकसद है इंसानी बातचीत जैसा अहसास, टोन और आवाज़ देना—और साथ ही इंसान से ज्यादा समझदार होना। इसके लिए ऐप्लिकेशन को बिना लंबे साइलेंस के बात करनी चाहिए, वरना रियलिज़्म टूट जाता है।
कन्वर्सेशनल AI की लेटेंसी की चुनौती इसकी टुकड़ों में बंटी प्रक्रिया से और बढ़ जाती है। कन्वर्सेशनल AI कई इंटरमीडिएट प्रोसेसेज़ का सिलसिला है, जो अपने-अपने फील्ड में बेस्ट माने जाते हैं। हर प्रोसेस अपनी लेटेंसी जोड़ता है।
एक जनरेटिव वॉइस कंपनी के तौर पर, हमने कन्वर्सेशनल AI के लिए लेटेंसी कम करने पर काफी रिसर्च की है। आज हम अपने अनुभव शेयर करना चाहते हैं, ताकि जो भी कन्वर्सेशनल AI ऐप्लिकेशन बनाना चाहता है, उसे मदद मिले।
हर कन्वर्सेशनल AI ऐप्लिकेशन में कम से कम चार स्टेप्स होते हैं: स्पीच टू टेक्स्ट, टर्न-टेकिंग, टेक्स्ट प्रोसेसिंग (जैसे LLMs), और टेक्स्ट टू स्पीच। ये स्टेप्स साथ-साथ चलते हैं, लेकिन हर स्टेप कुछ न कुछ लेटेंसी जोड़ता है।
खास बात ये है कि कन्वर्सेशनल AI की लेटेंसी का गणित अलग है। कई प्रोसेस की लेटेंसी एक ही बॉटलनेक पर आकर टिक जाती है। जैसे, जब वेबसाइट डाटाबेस रिक्वेस्ट करती है, तो नेटवर्क लेटेंसी ही टोटल लेटेंसी तय करती है। लेकिन कन्वर्सेशनल AI के हिस्सों की लेटेंसी में इतना फर्क नहीं होता। हर हिस्सा थोड़ा-बहुत लेटेंसी जोड़ता है, इसलिए टोटल लेटेंसी सबका जोड़ होती है।
सिस्टम का “कान”
ऑटोमैटिक स्पीच रिकग्निशन (ASR)—जिसे कभी-कभी स्पीच टू टेक्स्ट (STT) भी कहते हैं—बोली गई ऑडियो को लिखित टेक्स्ट में बदलने की प्रक्रिया है।
ASR की लेटेंसी वो समय नहीं है जो टेक्स्ट जनरेट करने में लगता है, क्योंकि स्पीच टू टेक्स्ट प्रोसेस यूज़र के बोलते वक्त बैकग्राउंड में चलता रहता है। असल लेटेंसी वो समय है जो स्पीच खत्म होने और टेक्स्ट जनरेट होने के बीच लगता है।
.webp&w=3840&q=95)
इसलिए, छोटी या लंबी स्पीच में ASR की लेटेंसी लगभग बराबर हो सकती है। अलग-अलग ASR इम्प्लीमेंटेशन में लेटेंसी बदल सकती है (कुछ मामलों में, मॉडल ब्राउज़र में एम्बेड होता है, जैसे Chrome/Chromium)। ओपन सोर्स मॉडल Whisper करीब 300ms+ लेटेंसी जोड़ता है। हमारा कस्टम इम्प्लीमेंटेशन <100ms लेटेंसी देता है।
सिस्टम की “फीलिंग”
टर्न-टेकिंग / इंटरप्शन (TTI) एक इंटरमीडिएट प्रोसेस है जो तय करता है कि यूज़र ने बोलना कब खत्म किया। इसका मॉडल वॉइस एक्टिविटी डिटेक्टर (VAD) कहलाता है।
टर्न-टेकिंग में कई नियम होते हैं। छोटी सी आवाज़ (जैसे “हूं”) से टर्न नहीं बदलना चाहिए, वरना बातचीत बहुत टुकड़ों में बंटी लगेगी। इसे समझना होता है कि यूज़र वाकई मॉडल का ध्यान खींचना चाहता है या नहीं, और कब उसने अपनी बात पूरी कर ली।
एक अच्छा VAD हर बार साइलेंस मिलने पर नया टर्न सिग्नल नहीं देगा। शब्दों (या वाक्यों) के बीच साइलेंस होता है, और मॉडल को भरोसा होना चाहिए कि यूज़र ने बोलना सच में बंद कर दिया है। इसके लिए उसे साइलेंस की एक लिमिट देखनी होती है (या कहें, स्पीच की कमी)। इस प्रोसेस से थोड़ी देरी आती है, जो यूज़र को महसूस होती है।
.webp&w=3840&q=95)
तकनीकी तौर पर, अगर बाकी सभी कन्वर्सेशनल AI हिस्सों की लेटेंसी शून्य हो, तो TTI की लेटेंसी अच्छी मानी जाएगी। इंसान भी जवाब देने से पहले थोड़ा रुकता है। मशीन भी ऐसा करे तो बातचीत असली लगती है। लेकिन चूंकि बाकी हिस्सों में पहले से लेटेंसी है, इसलिए TTI की लेटेंसी जितनी कम हो, उतना अच्छा।
सिस्टम का दिमाग
इसके बाद सिस्टम को जवाब जनरेट करना होता है। आजकल ये आमतौर पर बड़े लैंग्वेज मॉडल (LLM) जैसे GPT-4 या Gemini Flash 1.5 से होता है।
कौन सा लैंग्वेज मॉडल चुनते हैं, इससे काफी फर्क पड़ता है। Gemini Flash 1.5 जैसे मॉडल बहुत तेज हैं—350ms से भी कम में आउटपुट दे देते हैं। ज्यादा पावरफुल मॉडल जैसे GPT-4 वेरिएंट्स या Claude को 700ms से 1000ms तक लग सकते हैं।लेटेंसी कम करने के लिए सही मॉडल चुनना सबसे आसान तरीका है।
लेकिन LLM की लेटेंसी वो समय है जब वह शुरू करता है टोकन जनरेट करना। ये टोकन तुरंत अगले टेक्स्ट टू स्पीच प्रोसेस को भेजे जा सकते हैं। क्योंकि टेक्स्ट टू स्पीच इंसानी आवाज़ की रफ्तार से चलता है, LLM उससे तेज़ होता है—सबसे जरूरी है पहला टोकन आने में लगने वाला समय (यानी, टाइम टू फर्स्ट बाइट)।
.webp&w=3840&q=95)
मॉडल के अलावा भी LLM की लेटेंसी पर और चीज़ें असर डालती हैं—जैसे प्रॉम्प्ट की लंबाई और नॉलेज बेस का साइज। जितना बड़ा प्रॉम्प्ट या नॉलेज बेस, उतनी ज्यादा लेटेंसी। सीधी बात है: LLM को जितना ज्यादा सोचना पड़ेगा, उतना समय लगेगा। इसलिए कंपनियों को सही कॉन्टेक्स्ट और मॉडल की क्षमता में बैलेंस रखना चाहिए।
सिस्टम का मुँह
कन्वर्सेशनल AI का आखिरी हिस्सा है टेक्स्ट टू स्पीच (TTS)। टेक्स्ट टू स्पीच की कुल लेटेंसी वही समय है जब उसे टेक्स्ट प्रोसेसिंग से टोकन मिलते हैं और बोलना शुरू करता है। बस इतना ही—क्योंकि बाकी टोकन इंसानी स्पीच से तेज़ मिल जाते हैं, टेक्स्ट टू स्पीच की लेटेंसी सिर्फ टाइम टू फर्स्ट बाइट होती है।
.webp&w=3840&q=95)
पहले, टेक्स्ट टू स्पीच काफी धीमा था, 2-3 सेकंड तक स्पीच जनरेट करने में लगते थे। लेकिन हमारे जैसे लेटेस्ट मॉडल्स (Turbo इंजन) सिर्फ 300ms में स्पीच जनरेट कर सकते हैं और नया Flash TTS इंजन तो और भी तेज़ है। Flash का मॉडल टाइम सिर्फ 75ms है और ये 135ms में टाइम टू फर्स्ट बाइट ऑडियो लेटेंसी दे सकता है, जो फील्ड में सबसे बेस्ट है (थोड़ा घमंड तो बनता है!)।
इन चार हिस्सों के अलावा भी कुछ और चीज़ें कन्वर्सेशनल AI की कुल लेटेंसी बढ़ा सकती हैं।
डेटा एक जगह से दूसरी जगह भेजने में हमेशा थोड़ी लेटेंसी रहेगी। कुछ कन्वर्सेशनल AI ऐप्लिकेशन्स के लिए, ASR, TTI, LLM, और TTS प्रोसेसेज़ ideally एक ही जगह होनी चाहिए, ताकि नेटवर्क लेटेंसी सिर्फ स्पीकर और पूरे सिस्टम के बीच ही हो।इससे हमें लेटेंसी में फायदा मिलता है क्योंकि हमारे पास खुद का TTS और इंटरनल ट्रांसक्रिप्शन सॉल्यूशन है, जिससे दो सर्वर कॉल्स बच जाते हैं।
.webp&w=3840&q=95)
कई कन्वर्सेशनल AI ऐप्लिकेशन्स का मकसद फंक्शन कॉल करना होता है (जैसे टूल्स या सर्विसेज से इंटरफेस करना)। जैसे, मैं AI से बोलकर मौसम पूछ सकता हूँ। इसके लिए टेक्स्ट प्रोसेसिंग लेयर पर अतिरिक्त API कॉल्स करनी पड़ती हैं, जिससे जरूरत के हिसाब से लेटेंसी बढ़ सकती है।
जैसे, अगर मुझे बोलकर पिज़्ज़ा ऑर्डर करना है, तो कई API कॉल्स लग सकती हैं, जिनमें कुछ में ज्यादा समय लग सकता है (जैसे क्रेडिट कार्ड प्रोसेसिंग)।
.webp&w=3840&q=95)
लेकिन, कन्वर्सेशनल AI सिस्टम फंक्शन कॉलिंग की देरी को ऐसे कम कर सकता है कि LLM यूज़र को फंक्शन कॉल पूरी होने से पहले ही जवाब दे दे (जैसे “मैं आपके लिए मौसम देखता हूँ”)। इससे बातचीत असली लगती है और यूज़र को इंतजार नहीं करना पड़ता।
.webp&w=3840&q=95)
ऐसे async पैटर्न आमतौर पर वेबहुक्स के ज़रिए पूरे किए जाते हैं, ताकि लंबी रिक्वेस्ट्स से बचा जा सके।
एक और आम फीचर कन्वर्सेशनल AI प्लेटफॉर्म्स में है कि यूज़र फोन से डायल-इन कर सके (या कभी-कभी यूज़र की तरफ से कॉल कर सके)। टेलीफोनी में अतिरिक्त लेटेंसी आती है—और ये लेटेंसी लोकेशन पर काफी निर्भर करती है।
.webp&w=3840&q=95)
आमतौर पर, अगर एक ही रीजन में कॉल है तो टेलीफोनी में 200ms की अतिरिक्त लेटेंसी आ सकती है। ग्लोबल कॉल्स (जैसे एशिया → USA) में ये समय काफी बढ़ सकता है, और लेटेंसी ~500ms तक जा सकती है। ये तब आम है जब यूज़र का फोन नंबर उस रीजन के बाहर है जहाँ वो हैं—जिससे कॉल उनके देश के नेटवर्क तक जाती है।
हमें उम्मीद है कि कन्वर्सेशनल AI एजेंट्स की ये पूरी यात्रा आपके लिए रोचक रही। संक्षेप में, ऐप्लिकेशन्स को सब-सेकंड लेटेंसी टारगेट करनी चाहिए। ये आमतौर पर सही LLM चुनकर किया जा सकता है। साथ ही, जब बैकग्राउंड में कोई जटिल प्रोसेस चल रहा हो, तो यूज़र से इंटरफेस करते रहें ताकि लंबा साइलेंस न आए।
आखिरकार, मकसद है रियलिज़्म देना। यूज़र को इंसान से बात करने जैसा अहसास होना चाहिए, साथ ही कंप्यूटर प्रोग्राम के फायदे भी मिलें। सब-प्रोसेसेज़ को बेहतर बनाकर, अब ये मुमकिन है।
हम ElevenLabs में कन्वर्सेशनल AI वॉइस एजेंट्स सिस्टम के हर हिस्से को अपने स्टेट-ऑफ-द-आर्ट STT और TTS मॉडल्स के साथ ऑप्टिमाइज़ कर रहे हैं। हर प्रोसेस पर काम करके, हम बातचीत को बिलकुल स्मूद बना सकते हैं। इस तरह की ऑर्केस्ट्रेशन से हम हर स्टेप पर थोड़ी-सी लेटेंसी—यहाँ तक कि 1ms भी—कम कर सकते हैं।

यूज़र की >80% पूछताछ को सफलतापूर्वक हल करना

हमारा ऑल इन वन प्लेटफॉर्म जो कस्टमाइज़ेबल, इंटरैक्टिव वॉइस एजेंट्स बनाने के लिए है