वॉयस एजेंटः पिपेकेट और लाइवकिट
Type: Learn
Languages: Python (stdlib)
Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 12 (Workflow Patterns)
Time: ~60 minutes
सीखने के लक्ष्य
- पिपेकेट के फ्रेम आधारित पाइपलाइन का वर्णन करेंः DOWNSTREAM (स्रोत→सिंग) और UPSTREAM (नियंत्रण) ।
- कैनोनिक वॉयस पाइपलाइन चरणों का नाम दें और जो पिएपेकेट सपोर्ट्स को परिवहन करते हैं।
- लाइवकिट एजेंट्स की दो वॉयस एजेंट कक्षाएं (मल्टीमोडल एजेंट, वॉयस पाइपलाइन एजेंट) और जब प्रत्येक फिट बैठता है, समझाएं।
- 2026 उत्पादन विलंबता अपेक्षाओं का सारांश दें और वे वास्तुकला विकल्पों को कैसे चलाते हैं।
समस्या
वॉयस एजेंट्स टीटीएस के साथ एक टेक्स्ट लूप नहीं हैं। लटेंसी बजट क्रूर हैं (~ 600ms), आंशिक ऑडियो डिफ़ॉल्ट है, टर्न डिटेक्शन एक मॉडल है, और ट्रांसपोर्ट टेलीफोन SIP से WebRTC तक है। या तो आप फ्रेम-आधारित पाइपलाइन (पिएपेकेट) बनाते हैं या आप एक मंच (लाइवकिट) पर lean करते हैं।
अवधारणा
पिपेकेट (pipecat-ai/pipecat)
- पायथन फ्रेम आधारित पाइपलाइन फ्रेमवर्क।
Frame→FrameProcessorश्रृंखला।- दो प्रवाह दिशाएं:
- DOWNSTREAM स्रोत → सिंक (ऑडियो में, TTS बाहर) ।
- UPSTREAM प्रतिक्रिया और नियंत्रण (बदला, माप, बार्ज-इन) ।
PipelineTaskघटनाओं के साथ जीवन चक्र का प्रबंधन करता है (on_pipeline_started,on_pipeline_finished,on_idle_timeout) और मीट्रिक/ट्रैकिंग/आरटीवीआई के लिए पर्यवेक्षक।
विशिष्ट पाइपलाइनः
VAD (Silero) → STT → LLM (context alternates user/assistant) → TTS → transportपरिवहनः दैनिक, लाइवकिट, स्मॉलवेबआरटीसी ट्रांसपोर्ट, फास्टएपीआई वेबसॉकेट, व्हाट्सएप।
पिपेकेट प्रवाह संरचित वार्तालाप (राज्य मशीन) जोड़ता है। पिपेकेट क्लाउड प्रबंधित रनटाइम है।
लाइवकिट एजेंट (livekit/agents)
- वेबआरटीसी के माध्यम से उपयोगकर्ताओं को एआई मॉडल को जोड़ता है।
- मुख्य अवधारणाएँ:
Agent,AgentSession,entrypoint,AgentServer. . - दो आवाज एजेंट कक्षाएंः
- MultimodalAgent ओपनएआई रीयलटाइम या समकक्ष के माध्यम से प्रत्यक्ष ऑडियो।
- VoicePipelineAgent STT → LLM → TTS कैस्केड; पाठ स्तर का नियंत्रण देता है।
- ट्रांसफार्मर मॉडल के माध्यम से अर्थिक मोड़ का पता लगाना।
- मूल एमसीपी एकीकरण।
- SIP के माध्यम से टेलीफोन।
- लाइवकिट इन्फरेंस के माध्यम से बिना एपीआई कुंजी के 50+ मॉडल; प्लगइन्स के माध्यम से 200+ अधिक।
वाणिज्यिक प्लेटफार्म
Vapi (~ 450600ms एक अनुकूलित प्रीमियम स्टैक पर) और Retell (~ 600ms अंत-से-अंत 180 परीक्षण कॉल पर) इन के ऊपर निर्माण करते हैं। जब आप एक वेबआरटीसी टीम के बिना एक प्रबंधित आवाज स्टैक चाहते हैं तो एक मंच चुनें।
जहां यह पैटर्न गलत हो जाता है
- No barge-in handling.उपयोगकर्ता बाधित करता है; एजेंट बात करता रहता है. पीपीकेट में यूपीएसटीआरईएम कैश रद्द करने की आवश्यकता होती है, लाइवकिट में समकक्ष।
- STT confidence ignored.कम आत्मविश्वास प्रतिलेखन एलएलएम के लिए दिया गया जैसे कि सुसमाचार.
- TTS mid-sentence cutoff.जब पाइपलाइन मध्य-उत्पादन को रद्द करती है, तो टीटीएस को ऑडियो को जानने या काटने की आवश्यकता होती है।
- Latency budget ignored.प्रत्येक घटक 50200ms जोड़ता है. शिपिंग से पहले अपनी श्रृंखला योग.
2026 में सामान्य विलंबता
- VAD: 2060ms
- STT आंशिकः 100250ms
- LLM प्रथम टोकन: 150400ms
- टीटीएस पहला ऑडियोः 100200ms
- परिवहन आरटीटीः 3080ms
अंत-से-अंत 450600ms प्रीमियम है। 8001200ms आम है। कुछ भी 1500ms से अधिक टूट लगता है।
इसे बनाओ
code/main.pyएक फ्रेम आधारित खिलौना पाइपलाइन है जिसमेंः
Frameप्रकार (ऑडियो, प्रतिलिपि, पाठ, tts_audio, नियंत्रण) ।Processorके साथ इंटरफेसprocess(frame). .- स्क्रिप्ट प्रोसेसर के रूप में पांच चरणों की पाइपलाइन (VAD → STT → LLM → TTS → परिवहन) ।
- एक UPSTREAM रद्द फ्रेम में घुसपैठ का प्रदर्शन करने के लिए.
इसे चलाओः
python3 code/main.pyनिशान सामान्य प्रवाह और एक बारज-इन रद्द करता है जो TTS मध्य-उत्पादन को रोकता है दिखाता है।
इसका प्रयोग करें
- Pipecatपूर्ण नियंत्रण के लिए कस्टम प्रोसेसर, पायथन-पहले, प्लग करने योग्य प्रदाताओं।
- LiveKit Agentsवेबआरटीसी-प्रथम तैनाती और टेलीफोन के लिए।
- Vapi / Retellवेबआरटीसी टीम के बिना होस्ट किए गए वॉयस एजेंटों के लिए।
- OpenAI Realtime / Gemini Liveप्रत्यक्ष ऑडियो-इन/ऑडियो-आउट के लिए (मल्टीमोडलएजेंट)
इसे भेजें
outputs/skill-voice-pipeline.mdVAD + STT + LLM + TTS + परिवहन प्लस बारज-इन हैंडलिंग के साथ एक पिपेकेट के आकार की आवाज पाइपलाइन को स्केच करता है।
व्यायाम
- अपने खिलौना पाइपलाइन में एक मेट्रिक्स अवलोकनकर्ता जोड़ें: प्रति चरण प्रति सेकंड फ्रेम गिनें। विलंबता कहां जमा होती है?
- विश्वास-गेल्ट एसटीटी लागू करेंः सीमा से नीचे, "क्या आप इसे दोहरा सकते हैं?
- अर्थपूर्ण मोड़ का पता लगाने जोड़ेंः सरल नियम यदि ट्रांसक्रिप्ट "? के साथ समाप्त होता है, तो मोड़ का अंत।
- पिएपेकाट के परिवहन दस्तावेजों को पढ़ें। SmallWebRTCTransport कॉन्फ़िग (स्टब) के लिए stdlib परिवहन को बदलें।
- उसी क्वेरी पर एक OpenAI रियलटाइम बनाम STT+LLM+TTS कैस्केड मापें। पाठ स्तर नियंत्रण में कितनी लटेंसी लागत होती है?
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Frame | "Event" | Typed unit of data in the pipeline (audio, transcript, text, control) |
| Processor | "Pipeline stage" | Handler with process(frame) |
| DOWNSTREAM | "Forward flow" | Source to sink: audio in, speech out |
| UPSTREAM | "Feedback flow" | Control: cancel, metrics, barge-in |
| VAD | "Voice activity detection" | Detects when user is speaking |
| Semantic turn detection | "Smart end-of-turn" | Model-based decision that the user is done |
| MultimodalAgent | "Direct audio agent" | Audio in, audio out; no text in the middle |
| VoicePipelineAgent | "Cascade agent" | STT + LLM + TTS; text-level control |
आगे पढ़ना
- Pipecat docs फ्रेम आधारित पाइपलाइन, प्रोसेसर, ट्रांसपोर्ट
- LiveKit Agents docs वेबआरटीसी + आवाज आदिम
- Vapi प्रबंधित आवाज मंच
- Retell AI प्रबंधित आवाज, विलंबता बेंचमार्क
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.