57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
# Memoire Projet
|
|
|
|
## Contexte
|
|
|
|
Ce projet est un POC de professeur virtuel pour enfants, avec:
|
|
- frontend React + Vite
|
|
- backend FastAPI
|
|
- PostgreSQL pour les donnees eleve
|
|
- Redis present dans la stack
|
|
- integration OpenAI pour reponses texte et transcription audio
|
|
|
|
## Points Importants
|
|
|
|
- Le frontend appelle l'API via le prefixe `/api`.
|
|
- Le backend expose une route `POST /transcribe` pour la transcription audio.
|
|
- La route `/transcribe` utilise `UploadFile`, donc `python-multipart` est requis dans le backend.
|
|
- Le vrai `docker-compose.yml` de production n'est pas dans ce repo. Il est situe un niveau au-dessus sur le serveur.
|
|
- La conf nginx reelle route:
|
|
- `/api/` vers `tutor-backend:8000`
|
|
- `/` vers `tutor-frontend:3000`
|
|
|
|
## Dictée Vocale
|
|
|
|
- L'ancien bouton de dictee marchait en mode manuel avec `MediaRecorder.start()` puis `stop()`.
|
|
- Le mode actuel est un mode mains libres:
|
|
- activation via un clic utilisateur
|
|
- enregistrement automatique
|
|
- detection du silence
|
|
- transcription automatique
|
|
- envoi automatique du message
|
|
- Firefox s'est montre capricieux avec la mesure temps reel via `AnalyserNode`.
|
|
- La solution retenue s'appuie sur un traitement plus direct du flux audio pour determiner le niveau sonore.
|
|
- L'ecoute se rearme automatiquement apres:
|
|
- la transcription/envoi du message eleve
|
|
- la fin de lecture vocale du professeur
|
|
|
|
## Voix du Professeur
|
|
|
|
- Le frontend charge les voix du navigateur via `speechSynthesis.getVoices()`.
|
|
- Une liste de voix est proposee dans l'interface.
|
|
- Les voix francaises sont priorisees dans le tri.
|
|
|
|
## Points de Vigilance
|
|
|
|
- Les erreurs WebSocket Vite/HMR sur `wss://prof.open-squared.tech/...` sont du bruit de dev tant que le frontend tourne via Vite derriere nginx.
|
|
- Ces erreurs ne sont pas la cause principale si `/api/*` renvoie des `502` ou si le micro se comporte mal.
|
|
- En cas de `502` sur `/api/*`, verifier d'abord `docker logs tutor-backend`.
|
|
|
|
## Fichiers Touchés Pendant Cette Session
|
|
|
|
- `frontend/src/App.jsx`
|
|
- `frontend/vite.config.js`
|
|
- `backend/app/main.py`
|
|
- `backend/app/services.py`
|
|
- `backend/requirements.txt`
|
|
|