Track your children's pronunciation evolution over time with this cozy web application. Record, upload, and organize audio recordings with visual waveform editing.
- Multi-child management with individual vocabularies
- Browser recording or file upload (MP3, WAV, OGG, M4A, WebM)
- Visual waveform trimming with click-and-drag selection
- Date-precise tracking (daily, monthly, yearly organization)
- Image associations for words
- Mobile-responsive Bootstrap 5 interface
- Local file storage (no cloud uploads)
- Image search using Pixabay API (optional). Docs.
git clone <repository-url> && cd voices
docker build -t paraulins .
docker run -p 5001:5001 -v $(pwd)/data:/app/data paraulinsgit clone <repository-url> && cd voices
pdm install
pdm run startOpen http://localhost:5001
pdm install # Install dependencies
pdm run pre-commit-install # Install pre-commit hooks
pdm run start # Start development serverpdm run test # Run tests with coverage
pdm run lint # Run flake8 linting
pdm run format # Format with black
pdm run type-check # Run mypyvoices/
├── app.py # Flask application
├── models/ # Data models (Child, Word, Recording)
├── routes/ # API & web routes
├── services/ # Business logic (Audio, Data, Image)
├── static/ # CSS & JavaScript
├── templates/ # HTML templates
├── tests/ # Test suite
└── data/ # Storage (JSON + audio/image files)
- Add children on the home page
- Add words for each child
- Record audio (browser recording or file upload)
- Trim audio using the visual waveform (optional)
- Add images to words for visual recognition
Quick start: Fork → Clone → pdm install → Make changes → pdm run test && pdm run lint → Submit PR
MIT License - see LICENSE file.
