-
-
Notifications
You must be signed in to change notification settings - Fork 13
BirdNET‐Go Guide
BirdNET-Go is an application inspired by BirdNET-Pi and BirdNET Analyzer. It aims to be a high-performance and easy-to-deploy alternative to both of these.
- Audio analysis based on the BirdNET 2.4 tflite model
- 24/7 real-time analysis of soundcard capture
- Real-time analysis output compatible with OBS chat log input for wildlife streams
- BirdWeather API support for real-time analysis
- File analysis of WAV files
- Analysis output options: Raven table, CSV file, SQLite, or MySQL database
- Localized species labels, thanks to translations by Patrick Levin
- Runs on Windows, Linux (including Raspberry Pi), and macOS
- Minimal runtime dependencies; the BirdNET TensorFlow Lite model and other supporting files are embedded in the executable
BirdNET-Go has been successfully tested on:
- Raspberry Pi 3B+ with 512MB RAM
- Raspberry Pi 4B with 4GB RAM
- Raspberry Pi 5 with 4GB RAM
- Intel NUC running Windows 10
- Intel desktop PC running Windows 11
- Intel MacBook Pro
For 24/7 real-time detection, the Raspberry Pi 3B+ is more than sufficient. It can process 3-second segments in approximately 500ms.
Note: TPU accelerators such as Coral.AI are not supported due to incompatibility with the BirdNET tflite model.
Pre-compiled BirdNET-Go executables are available at https://github.com/tphakala/birdnet-go/releases/, unzip birdnet-go in any directory you wish to run it in, on Windows for example c:\users\username\birdnet-go.
In addition to BirdNET-Go executable you also need TensorFlow Lite C library which is available for download at https://github.com/tphakala/tflite_c/releases. Download library for your target platform and install it in proper library path for your system
- On Linux copy libtensorflowlite_c.so to /usr/local/lib and run "sudo ldconfig"
- On macOS libtensorflowlite_c.dylib to /usr/local/lib
- On Windows copy libtensorflowlite_c.so to BirdNET-Go executable directory or any other directory in system PATH
BirdNET-Go accepts several settings from command line but main configuration method is through configuration file which is created when birdnet-go is first run
Configuration file location is operating system depended and there is alternative locations for user preference.
On Linux and macOS default and primary location for configuration file is $HOME/.config/birdnet-go/config.yaml for user specific deployment, alternative location is /etc/birdnet-go/config.yaml for system wide deployment.
On Windows default and primary configuration file location is config.yaml in birdnet-go.exe installation directory, secondary location is C:\User\username\AppData\Local\birdnet-go\config.yaml
The configuration file uses the YAML format, which does not recognize tabs as indentation.
# BirdNET-Go configuration
# Paths support environment variables such as $HOME and %appdata%
debug: false # print debug messages, can help with problem solving
# Node specific settings
node:
name: BirdNET-Go # name of node, can be used to identify source of notes
locale: en # language to use for labels
timeas24h: true # true for 24-hour time format, false for 12-hour time format
threads: 0 # 0 to use all available CPU threads
# BirdNET model specific settings
birdnet:
sensitivity: 1.0 # sigmoid sensitivity, 0.1 to 1.5
threshold: 0.8 # threshold for prediction confidence to report, 0.0 to 1.0
overlap: 0.0 # overlap between chunks, 0.0 to 2.9
latitude: 00.000 # latitude of recording location for prediction filtering
longitude: 00.000 # longitude of recording location for prediction filtering
# Realtime processing settings
realtime:
interval: 15 # minimum interval between repeating detections
processingtime: false # true to report processing time for each prediction
audioexport:
enabled: false # true to export audio clips containing indentified bird calls
path: clips/ # path to audio clip export directory
type: wav # audio file type, wav, mp3 or flac
log:
enabled: false # true to enable OBS chat log
path: birdnet.txt # path to OBS chat log
birdweather:
enabled: false # true to enable birdweather uploads
debug: false # true to enable birdweather api debug mode
id: 00000 # birdweather ID
threshold: 0.9 # threshold of prediction confidence for uploads, 0.0 to 1.0
# Ouput settings
output:
file:
enabled: true # true to enable file output for file and directory analysis
path: output/ # path to output directory
type: table # ouput format, Raven table or csv
# Only one database is supported at a time
# if both are enabled, SQLite will be used.
sqlite:
enabled: false # true to enable sqlite output
path: birdnet.db # path to sqlite database
mysql:
enabled: false # true to enable mysql output
username: birdnet # mysql database username
password: secret # mysql database user password
database: birdnet # mysql database name
host: localhost # mysql database host
port: 3306 # mysql database port
af: Afrikaans
ca: Catalan
cs: Czech
zh: Chinese
hr: Croatian
da: Danish
nl: Dutch
en: English
et: Estonian
fi: Finnish
fr: French
de: German
hu: Hungarian
is: Icelandic
id: Indonesia
it: Italian
ja: Japanese
lv: Latvian
lt: Lithuania
no: Norwegian
pl: Polish
pt: Portugues
ru: Russian
sk: Slovak
sl: Slovenian
es: Spanish
sv: Swedish
th: Thai
uk: Ukrainian