Why I built it
Speaking practice needs a patient partner who remembers what you talked about yesterday. Most voice apps send your audio to someone else’s servers and keep your history somewhere you can’t see or edit.
What it does
- Hands-free turns: silence detection decides when you’ve finished, no push-to-talk
- Speech-to-text and text-to-speech run locally; only the conversation text goes to the model you choose
- Memory lives in plain Markdown files you can open and edit: who you are, what you’ve covered, a daily log
- Personas for different practice styles: conversation coach, gentle corrector, roleplay partner
- Optional sentence-by-sentence replies and interrupting the voice mid-sentence
How it’s built
A Python backend runs faster-whisper on the GPU for transcription and Kokoro on the CPU for speech, and talks to any OpenAI-compatible endpoint. The browser front end has no build step, and the whole app listens on localhost only.
The hard part
Latency. A voice conversation feels broken after about a second of silence. Streaming replies sentence by sentence helps; hitting the target every time is still in progress, which is why it’s labelled beta.
Stack
Pythonfaster-whisperKokoro TTSJavaScriptOpenAI-compatible API