Inspiration

Learning a new language is less about vocabulary and more about courage. For millions of ESL (English as a Second Language) students, the biggest barrier isn't grammar, it's Foreign Language Anxiety. The fear of being judged, stuttering, or using the wrong word often silences students who actually have a lot to say. We wanted to create a "Zero Judgment Zone." We were inspired by the idea of an open mic night, a place to express yourself, but removed the audience. OpenMic is built to be the training ground where users can find their voice in a low-pressure environment before stepping out into the real world.

What it does

OpenMic helps you get comfortable speaking English by guiding you through four simple steps: It gives you something to talk about. Staring at a blank screen is hard. Our Quest Board solves this by offering specific prompts like "Morning Routine" or "Travel Plans" so you can skip the awkward silence and focus entirely on speaking. It records you without the pressure. We built a private "Stage" with zero distractions. There are no timers, no audience, and no pressure, just a simple audio visualizer. You can pause, think, and hit record only when you feel completely ready. It helps you sound smarter, not just "correct". Unlike a strict teacher, our AI acts as a supportive coach. It provides Natural Rephrasing to improve your flow, and identifies basic words (like "good") to suggest specific "Power Words" (like "exceptional") that instantly upgrade your vocabulary. It tracks your confidence. We turn practice into proof. The dashboard tracks your daily streaks and calculates a Confidence Score based on your speech clarity, giving you a tangible way to see that you are getting better over time.

How we built it

Frontend Architecture: We built a fast, type-safe foundation using React 19 and TypeScript, powered by Vite for speed. To create the calm dark mode aesthetic we used Tailwind CSS paired with Lucide React for crisp icons.

AI Integration: Google Gemini AI powers the entire feedback loop. It handles both speech recognition and linguistic analysis in one go. To bridge the browser and the AI we implemented a pipeline that encodes audio into Base64 for seamless transmission.

Custom Prompt: We carefully crafted system instructions to ensure Gemini behaves like a supportive dialect coach, prioritizing encouragement and vocabulary upgrades over strict error correction.

Challenges we ran into

Getting Gemini to Coach, Not Just Transcribe. This was our biggest technical hurdle. While we successfully got the speech-to-text working, the next step, getting Gemini to analyze that text and give specific, helpful feedback, required a lot of trial and error. We spent a long time tweaking the logic because the model would sometimes lose context or give generic advice. It wasn't just plug-and-play; we had to really refine how we sent the data to get the result we wanted.

Accomplishments that we're proud of

Stable Integration with Gemini We are genuinely proud that we got the API connection to be stable after being stuck on it for a while. End-to-End Pipeline Stability Getting the full audio processing loop, capturing microphone input, Base64 encoding, and receiving a structured JSON response from Gemini, to run reliably was a significant milestone.

What we learned

Working with voice data requires far more careful error handling than text-only AI integration. Implementing audio in the browser introduced unexpected challenges, from permissions to inconsistent sample rates

What's next for OpenMic

Live Conversation Mode. Moving from a "record and review" format to a real-time, back-and-forth dialogue with the AI. Adaptive Prompt Library. We want to expand the Quest Board with topics hyper-specific to the user's personal goals, not just generic conversation starters. Job Interview Scenarios. Adding specific modes where users can practice for high-pressure situations like interviews or presentations. Mobile Optimization. Improving the mobile audio support so users can practice on their phones without permission bugs. Multi-Language Support. Using the same Gemini pipeline to support other languages

Built With

Share this project:

Updates