Inspiration

Parent–teacher conferences are often the one time a parent gets a full picture of how their child is doing. For families who don't speak the school's language, that conversation can be the hardest to follow, especially once jargon like "IEP" or "below benchmark" comes up. Interpreters exist, but they have to be booked in advance and aren't always there when a meeting runs long or a question comes up. We wanted something a teacher could open on a tablet, so that both people could just talk.

What it does

ParentBridge is a live two-way voice interpreter for parent–teacher meetings (our demo pair is French ↔ English).

  • Tap and talk: each side has its own mic button. The parent speaks French, and the teacher hears it in English in a natural voice about two seconds later. Then they switch.
  • Captions in both languages: every turn appears side by side, the original and the translation, so either person can reread what was said.
  • School jargon handled: an education glossary makes sure terms like "IEP" are kept and explained the first time, not mistranslated.
  • "Whose turn is it?" at a glance: a soft light follows the voice. It glows purple while a person speaks and teal while ParentBridge speaks the translation.
  • A summary you can keep: "End meeting" produces a bilingual summary and an action-item table (who does what, by when). It only includes commitments actually stated in the meeting.

How we built it

  • Speech to text: ElevenLabs Scribe, with the language forced by the button pressed (no guessing which language was spoken).
  • Translation: Claude (Anthropic API), using a school glossary plus the last six turns as context so pronouns and follow-ups translate correctly.
  • Voice: ElevenLabs Flash, a low-latency multilingual voice, with a separate voice for each language.
  • Summary: Claude with structured JSON output, validated with Pydantic.
  • Backend: FastAPI, with one endpoint per turn and one for the summary. It also serves the frontend.
  • Frontend: a single HTML file with plain JavaScript (no framework). It uses MediaRecorder for capture and the Web Audio API to drive the speaking glow from the real audio level. Designed in Figma first.
  • Deploy: Render.

Challenges we ran into

  • Speed: a translation that arrives five seconds late kills a conversation. We timed every stage (speech-to-text, translation, voice) on each request and tuned until a full turn took about 1.5–2 seconds. We also warm up every service when the server starts, so the first turn of the demo isn't the slow one.
  • Switching models mid-hackathon: we started on OpenAI and switched to Claude on Saturday, when we didn't have API credits for OpenAI.
  • Making the glow feel real without making it janky: the glow follows real audio levels, mic input while you speak and the generated voice during playback. We only animate transform and opacity so it stays smooth on a tablet. The synthesized voice turned out to be much louder than a microphone, so we had to tune the two separately.
  • Testing a voice app without talking all night: we fed a recorded French clip into a headless browser as a fake microphone, so we could test the full loop automatically.

Accomplishments that we're proud of

  • A real round trip (French speech → English voice) in about two seconds.
  • The handoff moment: when you stop talking, a band of light travels to the other person and lands on the same frame the translated voice starts.
  • A summary that refuses to invent things: no made-up dates, owners or services.
  • Every state is designed, not just the happy path: empty, translating, errors, mic blocked, loading.

What we learned

  • In a voice product, latency is the UX. Showing the caption before the audio plays makes the wait feel shorter.
  • Context matters for translation quality: passing the last few turns fixed pronouns and short replies like "D'accord."
  • Browsers are strict about microphones and audio (HTTPS only, user gesture required), so plan the deploy early.

What's next for ParentBridge

  • More languages: the pipeline isn't tied to French. Adding Spanish, Arabic or Mandarin is mostly a glossary and a voice.
  • Critical-fact confirmation: read back dates, times and names before they go into the summary.
  • Print or share the summary so the parent leaves with something in hand.
  • A face-to-face tablet layout with each side of the screen facing one person.
  • Privacy-first by design: no accounts and no stored recordings today; we'd keep it that way for schools.

Built With

Share this project:

Updates

Submission history