Vogelgeluiden herkennen met Raspberry Pi: Dit heb je nodig
Vraag je je ook weleens af welke vogelsoorten er allemaal je tuin bezoeken? Met een Raspberry Pi en een microfoon kun je de hele dag het geluid in je tuin opnemen. De software BirdNET-Pi herkent daarin vogeldeuntjes en toont je handige statistieken van wanneer welke vogels te horen zijn. In deze masterclass bouwen we een Raspberry Pi in een waterdichte doos in en installeren we er BirdNET-Pi op.
In dit artikel leggen we uit hoe je voortaan makkelijk vogels in je tuin kunt herkennen met behulp van een Raspberry Pi en een microfoon.
Stappenplan:
- Raspberry Pi OS Lite installeren
- BirdNET-Pi installeren
- Microfoon installeren en instellen
- Statistieken, logs en notificaties krijgen
Vraag je je tijdens een wandeling weleens af welke vogel dat speciale deuntje laat horen? Om die vraag te beantwoorden, zou je BirdNET eens moeten kunnen proberen, een app voor Android en iOS die vogelsoorten kan onderscheiden aan de hand van geluidsopnames. Onder de motorkap draait een neuraal netwerk van onderzoekers van Cornell University dat op geluiden van drieduizend vogelsoorten is getraind. Je neemt enkele seconden van het deuntje op je mobieltje op, de app analyseert die vervolgens en benoemt daarna de vogels waarvan het geluid daar het meest op lijkt.
Patrick McGuire heeft een versie van BirdNET gemaakt die op de Raspberry Pi werkt. De software luistert continu naar het geluid van een usb-microfoon en herkent daarin realtime vogelgeluiden. Dat werkt op een Raspberry Pi 4B, 3B+ en Zero W 2. Om van alle mogelijkheden te kunnen genieten, is een Raspberry Pi 4B wel aangeraden.
Raspberry Pi OS Lite installeren
BirdNET-Pi vereist de 64bit-versie van Raspberry Pi OS. Je dient de Lite-variant te installeren. Dat gaat het eenvoudigst met het programma Raspberry Pi Imager. Klik op Selecteer OS / Raspberry Pi OS (other) / Raspberry Pi OS Lite (64-bit). Klik dan op Kies opslagapparaat en kies de microSD-kaart die je in je kaartlezer hebt gestoken.
Open met een klik op het tandwiel rechtsonder de geavanceerde instellingen. Geef je Pi een hostname, schakel ssh in en stel een gebruikersnaam en wachtwoord in. Stel ook het wifi-netwerk in waarmee de Pi moet verbinden en stel de juiste tijdzone in. Klik daarna op Opslaan en op Schrijf om het besturingssysteem op het microSD-kaartje te installeren. Wanneer dit klaar is, steek je het kaartje in je Raspberry Pi en start je die op.
BirdNET-Pi installeren
Wacht nu even tot je Raspberry Pi is opgestart. De eerste keer kan dat een tijdje duren. Log daarna in op je Raspberry Pi via een aangesloten toetsenbord en beeldscherm, of via ssh via het netwerk. Update de pakketbronnen en upgrade alle pakketten met deze twee opdrachten:
sudo apt update
sudo apt dist-ugprade
Voer daarna het installatieprogramma van BirdNET-Pi uit:
curl -s https://raw.githubusercontent.com/mcguirepr89/BirdNET-Pi/main/newinstaller.sh | bash
De installatie duurt even. Op het einde herstart de Raspberry Pi automatisch. Log daarna opnieuw in en schakel de Pi uit met de opdracht sudo poweroff
.
Microfoon
Voordat we de software verkennen, gaan we eerst de hardware in orde brengen. Allereerst ga je ook zoek naar een geschikte microfoon. Op het discussieforum van BirdNET-Pi op GitHub vind je enkele suggesties voor microfoons, zoals de RØDE VideoMic NTG. Je kiest of een usb-microfoon of een usb-audiokaart waarop je dan via een 3,5mm-aansluiting een microfoon aansluit.
Wat je ook doet, gebruik altijd een usb-verlengkabel, want als de microfoon of geluidskaart zich te dicht bij de Raspberry Pi bevindt, levert dit elektromagnetische interferentie op in de microfoon en daardoor ruis in het audiosignaal. De kwaliteit van de vogelherkenning lijdt daaronder.
Waterdichte installatie
Als je in je tuin vogelgeluiden wilt herkennen, dan moet je Raspberry Pi in een waterdichte behuizing zitten. We gaan ervan uit dat je een stopcontact in de buurt hebt. Zo niet, dan moet je ook een grote powerbank in de behuizing inbouwen.
Wij kiezen een universele behuizing van Hammond Electronics van 220 × 165 × 85 cm gemaakt van ABS-kunststof en boren er een gat in om een inbouw-usb-connector voor twee kabels in te monteren. Aan de binnenzijde van de behuizing sluiten we ene usb-kabel via een usb-c-naar-usb-a-adapter aan op de usb-c-voedingspoort van de Raspberry Pi, en de andere op een usb-a-poort van de Raspberry Pi. Aan de buitenkant sluiten we op de ene usb-connector een kabel aan naar een usb-voedingsadapter (let op: de kabel moet hiervoor aan beide kanten een mannelijke usb-a-stekker hebben). Op de andere usb-connector sluiten we de usb-microfoon aan. Omdat het in de behuizing warm kan worden, monteren we ook een koelelement op de Raspberry Pi.
Tip: Microfoon waterdicht Een microfoon waterdicht maken is niet zo vanzelfsprekend. Het beste dat je kunt doen, is de microfoon (samen met de behuizing van je Raspberry Pi) onder een afdak plaatsen, zodat er niet rechtstreeks regen op valt.
Instellingen
Als je alles aangesloten hebt, schakel dan je Raspberry Pi weer in. Bezoek nu in je browser het adres http://IP met in plaats van IP het ip-adres van je Raspberry Pi. Voorlopig is er nog niet veel te zien, maar als alles goed is, heeft je Raspberry Pi de microfoon automatisch herkend en is hij al continu bezig om geluid op te nemen en te analyseren op de aanwezigheid van bekende vogelgeluiden.
Maar voordat we in de resultaten duiken, lopen we eerst enkele basisinstellingen na en passen die eventueel aan. Klik bovenaan op Tools en meld je aan met gebruikersnaam birdnet en een leeg wachtwoord. Klik dan op Settings.
Kijk of de automatisch ingevulde coördinaten overeenkomen met je locatie, want het herkenningsalgoritme houdt hiermee rekening, zodat het geen vogels suggereert die alleen op een ander continent voorkomen. Stel ook bij Localization je taal in (Nederlands staat ertussen), zodat je de vogelnamen niet in het Engels krijgt en telkens moet opzoeken. Klik onderaan op Update Settings.
Afbeeldingen
BirdNET-Pi kan ook foto’s bij de gedetecteerde vogels tonen. Die haalt het dan van Flickr. Daarvoor heb je een Flickr API-sleutel nodig, die je gratis kunt aanvragen. Kies bij de aanvraag voor Apply for a non-commercial key en leg dan in enkele zinnen uit waarvoor je de API-sleutel nodig hebt. Na een klik op Submit krijg je een sleutel en geheim. Met dat geheim hoef je in deze masterclass verder niks.
De sleutel is een reeks van 32 hexadecimale cijfertekens. Vul die sleutel in op de pagina Tools / Settings van BirdNET-Pi, in het veld Flickr API Key, en klik op Update Settings. Vanaf nu verrijkt BirdNET-Pi zijn interface met foto’s van de gedetecteerde vogels. Als je niet zomaar foto’s van willekeurige bronnen vertrouwt, dan kun je in de instellingen ook een specifieke Flickr-gebruiker opgeven. BirdNET-Pi zoekt dan alleen bij die gebruiker naar foto’s.
Overzicht
Keer nu terug naar de overzichtspagina. Als BirdNET-Pi al even actief is, krijg je hier bovenaan statistieken te zien met de top tien herkende vogels, in totaal en per uur. Eronder krijg je een spectrogram te zien van de meest recente detectie. Zo’n spectrogram toont de frequenties die op elk moment in het audiosignaal aanwezig zijn. Het is een soort ‘vingerafdruk’ van het geluid, en het is deze afbeelding die het neurale netwerk als invoer krijgt en waarin het naar patronen zoekt die kenmerkend voor elke vogelsoort zijn.
Eronder krijg je een lijst met de vijf recentste gedetecteerde vogelgeluiden. Per tijdstip krijg je de gewone en wetenschappelijke naam van de herkende vogel, met links naar de websites All About Birds en Wikipedia voor meer informatie. Je krijgt ook te zien hoe zeker het algoritme is over de herkenning. Daarnaast krijg je telkens ook de mogelijkheid om het audiofragment te beluisteren. Helemaal onderaan de statuspagina bevindt zich overigens het spectrogram van het geluidsfragment dat BirdNET-Pi op dat moment aan het analyseren is.
Audio-instellingen
Beluister zelf zeker enkele van de audiofragmenten. Merk je dat het geluid nogal zwak is, dan dien je misschien nog wat aan de audio-instellingen aan te passen. Ga daarvoor weer naar de pagina Tools en open Web Terminal. Log in met de gebruikersnaam en het wachtwoord dat je voor je Raspberry Pi hebt ingesteld en typ de volgende opdracht in:
alsamixer -m
Klik nu bovenaan rechts op F6: Select sound card, klik op je usb-apparaat om het te selecteren en druk dan op Enter. Klik dan bovenaan links op F4: Capture om van het afspeel- naar opnameapparaat over te schakelen. Klik op de balk in het midden om het invoerniveau in te stellen of pas het aan met de pijltjestoetsen naar boven en onder. Druk op Esc wanneer je klaar bent en keer terug naar het overzicht. De audiofragmenten zouden nu luider moeten zijn.
Beluister de dag
Als je wilt nakijken welke vogels het systeem vandaag heeft gedetecteerd, klik dan bovenaan op Today’s Detections. Je krijgt dan niet alleen het aantal unieke soorten vandaag te zien, maar ook een spectrogram met bijbehorend geluidsfragment voor elke detectie, inclusief het tijdstip, de herkende soort en hoe zeker de herkenning is. In het zoekveld bovenaan kun je een naam intypen om alleen de resultaten van een specifieke vogelsoort te bekijken.
Klik je bij een opname op het icoontje van het vierkantje met het pijltje dat naar de rechterbovenhoek wijst, dan kom je op een webpagina specifiek voor deze opname. Je kunt de opname bijvoorbeeld opslaan met een rechtsklik op het spectrogram. Ook handig is het slotje bovenaan rechts het spectrogram: klik je hierop om het slot te vergrendelen, dan wordt deze opname bewaard wanneer BirdNET-Pi opnames verwijdert om weer voldoende vrije opslagruimte te krijgen.
BirdNET op je Pi of je smartphone?
Als je BirdNET ook als app op je smartphone kunt draaien, wat is dan het voordeel van BirdNET-Pi? Het belangrijkste voordeel is dat BirdNET-Pi continu luistert, waardoor je het de klok rond vogelgeluiden kunt laten herkennen. Voor vogelliefhebbers levert dat ook interessante statistieken op, zoals hoe laat je het meeste kans maakt om specifieke vogelsoorten te spotten. Een ander voordeel is dat BirdNET-Pi zijn analyses volledig offline doet, terwijl de smartphone-app elke audio-opname naar de servers van het BirdNET-project moet doorsturen om daar de analyse uit te voeren. Je zou dus een Raspberry Pi met BirdNET-Pi op een plaats zonder netwerktoegang kunnen installeren en na een dag de opgeslagen detecties kunnen raadplegen.
Spectrogram en beste opnames
Op de pagina Spectrogram krijg je een live spectrogram te zien van het geluid dat de microfoon momenteel aan het opnemen is: je ziet de frequenties continu voorbij glijden. Ondertussen krijg je ook het geluid zelf te horen. Overigens kun je ook het live geluid op elke andere pagina te horen krijgen als je bovenaan rechts op Live Audio klikt.
De pagina Best Recordings biedt je voor elke gedetecteerde soort de geluidsopname aan waarvan BirdNET-Pi het meest zeker is. Je kunt de lijst alfabetisch sorteren of op het aantal keer dat het geluid gedetecteerd werd. Ook hier kun je weer op het vierkantje met het pijltje klikken om de webpagina van een opname te openen.
Uitgebreide statistieken
Op de pagina Species Stats vraag je in de kleinste details de statistieken op. Standaard worden statistieken getoond van de tien meest voorkomende vogelsoorten vandaag. Je kunt het datumbereik aanpassen, de resolutie en het aantal vogelsoorten. Je kunt ook de uitvoer beperken tot één specifieke vogelsoort, bijvoorbeeld als je wilt weten op welke uren die soort vooral actief is.
Die urenweergave is cirkelvormig, waardoor je eenvoudig op een klok kunt nagaan welke uren het actiefst zijn, of dat nu voor alle vogels of voor de geselecteerde soort is. Selecteer je een soort, dan krijg je rechts ook nog een uitklapmenu waarmee je elke beschikbare opname tevoorschijn kunt halen om te beluisteren. Als je je BirdNET-Pi-installatie overigens al lang hebt draaien, krijg je in de grafiek met resultaten per dag ook de trends te zien door de seizoenen heen.
Dagelijkse statistieken en opnames
Op de pagina Daily Charts kun je per dag opvragen wat de tien meest gedetecteerde en tien minst gedetecteerde vogelsoorten zijn, samen met het aantal detecties per uur, zoals ook getoond op de overzichtspagina. Vooral die tien minst gedetecteerde soorten zijn interessant: hier vind je misschien wat zeldzame soorten tussen. Maar het zou ook een verkeerde detectie kunnen zijn.
Helaas kun je vanuit deze pagina niet rechtstreeks doorklikken naar de ermee overeenkomende geluidsopnames. Daarvoor ga je naar de volgende pagina, Recordings, en kies je daar By Species of By Date. Daar kun je dan de opnames een voor een openen om ze te beluisteren.
Logs
Wil je meer details zien over de herkenning van soorten, open dan de pagina View Log. Hier zie je dat het analysescript elke vijftien seconden wordt opgestart. Na elke periode krijg je te zien welke vogels het script herkent. Maar laat je hier niet te veel door afleiden. Het neurale netwerk zal altijd een resultaat geven, ook al is het daar heel onzeker over.
De waarschijnlijkheidsscore staat in de logs na elke herkenning. Scores onder de 0,1 mag je gerust negeren. Pas bij een score boven de 0,70 mag je ervan uitgaan dat het om een redelijk resultaat gaat. BirdNET-Pi toont ook alleen maar resultaten waarvan de score boven de 70% ligt.
Notificaties
Tot slot kun je in de instellingen ook notificaties instellen, door meer dan zeventig notificatiediensten die ondersteund worden door Apprise, waaronder e-mail, Home Assistant, PushBullet, Signal en Twitter. Op de wiki van Apprise vind je de uitleg over de configuratieregels voor de diverse diensten.
Vul op de pagina Tools / Settings van BirdNET-Pi een of meer configuratieregels voor notificaties in. Je kunt ook de titel en boodschap van de notificatie veranderen, en daarin kun je variabelen gebruiken die worden vervangen door de naam van de vogel en andere parameters. Klik op Send Test Notification om het resultaat eerst eens uit te testen.
Doe mee als burgerwetenschapper
Als je de resultaten van je BirdNET-Pi-installatie niet alleen voor jezelf wilt houden, maar ze ook met de wereld wilt delen voor wetenschappelijk onderzoek, neem dan deel aan BirdWeather. Dit is een website die continu luistert naar ruim tweehonderd actieve audiostations in de hele wereld en hun resultaten op een wereldkaart zet.
Je kunt hier zelf aan deelnemen door in BirdNET-Pi op de pagina Tools / Settings je BirdWeather ID in te vullen. Deze ID verkrijg je door een e-mail te sturen aan de maker van BirdWeather, Tim Clark (tim@birdweather.com). Let op: je gaat hiermee akkoord dat je geluidsopnames naar BirdWeather worden verstuurd. Doe dat dus niet als je Raspberry Pi vlak naast je terras staat op te nemen waar je weleens privégesprekken voert.
Nog meer vogels in de tuin?
Shop vogelhuisjes bij Bol.com!
P.S. En vergeet ook het vogelvoer niet!