IA et Accessibilité Numérique : Comment Nous Avons Construit un Traducteur FALC avec Pictogrammes ARASAAC

IA et Accessibilité Numérique : Comment Nous Avons Construit un Traducteur FALC avec Pictogrammes ARASAAC

Du Texte aux Pictogrammes : Un Projet Né d’un Besoin Réel

Chez Brio & Novia, nous travaillons régulièrement avec des structures accompagnant des personnes en situation de handicap cognitif. Un constat revient systématiquement : les documents administratifs, les consignes d’accueil, les supports pédagogiques sont incompréhensibles pour une large partie du public.

Le FALC (Facile à Lire et à Comprendre) et les pictogrammes ARASAAC sont les deux piliers de la communication accessible. Mais transformer un texte en séquence de pictogrammes reste un travail manuel, lent et coûteux. Nous avons donc construit un traducteur automatique texte → pictogrammes, intégré directement dans notre plateforme web. Voici comment.


Le FALC : Plus Qu’une Simplification de Texte

Le FALC est un ensemble de règles de rédaction européennes qui rendent les textes compréhensibles par le plus grand nombre, y compris les personnes en situation de handicap cognitif, les personnes âgées, les personnes maîtrisant mal le français, ou les enfants.

Les principes fondamentaux :

  • Phrases courtes : une idée par phrase, 10-15 mots maximum
  • Mots simples : vocabulaire courant, pas de jargon
  • Voix active : “Le médecin vous examine” plutôt que “Vous êtes examiné”
  • Illustrations : chaque concept accompagné d’un pictogramme

Exemple Concret

Texte administratif original :

“Les bénéficiaires du dispositif d’aide au logement doivent transmettre les justificatifs afférents à leur situation professionnelle dans un délai de 30 jours calendaires.”

Version FALC avec pictogrammes :

🏠 Vous recevez une aide au logement. 📄 Vous devez envoyer des papiers sur votre travail. 📅 Vous avez 30 jours pour envoyer ces papiers.

La différence est immédiate. Mais remplacer chaque concept par le bon pictogramme, dans le bon ordre, en gérant les conjugaisons et les synonymes — c’est un problème d’ingénierie non trivial.


ARASAAC : 50 000 Pictogrammes Libres de Droits

ARASAAC (Centre Aragonais de Communication Augmentative et Alternative) est la référence mondiale. Développée par le gouvernement d’Aragon en Espagne, la plateforme propose plus de 50 000 pictogrammes sous licence Creative Commons, avec une API REST ouverte.

Pour notre projet, nous avons constitué une base locale de 133 pictogrammes soigneusement sélectionnés, organisés en 4 catégories :

CatégorieNombreExemples
Noms88maison, médecin, école, téléphone, vélo
Adjectifs22chaud, froid, content, triste, fatigué
Verbes20manger, boire, dormir, jouer, parler
Pronoms3moi, toi, lui

Chaque entrée dans notre picto_db.json contient l’identifiant ARASAAC, le chemin local de l’image PNG et la catégorie grammaticale :

{
  "médecin": {
    "id": 27721,
    "image_path": "pictograms/medecin.png",
    "categorie": "nom"
  },
  "manger": {
    "id": 6456,
    "image_path": "pictograms/manger.png",
    "categorie": "verbe"
  }
}

Le Téléchargement Automatisé

Nous avons scripté la constitution de la base via l’API ARASAAC. Le processus pour chaque mot :

  1. Recherche : GET https://api.arasaac.org/v1/pictograms/fr/search/{mot}
  2. Sélection : prendre le premier résultat (le plus pertinent selon ARASAAC)
  3. Téléchargement : GET https://api.arasaac.org/v1/pictograms/{id} → PNG local
  4. Indexation : ajout dans picto_db.json avec métadonnées

Un point technique important : les noms de fichiers sans accents (ex: medecin.png, hopital.png) pour éviter les problèmes de portabilité, mais les clés JSON avec accents (ex: "médecin", "hôpital") pour un matching naturel avec le texte français.


Deux Moteurs de Traduction : Fuzzy Local + LLM

Notre outil propose deux modes de traduction, utilisables séparément ou en cascade.

Mode 1 : Recherche Floue Locale (Fuse.js)

Le premier moteur fonctionne entièrement côté client, sans appel réseau. Il utilise la bibliothèque Fuse.js pour une recherche floue dans la base de pictogrammes.

Le pipeline :

  1. Tokenisation : découper la phrase en mots
  2. Filtrage des stopwords : supprimer articles, prépositions, auxiliaires (une liste de 60+ mots français : “le”, “la”, “de”, “dans”, “avec”…)
  3. Table de synonymes : convertir les formes conjuguées vers le lemme de la base. Par exemple, “mange” → “manger”, “boit” → “boire”, “va” → “aller”
  4. Recherche Fuse.js : matching flou sur les mots restants avec un seuil de tolérance
  5. Affichage : les pictogrammes correspondants s’affichent en grille, dans l’ordre de la phrase

La table de synonymes est la pièce maîtresse de ce mode. Elle couvre les conjugaisons courantes de chaque verbe de la base :

const SYNONYMES: Record<string, string> = {
  'mange': 'manger', 'manges': 'manger', 'mangent': 'manger',
  'boit': 'boire', 'bois': 'boire', 'boivent': 'boire',
  'va': 'aller', 'vais': 'aller', 'vont': 'aller',
  // ... 200+ entrées
};

Avantage : instantané, fonctionne hors-ligne, zéro coût. Limite : ne comprend pas le sens de la phrase, ne gère pas les mots absents de la base.

Mode 2 : Traduction par LLM (Mistral Small)

Le second moteur utilise Mistral Small via l’API Mistral pour une compréhension sémantique de la phrase. Le LLM reçoit la liste complète des 133 mots disponibles dans la base et retourne un JSON structuré :

system_prompt = (
    "Tu es un assistant AAC. Voici le vocabulaire disponible : "
    + str(mots_disponibles) + ".\n"
    "Retourne UNIQUEMENT ce JSON :\n"
    '{"resultats": [{"mot_original": "mangez", "mot_picto": "manger", '
    '"approx": false}]}\n'
    "Règles : verbe infinitif, nom singulier, adjectif. "
    "Ordre Sujet-Verbe-Objet. "
    "Exclure articles, prépositions, auxiliaires. "
    "Si mot proche sémantiquement : approx true. "
    "Si aucun match : mot_picto null."
)

Le LLM comprend que “je vais à l’école en vélo” doit donner : moi → aller → école → vélo. Il gère les synonymes, les périphrases, et signale les approximations avec le flag approx.

Avantage : compréhension sémantique réelle, gestion des formulations complexes. Limite : nécessite une connexion, latence de 1-2 secondes, coût par requête.

L’Interface : Fuzzy d’Abord, LLM en Renfort

Dans l’Atelier Brio Robot de notre plateforme web, l’utilisateur tape sa phrase et voit immédiatement les pictogrammes via le mode fuzzy. Un bouton “Améliorer avec l’IA” lance le LLM en arrière-plan. Si le LLM retourne un meilleur résultat, l’affichage se met à jour. Sinon, le résultat fuzzy reste.

Saisie utilisateur → Fuzzy instantané (Fuse.js, côté client)
                          │
                    Bouton "Améliorer avec l'IA"
                          │
                    LLM Mistral Small (API)
                          │
                    Remplacement si meilleur résultat

Ce pattern “local-first, IA en renfort” garantit une expérience réactive même sans connexion ou si l’API est indisponible.


L’Export : PNG et PDF Accessibles

Une fois les pictogrammes affichés, l’utilisateur peut les exporter en deux formats :

Export PNG

Un canvas HTML5 assemble les pictogrammes côte à côte dans des cartes blanches arrondies (130x130px chacune), avec le mot en légende sous chaque pictogramme. Le rendu utilise la police Noto Sans pour une lisibilité maximale.

Export PDF

Un PDF structuré est généré avec les pictogrammes en grille, prêt à imprimer et à afficher dans un couloir, une salle d’attente ou une classe. Le format A4 paysage permet d’aligner 5 à 6 pictogrammes par ligne.

Ces exports sont essentiels : le pictogramme n’a de valeur que s’il peut être imprimé, affiché, partagé — pas uniquement consulté sur écran.


Les Problèmes Rencontrés (et Nos Solutions)

1. La Couverture Lexicale

Avec 133 pictogrammes, nous couvrons le vocabulaire de base mais pas les termes spécialisés. Notre solution : un enrichissement par vagues via un script add_pictos.py qui télécharge automatiquement de nouveaux pictogrammes depuis ARASAAC par thématique (corps humain, alimentation, vêtements, lieux, objets du quotidien).

La deuxième vague a ajouté 83 mots en une seule exécution, avec gestion automatique des accents et des doublons.

2. Les Conjugaisons Françaises

Le français est morphologiquement riche. “Aller” se conjugue en “vais”, “va”, “allons”, “allez”, “vont”, “irai”, “irais”… Impossible de lister toutes les formes. Notre table de synonymes couvre les formes les plus courantes (200+ entrées), et le LLM gère le reste.

Une piste en cours d’exploration : un stemmer français côté client pour réduire automatiquement les mots à leur racine, sans table exhaustive.

3. L’Ambiguïté Sémantique

“Lit” est-ce le verbe “lire” ou le nom “lit” (meuble) ? Le mode fuzzy ne peut pas trancher — il retourne les deux. Le LLM, grâce au contexte de la phrase, fait le bon choix dans la majorité des cas.

4. Les Pictogrammes Manquants

Quand un mot n’a pas de pictogramme dans la base, le mode fuzzy affiche un placeholder ”?“. Le LLM, lui, retourne mot_picto: null avec le flag approprié. Dans les deux cas, l’utilisateur voit clairement quels mots n’ont pas pu être traduits.


Perspectives : Vers un Matching par Embeddings

La prochaine étape de notre traducteur est le matching sémantique par embeddings vectoriels. L’idée : plutôt que de chercher une correspondance exacte ou floue sur les mots, calculer la proximité sémantique entre le mot de l’utilisateur et les concepts de la base.

Par exemple, “véhicule” n’est pas dans notre base, mais il est sémantiquement proche de “voiture” et “bus” qui y sont. Un modèle d’embeddings comme Sentence-BERT permettrait de faire ce rapprochement automatiquement.

Cette approche combinerait :

  • Embeddings pré-calculés pour les 133 mots de la base (stockés dans picto_db.json)
  • Calcul à la volée de l’embedding du mot de l’utilisateur
  • Recherche du plus proche voisin par distance cosinus

Le gain attendu : une couverture lexicale quasi-illimitée sans augmenter manuellement la base de pictogrammes.


Ce Que Ce Projet Nous a Appris

L’Accessibilité est un Problème d’Ingénierie

Rendre un contenu accessible n’est pas “simplifier pour les simples”. C’est un défi technique à part entière : NLP, matching flou, gestion des ambiguïtés linguistiques, export multi-format, UX adaptée.

Le Local-First est Essentiel

Pour un outil d’accessibilité, la dépendance à une API externe est un risque. Notre architecture fuzzy-first garantit que l’outil fonctionne toujours, même sans connexion. L’IA est un bonus, pas une béquille.

133 Pictogrammes Suffisent pour 80% des Besoins

Avec 88 noms, 22 adjectifs, 20 verbes et 3 pronoms couvrant le vocabulaire quotidien (corps, alimentation, lieux, émotions, actions courantes), nous couvrons la grande majorité des besoins de communication de base. Le principe de Pareto s’applique : 20% du vocabulaire couvre 80% des situations.

ARASAAC est une Ressource Exceptionnelle

Plus de 50 000 pictogrammes, une API REST ouverte sans clé d’authentification, une licence Creative Commons, des pictogrammes personnalisables (couleur de peau, style). C’est l’infrastructure invisible qui rend la communication accessible possible à l’échelle mondiale.


Pour les Développeurs : Comment Reproduire

Si vous souhaitez construire un outil similaire :

  1. Constituez votre base : sélectionnez 50-100 mots essentiels, téléchargez les pictogrammes via l’API ARASAAC
  2. Implémentez le fuzzy : Fuse.js côté client avec une table de synonymes pour les conjugaisons
  3. Ajoutez un LLM : Mistral Small avec response_format: json_object et la liste des mots disponibles en contexte
  4. Prévoyez l’export : PNG (canvas) et PDF sont indispensables pour l’usage terrain
  5. Testez avec de vrais utilisateurs : ce qui semble clair au développeur ne l’est pas forcément pour le public cible

Les briques sont toutes open source ou accessibles. Le plus dur n’est pas la technique — c’est de comprendre les besoins réels des personnes en situation de handicap cognitif.


Conclusion

L’intelligence artificielle ne remplace pas l’expertise en accessibilité — elle l’accélère. Notre traducteur de pictogrammes combine le meilleur des deux mondes : la réactivité du matching local et la compréhension sémantique du LLM.

Avec 133 pictogrammes ARASAAC, Fuse.js pour la recherche floue, Mistral Small pour la compréhension contextuelle, et des exports PNG/PDF pour l’usage terrain, nous avons un outil fonctionnel qui rend la communication accessible sans attendre que quelqu’un traduise manuellement chaque document.

L’accessibilité numérique n’est plus une question de moyens. C’est une question de volonté — et les outils pour y arriver n’ont jamais été aussi accessibles eux-mêmes.


Ce que personne ne dit vraiment

Cet article présente une solution techniquement ingénieuse mais trop centrée sur la prouesse technique. Une PME qui souhaite implémenter un tel système doit prioriser la validation continue avec le public cible et l’intégration dans des processus existants. Un outil isolé, même perfectionné, risque de rester un prototype sans impact réel. La vraie valeur n’est pas dans le matching de pictogrammes — c’est dans la création d’un écosystème où l’accessibilité devient un flux naturel de production de contenu.

Cas d’usage concrets au-delà du prototype

  • Mairie : traduire automatiquement les informations citoyennes (horaires, services) en supports FALC + pictogrammes affichables.
  • Réservation médicale : générer des consignes d’accueil accessibles pour les cabinets et hôpitaux.
  • École spécialisée : module pour que les enseignants créent rapidement des supports pédagogiques adaptés.
  • Entreprise : transformer les procédures internes (sécurité, qualité) en versions accessibles pour tous les employés.

Questions fréquentes

“Maintenir un système avec un LLM et des algorithmes de recherche floue semble hors de nos capacités.”

Vous avez raison sur la complexité. Une solution reliant plusieurs technologies (Fuse.js, API Mistral, base pictogrammes) nécessite une maintenance active. Pour une PME, la voie pragmatique serait de s’appuyer sur un prestataire spécialisé pour l’intégration, ou d’utiliser un service SaaS déjà existant si disponible.

“133 pictogrammes pour 80 % des besoins, ça semble marketing. Et nos termes métier spécifiques ?”

Cette objection est fondée. Un corpus limité de pictogrammes génériques ne couvre pas les besoins nichés d’une entreprise. Pour un usage professionnel sérieux (notices sécurité, procédures internes), il faudra étendre la base avec des pictogrammes spécifiques via ARASAAC, ce qui représente un effort supplémentaire.

“Quel est le vrai coût opérationnel ? Les appels API au LLM, l’infrastructure, le tuning ?”

Le coût peut devenir un piège. Mistral Small a un coût par appel qui peut exploser si l’usage augmente. La dépendance à une API externe introduit un risque opérationnel (latence, indisponibilité). Pour une PME, un coût fixe et prévisible est souvent plus prudent qu’un assemblage dont le coût réel est variable.


Un projet similaire ? Contactez Loïck Briot : contact@brio-novia.eu