ARIA - Adaptive Real Time Instructional AI
Link to open source: https://github.com/saksham456456/Aria.git
Link to Live Project: https://aria-co-teacher.vercel.app/
đź§ ARIA: Voice AI Co-Teacher
What is it?
Have you ever been in an online class where the teacher is moving way too fast, half the students are lost, and nobody wants to unmute to ask a question? That’s what I wanted to fix.
ARIA is an AI co-teacher that literally joins your live video call as a participant. She doesn't replace the human teacher; she acts as a smart teaching assistant. She sits in the meeting, listens to the lesson, and pays attention to the chat. If she realizes a student is struggling, she waits for a natural pause in the conversation and actually speaks up to help them out. She can explain concepts, throw out quick quizzes, and even give the teacher a summary of learning gaps after the class ends.
How I built it (and why I chose this stack)
Building an AI that actually talks in a live meeting is tricky because of latency. If the AI is even a second too slow, it ends up talking over the teacher, which ruins the whole flow.
To make it feel natural, I had to piece together a very specific tech stack:
* **The Video & Audio Engine (Agora):** I built the entire meeting room on the **Agora WebRTC SDK**. I knew I had to use Agora instead of standard WebSockets or open-source WebRTC wrappers for a few reasons. First, their global network keeps latency incredibly low, which is non-negotiable for human-AI conversations. But the real lifesaver was Agora's custom audio track API. When my AI generates a response, I can grab that raw audio buffer and inject it directly into the Agora call as a virtual microphone using `createCustomAudioTrack()`. To the students, ARIA just looks and sounds like another person in the Zoom call.
* **The "Brain" (Groq + LLaMA):** I needed the AI to think fast. I hooked the backend up to Groq because their inference speeds are insane. It allows ARIA to read the classroom context and decide in milliseconds whether she should speak, take a silent note, or just wait.
* **The State & Sync (Supabase):** I used Supabase Realtime to keep everything perfectly in sync. Instead of paying for expensive cloud transcription, I use the browser's native Web Speech API to transcribe what people are saying locally. Those transcripts—along with the chat and the teacher's controls—are instantly fired into Supabase so the AI always has real-time context of what's happening.
* **The Frontend (Next.js + Tailwind):** I wrapped the whole thing in a Next.js 14 app. I spent a lot of time on the UI with Tailwind CSS, using frosted glass effects and fluid animations so it actually feels like a polished, modern product like Google Meet or Zoom.
It was a tough challenge getting all these real-time systems to play nice together, but seeing the AI actually jump into a voice call and help a student made it totally worth it!
This build was uploaded as a hackathon project







