Bonjou uses anonymous analytics (Google Analytics and Microsoft Clarity) to see which lessons get used, so I can improve them. No ads, nothing sold. Details
Une plongée technique exhaustive dans une plateforme bâtie à travers plus de 526 jalons d'ingénierie avec Claude Code, Google Gemini et Antigravity — réunissant un pipeline TTS neuronal hors ligne de 247 108 fichiers audio (4,34 Go) sur Cloudflare R2, 116 leçons de grammaire v2, 351 podcasts multi-voix, des contes interactifs pour enfants et une architecture PHP 8.3 / MySQL respectueuse de la vie privée (Consent Mode v2).
De l'ingénierie multi-modèles locale (Claude Code, Gemini, Antigravity, pipelines ONNX & alignement Whisper/wav2vec2) jusqu'au déploiement continu Hostinger Git, au CDN Cloudflare R2 et à la télémétrie RGPD Consent Mode v2.
Une architecture hybride combinant ingénierie assistée par IA multi-modèles, synthèse vocale neurale hors ligne, distribution edge Cloudflare R2 et conformité RGPD stricte.
Contrairement à un simple wrapper LLM, Bonjou est le fruit de plus de 526 jalons d'ingénierie développés intensivement avec Claude Code (architecture backend, pipelines audio, audits de sécurité, tests E2E Playwright), Google Gemini et Antigravity (rédaction du corpus grammatical v2 et gamification), complétés par des modèles locaux spécialisés (faster-whisper large-v3-turbo et wav2vec2-xlsr-53).
Pour dépasser la limite d'inodes d'hébergement partagé Hostinger et la limite Git de 5 Go, les 247 108 clips vocaux pré-générés (4,34 Go) sont déportés sur Cloudflare R2 (audio.bonjou.fr) sans frais de bande passante (Zero-Egress). Chaque phrase est adressée par son empreinte déterministe fnv1a(cleanForHash(text)) répartie en shards de 2 caractères (audio/tts/ et audio/tts-slow/).
La synthèse vocale combine Supertonic ONNX (44,1 kHz, 8 steps — F4 Hélène, F2 Inès, F1 Sarah, F5 Emily, M3 Julien, M1 Alex, M2 James, M5 Hugo), Piper ONNX VITS (Marie fr_FR-siwis-medium, Thomas fr_FR-tom-medium, Pierre & Jessica fr_FR-upmc-medium), Amazon Polly Generative (Florian & Ambre avec garde-fou SPEND_GUARD_LIMIT = 500), ainsi que des auditions ElevenLabs, Audio8, edge-tts et Kitten.
L'audit acoustique (tools/audio-loudness/audit.py) a révélé un écart de 11 LU entre les voix brutes (-14,4 à -25,5 LUFS). Le pipeline level.py ajuste chaque trame MP3 sans perte via mp3gain (cible 89 dB / -23,5 LUFS, écart réduit à 1,5 LU sans ré-encodage ni écrêtage). Côté client, Nav.speakStored() applique une cascade à 4 niveaux : ① Voix choisie → ② Doublure Piper de même genre → ③ Synthèse WASM locale → ④ Web Speech API.
La télémétrie repose sur Google Tag Manager (GTM-NBVZ622M), Google Analytics 4 (GA4) (suivi automatique des événements API activity_start, activity_complete, login, sign_up) et Microsoft Clarity (cartes de chaleur et sessions). Conformément au RGPD, Google Consent Mode v2 (#bj-consent) verrouille tous les stockages sur denied par défaut avec ads_data_redaction: true jusqu'au consentement explicite.
Backend sans dépendance lourde : persistance MySQL (api/db.php) avec bascule automatique sur fichiers JSON (storage/), libération anticipée du verrou de session (session_write_close() M345/M346) avant tout appel IA amont, protection CSRF stricte, limiteur de débit à 5 couches et cache d'idempotence IA SHA-256 (storage/ai_idem/, TTL 15 min, X-AI-Replay: 1) évitant toute double facturation.
247 108 fichiers audio (~4,34 Go) générés hors ligne, alignés au mot et à la ligne en JSON, normalisés selon la norme broadcast EBU R128 (-23,5 LUFS) et servis depuis Cloudflare R2.
| Moteur / Architecture | Voix & Presets Officiels | Rôle Pédagogique & Distributions Podcasts | Spécifications Acoustiques & Coût |
|---|---|---|---|
Supertonic ONNX44.1 kHz · 8 steps · 0.95x |
F4 Hélène, F2 Inès, F1 Sarah, F5 Emily, M3 Julien, M1 Alex, M2 James, M5 Hugo | Voix principales des 351 podcasts (Cast A : Inès & Pierre · Cast B : Hélène & Julien · Tables rondes à 4–5 voix), Contes enfants (Hélène, Inès) et lecture (Sarah, Hugo). | 100 % gratuit hors ligne (CPU) · PER IPA 6,5 %–8,9 % · Compensé +0,8 à +1,8 dB (-23,5 LUFS). |
Piper ONNX VITSsiwis / tom / upmc |
Marie (fr_FR-siwis-medium), Thomas (fr_FR-tom-medium), Pierre & Jessica (fr_FR-upmc-medium #1/#0) |
Cast C classique (Marie & Thomas), co-animateur Cast A (Pierre), doublures universelles de secours (étape ②), narration enfants (Marie) et synthèse live dans le navigateur (js/piper-tts.js). |
100 % gratuit hors ligne & WASM · PER IPA n°1 (Marie 5,5 %) · Vitesse 0,09s CPU par seconde audio. |
Amazon Polly GenerativeAWS Cloud Neural |
Florian (m) & Ambre (f) | Corpus pré-généré de ~29 000 clips par voix pour les drills et le shadowing (generate-slow.js à 0,6x via ffmpeg rubberband), doublés automatiquement par Thomas/Marie. |
Payant (~30 $/1M car.) · Protégé par double verrou : SPEND_GUARD_LIMIT = 500 et plafonds M19. |
Bancs d'Audition & LaboElevenLabs · Audio8 · Kitten · edge-tts |
Renard & Hermeline (ElevenLabs), Audio8 0.6B INT4 (clones zéro-shot), edge-tts / Kitten | Répliques expressives et idiomatiques des mascottes sur l'accueil et la page À propos, auditions comparatives de prosodie et bancs de test phonétiques. | Fichiers statiques pré-rendus (mascottes) et modèles expérimentaux évalués hors production. |
De la maternelle (2–6 ans) jusqu'à la maîtrise académique C2 et aux certifications officielles DELF/DALF/TEF/TCF.
Cursus intégral A1 à C2 propulsé par le lecteur pédagogique séquentiel en 6 étapes (js/grammar/lesson-player.js) : mise en scène dialoguée, découverte inductive par tri (Notice), règles et pièges francophones, plus de 1 400 activités adossés au corpus avec modales 📐 Structure, indices 💡 Hint et barre d'accents partagée.
Bibliothèque de 351 épisodes (duos, trios, tables rondes à 4–5 voix, vitesses 1.0x & 0.88x) en 3 distributions (Cast A : Inès & Pierre, Cast B : Hélène & Julien, Cast C : Marie & Thomas), couronnée par le pilote C2 /podcast-pilot en 8 étapes verrouillées avec synchronisation centrée, shadowing, débat littéraire et Combat de Boss en 3 questions.
Expérience gamifiée (/children-stories) avec sélecteur d'âge en amont : mode Petits Aventuriers (2–6 ans) avec Grand Puzzle Tactile 4 Pièces vs mode Grands Explorateurs (7–12 ans) en 6 étapes et Théâtre de rôle, mascottes Renard 🦊 & Hermeline 🦔, garde d'écoute stricte à ≥ 90 % (anti-avance rapide & focus) et Guide Pédagogique A4 imprimable (/children-stories-teachers-guide).
Centre d'évaluation certifiant chronométré en 4 épreuves (Compréhension Orale, Compréhension Écrite, Production Écrite, Production Orale — A1 à C1) avec seuil éliminatoire officiel (< 5/25), notation IA vérifiée côté serveur (lib/assessment-ai-grading.php), test de placement adaptatif et module speaking-tasks 100 % enregistré au microphone.
Dictée Interactive (1 160 phrases avec diff mot-à-mot serveur), Laboratoire d'Écoute à l'aveugle, Lecture (170+ textes + 10 Story Arcs biographiques continus de A1 à C1 avec glossaire vocal instantané au clic), Studio d'Écriture Guidée (72 sujets, synthèse, combinaison de phrases, journal) et Culture & Idiomes.
Entraîneur Vue 3 sur 101 verbes × 10 temps (21 400+ phrases générées sur 6 modes), Flashcards SRS Leitner inter-outils, Laboratoire de Phonétique & Liaisons (paires minimales, voyelles nasales), Shadowing Studio (1.0x / 0.6x + courbe de progression) et Suite d'Aisance Orale (tool-1 à tool-7 : Frame Vault, Circonlocution, Retelling, Opinion, Coach IA, Roleplay).
Plus de 526 jalons documentés dans docs/CHANGELOG.md et docs/STATUS.md, validés par des suites de tests unitaires et Playwright E2E.
Construction avec Claude Code et Google Gemini du socle PHP 8.3 + MySQL / JSON fallback, de l'entraîneur Vue 3 (101 verbes × 10 temps, 21 400+ phrases), de la suite d'aisance orale (tool-1 à tool-7, shadowing, roleplay), de la piste Lecture/Écriture (170+ textes, 10 Story Arcs, dictée 1 160 phrases) et du Centre d'Évaluation A1–C1 à notation IA vérifiée côté serveur.
Intégration des moteurs hors ligne Piper ONNX et Supertonic ONNX (plus Piper WASM dans le navigateur), nivellement sans perte mp3gain à 89 dB / -23,5 LUFS (écart réduit de 11 LU à 1,5 LU), déport des 247 108 fichiers (4,34 Go) sur Cloudflare R2 (audio.bonjou.fr), libération anticipée du verrou de session PHP (M345/M346) et cache d'idempotence IA SHA-256 (storage/ai_idem/, M378).
Production de 275 épisodes de podcasts en duos, trios et tables rondes (Casts A/B/C, styles d'enchaînement natural, tight, overlap, random et vitesses 1.0x / 0.88x), création du Voice Hub évaluant 16 voix via faster-whisper large-v3-turbo et wav2vec2 (PER IPA), et déploiement de Google Consent Mode v2 (#bj-consent, GTM, GA4 et Microsoft Clarity en opt-in strict).
Refonte complète du cursus grammatical en 66 leçons interactives v2 (A1 à C2) propulsées par js/grammar/lesson-player.js avec 1 400+ activités, modales de structure, indices et photos Pexels par étape. Création des mascottes vectorielles Renard et Hermeline (5 postures SVG, voix ElevenLabs, favicons dynamiques et bandeau HUD .gx-strip unifié).
Conception du pilote gamifié en 8 étapes verrouillées (/podcast-pilot) : 67 répliques synchronisées au centre de l'écran, 20 locutions, 10 quiz, puzzle cloze, shadowing, atelier débat et Combat de Boss en 3 questions (100 PV, Double XP) avec synchronisation dynamique des distributions authentiques (Voix A Inès & Pierre, Voix B Hélène & Julien, Voix C Marie & Thomas).
Lancement de « Léo et Léa : Le Secret de la Forêt Enchantée » (/children-stories) avec narration féminine hors ligne (Marie, Hélène, Inès), sélecteur d'âge en amont (Petits Aventuriers 2–6 ans avec Grand Puzzle 4 pièces vs Grands Explorateurs 7–12 ans en 6 étapes), garde d'écoute stricte à ≥ 90 % et Guide Pédagogique A4 PDF (/children-stories-teachers-guide) pour la classe (TBI) et l'enseignement en ligne.