P / 02 · Apprentissage des langues · Application de bureau

Faseeh

Une application de bureau local-first qui transforme vidéos, articles et livres en supports d’apprentissage des langues, extensible par plugins. Projet d’une équipe de quatre ; j’ai travaillé sur les fonctionnalités d’apprentissage autour du cœur.

Open source · Projet d’équipe

Explorer le dépôt

Réalisé en équipe de quatre. J’ai conçu la première interface, puis développé la génération de sous-titres, l’estimation de difficulté des textes et le dictionnaire.

Besoin & utilisateurs

Les apprenants veulent étudier à partir de contenus qu’ils aiment, pas de leçons génériques. Faseeh est le cadre : un cœur indépendant de la langue avec bibliothèque, lecteur vidéo et lecteur de texte, que des plugins enrichissent d’adaptateurs, de dictionnaires et d’autres outils. Apprendre sur du contenu réel demande des sous-titres pour les vidéos, un moyen de juger si un texte est trop difficile et une recherche de mots immédiate.

Réalisation

Sous-titres : un registre indexé par identifiant, une classe abstraite commune aux options et résultats typés, et un adaptateur direct OpenAI Whisper. Difficulté : détection de la langue, puis combinaison des indices Flesch-Kincaid et Gunning Fog en un score de 0 à 100 classé de débutant à expert, pour l’anglais, le français, l’espagnol, l’allemand et l’italien. Dictionnaire : détection de la langue du mot, requête à l’API Oxford Dictionaries et normalisation en une entrée unique avec définitions, phonétique, exemples et synonymes. Auparavant, j’ai posé le premier prototype React et Material UI : accueil, apprentissage, transcription et composant de quiz.

Choix technique

Chaque fonctionnalité passe par un contrat typé plutôt que d’appeler un fournisseur directement. Le registre vérifie qu’un moteur existe et est disponible ; l’estimateur reçoit son détecteur de langue par injection pour être testé isolément ; les erreurs du dictionnaire sont typées (langue non prise en charge, réponse invalide).

En pratique

Le registre de sous-titres est sur la branche principale (commit 5ae68f8). L’estimation de difficulté et le dictionnaire sont sur les branches difficulty-estimator et mouse-over_dictionary, avec des tests Vitest. La première interface se trouve dans le dépôt Faseeh-old.

Limites actuelles

  • L’estimation de difficulté et le dictionnaire restent sur des branches non fusionnées. Le dictionnaire cible l’API sandbox d’Oxford.
  • La densité lexicale est encore un paramètre fictif : le score repose entièrement sur les formules de lisibilité. Les sous-titres n’ont qu’un adaptateur de fournisseur.
  • Le reste de l’application (système de plugins, bibliothèque, lecteurs) est le travail de l’équipe ; les captures montrent cette application pour le contexte.

Sur GitHub

Faseeh

A free and extensible app to learn any language using the digital content you love.

  • TypeScript
  • 3 étoiles
  • Mise à jour

Sources

Révision de référence : 5ae68f8.