Aves do Brasil — skill Alexa : identifier les oiseaux à la voix avec Python et des données ouvertes

Aves do Brasil — skill Alexa : identifier les oiseaux à la voix avec Python et des données ouvertes

J’ai passé des mois à essayer d’identifier un oiseau dans mon jardin. J’ai construit une skill Alexa pour ne plus avoir à le refaire.

Un couple d’oiseaux verts se posait chaque matin sur le même fil, près de chez moi. J’étais sûr que ce n’étaient pas des maritacas (perruches à ailes rouges, courantes au Brésil) — la taille était différente, le bruit était différent. Mais je ne connaissais pas leur nom.

Ça a duré des mois. J’ai cherché sur WikiAves (la grande base collaborative brésilienne d’observation d’oiseaux), qui est une référence au Brésil et un travail excellent — mais pour un débutant comme moi, la quantité d’informations était plus intimidante qu’utile. Je ne connaissais pas les bons termes pour filtrer. Je ne savais pas si « vert avec une tache rouge sur l’aile » désignait un merle exotique ou un psittacidé banal. Je l’ai découvert plus tard : c’étaient des aras Maracanã.

Et puis est venue l’ironie qui a tout déclenché : je suis allé vérifier à quoi ressemblerait leur cri pour confirmer, et j’ai découvert que les psittacidés n’ont pas de cri standardisé. Le chant que je voulais utiliser comme preuve n’existe tout simplement pas sous une forme classifiable. Le défi était déjà dans ma tête.

La première idée était mauvaise (et contraire à l’éthique)

Mon plan initial était d’utiliser Alexa pour écouter les sons des oiseaux autour et les identifier par l’audio. Deux problèmes ont tué cette idée le jour même :

Alexa ne capte que la voix humaine. Elle n’écoute pas l’environnement — le microphone est optimisé pour les commandes vocales. Les sons de fond sont du bruit, pas du signal. Il n’existe pas de « mode écoute » que j’aurais pu activer.

Attirer des oiseaux avec du playback est une pratique contestable. Diffuser le chant d’une espèce pour l’attirer provoque un stress territorial, peut éloigner les oiseaux de leurs nids et perturbe la reproduction. L’IN ICMBio 14/2018 (instruction normative de l’institut brésilien de la biodiversité) et le CEMAVE (centre national brésilien de recherche sur les oiseaux sauvages) déconseillent cette pratique. Quand je l’ai découvert, j’ai abandonné l’idée sans hésiter.

La skill est donc devenue autre chose : au lieu de « enregistrez ce que vous avez entendu », c’est devenu « décrivez ce que vous avez vu ». Vous parlez à Alexa en langage naturel — couleur, taille, où il se trouvait, forme du bec — et elle vous renvoie les espèces les plus probables.

La stack : Python, Bayes et quatre bases ouvertes qui ne se parlent pas

Alexa n’est pas exactement un équipement intelligent. Elle reconnaît la voix et appelle une fonction dans le cloud. Toute l’intelligence tient dans un Lambda (Python) sur AWS, et le vrai travail a été de faire en sorte que quatre bases de données qui n’ont pas été conçues pour dialoguer entre elles produisent une réponse cohérente.

AVONET (Tobias et al. 2022, CC BY 4.0) contient des traits morphologiques standardisés pour plus de 11 000 espèces — c’est de là que viennent les 7 attributs que la skill extrait de votre description : couleur principale, couleur secondaire, taille par point de repère, milieu, position, bec et queue.

GBIF rassemble des données d’occurrence d’oiseaux au Brésil. J’ai utilisé ces données comme prior bayésien : si vous êtes à São Paulo et que vous décrivez « un grand oiseau vert », le scorer donne plus de poids aux espèces qui apparaissent effectivement dans la région (rayon de 30 km, avec au moins 20 enregistrements). Le bem-te-vi (tyran quiquivi) avant une espèce rare répondant à la même description.

xeno-canto fournit les enregistrements réels des chants. Et là intervient une décision qui n’était pas négociable pour moi : je ne pouvais pas simplement me brancher sur les fichiers audio sans créditer celui ou celle qui a enregistré. Chaque lecture affiche le nom de l’enregistreur, la licence (CC BY-NC-SA 4.0) et le numéro de l’enregistrement dans la collection. Python s’est révélé excellent pour récupérer ces audios et organiser aussi bien les espèces que les auteurs de façon programmatique.

Han et al. 2025 (CC0) complète le tout avec des données de couleurs de plumage qu’AVONET ne couvre pas.

Le slot type AMAZON.SearchQuery en pt-BR capte la parole libre — « j’ai vu un petit oiseau jaune avec des ailes noires au sol dans le jardin » entre entièrement sous forme de texte et le parser en extrait les attributs. Pas de menu, pas de « dites 1 pour la couleur ». Vous parlez comme vous parleriez à un ami.

Les chiffres, sans rien inventer

1 627 espèces de tout le Brésil. 1 014 avec un enregistrement réel de xeno-canto. La base a commencé avec 390 espèces de la région de São Paulo et a été étendue pour couvrir tous les biomes brésiliens.

Précision simulée avec un bruit réaliste (descriptions incomplètes, attributs erronés, synonymes régionaux) : le bon oiseau apparaît parmi les 3 premières suggestions dans ~54 % des cas. Ce n’est pas 90 %. C’est ce que le modèle livre aujourd’hui avec des données ouvertes et un parser qui accepte la parole libre. La transparence sur ce chiffre compte plus que de l’arrondir vers le haut.

Il y a aussi un quiz de chants : la skill joue un enregistrement réel et vous essayez de deviner l’espèce. Juste, elle tient le score. Faux, elle révèle laquelle c’était et rejoue le chant pour que vous fassiez l’association. C’est une façon d’entraîner son oreille sans avoir besoin d’être sur le terrain.

Et le plus gros goulot d’étranglement technique n’a pas été le scorer — c’était l’Alexa Developer Console. Tester une skill Alexa est un processus lent, avec des déploiements qui traînent, des logs en retard et une interface que peu de gens maîtrisent. Qui a déjà développé pour Alexa le sait. Qui ne l’a pas fait le découvrira.

Ce que la skill NE fait PAS (volontairement)

Elle n’enregistre pas le son de l’oiseau — Alexa n’en est pas capable. Elle ne diffuse pas de chants en boucle pour attirer les oiseaux — c’est contraire à l’éthique. Elle n’a pas de métriques d’usage parce qu’elle vient d’être publiée. Elle n’a pas de témoignages d’utilisateurs parce que je ne vais pas les inventer. WikiAves, xeno-canto, GBIF et AVONET sont des sources créditées, pas des partenaires.

Chaque diffusion de chant est accompagnée d’un avertissement de playback responsable. Diffusion unique, volume contrôlé, crédit à l’enregistreur, information sur la période de reproduction. Ce n’est pas une fonctionnalité — c’est une obligation.

L’invitation : testez, cassez, améliorez

Le code est sous licence MIT et le dépôt est public : github.com/jvitorcarvalho/aves-do-brasil-alexa.

Je veux que les gens s’amusent avec ça. Qu’ils découvrent le chant de l’urutau (l’ibijau gris), qui est l’une des choses les plus curieuses que vous entendrez. Qu’ils identifient un oiseau dans leur jardin et le racontent à un ami au déjeuner. Qu’un développeur de Manaus reprenne le dépôt et calibre les priors pour l’Amazonie. Qu’un ornithologue corrige les noms vernaculaires venus du GBIF, qui comportent probablement des erreurs.

Aujourd’hui, la skill couvre tout le Brésil — 1 627 espèces, 1 014 avec enregistrement. Il y a de la marge.

Pour tester : « Alexa, ouvre Aves do Brasil ». C’est gratuit, sans publicité, sans collecte de données.

Pour contribuer : ouvrez une issue, envoyez une PR, ou dites-moi que le nom vernaculaire du tico-tico (bruant chingolo) dans votre ville est différent. Tout aide.


Développée par Evolutiva Negócios Digitais (João Monlevade/MG, Brésil). Sources : AVONET (Tobias et al. 2022, CC BY 4.0), GBIF (CC0), xeno-canto (CC BY-NC-SA 4.0), Han et al. 2025 (CC0), WikiAves (consultation publique). Avertissement de playback conforme à l’IN ICMBio 14/2018 et aux directives du CEMAVE.

Questions fréquentes

Comment la skill Aves do Brasil identifie-t-elle un oiseau à partir d’une description parlée ?

La skill utilise un scorer bayésien qui croise 7 attributs extraits de votre parole — couleur, taille, milieu, position, bec, queue et couleur secondaire — avec les données morphologiques de 1 627 espèces brésiliennes. La base vient d’AVONET (Tobias et al. 2022), complétée par les données d’occurrence du GBIF pour pondérer les espèces les plus probables dans votre région. Vous décrivez ce que vous avez vu en langage naturel et vous recevez les espèces les plus compatibles avec la description.

La skill diffuse-t-elle des chants pour attirer les oiseaux ?

Non. La skill diffuse de vrais enregistrements de xeno-canto une seule fois par requête, avec un volume contrôlé et un crédit à l’enregistreur d’origine. Diffuser des chants en boucle pour attirer les oiseaux provoque un stress territorial et peut perturber la reproduction — une pratique déconseillée par l’IN ICMBio 14/2018 et par le CEMAVE. Chaque diffusion est accompagnée d’un avertissement de playback responsable.

Quel est le taux de réussite de l’identification vocale ?

Dans des simulations avec un bruit réaliste (descriptions incomplètes, attributs erronés, synonymes régionaux), le bon oiseau apparaît parmi les 3 premières suggestions dans environ 54 % des cas. Ce chiffre reflète la performance actuelle avec des données ouvertes et un parser de parole libre. La skill n’arrondit pas ses métriques — la transparence sur les limites est intentionnelle.

La skill Aves do Brasil est-elle gratuite et collecte-t-elle des données personnelles ?

La skill est gratuite, sans publicité et sans collecte de données personnelles. Le code est open source sous licence MIT, disponible dans le dépôt public. Les bases de données utilisées (AVONET, GBIF, xeno-canto, Han et al. 2025) sont toutes ouvertes et dûment créditées.

Puis-je contribuer à la skill ou corriger des noms vernaculaires d’oiseaux ?

Oui. Le dépôt accepte les issues et les pull requests — les contributions d’ornithologues, de développeurs et d’observateurs d’oiseaux sont bienvenues. Les noms vernaculaires régionaux qui diffèrent des enregistrements du GBIF peuvent être corrigés directement. La base actuelle couvre 1 627 espèces du Brésil et 1 014 avec un enregistrement réel, mais il y a de la place pour la calibration régionale et l’expansion.