0dev.team
← All work

Spanish trainer

A Spanish trainer with a voice conversation partner and 16 games on spaced repetition

Task

A trainer for Argentine Spanish. Words rotate by FSRS across sixteen games, pronunciation is checked by speech recognition. The “call bro” button on any screen opens a live voice conversation: the partner remembers past calls and does not give away the answer until the learner answers on their own.

How it works

  1. FSRS: repetition schedule
  2. 16 games on a shared registry
  3. Speech scoring: Whisper + line-by-line diff
  4. Gemini Live over WebSocket straight from the browser
  5. Scheduled phrase generation, a judge filters out defects

What had to be solved

The voice sounded robotic because of someone else’s ban

Voicing every phrase at nine speeds ran into a Microsoft limit, and the service answered worse — it sounded “robotic”. Three speeds were kept, and the whole phrase bank is voiced by a background queue with pauses.

Commits

  1. c76e2e112.07.2026Talker, decoupling from the GPT course, “call bro” (Gemini Live)
  2. 952358d27.07.2026The feed gets harder on its own, otherwise it slides into easy mush
  3. cb7bdbe27.07.2026Grammar judge for the feed: absurdity is a genre, “la horno” is a defect
  4. 6f02f2026.07.2026infra: TTS survives the Microsoft ban, offsite pulls a snapshot, SW spares the voice cache
  5. 3a04c9325.07.2026the score stopped being an exercise label — otherwise words got stuck