01 / 10

Vizzia · Détection de pleurs de bébé · 20 août 2026 · page 3 sur 3

Résultats :
le coût réel de chaque choix.

Ce que devient le classement face aux sons d'une vraie chambre, ce que coûte chaque niveau d'exigence, sur quoi chaque modèle se trompe — puis ce qui sépare un taux de déclenchement d'un nombre d'alarmes par nuit, où tourne le modèle, et les quatre décisions à prendre.

01 — Face aux sons d'une vraie chambre

Le classement s'inverse quand les sons de fond changent

Jusqu'ici les modèles n'affrontaient que des sons de bébé. Nous les avons confrontés à 3 584 sons de chambre étiquetés — cris, toux, chat, rire, respiration, vaisselle — dont seulement 1,7 % de pleurs, comme dans la réalité.

Le même modèle, les deux corpus
ModèleSons de bébé
deBarbaroCry
Sons de chambre
FSD50K · IC 95 %
Verdict
CED0,9530,875 [0,77 – 0,95]tient sur les deux
YamNet0,9290,829 [0,70 – 0,93]non départagé
EfficientAT0,9320,812 [0,67 – 0,92]non départagé
Sonde YamNet0,9310,700 [0,53 – 0,85]non départagé
MS-CLAP0,939 · 2e0,641 [0,46 – 0,78] · derniers'effondre

MS-CLAP déclenche 17 fois plus que CED

Au même réglage — celui qui attrape 90 % des pleurs — appliqué tel quel aux 3 524 sons de chambre :

CED0,6 %
YamNet1,8 %
EfficientAT2,8 %
Sonde YamNet5,8 %
MS-CLAP9,7 %

Ni le corpus de bébés ni ESC-50 ne le montraient. Il fallait des sons de chambre, à faible proportion de pleurs, pour le voir.

Deux précautions, et pourquoi la conclusion tient quand même

60 pleurs seulement dans ce corpus : les intervalles de confiance des quatre premiers se recouvrent tous. Ne lisez pas les rangs — seul l'effondrement de MS-CLAP est un résultat, et il l'est largement.

MS-CLAP a par ailleurs pu voir ces sons pendant son entraînement, ce qui ne peut que l'avantager. Il finit malgré tout dernier : le doute sur le corpus sous-estime le problème, il ne l'explique pas.

02 — Le corpus de référence

Ce que coûte chaque niveau d'exigence

On fixe la part de pleurs qu'on veut attraper, puis on lit combien de fausses alarmes cela coûte. C'est la seule comparaison qui décide vraiment — et là, le classement est net.

deBarbaroCry · 18 352 sons non-pleurs présentés à chaque modèle
Pleurs attrapésModèleFausses alarmesAlarmes justifiéesSons non-pleurs déclenchés
85 %CED1 49491 %8 %
Sonde YamNet1 58691 %9 %
EfficientAT1 70890 %9 %
YamNet1 84590 %10 %
MS-CLAP2 12688 %12 %
90 %CED2 13889 %12 %
Sonde YamNet2 27188 %12 %
EfficientAT2 57687 %14 %
YamNet2 60987 %14 %
MS-CLAP3 37683 %18 %
95 %CED3 59683 %20 %
Sonde YamNet3 96282 %22 %
YamNet4 59980 %25 %
EfficientAT5 14478 %28 %
MS-CLAP6 13074 %33 %
−41 %de fausses alarmes entre CED et MS-CLAP à 95 % de pleurs attrapés — l'écart de qualité était invisible sur les courbes, l'écart de coût ne l'est pas
×2,4c'est par combien les fausses alarmes de CED sont multipliées en passant de 85 % à 95 % de pleurs attrapés. Le dernier dixième de rappel coûte plus cher que les huit premiers.
À retenirces pourcentages valent sur ce corpus, où un son sur deux est un pleur. Un réglage ne se transporte ni d'un corpus, ni d'une durée d'écoute, ni d'un bébé à l'autre.

03 — Nature des erreurs

Les modèles se trompent différemment, et ça se choisit

Les sons de chambre portent chacun un nom. On peut donc, pour la première fois, dire sur quoi exactement chaque modèle déclenche à tort — et non plus seulement combien de fois.

Part des sons de chaque catégorie qui déclenchent une alarme · réglage « 90 % des pleurs attrapés »
ModèleCriSanglots d'adulteChatTouxRespirationRire
CED6 %17 %4 %
YamNet9 %40 %14 %7 %
EfficientAT27 %63 %5 %8 %
Sonde YamNet44 %17 %18 %25 %
MS-CLAP84 %71 %60 %44 %41 %

MS-CLAP ne détecte pas le pleur, il détecte la détresse

84 % des cris, 44 % des toux, 41 % des respirations. Un modèle qui déclenche sur une respiration n'a pas appris « pleur de bébé », il a appris « quelqu'un ne va pas bien ».

Une confusion est saine, les autres non

Les sanglots d'adulte arrivent en tête chez les quatre modèles : c'est attendu, et c'est précisément la frontière que le produit doit tenir. En revanche toux, respiration et chat n'ont rien à voir avec un pleur.

Le chat est le confondant non vocal à surveiller — 60 % chez MS-CLAP, 14 % chez YamNet — et un moniteur de chambre est souvent posé dans un foyer avec un animal.

Un seul modèle sait nommer ses erreurs

MS-CLAP travaille avec 24 catégories rédigées pour cette tâche : il distingue le gazouillis du grognement, quand les autres rangent tout sous « parole ». Sur le corpus de bébés, le gazouillis apparaît dans 12 % de ses fausses alarmes contre 1 % de ses bonnes détections — une cible actionnable.

C'est ce qui le garde utile comme outil de diagnostic, alors même qu'il est écarté comme détecteur.

Et c'est ce qui rend la combinaison payante

Deux modèles qui échouent sur des axes différents se corrigent l'un l'autre. Mesuré sur une paire : seule la moitié de leurs fausses alarmes est commune. Tout le gain est dans l'autre moitié — d'où les −26 à −32 % obtenus en combinant deux avis, pour 13 % de calcul en plus.

Comment lire ces pourcentages

Le réglage est celui calibré sur le corpus de bébés, appliqué tel quel aux sons de chambre — c'est ce que ferait une mise en production naïve. « — » signifie que la catégorie n'est pas parmi les pires de ce modèle, pas qu'elle est à zéro.

Le détail complet, classe par classe et modèle par modèle, est dans docs/DEMARCHE.md.

04 — Le chiffre qui manque

« 0,6 % » n'est pas un nombre d'alarmes par nuit

Tous les taux de cette présentation sont des parts d'extraits. Un parent, lui, ne compte pas des extraits : il compte les fois où son téléphone sonne pour rien. Voici ce qui sépare les deux, et ce qu'il manque exactement pour faire la conversion.

Ce qui déclenche l'inférence

Le modèle n'écoute pas en continu. Une détection d'activité sonore en amont ne lui soumet un extrait que lorsqu'un événement sonore d'au moins 3 secondes se produit. La chambre au repos ne produit aucune décision.

C'est ce qui rend le calcul possible, et c'est aussi pourquoi le corpus de référence n'a pas besoin d'une classe « silence » :

fausses alarmes par nuit = événements sonores ≥ 3 s par nuit × taux de déclenchement

Le second facteur est mesuré. Le premier ne l'est pas — et c'est tout ce qui manque.

Alarmes par nuit selon l'activité sonore de la chambre · réglage « 90 % des pleurs attrapés »
ModèleTauxchambre calme
50 événements
chambre normale
200 événements
chambre animée
500 événements
CED0,57 %0,31,12,9
YamNet1,84 %0,93,79,2
EfficientAT2,78 %1,45,613,9
MS-CLAP9,68 %4,81948

Les colonnes sont des hypothèses de travail, pas des mesures : aucun de nos corpus ne dit combien d'événements sonores une chambre produit en une nuit. Elles sont là pour montrer l'ordre de grandeur et ce qui en dépend.

1 mesureil suffit de compter les déclenchements du détecteur d'activité sur quelques nuits réelles pour figer toute la colonne. C'est la mesure la moins chère de tout le plan.

Le déclencheur est un modèle lui aussi

Un pleur que la détection d'activité ne relève pas est un pleur que le modèle ne verra jamais. Le rappel du produit n'est pas celui de CED : c'est rappel du déclencheur × rappel du modèle.

Ce premier facteur n'a jamais été mesuré. Tant qu'il ne l'est pas, tous nos chiffres de rappel sont des bornes hautes.

Et une décision d'alarme, ce n'est pas une décision de modèle

Un événement de 3 s produit une décision ; un pleur qui dure une minute en produit des dizaines. Entre le score et la notification il faut une règle d'épisode — k déclenchements sur n, temporisation, anti-rebond — qui n'existe pas encore.

C'est elle qui décide si un pleur d'une minute fait une notification ou vingt.

05 — Déploiement

Où tourne le modèle, aujourd'hui et demain

Le détecteur n'est pas embarqué dans le babyphone : il est exposé en service HTTP. L'appareil envoie l'audio, le service renvoie une classification. C'est ce qui rend le changement de modèle peu coûteux — et c'est aussi ce qui fixe les contraintes.

La chaîne

Le babyphone détecte un événement sonore ≥ 3 s, puis poste l'extrait audio dans le corps d'une requête HTTP vers l'API.

L'API est une application FastAPI conteneurisée (uvicorn, port 8000), qui charge le modèle une fois au démarrage et répond la classe et son score sur /predict.

L'hébergement

Une instance EC2 sur AWS, déployée par CDK : c7g.large (Graviton ARM, 2 vCPU), Ubuntu 22.04, région eu-west-3 (Paris).

Pas de GPU, et il n'en faut pas : la plus grosse dépense de calcul du candidat retenu est de l'ordre de la dizaine de millisecondes.

Ce que ça coûte de changer de modèle

Une image, une variable de configuration, un redéploiement. Le contrat HTTP ne bouge pas : même endpoint, même payload, même forme de réponse.

C'est la raison pour laquelle le choix du modèle est réversible — et donc pourquoi il ne mérite pas de bloquer le reste du plan.

Ce qui tourne aujourd'hui n'est pas ce qui est proposé

L'API en service héberge MS-CLAP avec 7 catégories. C'est le modèle que cette présentation écarte comme détecteur. Le passage à CED est le premier livrable technique.

Les latences annoncées ne sont pas celles de production

Les ~9 ms de CED et 62 ms de MS-CLAP sont mesurés sur un Apple M2, pas sur une c7g.large à 2 vCPU. À re-mesurer sur l'instance cible avant tout engagement de latence.

S'y ajoutent le transfert réseau et le décodage audio, qui ne sont pas dans ces chiffres.

L'audio d'une chambre d'enfant sort du domicile

Chaque déclenchement envoie un extrait sonore d'une chambre d'enfant vers un serveur. Durée de conservation, base légale et information des familles sont à cadrer avant la boucle de retour beta, pas après.

06 — Conclusions

Ce que nous savons maintenant

  • CED est le meilleur modèle disponible, et l'un des moins chers : 7 fois plus rapide que MS-CLAP pour un quart de fausses alarmes en moins sur une fenêtre de 3 secondes. Il fonctionne sans aucun réentraînement.
  • MS-CLAP est écarté comme détecteur. Ses 7 secondes obligatoires le rendent le plus lent ; et face à de vrais sons de chambre il déclenche 17 fois plus que CED. Il reste le seul à savoir nommer ses erreurs — ce qui en fait un outil, pas un détecteur.
  • Une fenêtre de 3 secondes est tenable, et son coût est chiffré : ~40 % de fausses alarmes en plus qu'une fenêtre de 5 secondes. C'est un arbitrage produit, plus une inconnue technique.
  • Le bébé compte plus que le modèle. L'écart entre le bébé le plus facile et le plus difficile est dix fois l'écart entre les quatre premiers modèles. Aucun réglage de seuil ne rattrape ça — nous l'avons mesuré, la calibration par bébé dégrade.
  • Il faut tester un modèle sur les sons qu'il rencontrera vraiment. Les sons de chambre ont inversé le classement, et révélé au passage qu'EfficientAT rendait n'importe quoi sous 2 secondes — invisible sur les corpus précédents, tous en extraits de 5 secondes ou plus.
  • Le choix du modèle est réversible, et il est presque gratuit : une image à redéployer derrière un contrat HTTP inchangé. Ce n'est pas là qu'est le risque du projet.

Et surtout : nous sommes bloqués par les données, pas par les modèles

Quatre modèles sur cinq sont indiscernables, et leur classement change avec la métrique choisie. Les erreurs d'étiquetage du corpus sont plus grandes que l'écart entre eux.

Autrement dit : changer de modèle n'apportera plus grand-chose. Améliorer les données, si.

Nuance apportée par les sons de chambre : le choix du modèle compte encore pour éviter le pire. Entre CED et MS-CLAP il y a un facteur 17 sur les fausses alarmes.

07 — Prochaines étapes

Le prochain gain vient de la donnée

Trois chantiers, décrits par ce qu'on annote, avec quoi, et ce que ça permet de mesurer ensuite. Aucun ne demande un nouveau modèle.

1 · Réannoter le corpus de référence

Quoi — sortir de l'étiquette binaire de deBarbaroCry et passer à pleur dominant / babillage dominant / ni l'un ni l'autre. C'est la frontière sur laquelle tous les modèles se trompent, et elle n'est aujourd'hui pas étiquetée.

Combien — 200 extraits tirés au sort pour mesurer le taux d'erreur, soit ~17 minutes d'écoute ; puis extension aux extraits à score élevé, là où les erreurs se concentrent.

Option — annoter par fenêtres de 3 secondes plutôt que sur le clip entier : c'est l'unité que le modèle voit en service, donc l'étiquette et la décision portent enfin sur le même son.

Débloque : la correction de toutes les mesures publiées — ~40 % d'erreur sur les fausses alarmes à score élevé — et tout réentraînement, aujourd'hui condamné à apprendre le bruit.

2 · Constituer le corpus propriétaire Boby

Source — les sons réellement captés par les babyphones en service : nos micros, nos pièces, nos bébés. Aucun corpus public ne donne ça, et c'est ce qui manque à toutes les mesures actuelles.

Préalablearrêter la liste des classes avant d'annoter : pleur, babillage, autre vocalisation du bébé, voix d'adulte, animal, bruit de maison. Changer les classes en cours de route invalide tout ce qui précède.

Outillage — un outil d'annotation dédié : écoute, raccourcis clavier, classes imposées, double passe sur les cas litigieux. Pas un tableur.

À cadrer avec le consentement des foyers concernés : ce sont des enregistrements de chambres d'enfants.

3 · Générer les négatifs manquants ElevenLabs

Quoi — générer les classes « non-pleur » que FSD50K ne couvre pas : porte, vaisselle, chute d'objet, aspirateur, jouet musical, sonnerie.

Pourquoi — c'est ce qui valide le seuil : niveau sonore, mélange et distance au micro sont choisis, donc le seuil se teste sur des conditions décidées plutôt que subies.

Limite — des négatifs générés, oui ; des pleurs générés, non — voir ci-dessous.

Livrable : un taux de déclenchement par classe de son de maison, donc un seuil justifié plutôt qu'hérité du corpus de bébés.

⚠ Une précaution sur la génération de pleurs

Les auteurs du corpus ont mesuré qu'un modèle entraîné sur des pleurs enregistrés en studio s'effondre en conditions réelles : F1 0,656 → 0,236.

La génération est donc excellente pour les sons de la maison — porte, vaisselle, animal — et risquée pour les pleurs eux-mêmes : un pleur synthétique est propre, cadré, sans réverbération de chambre. C'est précisément ce qui ne généralise pas.

Règle proposée : du son généré dans l'entraînement, jamais dans le jeu d'évaluation. Et tout apport de pleurs générés doit être validé sur des bébés réels mis de côté avant d'être adopté.

Ordre recommandé

1 · Réannoter 200 extraits en 3 catégories~17 min d'écoute
2 · Arrêter les classes du corpus Bobypréalable à toute annotation
3 · Générer les négatifs manquantspuis recalibrer le seuil sur eux
4 · Brancher l'annotation sur les détectionsflux continu — voir la proposition

Un seuil ne se transporte ni d'un corpus, ni d'une durée d'écoute, ni d'un bébé à l'autre : changer la durée d'échantillon impose de le refixer.

08 — Proposition

Trois options de mise en service, et celle que nous recommandons

Le contrat HTTP est le même dans les trois cas : seule l'image déployée change. Ce qui les distingue, c'est ce qu'on obtient en sortie — et ce qu'on paie pour l'obtenir.

A · CED seul, binaire  recommandé

Ce qu'on obtient — un score « pleur / pas pleur » sur une fenêtre de 3 s d'un seul tenant. 0,57 % de déclenchement sur les sons de chambre à 90 % des pleurs attrapés, ~9 ms par décision.

Ce qu'on paie — aucune information sur ce que c'était quand ce n'est pas un pleur. Une fausse alarme reste un nombre.

Aucun réentraînement, premier sur les deux corpus, le seul dont le seuil se transfère à peu près. C'est le meilleur rapport résultat/risque disponible aujourd'hui.

B · Fusion CED + YamNet

Ce qu'on obtient−19 % de fausses alarmes à rappel égal par rapport à A, pour +2 ms. Le meilleur chiffre brut de tout le projet.

Ce qu'on paie — la règle est une moyenne des rangs : il faut maintenir une table score → percentile par modèle, recalculée à chaque changement de modèle ou de durée. Et le gain n'est mesuré que sur le corpus de bébés, avec un seuil ajusté de façon optimiste.

À valider avant de s'engager : rejouer la fusion sur les sons de chambre, en validation croisée par sujet. Quelques heures de calcul, pas un chantier.

C · MS-CLAP multi-classe

Ce qu'on obtient — la seule sortie qui nomme : babillage, gazouillis, grognement, porte, animal. C'est ce que la cible produit décrit, et c'est ce qui rend une erreur corrigeable.

Ce qu'on paie7 secondes d'audio imposées (incompatible avec la cible < 3 s), 62 ms par décision, et 9,7 % de déclenchement sur les sons de chambre : 17 fois A.

Non déployable comme détecteur en l'état. Mais à garder en second étage hors chemin critique : CED déclenche, MS-CLAP qualifie — le coût et la latence ne sont alors plus payés qu'en cas d'alarme.

Recommandation : déployer A maintenant, instrumenter, et garder B et C comme améliorations mesurables. Le vrai sujet n'est pas lequel des trois — c'est que les trois se règlent sur des données que nous n'avons pas encore.

Le seuil ne peut pas être « fixé sur FSD50K », et il faut le dire

FSD50K a 60 pleurs à étiquettes faibles : il fixe une part de fausses alarmes par classe de son, il ne peut pas fixer un rappel. Et un seuil ne se transporte ni d'un corpus, ni d'une durée d'écoute, ni d'un bébé à l'autre.

Le point de fonctionnement livrable est donc un couple : rappel mesuré sur le corpus de bébés, taux de fausses alarmes mesuré sur les sons de chambre. Les deux ensemble, jamais l'un à la place de l'autre.

Une boucle de retour, réservée aux beta-testeurs

Deux boutons sur chaque alerte : c'était un pleur / ce n'en était pas un. Un panel restreint, pour savoir qui annote et pouvoir recouper.

Elle produit les étiquettes sur les vrais sons du produit, le comptage d'événements sonores par nuit qui manque à la diapositive 4, et le premier chiffre comparable au F1 de la littérature.

Le biais à connaître : elle ne voit que ce qui a déclenché. Elle mesure les fausses alarmes, jamais les pleurs ratés — qui restent à mesurer hors ligne. C'est précisément pourquoi le seuil part sur un rappel élevé.

09 — La décision demandée

Quatre décisions, et ce qu'elles débloquent

Rien de ce qui suit n'attend un nouveau modèle. Trois de ces quatre décisions sont des arbitrages produit, et la quatrième tient en une journée d'ingénierie.

DécisionQui trancheEffortCe que ça débloque
Déployer CED derrière l'API, à la place de MS-CLAP Technique~1 jour Le facteur 17 sur les fausses alarmes, immédiatement. Réversible.
La durée d'écoute : 3 s ou 5 s Produitarbitrage 3 s coûte ~40 % de fausses alarmes en plus que 5 s (16,4 % contre 11,7 % au réglage retenu). Le coût est chiffré, la contrepartie côté usage ne l'est pas — c'est un choix, pas un calcul.
Lancer la réannotation : 200 extraits en 3 catégories Produit + Technique~17 min d'écoute Un taux d'erreur d'étiquetage mesuré au lieu d'un signal sur 10 clips. Condition d'entrée de tout réentraînement.
Ouvrir la boucle de retour à un panel beta Produit + Juridiqueà cadrer Le nombre d'événements sonores par nuit, les fausses alarmes réelles, et le premier corpus à l'acoustique du produit.