Skip to content
Tomi P. Hakala edited this page Dec 17, 2023 · 21 revisions

BirdNET-Go Guide

BirdNET-Go is a application inspired by BirdNET-Pi and BirdNET Analyzer, it aims to be high performance and simple to deploy alternative for both of these.

BirdNET-Go features

  • Audio analysis based on BirdNET 2.4 tflite model
  • Runs on Windows, Linux (inc. Raspberry Pi) and macOS
  • File analysis support for WAV files
  • 24/7 realtime analysis of soundcard capture
  • Analysis output to Raven table, csv file, SQLite or MySQL
  • Realtime analysis output compatible with OBS chat log input for wildlife streams
  • Birdweather API support on realtime analysis
  • Localized species labels thanks to translations by @patlevin
  • Minimal runtime dependencies, BirdNET TensorFlow Lite model is embedded in executable

Supported platforms

BirdNET-Go has been tested to work on

  • Raspberry Pi 3B+ with 512MB RAM
  • Raspberry Pi 4B with 4GB RAM
  • Intel NUC running Windows 10
  • Intel desktop PC running Windows 11
  • Intel MacBook Pro

For 24/7 realtime detection Raspberry Pi 3B+ is more than enough, it can process 3 second segments in ~500ms.

TPU accelerators such as Coral.AI are not supported due to incompatibility with BirdNET tflite model.

Installation

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

Configuration

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

Default configuration file

# BirdNET-Go configuration

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:
  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
    interval: 15		# minimum interval between repeating log messages in seconds
  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

Clone this wiki locally