Aller au contenu

E3 - 🎧 Vérifier la qualité d'enregistrement

← Retour au hub story mapping · Parcours principal : P3 - Vérifier l'enregistrement par échantillonnage · ✅ MUST

Portée : permettre à l'utilisateur de valider qu'une nuit de capture est exploitable avant de la déposer sur Vigie-Chiro. Constitution automatique d'une sélection d'écoute échantillonnée, lecteur audio pour les séquences ralenties ×10, et saisie d'un verdict global. C'est un sound check distinct de la validation taxonomique espèce par espèce (qui est l'objet de E7).

Persona principal : tous (Marie en mono-site, Karim et Samuel en chaîne).

Pré-requis : E0.S4 (DAO sélections/séquences), E2.S6 (séquences d'écoute disponibles sur disque après transformation).

E3.S1 - Générer une sélection d'écoute automatique à l'ouverture de l'onglet

En tant que Marie

Je veux que l'application me propose automatiquement une sélection de séquences d'écoute représentative de la nuit dès que j'ouvre l'onglet « Vérifier l'enregistrement »

Afin de ne pas avoir à choisir moi-même quelles séquences écouter et avoir un échantillon directement utilisable

Critères d'acceptation :

  • À l'ouverture de l'onglet « Vérifier l'enregistrement » d'un passage Transformé, l'application constitue automatiquement une sélection de 10 à 30 séquences (R12).
  • La méthode par défaut est RéparTemporel : les séquences sont réparties uniformément sur la plage horaire de la nuit (du premier au dernier enregistrement).
  • La sélection est persistée en BD pour pouvoir être reprise plus tard (cf. E0.S4).
  • Si une sélection existe déjà pour ce passage, elle est rechargée plutôt que régénérée.
  • La taille par défaut (entre 10 et 30) est ajustée en fonction du volume total : 10 séquences pour < 50 enregistrements originaux, 30 pour > 500, interpolation linéaire entre.
  • Test d'intégration : génération sur un passage de 100 enregistrements → vérifier nombre, répartition temporelle, persistance.

Parcours rattaché : P3, étape 2
Maquettes cibles : M-Qualification (état initial à l'ouverture de l'onglet)
Dépendances : E0.S4, E2.S6
Complexité : ★★ (simple — algorithme d'échantillonnage uniforme + persistance)
MoSCoW : ✅ MUST


E3.S2 - Afficher la sélection en liste chronologique avec métadonnées

En tant que Marie

Je veux voir la sélection sous forme d'une liste chronologique où chaque ligne montre les informations clés de la séquence (horodatage, durée, indicateur de fréquence)

Afin de pouvoir choisir rapidement quelles séquences je veux écouter en priorité

Critères d'acceptation :

  • Les séquences de la sélection sont affichées sous forme de tableau ou de liste, triées chronologiquement (du plus ancien au plus récent).
  • Pour chaque séquence on voit : horodatage de capture (heure du fichier source), durée affichée (5 s par défaut, plus court pour la dernière séquence d'un fichier), fréquence dominante indicative (en kHz, calculée à partir du WAV).
  • Un indicateur visuel distingue les séquences déjà écoutées des séquences pas encore écoutées (cf. E3.S4).
  • Un bouton ▶ par ligne permet de déclencher la lecture d'une séquence (cf. E3.S3).
  • La liste reste lisible même avec 50 lignes (scroll vertical).

Parcours rattaché : P3, étape 3
Maquettes cibles : M-Qualification (tableau central de la vue de vérification)
Dépendances : E3.S1
Complexité : ★★ (simple — TableView ou ListView JavaFX avec rendu personnalisé par cellule)
MoSCoW : ✅ MUST


E3.S3 - Intégrer le composant de vue audio (sonogramme + spectrogramme)

En tant que Marie

Je veux pouvoir écouter chaque séquence sélectionnée avec les contrôles habituels et visualiser le sonogramme + spectrogramme pour confirmer visuellement la qualité

Afin de vérifier de mes propres oreilles ET de mes propres yeux que la nuit est exploitable

Composant fourni

Le composant de vue audio (sonogramme + spectrogramme avec contrôles de lecture et zoom) est fourni par l'équipe pédagogique. Le même composant est utilisé dans E7.S3 pour la validation Tadarida. Cette story se concentre sur l'intégration dans M-Qualification.

Critères d'acceptation :

  • Le panneau de détail (E3.S2) affiche le composant audio fourni, alimenté par le chemin de la séquence courante.
  • Le clic sur le bouton ▶ d'une séquence dans la liste de gauche déclenche la lecture immédiate dans le composant.
  • Comme les séquences sont déjà ralenties ×10 sur disque (R10), la lecture se fait à vitesse normale (pas de re-échantillonnage à la volée).
  • Le cursor du composant est synchronisé entre le sonogramme, le spectrogramme et la barre de lecture.
  • Une seule séquence joue à la fois : démarrer une nouvelle lecture stoppe la précédente.
  • La lecture d'une séquence en marque la séquence comme « écoutée » (cf. E3.S4).
  • Si la séquence est introuvable sur disque (fichier supprimé, déplacé), le composant affiche un placeholder explicite.

Parcours rattaché : P3, étape 4
Maquettes cibles : M-Qualification (vue audio combinée)
Dépendances : E3.S2, composant audio fourni par l'équipe pédagogique
Complexité : ★★ (simple — intégration du composant + gestion d'état lecture)
MoSCoW : ✅ MUST


E3.S4 - Marquer les séquences écoutées et suivre l'avancement

En tant que Marie

Je veux que l'application mémorise quelles séquences j'ai déjà écoutées et m'affiche un compteur de progression

Afin de savoir où j'en suis dans ma revue et ne pas écouter plusieurs fois la même séquence par inadvertance

Critères d'acceptation :

  • Chaque lecture d'une séquence (cf. E3.S3) marque automatiquement la séquence comme « écoutée » en BD (E0.S4).
  • L'utilisateur peut aussi manuellement marquer/démarquer une séquence comme écoutée via une checkbox ou un toggle dans la liste.
  • Un compteur visible affiche N/M séquences écoutées (ex. 12/30 séquences écoutées).
  • L'état « écouté » est persisté : à la réouverture de l'onglet, on retrouve la progression.
  • L'utilisateur reste libre de saisir son verdict (cf. E3.S5) sans avoir tout écouté (R13).

Parcours rattaché : P3, étape 4
Maquettes cibles : M-Qualification (compteur d'avancement, indicateur visuel par ligne)
Dépendances : E0.S4, E3.S2, E3.S3
Complexité : ★ (trivial — booléen persisté + indicateur UI)
MoSCoW : ✅ MUST


E3.S5 - Saisir le verdict global du passage et un commentaire libre

En tant que Marie

Je veux consigner mon avis global sur la nuit (OK, Douteux, À jeter) et pouvoir y ajouter un commentaire texte

Afin de trancher si la nuit est exploitable et de garder une trace de ce que j'ai constaté pour plus tard

Critères d'acceptation :

  • Un menu déroulant visible permet de choisir le verdict parmi OK, Douteux, À jeter.
  • Un champ texte libre (multi-ligne) permet d'ajouter un commentaire optionnel (ex. « vent fort vers 02:00, sons à vérifier »).
  • La saisie du verdict est possible dès le premier clic sur le menu, sans contrainte d'avoir écouté un nombre minimum de séquences (R13).
  • À la validation du verdict, le passage passe au statut Vérifié en BD (E0.S3).
  • Le verdict et le commentaire sont persistés : ils sont restaurés à la réouverture de l'onglet et peuvent être modifiés à tout moment.
  • Un verdict À jeter est mis en évidence visuelle (couleur d'alerte) et affiche un rappel : « Ce passage ne pourra pas être inclus dans un lot prêt à déposer » (R14).
  • L'utilisateur peut enchaîner sur la préparation du lot (P4) via un bouton mis en avant après saisie d'un verdict OK ou Douteux.

Parcours rattaché : P3, étape 6 et 7
Maquettes cibles : M-Qualification (zone de saisie du verdict en bas de l'écran)
Dépendances : E0.S3
Complexité : ★ (trivial — menu déroulant + champ texte + persistance)
MoSCoW : ✅ MUST


E3.S6 - Personnaliser la composition de la sélection d'écoute

En tant que Marie ou Samuel (qui veut s'assurer plus en profondeur de la qualité d'une nuit douteuse)

Je veux pouvoir modifier la sélection automatique : changer la méthode (aléatoire au lieu d'uniforme), augmenter la taille, ou ajouter manuellement une séquence à un moment précis

Afin de affiner ma vérification quand le résultat par défaut ne me semble pas suffisant

Critères d'acceptation :

  • Un bouton « Modifier la sélection » ouvre un panneau avec : choix de la méthode (RéparTemporel, Aléatoire), choix de la taille (slider ou input numérique entre 10 et 100).
  • Le clic sur « Régénérer » re-constitue la sélection avec les nouveaux paramètres et la persiste.
  • Un bouton « + Ajouter une séquence » ouvre un sélecteur permettant de pointer une séquence précise (par horodatage ou par recherche dans tous les fichiers du passage). La séquence ajoutée vient compléter la sélection sans déclencher de régénération complète.
  • Les séquences déjà écoutées sont conservées dans le statut « écouté » même si elles ne sont plus dans la nouvelle sélection (historique préservé).
  • La régénération de la sélection est tracée (date de dernière régénération + paramètres utilisés) pour audit.

Parcours rattaché : P3, étape 5
Maquettes cibles : M-Qualification (panneau « Modifier la sélection »)
Dépendances : E3.S1, E3.S2
Complexité : ★★★ (moyen — interface de personnalisation + algorithme aléatoire + ajout manuel par recherche)
MoSCoW : 🟠 SHOULD (personnalisation est un confort, la sélection automatique par défaut suffit pour le MVP strict)