PLATFORM

Le Shazam des gazouillis : utiliser l’IA pour détecter les chants d’oiseaux

Quand avez-vous, pour la dernière fois, eu l’occasion d'écouter l’un des plus beaux concerts que la nature puisse vous offrir ? Des simples piaillements et autres cui-cuis aux chants complexes qui composent un paysage sonore sophistiqué, vous regrettez certainement de ne pas pouvoir déchiffrer et comprendre les conversations quotidiennes des oiseaux. Au petit matin, vous entendez leurs « Bonjour ! Comment vas-tu aujourd'hui ? », parfois si forts qu’ils vous réveillent. Malheureusement, nous sommes encore loin de comprendre les histoires que se racontent les oiseaux. Mais si au moins vous aviez un système d’IA capable d’identifier les oiseaux autour de vous en fonction de leur chant ?

Les oiseaux et le tableau de bord Splunk IA

Lancez l’IA et attrapez un oiseau

Après quelques recherches, j'ai découvert un projet passionnant : BirdNET, par le Laboratoire d’ornithologie de l'université de Cornell et l’université de technologie de Chemnitz (TU Chemnitz). Il permet de reconnaître les oiseaux à partir d’enregistrements sonores en utilisant un réseau de neurones entraîné à classer 984 espèces d’oiseaux. Heureusement, les chercheurs ont publié BirdNET sur GitHub, si bien que vous pouvez facilement mettre en place ce système de reconnaissance. Il ne faut que quelques minutes et trois étapes simples :

  1. Clonez le dépôt
  2. Montez un conteneur Docker
  3. Exécutez BirdNET sur un fichier sonore et enregistrez les résultats. 

Mais attendez : comment peut-on facilement analyser les résultats en temps réel, ou sur une longue période ? C’est là que la plateforme Data-to-Everything de Splunk intervient pour répondre à toutes les questions et produire très rapidement des informations. Une fois encore, trois étapes simples :

  1. Définissez une entrée de données dans Splunk et associez-la aux fichiers TSV générés par BirdNET
  2. Rédigez quelques recherches pour renseigner un tableau de bord comme celui illustré plus haut
  3. Créez une exploration pour afficher une vignette et un hyperlien permettant d'obtenir des informations sur une espèce d’oiseau (c’est la partie amusante !)

Maintenant, commençons par répondre à une question classique : « Quels oiseaux chantent, quand et pendant combien de temps ? » La recherche suivante délivre une chronologie simple indiquant quels oiseaux sont les chanteurs les plus actifs :

index="birds" sourcetype="birds-tsv" Confidence>0.8 NOT "Common Name"="Human"
| rename "Begin Time _s" as time_start, "Common Name" as name, Confidence as confidence 
| eval _time=('_time' + time_start) 
| timechart limit=20 useother=f span=30s sum(confidence) by name

Visualisons les résultats sous la forme d’une chronologie pour découvrir quels oiseaux chantent pendant un après-midi d’été :

Graphique d'activité des oiseaux

Est-ce que ramage rime avec plumage ?

Bien sûr, vous pouvez également effectuer une analyse plus sophistiquée. Le dicton nous dit : « Qui se ressemble s'assemble ». Vous vous demandez peut-être « Quels oiseaux chantent en même temps ? ». Voyons quelle recherche peut répondre à cette question :

index="birds" sourcetype="birds-tsv" 
| rename "Begin Time _s" as time_start, "End Time _s" as time_end,"Common Name" as name, "Confidence" as confidence, "Species Code" as code 
| eval _time=_time+time_start 
| eval duration=time_end-time_start 
| search confidence>0.9 NOT name="Human" 
| sort 0 _time 
| streamstats dc(name) as dc_names first(name) as src last(name) as dest time_window=10 
| table _time src dest dc_names 
| where dc_names==2 
| stats count by src dest

Avec l’aide d'un diagramme de Sankey, nous pouvons voir quels oiseaux tendent à chanter ensemble :

Diagramme de Sankey

Si ce diagramme est trop complexe à lire, nous pouvons produire une représentation encore plus abstraite et tracer le réseau « BirdNET » à l’aide du framework d'analyse graphique intégré Visualisation de topologie de réseau en 3D (3D Graph Network Topology Visualization built-in Graph Analysis Framework). Les lecteurs au regard d'aigle devraient repérer le petit oiseau meta décrit dans ce graphique :

Visualisation de topologie de réseau en 3D

Faut-il faire confiance à l’IA ?

Avant de conclure, il y a sans doute des questions cruciales que vous vous posez au sujet des systèmes d’IA. Par exemple, vous vous demandez certainement : Peut-on se fier aux prédictions de BirdNET et comment savoir si les résultats sont exacts ? En vérité, nous ne le savons pas et, en règle générale, il est assez difficile d’obtenir 100 % de réussite chez un système d’IA, vous aurez d'ailleurs peut-être remarqué le sélecteur de niveau de confiance dans le tableau de bord ci-dessus.

Dans notre cas, nous pouvons toutefois utiliser le modèle pré-entraîné et élaboré par une équipe d’experts en ornithologie afin d'évaluer ses résultats. Au cours de mon expérience, BirdNET a détecté un merle d’Amérique ici en Europe centrale, et l'on peut se demander si c’est effectivement le cas. J’ai appris ensuite que je pouvais obtenir de bien meilleurs résultats en ajoutant mes données de géolocalisation. Avec ces informations, BirdNET peut appliquer des « connaissances » supplémentaires sur la présence des espèces dans certaines régions. Après avoir affiné les paramètres, la plupart des résultats étaient exacts et conformes à la réalité observée. Par exemple, j’ai pu facilement vérifier les merles noirs, que je connais très bien. J’avais l’habitude de les écouter chanter dans un arbre près de chez moi, et de les observer lorsqu’ils chassaient les vers après la pluie. J'ai pourtant été très surpris par la diversité des autres espèces qui nous entourent. Par exemple, je n’avais encore jamais vu de rossignol dans ma région, mais après m’être renseigné sur leur chant aussi complexe que mélodieux, je suis devenu capable de les identifier facilement et de vérifier les résultats donnés par le tableau de bord. 

À quel drôle d’oiseau avez-vous affaire ?

Si vous vous demandez ce que l’IA et tous ces oiseaux ont à voir avec Splunk, il est intéressant de voir à quel point l’ouverture et la souplesse de la plateforme Data-to-Everything permet d’obtenir des résultats rapidement. J'ai commencé à faire des recherches sur les types d’oiseaux présents dans ma région et, quelques jours après, je pouvais déjà tirer certaines conclusions. Vous pouvez ensuite transposer cela à n’importe quelle entité auprès de laquelle vous pouvez recueillir des données. La collecte peut se faire à l’aide d’un système d’IA ou d’une méthode classique reposant sur les logs, les métriques ou les événements de n’importe quel système. Mon collègue Greg a récemment écrit sur des collaborations avec le Forum économique mondial : dans son article, il aborde d'autres possibilités d’application de la puissance de l’IA. 

Dans notre exemple, ce qui a fonctionné pour l’analyse des chants d’oiseau peut fonctionner de la même façon pour la reconnaissance d’images ou d'autres systèmes basés sur l’IA. Vous pouvez analyser rapidement un phénomène dans le temps et faire un usage utile des résultats. Naturellement, vous pouvez combiner ces systèmes au Machine Learning Toolkit de Splunk pour appliquer une deuxième couche d’intelligence à vos données. Dernier point, et non des moindres, vous pouvez même élaborer votre propre système d’IA pour votre domaine particulier, en utilisant le Deep Learning Toolkit pour Splunk. Et maintenant, à moi de vous poser la question : Quelle sera votre prochaine aventure en IA ?

Bon Splunking !

Philipp


Merci beaucoup à Mina, Jessica et Emma pour leur soutien et leur aide de tous les instants, non seulement pour cet article mais aussi pour mes autres publications sur ce blog !

*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.

Splunk
Posted by

Splunk