Code Monkey home page Code Monkey logo

battybirdnet-pi's Introduction

BattyBirdNET-Pi

Automated real-time bat & bird detection and identification

Extended and enhanced fork of BirdNET-Pi for bats, birds or your own fine-tuned classifier (insects, mammals, amphibians, ...). Use with Raspberry Pi 4 or 5 and an Audiomoth or Echo Meter Touch 2 basic or Pro. 'Easy' - no Linux skill required - installation option available.

Purpose

Ever wondered which bat is flying in your yard and when? BattyBirdNET-Pi is readily assembled and will help you getting to know the night and day life around you. Can also be placed remotely with a power source and set to detect birds.

  • Scans ultrasound with 256kHz or 384kHz sampling rate continuously from dusk to dawn or 24/7 if you prefer 365 days a year
  • Automated real-time bat ID on device using the companion https://github.com/rdz-oss/BattyBirdNET-Analyzer, recording mostly the bats and ignores many sources of false triggers (crickets, rain, ...). Can be set to use BirdNET vanilla to detect birds.
  • Inherits many great things from BirdNET-Pi - including notifications on detection and the ability to check status live on the internet
  • Enabled for European, UK and North American species. You can make your own fine-tuned classifier for bats, birds or other animals.
  • Not designed for automated biodiversity assessments but can be used if manually vetted (signals up to 190kHz).
  • Adds meta-data in GUANO format to the recordings and that can be used by other analysis software.
  • Replay recorded files in audible range (on 'Recordings' pages)
  • Requires either audiomoth 1.2 or wildlife acoustics echo meter touch 2 microphones and RaspberryPi 4B or 5.
  • Noise reduction for above microphones available

You can listen to and learn to identify bats & birds in your yard or any other place with this setup! Or make your own fine-tuned version for enjoyment or for monitoring of an endangered species.

Keywords: bat detection, automated bat identification, deep learning, machine learning at the edge, raspberry pi, transfer learning, citizen science, acoustic biomonitoring, audiomoth, BirdNET-Pi for bats, BatNET, Fledermaus, Fledermausdetektor, Ortungsrufe, Fledermausrufaufnahmen, Fledermausrufe, Rufanalyse

Installations around the world

There are several installations in the US, Germany and the UK that I am aware of. People may take them on and of the network, but here in general:

Germany

Munich, BY BatNet

Frankfurt, HE BatNet

St Goar, RLP BatNet

Sweden

Öringe, Tyresö

USA

Murraysville, PA BatNets

France

[Toulouse, Occitanie] (https://bird.thibautrey.fr)

Why not add yours, too?

License

Enjoy! Feel free to use BattyBirdNET-Pi for your acoustic analyses and research. If you do, please cite as:

@misc{Zinck2023,
  author = {Zinck, R.D.},
  title = {BattyBirdNET-Pi: Automated real-time bat detector},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/rdz-oss/BattyBirdNET-Pi }}
}

Be aware there is a limitation: you cannot use it to build a commercial system. LICENSE: http://creativecommons.org/licenses/by-nc-sa/4.0/
Also consider the references at the end of the page.

Screenshots

Overview page

Including stats and spectrograms to 128 kHz

System components

  • A RaspberryPi 4 or 5 with 4GB or more. Use some form of passive or active cooling!
  • If you want to run the system at 384kHz continuously consider the 8GB versions.
  • Power supply for the Raspi and an sd card - choose a large one 128 Gb or larger
  • A USB microphone for ultra sound: tested on audiomoth usb 1.2 and wildlife acoustics echo meter touch 2 (2 and 2 pro)
  • USB cable (USB C female to USB 3, 1.2m) or a USB 3 to USB 3 cable and a USB to USB C adapter
  • Optional: You can use a power bank to run the system as long as the power lasts at any location. You might want to add some form of rain protection.

Some hints:

It is easily assembled

Location and setup hints

  1. Find a place with low noise from crickets, machinery (cars), or electrical appliances and outlets. They tend to produce ultra sonic noise. Be aware that the RaspberryPi itself and its power source generate considerate ultra sound noise.
  2. Place it in the bats flight path (elevated e.g. 3m if you can) or point it to the flight paths.
  3. Place it away from reflective surfaces or other sources of echo. It does work (in Munich) between buildings, but there is an echo effect as well as the bats adapting to the situation (calls shift a bit).
  4. If you need to deal with either bats or microphone near reflective surfaces (lakes, rivers, windows,..) point the microphone in 45 degrees upward away from the surface to minimize effects. Effects include 'shadows' after calls (may appear as a second call or smudge) as well as a 'bubbly' call lines in which the reflected sound waves strengthen or cancel out the original call. Also, try to be 2m above a non-reflective surface to the side of the 'mirror'.
  5. Shield your power converter with acoustic padding or use a long power cable to avoid the ultra sound noise in your recordings as well as false detections. Less such issues if run from a power bank.

Use as a station

You can run the station continuously if you like, e.g. at your home. However, note that the DC/AC power converter of the RasPi (the 'plug') produces a lot of ultrasound noise that triggers the classifier. As there are many versions out there the classifier cannot be trained on the noise of all to avoid that. Also, you will have the noise in the recordings. So use as long a cable to get away from the power source as far as you can. Shield it if you have a way to do that e.g. by a wall. Until another solution is found it is recommended to run the system with a power bank.. This way, you will only have some noise from the RasPi which is not as bad and consistent among setups.

Use on the go

You can plug the RasPi into a power bank, put the entire thing in your backpack and take a walk. Use a 1.2m usb cable for this and point the microphone to where you want. Also, you can connect the RasPi to the WIFI hotspot on your phone. To do that, rename your phone WIFI hotspot to the name and password expected by the RasPi ( the one you configured during installation). You got yourself a nice bat detector for your adventures on foot. Live spectrogram included.

Is it good enough?

That depends on your purpose. Use your judgement, no guarantees or liability. I would not currently use it for fully automated biomonitoring. That said, in test runs in Munich (October) the error rate was approximately (rough estimate, no science):

  • Wrong 3% for every bat species flying plus 8% on noise falsely detected as bats
  • So at that location 4 bats species flying simultaneously would currently lead to approximately: 12%+8% = 20% wrong assessments on species level per night (not counting false noise detections during daytime). This may differ for other locations and background noises.
  • Under development - moving target. You can contribute by writing me when things are not working well.



Interpreting the classifications

In order to get the most out of the system it helps to be aware of a few things. Unfortunately you cannot just assume that a detection is always due to a bat. Essentially, a classification is a suggestion that it is one of these similar groups. Often right - but also expect mismatches in the below categories.

You can use local knowledge to find the most likely species together with the classifier suggestion. Also, you can consult handbooks on bat call identification.

Noise can trigger the classifier

This can be reduced by not entirely avoided. Look at the spectrogram visualization and decide if this is a noise trigger. This is very likely the case during daytime, and it does happen at night. Expect that this happens. There are many sources of such noise:

  • The RaspberryPi itself (operating noise). This is filtered out to a large degree by the classifiers.
  • The power plug of the RaspberryPi. This pollutes the recordings and triggers false detections. Take care to use noise cancelling foam around it or to get as big a distance between the power plug and the microphone. Or use a power bank.
  • Cars while operating, parking, reversing etc. Also, sometimes they have ultrasound based deterrents for martens.
  • Rain, wind, rustling leaves or grass go into ultrasound.

Some bats have near identical calls

There are several bat species which make very similar sound which can be hard for experts to manually tell apart. This is also hard for the classifier. Expect that the classifier identifies both species the call might have originated from. The more likely one will be identified more often, but you need to check with an expert or consult expert materials yourself. Bats in Europe which have similar calls include, but are not limited to:

  • Myotis daubentonii and Myotis mystacinus/brandtii
  • Myotis mystacinus and Myotis brandtii are so similar they were added to one category (mystacinus) in the EU classifiers
  • Pipistrellus nathusii and Pipistrellus kuhlii
  • Pipistrellus pipistrellus and Pipistrellus pygmaeus
  • Nyctalus leisleri, Eptisecus serotinus, Vespertilio murinus
  • Plecotus auritus and Plecotus austriacus are both under Plecotus auritus in the classifier
  • There are often two or more species flying at the same time.

so expect that there is a certain degree of overlap between the species or two or more present in a sample.

Other animals

  • Bush crickets can confuse the classifier. The classifier is trained to ignore them on samples from GER and SE, but not all types.
  • Harvest/wood mice can be in 30kHz and even 50kHz range, also brown and other rats and rodents.
  • Owls can be present e.g. with harmonics, also many other birds such as black birds.
  • Frogs/Toads tend to stay below 10kHz.

Artifacts and harmonics

  • Aliasing describes artifacts produced by a sample rate that is too low for some frequencies produced by a bat, i.e. spurious harmonics or mirrored effects. This might happen e.g. for a Myotis call that goes higher than 128 kHz. Lesser horseshoe bat calls should still be captured without a mirror effect.
  • Clipping is an issue related to cutoff of frequencies when the gain (loudness) of a microphone is set too high and the system cuts off upper and lower frequencies (above the max volume the system can handle). Set e.g. the gain in the Audiomoth to intermediate/medium level.
  • A sound at a certain frequency e.g. 40kHz can appear as a harmonic 'shadow' at 80kHz, 120 kHz etc.



Typical call frequencies of bats

  • Calls are very variable and affected by the bats surroundings
  • Short, medium and long calls can have different characteristics e.g. in myotis species. Long and very long calls of Myotis species should still be visible in the upper end at 256kHz sampling rate. Short and medium sized calls can go to 150kHz and higher and require a higher sampling rate.
  • In woodland there are many obstacles to avoid and bat sound become more similar
  • It is not always possible to ID a bat just from echolocation calls
  • There are echo location calls as well as social calls. Social calls can be on very different frequencies (lower, even audible).
  • Feeding buzzes occur when a bat closes in on prey. The number of calls/time increases and the frequency (kHz) goes down in a 'buzz'.

Echolocation frequency (max energy) of European bats

A quick overview for a first orientation. Bats shift up or downwards depending also on each others presence and the environment. Highest energy is the lightest color in the spectrogram. More detailed information in German, but many illustrations and tables that are understandable:

  • Nyctalus, Eptesicus, Vespertilio, Pipistrellus, Long eared, Horseshoes and Barbastelle For these species the minimum (or end) frequeny of a call and duration can be very informative.
  • Myotis For myotis species the start (often highest) as well as end (often lowest) frequency as well as the duration are informative. There can also be a characteristic 'S' shape in the call. The highest frequencies can require 160kHz or more (extreme 185kHz) resolution, ie 320kHz or 384 kHz settings.
Echolocation frequency (max energy) Common name Species
20-25 kHz Noctule Nyctalus noctula
25 kHz Leislers Nyctalus leisleri
27 kHz Serotine Eptisecus serotinus
28 kHz Vespertilio murinus Part-coloured bat
32 kHz Eptisecus nilssoni Northern bat
32 kHz Barbastelle Barbastella barbastellus
35kHz Mouse eared bat Myotis myotis
39 kHz Nathusius pipistrelle Pipistrellus nathusii
36-40 kHz Kuhls pipistrelle Pioistrellus kuhlii
43-46 kHz Alcathoe Myotis alcathoe
45 kHz Common pipistrelle Pipistrellus pipistrellus
45 kHz Whiskered Myotis mystacinus
45 kHz Brandts Myotis brandtii
45 kHz Daubentons Myotis daubentonii
45-50 kHz Brown long-eared Plecotus auritus
45-50 kHz Grey long-eared Plecotus austriacus
50 kHz Natterers Myotis natteri
50 kHz Bechsteins Myotis bechsteinii
55 kHz Soprano pipistrelle Pipistrellus pygmaeus
80 kHz Greater Horseshoe Rhinolophus ferrumequinum
108 kHz Lesser Horseshoe Rhinolophus hipposideros

Eastern US Species

More information: Eastern US

Echolocation frequency (max energy) Common name Species
21 kHz Hoary bat Lasiurus cinereus
28 kHz Free–tailed bat Tadarida brasiliensis
29 kHz Northern yellow bat Lasiurus intermedius
29 kHz Silver–haired bat Lasionycteris noctivagans
32 kHz Big brown bat Eptesicus fuscus
31 kHz Townsend’s big–eared bat Corynorhinus townsendii
33 kHz Rafinesque’s big–eared bat Cornorhinus rafinesquii
40 kHz Evening bat Nycticeius humeralis
43 kHz Seminole bat Lasiurus seminolus
44 kHz Little brown bat Myotis lucifugus
44 kHz Tri-colored bat Perimyotis subflavus
44 kHz EasternRed Bat Lasiurus borealis
44 kHz Indiana bat Myotis sodalis
46 kHz South-eastern myotis Myotis austroriparius
48 kHz Gray bat Myotis grisescens
49 kHz Eastern small–footed myotis Myotis leibii
51 kHz Northern long-eared myotis Myotis septentrionalis

Western US Species

More information: Western US

Echolocation frequency (max energy) Common name Species
12.5 kHz Spotted bat Euderma maculatum
13 kHz Mastiff bat Eumops perotis
22 kHz Hoary bat Lasiurus cinereus
25 kHz Big freetailed / pocketed bats Nyctinomops spp.
28 kHz free–tailed bat Tadarida brasiliensis
29 kHz Silver–haired bat Lasionycteris noctivagans
30 kHz Fringed myotis Myotis thysanodes
31 kHz Townsend’s big–eared bat Corynorhinus townsendii
32 kHz Pallid bat Antrozous pallidus
32 kHz Big brown bat Eptesicus fuscus
37 kHz Western yellow bat Lasiurus xanthinus
39 kHz Long–eared myotis Myotis evotis
42 kHz Western red bat Lasiurus blossevillii
44 kHz Little brown bat Myotis lucifugus
48 kHz Hairy–winged myotis Myotis volans
48 kHz Canyon bat (western pip.) Parastrellus hesperus
49 kHz Small–footed myotis Myotis ciliolabrum
53 kHz California myotis Myotis californicus
55 kHz Yuma myotis Myotis yumanensis



Install

An 'easy' install method is described here ( no Linux know-how required): Installation.md. You will need to download an image with pre-installed BattyBirdNET-Pi: Latest image

If you like you can alternatively use the 'regular' method:

  • Install Raspbian OS 64 bit lite on the sd card (currently Bookworm based). Set a system user, name and configure your WIFI. If you have not done this before, you can follow the instructions for installing BirdNET-Pi to the point of flashing the sd card with the operating system (see here).
  • After that you will log in to the RasPi with your username and password via ssh (it should be in your wireless LAN after booting)
  • You call the install script from this repository (i.e.. this is where you deviate from the instructions found for BirdNET-Pi)
curl -s https://raw.githubusercontent.com/rdz-oss/BattyBirdNET-Pi/main/newinstaller.sh | bash

The operating system is now updated, two repositories are pulled from github, files are copied for the automation of services, the webserver setup etc. Might take a few minutes. When done, it will reboot. If you see a bat flying in the middle of the WbUI - you have installed BattyBirdNET-Pi.

You can connect to the WebUI via your browser if you are in the same WIFI network. It should show up under http://name-you-gave-it.local . This sometimes does not work depending on your router configuration. You can look up the ip address given to the BattyBirdNET-Pi in your router and call that directly from the browser, e.g. http://192.168.178.XX . Alternatively, tools like Ning (https://f-droid.org/packages/de.csicar.ning/) on your smartphone will list all the devices in your network. The BattyBirdNET-Pi should show up.

Update

Via UI: "Tools" > "System Controls" > "Update". On commandline

/usr/local/bin/update_birdnet.sh

Uninstall

/usr/local/bin/uninstall.sh && cd ~ && rm -drf BirdNET-Pi

Should you want to change the branch you are on (default is 'main') you can use

git fetch
git pull origin 'branchname'

There are two systems installed BattyBirdNET-Pi and BattyBirdNET-Analyzer. You can set a preferred branch for each individually.

Options for the bat classifier

You can set several options under 'Tools - Settings - Advanced Settings' (default user is 'birdnet', no password) including

  • Sampling rate. Choose one that is suitable for your requirements and available from your microphone. Default is 256kHz. You can select 256kHz, 288kHz, 320kHz and 384kHz. They work with both Pi4 and Pi 5. The Pi 4 uses about 70% of its memory (in case of 4GB) and processor power at 384kHz settings. The Pi 5 has more resources.
  • If you use an audiomoth, you can set it to 384kHz. BattyBirdNet-Pi will automatically down sample to the chosen setting.
  • The EM 2 can do 256kHz. The Pro version can be used with all settings.
  • You can set a time for dusk and dawn. The system will then be online yet stop recording and classifying during the day.
  • You can switch to bird recording during the day with vanilla BirdNET v2.4 and record bats at night.
  • You can choose a noise filter and noise reduction factor. The noise filter is specific for a microphone.
  • It is not recommended to set the reduction factor higher than 0.5 as you loose some information.
  • The sensitivity and confidence settings for the classifier are also on the advanced settings page yet in a different box.
  • Experienced users can consider changing some parameters directly in the file '/etc/birdnet/birdnet.conf'. You need to set
  • BAT_CLASSIFIER and LAST_BAT_CLASSIFIER together to the same value
  • You can fine tune/cross train your own classifier with your data using https://github.com/rdz-oss/BattyBirdNET-Analyzer and contribute it via pull request (to BattyBirdNET-Analyzer and -Pi). This way, you could e.g. have a fine tuned model for detecting a rare species (bird, bat, insect, mammal, other) for conservation/biomonitoring reasons or to add a classifier for a new/your region.

To use the North American/UK version:

  • Install as above
  • Go to the Tools setting
  • Log in as user 'birdnet', leave password empty
  • Settings -> Advanced Settings -> Bat Classifier (use USA or UK)
  • If you have set your lat/lon before on the basic settings you can activate the automatic sunrise/sunset determination service
  • You can activate the switch to bird detection during the day if you like

Making the system available online

  • You should activate https by adding an URL with https:// prefix to 'Tools - Settings - Advanced Settings - Custom URL'
  • You can set up a Domain name, if you own one (you need to point your domain's A/AAAA DNS records at your Pi), or use an URL from a DynDNS service. Follow their instructions.
  • Set complex passwords for the Webinterface as well as the underlying Linux system/user
  • Setup a firewall e.g. using ufw, allowing only https and if you want ssh
  • Update the underlying Raspberry Pi OS frequently to benefit from security fixes
  • If you are in a home setting, you will need to enable a port forwarding in your router (to the BattyBirdNET-Pi)
  • Update your router firmware frequently (automatically is best) and setup your router firewall

Debugging

Some useful commands to check if services are up and their status

journalctl -eu birdnet_analysis -u birdnet_server -u batnet_server | sudo tee -a /var/log/syslog
cat /var/log/syslog  | grep error
ss -nltp
/usr/local/bin/print_diagnostic_info.sh

Audio

cat /proc/asound/cards

Check if settings are correct in /etc/asound.conf with above info and change defaults.pcm.card defaults.ctl.card to the correct values if necessary:

sudo nano /etc/asound.conf



Acknowledgements

  • This project would not have been possible without the developers of BirdNET and BirdNET-Pi.
  • Thanks to the Animal Sound Archive Berlin, ChiroVox, NABAT and XenoXanto databases and individual data donors: Kelvin R. (UK), Guillaume M. (FR), Svardsten L. (SE), Zinck R. (GER).
  • Thank you for your great work at testing Kelvin!
  • Thank you @spambake and Bill from Pixcams Inc for your support in getting the US version up to shape!
  • Thank you community for tips and testing! Your help is much appreciated!

References

Papers

FROMMOLT, KARL-HEINZ. "The archive of animal sounds at the Humboldt-University of Berlin." Bioacoustics 6.4 (1996): 293-296.

Görföl, Tamás, et al. "ChiroVox: a public library of bat calls." PeerJ 10 (2022): e12445.

Gotthold, B., Khalighifar, A., Straw, B.R., and Reichert, B.E., 2022, Training dataset for NABat Machine Learning V1.0: U.S. Geological Survey data release, https://doi.org/10.5066/P969TX8F.

Kahl, Stefan, et al. "BirdNET: A deep learning solution for avian diversity monitoring." Ecological Informatics 61 (2021): 101236.

Links

https://www.museumfuernaturkunde.berlin/en/science/animal-sound-archive

https://www.chirovox.org/

https://www.sciencebase.gov/catalog/item/627ed4b2d34e3bef0c9a2f30

https://github.com/kahst/BirdNET-Analyzer

https://github.com/mcguirepr89/BirdNET-Pi

Other projects you might be interested in

https://github.com/cloudedbats/cloudedbats_wurb_2024

https://github.com/Taslim-M/Bat2Web

http://www.bat-pi.eu/

https://www.bto.org/our-science/products-and-technologies/bto-acoustic-pipeline

battybirdnet-pi's People

Contributors

mcguirepr89 avatar ehpersonal38 avatar rdz-oss avatar jaredb7 avatar jmherbst avatar croisez avatar lloydbayley avatar joeweiss avatar caiusx avatar nachtzuster avatar pete-the-geek avatar srd424 avatar kahst avatar dd4wh avatar pencotts avatar phillprice avatar timsterc avatar lpmi-13 avatar lamkin avatar drbazuk avatar statik avatar saintaardvark avatar joberreiter avatar jurriaan avatar knmurphy avatar mburrough avatar normanras avatar patrikbwi avatar phaeton avatar thibautrey avatar

Stargazers

 avatar Gustaf Bodén avatar Jonas Höchst avatar Ben Evans avatar  avatar Hampus Carlsson avatar Paul Martin avatar Werner Macho avatar Karl von Muller avatar  avatar Sean Flaherty avatar  avatar Katharina Hoff avatar  avatar æ avatar Evaldo Cesari de Oliveira Jr avatar  avatar  avatar Nick Richards avatar  avatar  avatar Madeline Davis avatar Diego J. Lizcano avatar Nick wesley avatar  avatar Robin Sandfort avatar Guillaume Marchais avatar  avatar  avatar

Watchers

 avatar Tomi P. Hakala avatar  avatar Evaldo Cesari de Oliveira Jr avatar  avatar æ avatar  avatar

battybirdnet-pi's Issues

Dusk and Dawn times based on location

As an enhancement, is it possible to have dynamic Dusk and Dawn times based on the entered location data (using ephem or similar)? These times would then be updated on a daily basis throughout the year.

Translations don't work

First of all: great work!

But: after a first run
Nathusius or Kuhls pipistrelle - Kuhls or Nathusius pipistrelle
are shown with english common name.

I tried to change the raspberry system language in raspi-config,
in Settings -> Localization -> Database Language -> German
I noticed the files in BattyBirdNET-Analyzer/labels/bats/ readable for all, but it still shows english common names.

Any hints?

Reduce noise classification

There are noise sources in the ultrasonic in every environment.
Sometimes this noise triggers a classification.
Reduce this

Stopped analyzing after last update

PLEASE READ THE DOCUMENTATION BEFORE SUBMITTING AN ISSUE

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem or your installation here.

Your build
The hardware on which BirdNET-Pi is running goes here.

Code or log snippets

Paste your 
log output 
or 
code here

Can‘t play recordings on iPad

PLEASE READ THE DOCUMENTATION BEFORE SUBMITTING AN ISSUE

First of all, thank you for your work!

I can’t listen to the recorded files on my iPad/iPhone. I‘ve tried different browsers (Safari, Chrome and Firefox) and I,ve tried different audio output formats (wav, mp3, flac and raw).

There are no problems when using Windows or android.

To Reproduce
Steps to reproduce the behavior:

  1. Use an IOS-device.
    Go to ‚Recordings/by Date/…,
  2. Click on '.Play '
  3. No sound

Expected behavior
Recording are being played when clicking the play-Icon.

Screenshots
If applicable, add screenshots to help explain your problem.
IMG_0448

The hardware on which BirdNET-Pi is running goes here.
Raspberry Pi 4 B (PCB 1.2 Sony UK)
Audiomoth

Long analysis time causes backlog

PLEASE READ THE DOCUMENTATION BEFORE SUBMITTING AN ISSUE

Describe the bug
Yesterday night I discovered that the analysis was almost two hours behind. When the system now started again at dusk the analysis continued with sound files from early morning today. I guess the cause is that every sound file takes too long to analyze as the result in the log contains a lot of rows with species.

To Reproduce
Steps to reproduce the behavior:
View my log.

Expected behavior
No delay.

Screenshots

21:29:35---RECORDING_LENGTH set to 14
21:29:35---BirdNET-Pi/birdnet/bin/python3 BirdNET-Pi/scripts/analyze.py --i BirdSongs/May-2024/14-Tuesday/2024-05-14-birdnet-04:32:58.wav --o BirdSongs/May-2024/14-Tuesday/2024-05-14-birdnet-04:32:58.wav.csv --lat 59.XX --lon 18.XX --week 18 --overlap 0.0 --sensitivity 1 --min_conf 0.8
21:29:49---0-0.5625-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.00011579241']
21:29:49---0.5625-1.125-['Rhinolophus ferrumequinum_Större hästskonäsa*', '1.5218069e-05']
21:29:49---1.125-1.6875-['Rhinolophus ferrumequinum_Större hästskonäsa*', '4.163229e-06']
21:29:49---1.6875-2.25-['Rhinolophus ferrumequinum_Större hästskonäsa*', '6.292182e-06']
21:29:49---2.25-2.8125-['Rhinolophus ferrumequinum_Större hästskonäsa*', '5.0984777e-06']
21:29:49---2.8125-3.375-['Rhinolophus ferrumequinum_Större hästskonäsa*', '8.852448e-06']
21:29:49---3.375-3.9375-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.0010379208']
21:29:49---3.9375-4.5-['Rhinolophus ferrumequinum_Större hästskonäsa*', '7.936699e-06']
21:29:49---4.5-5.0625-['Rhinolophus ferrumequinum_Större hästskonäsa*', '6.773778e-06']
21:29:49---5.0625-5.625-['Rhinolophus ferrumequinum_Större hästskonäsa*', '1.3418941e-06']
21:29:49---5.625-6.1875-['Rhinolophus ferrumequinum_Större hästskonäsa*', '9.730413e-07']
21:29:49---6.1875-6.75-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.0015345966']
21:29:49---6.75-7.3125-['Rhinolophus ferrumequinum_Större hästskonäsa*', '8.5191365e-05']
21:29:49---7.3125-7.875-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.00072586816']
21:29:49---7.875-8.4375-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.00023215167']
21:29:49---8.4375-9.0-['Myotis mystacinus_Mustaschfladdermus', '4.6195223e-07']
21:29:49---9.0-9.5625-['Rhinolophus ferrumequinum_Större hästskonäsa*', '4.3591888e-07']
21:29:49---9.5625-10.125-['Barbastella barbastellus_Barbastell', '3.0590223e-07']
21:29:49---10.125-10.6875-['Rhinolophus ferrumequinum_Större hästskonäsa*', '1.8736716e-06']
21:29:49---10.6875-11.25-['Nyctalus noctula_Större brunfladdermus', '0.00038001005']
21:29:49---11.25-11.8125-['Pipistrellus pygmaeus_Dvärgpipistrell', '0.00026342136']
21:29:49---11.8125-12.375-['Rhinolophus ferrumequinum_Större hästskonäsa*', '1.3236993e-06']
21:29:49---12.375-12.9375-['Rhinolophus ferrumequinum_Större hästskonäsa*', '9.848504e-06']
21:29:49---12.9375-13.5-['Rhinolophus ferrumequinum_Större hästskonäsa*', '1.1204743e-06']
21:29:49---13.5-14.0625-['Rhinolophus ferrumequinum_Större hästskonäsa*', '0.0001925276']
21:29:49---RECORDING_LENGTH set to 14

Additional context

Your build
RPi 4B 8GB, Audiomoth USB microphone with noice profile set, sampling frequency 384000, Bavaria, latest update installed.

Code or log snippets

Paste your 
log output 
or 
code here

Switch to Bird analysis during the day

The system could stop new data intake during day hours or even (too much work for now) switch to bird monitoring. In principle, a BatNET can be stopped and a separate BirdNET started. For example, the dockerized version of BirdNET should not conflict with the loacal BatNET install

No content in File Manager

Describe the bug
When starting File Manager in Tools menu only user root is shown, nothing in underlying tree.

To Reproduce
Steps to reproduce the behavior:
Tools - File Manager

Expected behavior
I would like to see all folders and files in my installation.

Screenshots

Additional context

Your build
Raspberry Pi 4B 8GB with Bookworm Lite 64 bit

Code or log snippets

Failed install

Hi

I get the following error forcing unsuccessful install

Downloading https://www.piwheels.org/simple/plotly/plotly-5.17.0-py2.py3-none-any.whl (15.6 MB)
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
plotly from https://www.piwheels.org/simple/plotly/plotly-5.17.0-py2.py3-none-any.whl#sha256=846c4acd717b52ce2f7d168030b7aa201c223dbb36c9a5bbf843995090daedd3 (from -r /home/xxx/BirdNET-Pi/requirements.txt (line 12)):
Expected sha256 846c4acd717b52ce2f7d168030b7aa201c223dbb36c9a5bbf843995090daedd3
Got c53965099e91efe9de15f70a34fa30cbbf93098698e7072c10c241c1a14fb510

Connection to Socket lost after some time

After running for several minutes there is an issue

---requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

0:01:25---RECORDING_LENGTH set to 3
20:01:26---BirdNET-Pi/birdnet/bin/python3 BirdNET-Pi/scripts/analyze.py --i BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:06.wav --o BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:06.wav.csv --lat 48.XX --lon 12.XX --week 37 --overlap 0.0 --sensitivity 1.25 --min_conf 0.9
20:01:28---0-0.5625-['Plecotus spec._Long eared bat', '0.25531268']
20:01:28---0.5625-1.125-['Miniopterus schreibersii_Common bent-wing bat', '0.0034608997']
20:01:28---1.125-1.6875-['Myotis emarginatus_Geoffroys bat', '0.06734039']
20:01:28---1.6875-2.25-['Myotis emarginatus_Geoffroys bat', '0.682101']
20:01:28---2.25-2.8125-['Plecotus spec._Long eared bat', '0.00037909986']
20:01:28---2.8125-3.375-['Myotis mystacinus_Whiskered bat', '0.19295919']
20:01:28---RECORDING_LENGTH set to 3
20:01:28---BirdNET-Pi/birdnet/bin/python3 BirdNET-Pi/scripts/analyze.py --i BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:09.wav --o BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:09.wav.csv --lat 48.XX --lon 12.XX --week 37 --overlap 0.0 --sensitivity 1.25 --min_conf 0.9
20:01:30---0-0.5625-['Myotis emarginatus_Geoffroys bat', '0.0011080576']
20:01:30---0.5625-1.125-['Pipistrellus nathusii_Nathusius pipistrelle', '0.01219179']
20:01:30---1.125-1.6875-['Myotis dasycneme_Pond bat', '0.044365805']
20:01:30---1.6875-2.25-['Myotis dasycneme_Pond bat', '0.02698942']
20:01:30---2.25-2.8125-['Plecotus spec._Long eared bat', '5.6126564e-06']
20:01:30---2.8125-3.375-['Hypsugo savii_Savis pipistrelle', '0.0002911207']
20:01:34---Files loaded
20:01:37---Files loaded
20:01:38---RECORDING_LENGTH set to 3
20:01:41---WRITING RESULTS TO BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:56:09.wav.csvException in thread Thread-261:
20:01:41---Traceback (most recent call last):
20:01:41--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connectionpool.py", line 790, in urlopen
20:01:41--- response = self._make_request(
20:01:41--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connectionpool.py", line 536, in _make_request
20:01:41--- response = conn.getresponse()
20:01:41--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connection.py", line 461, in getresponse
20:01:41---BirdNET-Pi/birdnet/bin/python3 BirdNET-Pi/scripts/analyze.py --i BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:13.wav --o BirdSongs/October-2023/03-Tuesday/2023-10-03-birdnet-19:57:13.wav.csv --lat 48.XX --lon 12.XX --week 37 --overlap 0.0 --sensitivity 1.25 --min_conf 0.9
20:01:42--- httplib_response = super().getresponse()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
20:01:42--- response.begin()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 307, in begin
20:01:42--- version, status, reason = self._read_status()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 276, in _read_status
20:01:42--- raise RemoteDisconnected("Remote end closed connection without"
20:01:42---http.client.RemoteDisconnected: Remote end closed connection without response
20:01:42---During handling of the above exception, another exception occurred:
20:01:42---Traceback (most recent call last):
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/adapters.py", line 486, in send
20:01:42--- resp = conn.urlopen(
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connectionpool.py", line 844, in urlopen
20:01:42--- retries = retries.increment(
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/util/retry.py", line 470, in increment
20:01:42--- raise reraise(type(error), error, _stacktrace)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/util/util.py", line 38, in reraise
20:01:42--- raise value.with_traceback(tb)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connectionpool.py", line 790, in urlopen
20:01:42--- response = self._make_request(
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connectionpool.py", line 536, in _make_request
20:01:42--- response = conn.getresponse()
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/urllib3/connection.py", line 461, in getresponse
20:01:42--- httplib_response = super().getresponse()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
20:01:42--- response.begin()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 307, in begin
20:01:42--- version, status, reason = self._read_status()
20:01:42--- File "/usr/lib/python3.9/http/client.py", line 276, in _read_status
20:01:42--- raise RemoteDisconnected("Remote end closed connection without"
20:01:42---urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
20:01:42---During handling of the above exception, another exception occurred:
20:01:42---Traceback (most recent call last):
20:01:42--- File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
20:01:42--- self.run()
20:01:42--- File "/usr/lib/python3.9/threading.py", line 892, in run
20:01:42--- self._target(*self._args, **self._kwargs)
20:01:42--- File "/usr/local/bin/server.py", line 233, in handle_client
20:01:42--- detections = sendRequest(ANALYSIS_SERVER, ANALYSIS_PORT, args.i, json.dumps(mdata))
20:01:42--- File "/usr/local/bin/server.py", line 109, in sendRequest
20:01:42--- response = requests.post(url, files=multipart_form_data)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/api.py", line 115, in post
20:01:42--- return request("post", url, data=data, json=json, **kwargs)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/api.py", line 59, in request
20:01:42--- return session.request(method=method, url=url, **kwargs)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/sessions.py", line 589, in request
20:01:42--- resp = self.send(prep, **send_kwargs)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/sessions.py", line 703, in send
20:01:42--- r = adapter.send(request, **kwargs)
20:01:42--- File "BirdNET-Pi/birdnet/lib/python3.9/site-packages/requests/adapters.py", line 501, in send
20:01:42--- raise ConnectionError(err, request=request)
20:01:42---requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.