geelen&company
a project · built with agentic engineering

Sprechloop

A local-first pronunciation coach. It shows you a sentence, you say it aloud, and it tells you how close you got — privately, offline, on your own machine. No cloud, no account, nothing leaves the room.

Status In active use · v1.3.0, deployed
Repository Internal build — source not public
Stack Python · Whisper · Piper · Ollama
The Sprechloop practice screen — a German prompt to speak aloud (‘Könnten Sie mir den Weg zum Rathaus erklären?’, a travel-topic phrase), a large microphone record button with auto-speak, continuous, and progress controls, CEFR level and topic selectors, and a live LISTENING status.

The Sprechloop drill — a prompt to say aloud, a mic that listens, and it scores you back.

Purpose & goals

Sprechloop is a pronunciation coach for practising a new language out loud, privately and offline. It presents a target sentence, you repeat it aloud, and the system evaluates how accurately you pronounced it — then adapts what it asks you next based on how you did. It was built for German first, but the design is language-agnostic. Everything runs locally on a single machine with a modest graphics card: no cloud service ever hears your voice, which is the whole point.

Modules & architecture

The system is a pipeline of pluggable stages, each doing one job and handing off to the next:

The default mode is continuous and conversational: it waits, hears you speak, and produces feedback in parallel with choosing the next drill — no buttons to press. Configurable memory “profiles” choose smaller or larger models to fit the graphics card you have.

Functionality & technology

Sprechloop is written in Python. Speech recognition uses faster-whisper, with word-level confidence feeding the pronunciation score; speech is spoken back with Piper; feedback comes from a local model served by Ollama; voice activity is detected with Silero on the CPU; and history lives in a small embedded database. The whole thing is served over a web interface and ships as containers, including a deployed production stack. Everything heavy runs on the local graphics card — private by design.

← Back to Agentic Engineering

VALUES INTENT AND OUTCOME OVER METHOD AND PRECEDENT