Présentation

Fugleramme est un dispositif autonome qui combine un Raspberry Pi 5, un écran Inky Impression 13,3 " (Spectra 6) et un microphone pour détecter en temps réel les chants d’oiseaux. Le cœur du traitement audio repose sur BirdNET‑Go, un classificateur d’espèces entièrement exécuté localement, ce qui élimine toute dépendance à un service cloud. Chaque espèce reconnue est associée à une illustration découpée à la main provenant de planches naturalistes du XIXᵉ siècle, puis affichée sur le panneau e‑ink ou, en mode alternatif, sur un moniteur HDMI.

Architecture logicielle

Le flux de données s’articule en trois étapes. D’abord, BirdNET‑Go écoute en continu le microphone et produit, toutes les quelques secondes, le nom de l’espèce la plus probable avec un score de confiance. Ensuite, le service Fugleramme interroge l’API de BirdNET‑Go, récupère le résultat et recherche dans une base de plus de 800 découpes couvrant plus de 400 espèces. Le processus de correspondance utilise un dictionnaire JSON où chaque nom scientifique pointe vers le fichier image SVG pré‑traité. Enfin, un algorithme de mise en page place les illustrations sur une « page » virtuelle : les oiseaux les plus lourds sont centrés, les plus petits sont disposés en périphérie, et le fond est retiré pour créer un rendu sur papier texturé. L’affichage ne se rafraîchit que lorsque la composition change, limitant ainsi les cycles de mise à jour coûteux de l’e‑ink.

Gestion de l'affichage e‑ink

L’écran Inky Impression utilise une technologie electrophoretique qui ne consomme de l’énergie que lors du rafraîchissement. Fugleramme exploite cette contrainte en ne déclenchant un redraw que lorsqu’une nouvelle espèce apparaît ou qu’une espèce disparait, ce qui réduit la consommation à quelques dizaines de milliwatts en veille. Le rendu est généré en PNG 800 × 600 px, puis envoyé via le pilote fourni par le fabricant. Le choix d’un format raster plutôt que vectoriel évite le recalcul de courbes lors du rafraîchissement, ce qui accélère le processus de mise à jour.

Déploiement et extensibilité

Le projet propose plusieurs méthodes d’installation. Sur le Pi, un script unique

curl -fsSL https://raw.githubusercontent.com/arnegiacomo/fugleramme/main/install.sh | bash
configure le système, installe les dépendances Python via uv, et crée un service systemd qui démarre automatiquement le cadre. Pour les environnements conteneurisés, une image Docker officielle est disponible :
docker run -d -p 8080:8080 -v fugleramme:/data \
    -e FUGLERAMME_DETECTOR_URL=http://birdnet.local:8080 \
    ghcr.io/arnegiacomo/fugleramme
. Cette approche permet de séparer le détecteur BirdNET‑Go du service d’affichage, ce qui facilite le déploiement sur un serveur Linux avec microphone USB. Le code source, sous licence MIT, accepte les contributions d’artistes pour enrichir la collection d’illustrations, ainsi que des améliorations du pipeline de détection.