Inspiration High-pressure situations like stressful interviews, tough VC pitches, or difficult customer calls require realistic practice. I built a conversational "flight simulator" where the AI actually fights back and interrupts you, helping you prepare for when the stakes are high.

What it does Glotti is a real-time voice app that acts as an AI sparring partner. Instead of just listening, it uses sub-second barge-in to interrupt filler words and challenge your logic gaps mid-sentence. While you talk, it runs a live dashboard tracking metrics like your talk ratio, clarity, and tone. After the session, you get a detailed breakdown of your performance, which you can share online or use to jump into a dedicated feedback mode to review your transcript with the AI.

How I built it I built the core around the Gemini 2.5 Flash native audio engine to get sub-second latency. Using the Agent Development Kit (ADK), I orchestrated two agents running in parallel: one driving the voice persona, and an analytics agent silently calculating metrics in the background. The backend is containerized on Google Cloud Run, relying on WebSockets with custom JSON headers to stream the audio and metrics at the same time.

  • Detailed Reports: Every session saves a report to Firestore highlighting things like argument coherence and suggesting better phrases you could have used.
  • Social Sharing: I integrated Open Graph meta-tags and dynamic routing so users can share rich-preview score highlights to LinkedIn and Facebook.
  • Feedback Mode: The AI reads your previous transcript, analyzes your performance, and holds a prep dialogue with you to help fix specific weaknesses.

Challenges I ran into Keeping two LLM-driven agents in sync without losing audio was a challenge. I had to build a custom protocol to delay the AI's intro until the mic was actually active. Writing the logic to let the system smoothly recover from user barge-ins without breaking the conversation flow also took a ton of trial and error.

Accomplishments I'm proud of I'm really proud of how the app shifts the user's focus from "script reading" to actual live defense. It's incredibly satisfying to see that "Aha!" moment when a user successfully interrupts the AI back to regain control of the conversation.

I also love how the feedback loop turned out. Instead of just giving the user a static post-mortem report, you can jump right back into a session with the exact same AI agent to discuss where you messed up. Mentors or peers can even dive into shared links to interact with the AI that witnessed the original performance.

What I learned I learned that real conversation training has to happen in the flow, mid-sentence. Post-mortem analysis is great, but learning to keep your composure only happens when you are actively challenged. Technically, breaking away from the standard request-response cycle was tough, but Gemini 2.5 Flash’s native audio streaming and Cloud Run made this kind of truly reactive, multimodal app possible.

What's next for Glotti

  • Competitive game modes: Introducing structured sparring where you have to hit specific goals to win (e.g., "De-escalate the angry customer without giving a refund" or "Extract a soft-no from the VC").
  • Entertainment and storytelling: Beyond training, I want to try using the engine for immersive storytelling, like collaborative choose-your-own-adventure games and AI-led roleplay.
  • Advanced orchestration: Integrating more complex ADK workflows to create multi-agent "boardroom" simulations, and adding long-term memory so users can track their conversational progress over time.
Share this project:

Updates

posted an update

Just pushed a new coaching mode focused on the classic opening question: "Tell me about yourself."

Under the hood, this persona is more active than previous ones. It uses tool-calling to research the specific company you're practicing for and injects real-world context (recent news, challenges) into the conversation. It creates a much tighter feedback loop by interrupting "scripted" answers and demanding specific metrics over buzzwords.

Give it a shot and check how it uses the search context!

Log in or sign up for Devpost to join the conversation.