Application desktop multiplateforme pour mémoriser et pratiquer des paroles de chansons dans plusieurs langues avec traduction automatique.
LyRemember est une application moderne qui combine :
- Desktop natif (Tauri + Vue 3)
- Backend Rust performant (SQLite + reqwest)
- Support multi-langues (FR, EN, JP, KR)
- Traduction automatique (LibreTranslate, stockée offline)
- Practice modes (Karaoke, Fill-blank, MCQ, Oral)
Note phonétique : la génération phonétique est un stub passthrough (PyO3 retiré —
services/phonetic.rsretourne le texte original inchangé).
- Rust : 1.70+ (
rustuprecommandé) - Node.js : 18+
- pnpm :
npm install -g pnpm
# Installer les dépendances frontend
pnpm --dir lyremember-app install
# Mode développement (Tauri + Vite)
pnpm --dir lyremember-app tauri devNote prod : définir
LYREMEMBER_JWT_SECRET(voir.env.example) avant tout déploiement. À défaut, un secret éphémère est généré au démarrage et un avertissement est loggué — les JWT deviendront invalides à chaque restart.
Vue 3 Frontend (TypeScript)
↓
Tauri Commands (21 commandes, préfixées cmd_)
↓
Rust Backend (5 services)
↓
SQLite + reqwest (LibreTranslate)
cd legacy/python-cli/
pip install -r requirements.txt
pip install -e .
lyremember --helpLe CLI Python n'est plus la stack canonique — il vit comme référence dans
legacy/python-cli/. La stack supportée est
Rust + Tauri + Vue 3.
rust-backend/
├── src/
│ ├── services/ # Auth, Phonetic (stub), Translation, Songs, Practice
│ ├── models/ # User, Song, PracticeSession
│ └── db/ # SQLite avec auto-init
└── Cargo.toml
Fonctionnalités :
- ✅ Authentication (bcrypt + JWT)
- ✅ SQLite persistence (4 tables)
- ✅ LibreTranslate pour traduction auto
- ✅ CRUD Songs
- ✅ Practice session tracking + stats
Documentation : rust-backend/README.md
lyremember-app/
├── src/ # Frontend Vue 3 + TypeScript
│ ├── views/ # LoginView, RegisterView, DashboardView, SongsView...
│ ├── stores/ # Pinia : auth, songs, sessions, ui
│ ├── router/ # Vue Router avec guards auth
│ └── lib/
│ └── tauri-api.ts # TypeScript API (21 commandes)
│
└── src-tauri/ # Backend Tauri
├── src/
│ ├── commands.rs # 21 Tauri commands (cmd_*)
│ └── lib.rs # Initialisation DB
└── Cargo.toml
Fonctionnalités :
- ✅ 21 Tauri commands (type-safe)
- ✅ TypeScript API complète
- ✅ Vue Router + guards auth
- ✅ Pinia stores (auth, songs, sessions, ui)
- ✅ Database auto-created in app data dir
Documentation : lyremember-app/README.md
- Japonais, Coréen, Français, Anglais (et autres via LibreTranslate)
- Phonétique : stub passthrough (retourne le texte original)
- Traduction EN automatique lors de l'ajout de chanson
- Stockée dans SQLite → usage offline
- LibreTranslate API (gratuit)
- Karaoke : Défilement auto ligne par ligne
- Fill-blank : Phrases à trous (style "N'oubliez pas les paroles")
- MCQ : Propositions multiples
- Oral : Reconnaissance vocale
- Sessions de pratique enregistrées
- Statistiques par utilisateur
- Niveau de maîtrise par chanson
- Recommandations personnalisées
- Backend Rust complet
- 21 Tauri commands type-safe
- TypeScript API
- Database auto-initialization
- Documentation exhaustive
- Vue Router + navigation multi-page
- Pinia stores (state management)
- Login/Register views
- Dashboard view
- Song List view
- Karaoke mode component
- Fill-blank mode component
- MCQ mode component
- Progress visualization
- Genius API search & import
- Dark mode toggle
- i18n (FR/EN/KR/JP interface)
- Settings page
- Icons & branding
- Animations & transitions
- Keyboard shortcuts
- Error handling UI
Frontend :
- Vue 3 (Composition API + TypeScript)
- Vite (build tool + HMR)
- Tailwind CSS
- Pinia (state management)
- Vue Router
Desktop :
- Tauri 2.0 (native windows)
- 21 Tauri commands (préfixées
cmd_)
Backend :
- Rust (
lyremember_backendlibrary) - SQLite (rusqlite) — auto-créée dans app data
- bcrypt + JWT (authentication)
- reqwest → LibreTranslate API
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une Pull Request.
MIT License — voir le fichier LICENSE pour les détails.
Note : Le CLI Python ci-dessous est un proof of concept archivé dans
legacy/python-cli/. Toutes les commandescd lyremember, les cheminsrequirements.txt,data/, etc. sont à interpréter relativement àlegacy/python-cli/. Pour production, utiliser l'application Tauri (lyremember-app/).
✨ Support multi-langues — Ajoutez et pratiquez des chansons dans n'importe quelle langue
🎯 Modes de pratique :
- Fill-in-the-Blank : Des mots aléatoires sont masqués
- Flashcard : Voyez le début d'une ligne et complétez-la
- Line-by-Line : Saisissez chaque ligne de mémoire
📊 Suivi de progression — Statistiques détaillées, niveaux de maîtrise, recommandations
git clone https://github.com/RebelliousSmile/lyremember.git
cd lyremember
pip install -r requirements.txt
pip install -e .# Ajouter une chanson
lyremember add
# Lister les chansons
lyremember list
# Pratiquer
lyremember practice <song-id>
lyremember practice <song-id> --mode flashcard
lyremember practice <song-id> --difficulty 0.5
# Voir la progression
lyremember progress
lyremember progress <song-id>