Skip to content

Local DE Coach v0.1.0 — Initial Release

Choose a tag to compare

@bif26 bif26 released this 12 Sep 21:38
· 17 commits to main since this release

🎯 Initial release of Local DE Coach

A local, offline German pronunciation coach for Goethe Institut and ÖSD exam preparation. Runs on Arch Linux with a hard 2 GB RAM ceiling on an Intel i5-1135G7 + 8 GB RAM laptop.

✨ What's included

Backend (Python + FastAPI)

  • POST /api/score — score recorded audio against target text
  • POST /api/live — SSE streaming live transcription
  • GET /api/progress — weekly trend, top errors, level readiness
  • GET /api/srs/queue + POST /api/srs/review — SM-2 spaced repetition
  • GET /api/status — RAM/health monitor
  • POST /api/warmup + POST /api/unload — model lifecycle controls
  • Wav2Vec2 DE base (~360 MB) + Whisper tiny int8 (~150 MB) with strict single-model-at-a-time swap
  • 5-layer adaptive scorer (Levenshtein → word diff → suffix → umlaut → phonetic) tuned to A1–C1
  • SQLite WAL persistence with sessions, word_errors, srs_queue tables

Frontend (SvelteKit + Tailwind)

  • 8 routes: Dashboard, Practice (Text Reading), Shadowing (YouTube), Live, Progress, SRS Trainer, Settings, System
  • Typed API client with SSE streaming support
  • AudioRecorder + ScoreDisplay reusable components
  • System status polling every 5s with green/yellow/red health indicator

Arch Linux packaging

  • install.sh — pacman deps + CPU-only torch wheel + npm build + systemd install
  • systemd/local-de-coach.service — user service with MemoryMax=2.5G cap
  • PKGBUILD for AUR
  • Full README with quick start, API reference, RAM budget table

📊 RAM budget

State Resident RAM
Cold (idle) ~190 MB
Scoring (Wav2Vec2) ~910 MB
Live (Whisper) ~700 MB
Hard ceiling 2,000 MB

Auto-unload triggers at 1.8 GB → returns HTTP 503 with Retry-After: 5.

🚀 Quick start

git clone https://github.com/bif26/Local_DE_Coach.git
cd Local_DE_Coach
./install.sh
systemctl --user enable --now local-de-coach.service
# Open http://localhost:5173

📚 Documentation

  • docs/architecture.pdf — full 33-page engineering specification
  • README.md — quick start + API reference
  • Interactive API docs at http://127.0.0.1:8765/docs once running

⚠️ Known limitations

  • First /api/score call downloads Wav2Vec2 (~360 MB, ~6s load)
  • Arch Linux only for now (pacman + systemd). Debian/Ubuntu port planned for v0.2.
  • The C1 phonetic layer (vowel length, aspiration) uses heuristics only — fine-tuning requires labeled audio.

🔒 Security note

If you fork this repo, never commit GitHub Personal Access Tokens. Use environment variables or git credential-cache instead. The .gitignore already excludes model weights and caches.


Full changelog: see git log v0.1.0

Built with ❤️ for German learners everywhere.