BirdNET-Pi

När det gäller BirdNET dyker både det ena och andra upp. Jag har tidigare testat att spela in filer och i efterhand analysera dessa med programvara från BirdNET. Nu har jag hittat BirdNET-Pi som gör realtidsanalys av fågelläten i en liten Raspberry Pi-dator. Mer info, forum m m finns här. Programmet är gratis!

Programmet lägger fortlöpande ut resultatet på en webbsida i form av statistik, läten och spektrogram. Historik finns och man kan även lyssna direkt. Investeringen i hårdvara behöver inte vara mer än en Raspberry Pi-dator, som komplett normalt sett går att få för under tusenlappen, samt en enkel USB-mikrofon för någon hundralapp. P g a komponentbristen i världen är dessa datorer totalt slutsålda i Sverige, men jag lyckades hitta en leverantör i England. Jag har köpt två något dyrare mikrofoner som via en kombinerad mixer/förstärkare/ljudkort matar programmet med ljud från tomten. Den ena mikrofonen är rundstrålande för tomten medan den andra är en riktmikrofon riktad mot himlen för att få en så heltäckande bild som möjligt. Hela utrustningen utom mikrofonerna är placerad inomhus. Mikrofonerna är förstås skyddade från regn och i största möjliga mån från fukt. Det återstår att se hur långlivade de blir utomhus och hur de fungerar i kyla. Eftersom de inte kostar någon förmögenhet, som en del mikrofoner gör, får man i så fall köpa nya vid behov.

Installation och anpassning av programmet är gjord. När man installerar finns några saker att tänka på p g a den inbyggda webbserverns funktionalitet. Man får lägga upp en subdomän och använda omvänd proxy om man redan har andra webbservrar bakom sin router, vilket jag har.  Jag har som vanligt gjort översättning till svenska så långt det går och även anpassat sidorna så som jag vill ha dem.

Färdig för montering ser utrustningen ut så här.

Raspberry Pi-dator med minneskort, monteringslåda och strömadapter.
Kontrollenhet för mikrofonerna och som också agerar ljudkort till datorn via USB.
Rundstrålande mikrofon.
Riktmikrofon.
Diverse kablar tillkommer.
Eftersom kontrollenheten för mikrofonerna även strömförsörjer dessa med 48 Volt valde jag att även köpa till en USB-hubb med strömförsörjning som kopplades in mellan enheten och datorn. En del säger att det fungerar utan hubb. Själv har jag inte testat, utan installerade en för säkerhets skull då den bara kostar ett par hundralappar.

Mikrofonerna sitter förstås utomhus, men allt övrigt fick plats i en befintlig kabelsamlarbox inomhus. För att få in mikrofonkablarna borrade jag ett litet hål genom väggen, lossade kabelkontakterna och lödde sedan på dem igen.

Här är den tekniska uppbyggnaden

Efter en del arbete med att lära sig hur programmet fungerar, översättning och anpassning av sidor samt att få det hela åtkomligt från Internet är sidan nu uppe och rullar. Som vanligt gör den här typen av sidor sig bäst på en riktig skärm, men mobilen funkar också.
https://birdnet.svardsten.se/

En del falska positiva träffar har upptäckts och det får man titta närmare på. I en miljö med andra ”mänskliga” ljud i närheten är det kanske ofrånkomligt att en del av dessa är så lika något fågelläte och därför tas med som en träff av programmet. Det har dock aviserats att en förbättrad version av analysmodellen är på väg och själva programmet kommer också att utvecklas.

Sidan är nu också ansluten till den helt nyutvecklade tjänsten BirdWeather dit BirdNET-Pi rapporterar sina fynd så fort de registrerats.

2022-02-12
Jag har nu installerat den senaste versionen, V0.11.1. En mängd förbättringar har gjorts, bl a enklare och mer beskrivande installationsförfarande, möjlighet att exkludera arter från fyndlistan för att därigenom minska antalet falska träffar, exkludering av multipla träffar m m.
Själv har jag gjort menyval tydligare och översatt artgrafiken till svenska.

2022-02-17
När det gäller val av mikrofon verkar många vara överens om att den bästa och billigaste för ändamålet är den som beskrivs i länken nedan och som man bygger själv. Då får man för en mycket rimlig peng en mikrofon lämpad för naturljud och den har mycket bra värden som bra känslighet och låg brusnivå. Nackdelen är att man måste skicka efter prylarna från utlandet. Jag har själv gjort det nu för att testa. Beskrivning finns för två varianter.  Den ena för vanlig 3,5 mm mikrofonkontakt och som då ansluts via ett USB-ljudkort, t ex UGREEN, som ska ha bra värden. Den andra varianten är för XLR-teknik där man ansluter mikrofonen till uttag med ”phantom power 48 V”, t ex hos en Scarlett 2i2 som jag använder.
Allt man behöver veta för att bygga en mikrofon finns beskrivet i den här länken.
https://www.instructables.com/The-Sound-Sleuthers/

2022-03-17
Jag har nu köpt ett gäng mikrofoner av den som beskrivs i länken här ovanför. Kostnaden för varje mikrofon var 25-30 kr samt ett motstånd och en kondensator för att dra ner spänningen från 48 V till runt 1 Volt.  Det var inga problem med att få till det rent tekniskt, även om det var lite pyssligt att löda och allt fungerade direkt. Jag har monterat en av varje på olika sidor av huset. De nya verkar minst lika bra som de gamla, för att inte säga bättre, men det är svårt att avgöra rakt av. Eftersom de är rundstrålande och har mycket hög känslighet borde de täcka en stor del av ljudet som kommer från himlen. Den riktmikrofon jag hade tidigare täckte ju bara en smal sektor. De nya mikrofonerna har också fördelen att vara mycket små, runt 10 mm i diameter utan vindskydd och om de skulle sluta fungera är det bara att löda dit en ny för en låg kostnad. Jag fick dra ner förstärkningen i mikrofonmixern en del, annars blev bakgrundsbruset väldigt högt, men förhoppningsvis uppvägs det av den högra känsligheten.
Jag har även byggt en vanlig mikrofon som via ett USB-ljudkort kan köras direkt in i en Pi-dator. Jag testar just nu en sådan i en annan BirdNET-Pi-installation och resultatet verkar mycket lovande. Det går alltså att få till en installation där kostnaden i princip bara är själva Pi-datorn.

2022-07-14
De senaste månaderna har mycket hänt när det gäller BirdNET-Pi. Flera kodare har anslutit och en rad nya funktioner har tillkommit samtidigt som utseendet förbättrats. Jag försöker hänga med i vad som händer och har gjort ett paket man kan köra på standardinstallationen och därigenom få svensk översättning, anpassning av länkar och ett i mitt tycke snyggare utseende. Jag har också lagt till aktuellt väderdata, som hämtas antingen från den egna väderstationen eller från SMHI när det gäller andra installationer. Jag delar gärna med mig av anpassningen och om någon är intresserad av den eller har andra frågor går det väldigt bra att maila mig via kontaktformuläret här på bloggen. Jag delar också gärna med mig av den installationsinstruktion och användarmanual jag skrivit. Installationsinstruktionen täcker allt man behöver veta – vilka delar som behöver köpas och länkar till dessa, hur man bygger egen mikrofon om man vill det m m.
Jag har även hjälpt Landsorts Fågelstation med en installation. Förutom att de som är verksamma där kan även andra gå in och se vad som händer på en av landets bästa fågellokaler. Informationen kan också användas för att se när det börjar bli dags att skicka ut ringmärkarpersonal under vår och höst när många arter flyttar. Landsorts Fågelstation

2022-10-06
Fram till för några dagar sedan har jag som beskrivits här ovanför kört med två mikrofoner som via en ljudmixer kopplats in mot BirdNET-Pi-datorn. Dessa mikrofoner var placerade under altanens utsprång för att vara skyddade från regn, men det gjorde också att de blev lite avskärmade från flygande fåglar. Jag beslöt mig därför för att bygga en till mikrofon och placera den betydligt högre upp, mellan de två gamla mikrofonerna, med mer fri ”sikt” mot himlen men ändå regnskyddat. Genom att testa denna med en annan Pi-dator kunde jag jämföra resultaten under några dagar. Det visade sig att den nya mikrofonen fångade fler läten än de två gamla och dessutom blev det några fler arter varje dag, troligen beroende på att mer flygande fåglar identifierades.
Det här med mikrofoner behöver alltså inte vara så märkvärdigt som jag först trodde. En enda mikrofon räcker långt bara man tänker på hur den placeras. Det kan också vara bra att dra på förstärkningen från denna så mycket det går, vilket görs med kommandot ”alsamixer” från kommandoprompten i Pi-datorn.

2023-04-24
Sedan jag skrev här senast har bl a en ny analysmodell tillkommit i programmet. Den är betydligt säkrare när det gäller identifikationen av arter och osannolika arter, både geografiskt och tidsmässigt på året, är helt borta då resultatet numera jämförs med eBird och filtreras. En hel del andra förbättringar och finesser tillkommer hela tiden. Tyvärr är det fortfarande total brist på Raspberry Pi-datorer, men troligen kommer leveranserna igång i början av sommaren.
Jag fortsätter att översätta och anpassa programmet till svenska och delar gärna med mig av detta för de som är intresserade. Anpassningen är gjord för svenska, men bör ganska lätt gå att modifiera till andra språk. Ta gärna en titt på min egen installation och hör gärna av dig om du har frågor. Kontakt kan tas antingen i kontaktformuläret här på fotobloggen eller via valet ”Länkar/kontakt” i menyn på min installation där det finns en e-postadress: https://birdnet.svardsten.se

2024-03-14
De som tidigare ansvarade för kodningen av programmet har av olika anledningar dragit sig tillbaka och ingen utveckling sker längre. Programmet har dock det mesta som behövs, fungerar stabilt och det går fortfarande alldeles utmärkt att installera det. Numera finns det dessutom gott om Raspberry Pi 4B-datorer att köpa. Den nya modell 5 av datorn går dock inte på ett enkelt sätt att installera i då den kräver operativsystemet Bookworm och detta stöds i sin tur inte av BirdNET-Pi.
Ett par andra programmeringsintresserade har dock börjat utveckla egna varianter av programmet och dessa stöder Bookworm och man försöker även förbättra en del funktioner. Min egen Translate-modifiering verkar fungera på den ena av de nya varianterna. Jag får återkomma när man kommit en bit vidare på vägen.

2024-05-29
Utvecklingen av den nya versionen av BirdNET-Pi fortsätter och mer info finns här.

2024-05-29
Sedan ungefär ett halvår har jag haft en BirdWeather PUC. Det är en enhet med dubbla mikrofoner, GPS-mottagare, miljö- och ljussensorer med mera. Meningen var att jag skulle använda den som en avancerad variant av Merlin där analysresultatet skulle visas i tillhörande mobilapp och gärna också med text-till-tal-funktion så att man kan få art uppläst i t ex hörsnäcka. Nu visade det sig tyvärr att utvecklingen inte kommit så långt.
Allt data måste när detta skrivs skickas upp i molnet för analys innan resultatet kan visas i appen. Om man har PUC:en installerad i det egna nätverket skickas ljudfiler kontinuerligt för analys och det fungerar riktigt bra. Om man däremot har den med på t ex en promenad lagras ljudfilerna på minneskortet och laddas upp för analys först när man kommit hem och anslutit enheten till nätverket igen och uppladdningen går då rätt långsamt.
Denna enhet är betydligt enklare att få igång än en BirdNET-Pi, men saknar de fördelar man har med en webbsida där man kan se översikter, historik, statistik med mera.
Produktens egen hemsida finns här och kan köpas inom EU från Veldshop.

2024-09-14
Text-Till-Tal-funktion i BirdNET-Pi
Som jag nämnt tidigare har jag som önskemål att få en TTS-funktion (Text-Till-Tal/Text-To-Speech) och har framfört detta till diverse programutvecklare. Eftersom ingen hittills har nappat på förslaget fick jag ta saken i egna händer och knåpa ihop en egen lösning. Meningen är att göra datorn portabel genom att ha en större powerbank som strömkälla, vilket jag testat utan problem. Man kan då få detekterade arter upplästa när man är ute och går.
Lösningen blev i korta drag att i samma dator som BirdNET-Pi körs även installera en fri programvara (Piper) för talsyntes av vald text offline. Jag har fått detta att fungera och får nu detekterad fågelart uppläst i hörlur ansluten direkt till Raspberry Pi-datorns 3,5 mm ljudutgång. Nästa steg är att få över ljudet till mobilen, antingen trådlöst via Bluetooth eller via sladd. Nu verkar det som att mobiler inte kan agera som mottagare av Bluetooth, bara som sändare till t ex hörlurar, så tills vidare satsar jag på den trådbundna lösningen. Poängen med att föra över ljudet till mobilen är att hörselskadade ska kunna få arten uppläst i hörapparat samtidigt som man hör det vanliga ljudet.
Följande beskriver en helt ren installation utan någon svensk modifiering och översättning.

Instruktion för installation på Raspberry Pi

1. Installera Bookworm 64-bit Lite på din Raspberry Pi.

2. Öppna terminalen och kör följande kommandon:
sudo apt-get update
sudo apt-get upgrade
sudo reboot

3. Installera pip
sudo apt install python3-pip

4: Installera Piper
pip install piper-tts –break-system-packages

5. Starta om systemet
sudo reboot

6. Installera BirdNET-Pi
curl -s https://raw.githubusercontent.com/Nachtzuster/BirdNET-Pi/main/newinstaller.sh | bash
Datorn ska nu vara åtkomlig i ditt nätverk under namnet dittid.local .

7. Skapa katalogen /home/dittid/BirdNET-Pi/TTS. Obs: Placera inte katalogen under BirdSongs,
eftersom den riskerar att tas bort om du kör ”Clear ALL data”. I TTS-katalogen läggs en underkatalog med namnet ”loggar”.
Ge full behörighet till TTS-katalogen:
sudo chmod -R a+rwx /home/dittid/BirdNET-Pi/TTS

8. Ladda ner Piper språkfiler
Följ instruktionerna på Pipers GitHub-sida: https://github.com/rhasspy/piper för att ladda ner de språkfiler du behöver till den TTS-mapp du redan skapat.

9.  Modifiera koden i Python-skriptet reporting.py
Öppna filen home/dittid/BirdNET-Pi/scripts/utils/reporting.py .
Ersätt det aktuella kodavsnittet med följande kod:

Länk till textfil med koden eftersom det inte går att få med inledande blanktecken i WordPress.

Koden i skriptet skapar även en logg dag för dag. Om man inte vill ha den funktionen är det bara att kommentera ut de raderna, Tänk på att spara undan den modifierade filen då det annars är risk att den skrivs över om du uppdaterar BirdNET-Pi. På en portabel dator som bara ska detektera art och spela upp en ljudfil finns kanske ingen anledning att göra uppdateringar.
För att få så snabb detektering som möjligt bör följande värden sättas i BirdNET-Pi:s inställningar:
Recording Length: 6
Extraction Length: 3

Jag har tagit ChatGPT till hjälp för att leta data på nätet, göra kodändringar och skriva formaterade engelska instruktioner på Github.

2024-09-19
Trådlöst ljud fixat!
Jag har nu lyckats lösa problemet med att få över ljudet trådlöst från datorns ljudutgång. Lösningen blev att köpa en Bluetooth-sändare från Amazon och koppla den till hörlurskontakten på datorn. För att höra ljudet använder jag en hörlur i form av en öronklämma. Även den är köpt från Amazon.
Jag har även beställt en hörlur med två fristående enheter, en för varje öra, och på det viset kan två personer lyssna samtidigt. Sändaren klarar av två olika uppkopplingar samtidigt. Både sändare och hörlur kan vid behov laddas från powerbanken.
Sammankopplingen fungerade helt utan problem, men ett annat uppstod direkt. Bluetooth-sändare går i viloläge för att spara batteri om det inte kommer något ljud och det kan ju gå en stund mellan uppläsningarna. När ljud sedan kommer tar det cirka en sekund för sändaren att gå igång igen och då har man missat uppläsningen. Lösningen blev att kontinuerligt spela upp ett ohörbart ljud för att hålla hörlursutgången på datorn igång. Kommandot för detta är:
nohup play -n synth 0 sine 30 vol 0.001 > /dev/null 2>&1 &
För att få detta automatiskt vid omstart lägger man in följande i crontab:
@reboot nohup play -n synth 0 sine 30 vol 0.001 > /dev/null 2>&1 &

2024-09-23
Systemet drar cirka 1000 mAh per timme, vilket gör att en inte alltför stor powerbank räcker en hel dag. T ex bör en på 10 000 mAh räcka cirka tio timmar. Hela paketet bör då rymmas i en större ficka om man inte har ryggsäck och det räcker om mikrofonen sticker ut en bit utanför.

2024-10-07
Koden i länken ovan har nu modifierats så att det måste gå minst tio sekunder innan samma artnamn kan läsas upp igen. Om samma art låter väldigt mycket blir det annars många tröttsamma upprepningar. Vill man ha annat intervall är det enkelt att ändra detta i koden.