Aller au contenu

M-SonsValidation - Sons & validation

Type : vue plein écran (écran « Sons & validation », patron liste + écoute). Un seul écran atteint de quatre manières (sources) : depuis un passage, depuis l'accueil, depuis l'inventaire des espèces et depuis la carte multi-sites. Persona principal : Karim, Samuel (validation, constitution d'une réothèque) ; Marie ponctuellement. Parcours couverts : P7 - Valider les résultats Tadarida, P10 - Exporter une bibliothèque de sons de référence.

Cet écran unifie la validation taxonomique (post-Tadarida) et la bibliothèque de sons de référence : c'est le même écran qui écoute un spectrogramme, décide d'un taxon et marque des références. Il se décline selon sa source : le contexte affiché (fil d'Ariane, colonnes) et les actions disponibles (import/export) changent, mais le squelette reste identique.

Patron partagé : ce « lieu d'écoute » partage son squelette (liste ↔ panneau d'écoute AudioView) avec M-Qualification (mode Vérification par échantillonnage). Les deux écrans sont les deux manières d'écouter les enregistrements : valider une observation (ici) et vérifier la qualité d'une nuit (M-Qualification). Il n'y a donc qu'un seul composant d'écoute à implémenter, réutilisé dans les deux.

Maquette principale - source « passage » (validation Tadarida)

VigieChiro Companion Accueil › Mes sites › Carré 640380 › Passage N° 2 › Sons & validation Rechercher Rechercher (espèce, fichier, commentaire…) + Filtre Statut : À revoir ✕ Taxon parent : Chiroptères ✕ Proba ≥ 50 % ✕ FICHIER PROP. TADARIDA PROBA. VOTRE TAXON AVIS DU VALIDATEUR FRÉQ. STATUT 💬 🗣 …Pass2-000.wav Pippip 0,94 - (non revue) - (pas encore d'avis) 45 kHz À revoir 💬 …Pass2-001.wav Nyclei 0,88 Noctule de Leisler ✓ Noctule de Leisler 27 kHz Validée …Pass2-002.wav Pipkuh 0,61 Pipistrelle commune ⚠ Pipistrelle de Kuhl 46 kHz Corrigée 💬 🗣 2 …Pass2-003.wav Rhihip 0,79 - (non revue) - (pas encore d'avis) 108 kHz À revoir …Pass2-004.wav bruit 0,55 - (non revue) - (pas encore d'avis) - À revoir … 13 autres observations (colonnes FME, Fréq. term., Début, Durée, Votre certitude, Certitude du validateur masquables via ☰ Colonnes ; contexte Date/Heure/Passage/Carré/Point/Commune masqué ici). ⏮ ⏯ ⏭ 0,00 / 5,00 s ×10 · 🔊 · 🔁 sonogramme (haut) / spectrogramme (bas) - cri sélectionné surligné 🗣 Discussion avec le validateur Validateur (MNHN) · 12/07 FME trop basse pour un Pipkuh. Vous · 12/07 Corrigé, merci. Votre réponse… Envoyer ⚠ Un message envoyé ne peut plus être retiré : la confirmation cite le texte avant de l'envoyer. Mode : Activité ▾ ✔ Valider Choisir un taxon… ▾ ✎ Corriger ⭐ Marquer référence 18 observation(s) · 5 / 18 revues ⌨ Entrée valider · R référence · N suivante à revoir · ↑ ↓ naviguer

Annotations

  • Barre de filtres (« à la Notion ») : un champ de recherche libre (espèce, fichier, commentaire…) et un bouton « + Filtre » qui ajoute une puce parmi six critères combinés en ET : Statut (À revoir / Validée / Corrigée), Taxon parent, Espèce, Références, Probabilité (curseur), Heure (plage horaire de la nuit). Le tri et les filtres sont mémorisés d'une réouverture à l'autre.
  • Menu ☰ (coin haut-droit) : il regroupe toutes les actions secondaires, variables selon la source. Ce n'est pas un menu court : il compte une douzaine d'entrées, réparties en groupes.
    • Navigation : 🗺️ Voir sur la carte, Fiche de l'espèce.
    • Plateforme Vigie-Chiro : 📥 Importer depuis Vigie-Chiro…, 📤 Publier les corrections vers Vigie-Chiro…, Ouvrir les données sur Vigie-Chiro.
    • Import / export Tadarida (source passage) : 📥 Importer un CSV Tadarida… (ou 🔁 Réimporter…), 📤 Exporter _Vu… (+ option Inclure le mode de validation), 📤 Exporter les observations (CSV)…. Source références : 📤 Exporter la bibliothèque….
    • Toujours : Colonnes…, 🔊 Lecture automatique à la sélection, 🔁 Lecture en boucle.
  • Table des observations : une ligne par observation ; colonnes Fichier, Proposition Tadarida (verrouillée visible), Proba., Votre taxon (« - » tant que non revue), Avis du validateur, Fréquence, Statut, ⭐ référence, 💬 commentaire (clic = édition en popup), 🗣 fil (nombre de messages), plus FME, Fréq. terminale, Début, Durée, Votre certitude, Certitude du validateur (masquables). Les colonnes de contexte (Date/Heure/Passage/Carré/Point/Commune) sont masquées quand la source est un passage unique, affichées sinon : elles y porteraient la même valeur sur toutes les lignes. La commune rejoint ce groupe (#3164) - elle se cochait dans la puce « Lieu » sans que la table la montre. Le nom du carré a lui aussi sa colonne (#3300), mais masquée au départ : la recherche libre retient une ligne sur ce nom, qui ne se voyait que dans la puce - or une puce ne sert pas la recherche libre (ADR 3151). Masquée parce que cette table est la plus dense du produit ; le sélecteur est là pour ça.
  • Avis du validateur : le troisième avis. Tadarida propose, l'observateur corrige, et un validateur du MNHN tranche. Cette colonne rend visible ce dernier verdict, qui existait déjà dans les données et que l'écran ignorait : sans elle, l'application présente la correction de l'observateur comme le dernier mot, alors qu'un expert a pu la réviser. Le désaccord est mis en avant (badge rouge,) ; l'accord est discret (vert, ✓) ; l'absence d'avis se dit (« - pas encore d'avis »).
  • Cet avis est en lecture seule. L'observateur ne peut pas l'écrire : le serveur refuse (403) toute écriture des champs validateur_* par un compte Observateur. On l'affiche, on en discute - on ne le modifie pas.
  • Panneau d'écoute (AudioView, en bas à gauche) : sonogramme + spectrogramme, expansion temporelle ×10 (ultrasons ralentis pour être audibles), le cri sélectionné est surligné et la lecture s'y positionne automatiquement. Options lecture auto à la sélection et lecture en boucle dans le ☰.
  • Fil de discussion (à droite du lecteur) : les messages échangés avec le validateur sur l'observation sélectionnée. On les lit, et on peut répondre. C'est le seul endroit où l'observateur peut argumenter face à un verdict qu'il conteste - la colonne montre le désaccord, le fil permet d'en parler.
  • Envoyer un message est définitif. Le serveur ajoute le message, et aucune route ne permet de le supprimer ni de le modifier. La confirmation cite le texte avant l'envoi : on ne consent qu'à ce qu'on a relu. C'est aussi pourquoi l'écriture est une fonctionnalité désactivable - la couper laisse la lecture du fil intacte.
  • Barre d'actions : Mode de revue (Activité / Inventaire), ✔ Valider (accepte la proposition Tadarida), sélecteur de taxon + ✎ Corriger (remplace le taxon), et à droite ⭐ Marquer référence / Retirer la référence. La sélection multiple (Ctrl/Maj+clic) agit en lot (tout-ou-rien, mode Activité).
  • Compte rendu de la publication : une fois les corrections envoyées, la zone sous le menu affiche un compte rendu chiffré (livré, #2358) qui dit quelle part de la revue est arrivée sur la plateforme. Les trois natures d'écart y gardent chacune leur part - à compléter, sans ancrage, hors référentiel - parce qu'elles appellent trois gestes différents, et les refus sont groupés par cause : vingt observations refusées pour la même panne font une ligne, pas vingt. Il remplace la restitution textuelle, qui n'avait que cette surface pour consommateur.
  • Barre de statut : compteurs du sous-ensemble affiché (N observation(s) · X / N revues) et rappel des raccourcis.

Interactions clés

Élément Action
Sélection d'une ligne Charge le spectrogramme, positionne la lecture sur le cri, lance l'écoute (si lecture auto)
✔ Valider / touche Entrée Accepte la proposition Tadarida comme taxon retenu (unitaire, ou en lot si plusieurs lignes)
Sélecteur de taxon + ✎ Corriger Remplace le taxon retenu par le taxon choisi (autocomplete code à 6 lettres)
⭐ Marquer référence / touche R Ajoute (ou retire) l'observation à la bibliothèque de sons de référence
Touche N Va à la prochaine observation « À revoir » (en bouclant)
💬 (clic cellule) Édite le commentaire de l'observation (popup)
Sélection d'une ligne Charge aussi le fil de discussion de cette observation dans le panneau de droite
🗣 (colonne) Indique qu'un fil existe, et combien de messages : on voit d'un coup d'œil où la discussion a eu lieu
Envoyer (panneau de discussion) Poste une réponse au validateur. Définitif : une confirmation cite le texte avant l'envoi
Double-clic sur une ligne Ouvre la fiche de l'espèce de la proposition Tadarida dans le navigateur
Clic droit sur une ligne Menu de la ligne : Ouvrir le passage, fiche de l'espèce, Validation ▸ (valider, corriger, certitude, référence, douteux), Copier ▸, Colonnes…
Menu Actions plateforme (importer depuis / publier les corrections vers / ouvrir sur Vigie-Chiro), import CSV Tadarida, exports (_Vu, observations CSV, bibliothèque), navigation (carte, fiche espèce), colonnes, lecture
Fil d'Ariane Remonte selon la source (passage, accueil, espèces, carte)

Variante - source « références » (Sons de référence, ex-bibliothèque)

Ouvert depuis la carte d'accueil « Sons & validation » (prisme Espèces & biodiversité), l'écran affiche cette fois toutes les observations marquées « référence », toutes nuits confondues : les colonnes de contexte sont affichées (Date, Carré, Point), le fil d'Ariane est autonome (Accueil › Sons de référence), et le menu propose « 📤 Exporter la bibliothèque… » (récapitulatif CSV + copie des fichiers .wav par espèce) au lieu de l'import Tadarida.

VigieChiro Companion Accueil › Sons de référence Rechercher Rechercher (espèce, fichier, commentaire…) + Filtre ☰ → 📤 Exporter la bibliothèque… (colonnes de contexte Date / Carré / Point affichées) DATE CARRÉ POINT FICHIER VOTRE TAXON FRÉQ. COMMENTAIRE 2026-06-22 640380 A1 …Pass2-000.wav Noctule de Leisler 27 kHz Cri social typique, fin de nuit. 2026-06-15 640380 B2 …Pass1-014.wav Pipistrelle commune 45 kHz Signal de référence net. Le panneau d'écoute (identique à la maquette principale) reste sous la table ; l'export copie les .wav par espèce.

Variante attendue - valider au genre

Cible non livrée

Décrit un chantier ouvert. Son état se lit sur l'issue #3844, qui se ferme quand il est livré.

Un contrôle s'ajoute à la barre d'actions, à côté du sélecteur de taxon. Il porte le code de genre correspondant au taxon retenu, et il a deux états seulement :

État Quand Ce que le contrôle affiche
actif le genre existe au référentiel serveur « Monter au genre (Plesp) »
grisé, avec son motif genre monospécifique en métropole, ou taxon déjà au niveau du genre « Barbastelle : genre monospécifique en France »

Le contrôle ne propose donc jamais un code qu'il aurait déduit sans vérifier. Une heuristique de construction (trois lettres du genre, plus sp) qui ne serait pas confrontée au référentiel produirait des codes plausibles et refusés au dépôt, c'est-à-dire des erreurs découvertes très loin du geste qui les a créées.

Le geste suit les règles déjà en vigueur dans cet écran : il agit sur la multi-sélection, il porte un raccourci clavier, et la correction part vers la plateforme comme les autres. Deux points restent à trancher au chantier : la certitude posée avec un genre, et si l'on peut ensuite redescendre à l'espèce.

Sources - un écran, quatre manières de l'ouvrir

Source Ouvert depuis Fil d'Ariane Colonnes contexte Actions ☰ propres
Passage carte d'un passage → Validation Tadarida … › Passage N° 2 › Sons & validation masquées Import CSV Tadarida, export _Vu
Références carte d'accueil Sons & validation Accueil › Sons de référence affichées Export bibliothèque
Espèce M-Analyse🎧 Écouter / valider Espèces & observations › [espèce] affichées (aucune)
Lot M-MultiSiteÉcouter (passage ou lot filtré) Carte & passages › [lot] affichées (aucune)

Notes pour l'implémentation

  • Un écran, plusieurs sources : la source est décrite par un type scellé (SourceObservations : ParPassage / ParPassages / ParEspece / References) porté par le socle. Le filtre de statut éventuel voyage en texte (pas de dépendance socle → validation, sinon cycle de tranches ArchUnit). L'écran adapte fil d'Ariane, colonnes visibles et actions ☰ selon cette source.
  • Composant d'écoute partagé : l'AudioView (sonogramme + spectrogramme + lecteur, expansion ×10) est fourni. Il est réutilisé tel quel par M-Qualification : il n'y a qu'un seul patron « lieu d'écoute ».
  • Actions immédiates, revue au clavier : Valider / Corriger / Référence agissent tout de suite (pas de brouillon). Le workflow « sans souris » (Entrée / R / N / ↑↓) vise la productivité sur des centaines d'observations.
  • Filtres = état du sous-ensemble affiché : les compteurs de la barre de statut portent sur le sous-ensemble filtré, pas sur la source entière.
  • Bibliothèque = source, pas écran séparé : « Sons de référence » n'est pas un écran distinct mais la source References de cet écran ; l'export bibliothèque (récapitulatif CSV + copie des .wav par espèce, cf. P10) s'y fait via le menu .
  • Trois avis, pas deux : une observation porte l'avis de Tadarida (tadarida_*), celui de l'observateur (observateur_*) et celui du validateur (validateur_*). Les trois arrivent ensemble, dans la même charge utile, à chaque import depuis Vigie-Chiro : il n'y a aucun appel supplémentaire à faire pour obtenir le troisième. Le modèle local doit simplement cesser de le jeter.
  • Asymétrie lecture / écriture : le verdict du validateur est lisible mais non modifiable (le serveur refuse en 403 toute écriture des champs validateur_* par un Observateur). En revanche, répondre dans le fil est possible - et c'est la seule voie de recours de l'observateur face à un verdict qu'il conteste.
  • Le message est irréversible : le serveur ajoute au fil, sans route de suppression ni de modification. Toute IHM qui l'expose doit donc faire confirmer en citant le texte (on ne consent qu'à ce qu'on a relu), et l'écriture doit rester désactivable indépendamment de la lecture.