{"slug": "building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days", "title": "Building Shiksha: What I Learned Creating a Real-Time AI English Coach in 10 Days", "summary": "A developer built Shiksha, a real-time AI English communication coach for Indian learners, in 10 days as part of the '10 Days of Voice Agents — Voice for Bharat Edition' under the Learning & Literacy track. The system uses LiveKit for voice, Murf Falcon TTS for low-latency Indian English speech, and supports Hinglish, with features like persistent memory, outbound practice calls, and multi-agent handoff. The developer overcame challenges such as Devanagari pronunciation glitches and Next.js dashboard caching issues.", "body_md": "#\nBuilding Shiksha: An AI English Coach for Indian Learners\n\nFor many Indian learners, the biggest barrier to speaking English fluently isn't a lack of vocabulary or grammar rules learned in school—it's **speaking anxiety** and the fear of making mistakes in front of peers or teachers.\n\nOver the past 10 days, as part of the **10 Days of Voice Agents — Voice for Bharat Edition** under the **Learning & Literacy** track, I built **Shiksha**: an interactive, real-time AI English Communication Coach designed to provide friendly, judgment-free spoken practice.\n\n##\n🌟 Why Voice?\n\nText chatbots don't build spoken confidence. Reading and typing are passive activities, whereas real-world conversations require instant auditory processing, cognitive framing, and spoken articulation.\n\nShiksha gives learners a low-latency, empathetic voice partner that understands **Hinglish** (code-mixed Hindi and English), allowing them to practice daily presentations, grammar rules, and workplace conversations without embarrassment.\n\n##\n🏗️ High-Level Architecture\n\nUser Speech (WebRTC / SIP) ──► LiveKit Audio Ingest\n\n│\n\n▼\n\nSpeech-to-Text (STT)\n\n│\n\n▼\n\nLLM + Tools (agent.py + db.py)\n\n│\n\n▼\n\nMurf Falcon (Ultra-Low Latency TTS)\n\n│\n\n▼\n\nAudio Output ◄────────────── WebRTC Audio Sink\n\n##\n🚀 Key Features Built Over the 10 Days\n\n-\n**Ultra-Low Latency Indian Voice:** Powered by **Murf Falcon TTS**, Shiksha delivers natural, culturally resonant Indian English voice output with near-instant response times.\n-\n**Persistent Conversational Memory (SQLite):** Retains learner names, historical presentation goals, and specific practice needs across calls (`agent_memory.db`\n\n).\n-\n**Curriculum-Driven Vocabulary Tools:** Dynamically fetches context-specific vocabulary drills from `exercises.json`\n\nand evaluates sentences live.\n-\n**Outbound Daily Practice Telephony (LiveKit SIP):** Initiates automated daily check-in calls straight to a learner's phone.\n-\n**Human-in-the-Loop Escalation & Privacy Guardrails:** Detects severe learner frustration or explicit requests for human mentors, requests explicit permission, and logs sanitized support tickets with clear reference IDs.\n-\n**Call Analytics Dashboard:** A real-time Next.js dashboard displaying aggregated metrics (Total Calls, Successful Drills, Incomplete Calls) with zero personal transcripts exposed.\n-\n**Multi-Agent Specialist Handoff:** Dynamically transitions the call from Shiksha (general coach) to **Arjun** (Grammar Specialist with a distinct male voice persona) for complex syntactic queries without dropping the WebRTC session.\n\n##\n🛠️ Hardest Technical Challenges & Fixes\n\n###\n1. Hindi/Devanagari Pronunciation Glitches in TTS\n\n-\n**Issue:** Romanized Hindi text caused phonetic glitches in English voice models.\n-\n**Fix:** Structured the system prompt to output pure Hindi terms in native **Devanagari script** (`नमस्ते!`\n\n), allowing Murf Falcon to pronounce localized nuances cleanly.\n\n###\n2. Next.js Dashboard Real-Time Cache vs. SQLite\n\n-\n**Issue:** Call logs updated in SQLite, but the Next.js `/dashboard`\n\nserved cached numbers.\n-\n**Fix:** Enforced dynamic rendering with `export const dynamic = \"force-dynamic\"`\n\nand `export const revalidate = 0`\n\nat the top of the dashboard page.\n\n###\n3. Context Preservation During Specialist Handoff\n\n-\n**Issue:** Switching agents risked losing conversational context, requiring the user to repeat themselves.\n-\n**Fix:** Implemented dynamic prompt-state switching in the same LiveKit session loop, passing the `handoff_reason`\n\nand recent turns directly into Arjun's context.\n\n##\n💻 How to Run the Project Locally\n\n###\n1. Clone Repository & Setup Backend", "url": "https://wpnews.pro/news/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days", "canonical_source": "https://dev.to/sp_gamer_e8a7ce484708618f/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days-jn6", "published_at": "2026-08-15 18:51:07+00:00", "updated_at": "2026-08-15 19:11:44.345537+00:00", "lang": "en", "topics": ["artificial-intelligence", "natural-language-processing", "ai-products", "ai-tools", "developer-tools"], "entities": ["Shiksha", "LiveKit", "Murf Falcon", "Next.js", "SQLite", "Arjun", "10 Days of Voice Agents", "Voice for Bharat Edition"], "alternates": {"html": "https://wpnews.pro/news/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days", "markdown": "https://wpnews.pro/news/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days.md", "text": "https://wpnews.pro/news/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days.txt", "jsonld": "https://wpnews.pro/news/building-shiksha-what-i-learned-creating-a-real-time-ai-english-coach-in-10-days.jsonld"}}