Aller au contenu
Jeremy Prat
Projets personnels et d'étudesProjet d'école

Dans une visioconférence, une personne sourde ou malentendante n'a pas accès à ce qui se dit, et les personnes entendantes ne comprennent pas la langue des signes française. SignSpeak traduit dans les deux sens. J'étais le seul développeur front-end de l'équipe.

Cadre
Projet d'école
Période
2024 - juin 2026
Structure
Sophia Ynov Campus, projet Ydays
Rôle
Seul développeur front-end d'une équipe de sept
Outils et technologies
  • JavaScript
  • HTML
  • CSS
  • Manifest V3
  • Yeoman
Statut
Non livré : ma branche de connexion au backend n'a pas été fusionnée, et j'ai arrêté ma participation en juin 2026

Dans une réunion en visioconférence, une personne sourde ou malentendante n'a pas accès à ce qui se dit, et les personnes entendantes ne comprennent pas la langue des signes française. SignSpeak est une extension navigateur qui traduit dans les deux sens, en temps réel, par-dessus la visioconférence.

Le cadre

Un projet Ydays de Sophia Ynov Campus, mené par une équipe de sept personnes en trois pôles : gestion de projet et UX/UI, création et motion design, informatique. Organisation en Scrum combiné à un cycle en V, trois points de dix minutes par session et un suivi des tâches en quatre phases.

J'étais le seul développeur front-end de l'équipe.

L'architecture du projet

Pour situer mon travail : la détection, l'interprétation, l'API et l'avatar sont le travail de l'équipe.

  • Détection : MediaPipe transforme les mains et le visage en coordonnées spatiales.
  • Interprétation : OpenCV, un modèle entraîné sur un jeu de données construit par l'équipe, et faster-whisper pour la transcription de la voix.
  • Exposition : une API Flask (Python) qui gère le flux vidéo et les prédictions.
  • Restitution : un avatar 3D signant, modèle acheté puis rigué et animé sous Blender.
  • L'extension : HTML, CSS et JavaScript, générée avec Yeoman pour rester compatible Chrome et Firefox.

Ma contribution

  • L'extension entière côté client, en Manifest V3 : service worker d'arrière-plan, popup, page d'options, script de contenu injecté dans la page de visioconférence.
  • L'intégration de toutes les pages de paramétrage à partir de la maquette Figma du pôle UX/UI : général, retranscription, accessibilité, compatibilité, contact, et le menu latéral qui les relie.
  • Des réglages persistés via l'API de stockage synchronisé du navigateur : transcription orale, choix et niveau de voix, taille, couleur et fond des sous-titres, position, taille et opacité de la bulle LSF. Les sections de réglages se replient quand l'option est désactivée.
  • La connexion du front au backend : une couche d'accès dédiée qui regroupe tous les appels (démarrage et arrêt de la capture, état, signe courant, phrase en construction, historique de conversation, transcription audio envoyée en multipart).
  • Le flux vidéo et le retour d'état en direct dans la popup : affichage du flux annoté renvoyé par l'API, interrogation périodique de l'état, indicateur de disponibilité du backend et repli propre quand il est éteint.
  • Une popup déplaçable par-dessus la page de visioconférence, avec une extension déclarée compatible avec Google Meet, Microsoft Teams et Zoom.
  • L'internationalisation de l'interface de l'extension.

Rien ne quitte la machine

Traitement local, aucune donnée envoyée en ligne, aucune vidéo stockée, aucun traçage. L'accès à la webcam est explicitement demandé à l'utilisateur.

1 600
lignes ajoutées environ, sur une quarantaine de fichiers, pour la seule branche de connexion au backend
7
personnes dans l'équipe, en trois pôles
3
visioconférences déclarées compatibles : Google Meet, Microsoft Teams et Zoom

Le produit n'est pas livré : ma branche de connexion au backend n'a pas été fusionnée, et j'ai arrêté ma participation en juin 2026. Pas encore de capture : l'extension exige le backend Python et une visioconférence ouverte.

Contact

Un site à créer, une alternance à pourvoir ?

Écrivez-moi directement, ou retrouvez-moi sur LinkedIn.