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
- FSRS: repetition schedule
- 16 games on a shared registry
- Speech scoring: Whisper + line-by-line diff
- Gemini Live over WebSocket straight from the browser
- 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
- c76e2e112.07.2026Talker, decoupling from the GPT course, “call bro” (Gemini Live)
- 952358d27.07.2026The feed gets harder on its own, otherwise it slides into easy mush
- cb7bdbe27.07.2026Grammar judge for the feed: absurdity is a genre, “la horno” is a defect
- 6f02f2026.07.2026infra: TTS survives the Microsoft ban, offsite pulls a snapshot, SW spares the voice cache
- 3a04c9325.07.2026the score stopped being an exercise label — otherwise words got stuck