A local Python flashcard app with:
- Deck/card management
- Voice speech-to-text (Whisper)
- Voice text-to-speech (Piper)
- Optional OpenRouter-based spoken answer evaluation
- AI-powered card quality review (spelling, grammar, possible wrong content)
- Desktop wrapper (PySide6) and web mode (Flask)
- Python 3.10+ (tested locally with Python 3.14)
- Windows is best supported for bundled voice setup (
setup_voice.py)
- Create and activate a virtual environment:
python -m venv .venv
.venv\Scripts\Activate.ps1- Install dependencies:
pip install -r requirements.txt- Optional but recommended: bootstrap voice binaries/models:
python setup_voice.py- Start the app:
Web:
python app.pyThen open http://127.0.0.1:5000.
Desktop wrapper:
python desktop_app.py- Select a deck, then click Check Cards.
- Run AI scan to flag spelling/grammar issues and cards that may be conceptually wrong.
- Accept/reject suggestions, manually edit inline, select the cards you want, and click Apply Selected.
- App settings are stored in
settings.json(local only; ignored by git). - Start from
settings.example.jsonif you want a template. - Set
openrouter_api_keyandopenrouter_modelin app Settings to enable answer evaluation.
- This repo intentionally ignores local runtime files and downloaded model/binary assets.
- After cloning, run
python setup_voice.pyto re-download voice dependencies.