nocturne-fieldrecordist
Combined BirdNET + Nocturne bioacoustic classification for wildlife field-recordist libraries.
- BirdNET ≈ 3,000 bird species (runs locally via
birdnetlib) - Nocturne ≈ 2,182 non-bird species — insects, amphibians, non-bird mammals, reptiles (Stratus Labs hosted API at
nocturne.runstratus.com) - Scan a directory → get a species-tagged SQLite catalog searchable by species, model, confidence
- Ships with a Reaper action that adds species markers to a selected media item
Built by Stratus Labs. Nocturne itself is Apache-2.0; BirdNET is licensed separately (see the BirdNET-Analyzer repo).
Install
pip install nocturne-fieldrecordist
This pulls in nocturne-client, birdnetlib, and tensorflow (BirdNET's runtime). Total install ~2 GB. First run of BirdNET downloads the model (~50 MB, cached).
Scan a library
nocturne-fr scan ~/recordings --db library.sqlite
Recurses into subdirectories; audio extensions: .wav .flac .mp3 .m4a .ogg .aif .aiff. Skips files already in the DB unless you pass --reprocess. Progress prints to stderr; a JSON summary lands on stdout.
Classify a single clip
nocturne-fr classify path/to/clip.wav
Prints a JSON list of detections from both models.
Query the catalog
# All Nocturne detections above 0.3 confidence, limit 50
nocturne-fr query --db library.sqlite --model nocturne --min-conf 0.3 --limit 50
# Everything matching "wren" (either BirdNET or Nocturne, any confidence)
nocturne-fr query --db library.sqlite --species wren
Python API
from nocturne_fieldrecordist import DualClassifier, scan_path
dc = DualClassifier(birdnet_min_conf=0.5, nocturne_min_conf=0.2, nocturne_top_k=5)
for det in dc.classify("recording.wav"):
print(det.source_model, det.species, det.confidence, det.start_time_s)
# Or scan a whole tree:
summary = scan_path("~/recordings", db_path="library.sqlite", dc=dc)
Reaper integration
Install the action from nocturne_fieldrecordist/reaper/nocturne_reaper.py:
- Set Reaper's ReaScript Python interpreter to the same env where you
pip installed this package (Preferences → Plug-ins → ReaScript). - Actions → Load ReaScript → select
nocturne_reaper.py. - Optional: bind a keyboard shortcut.
Select a media item, trigger the action, and get one Reaper marker per detection: [bir] Passer domesticus (0.87) or [noc] Neoconocephalus triops (0.42). BirdNET markers get one color, Nocturne another.
Tunables
--birdnet-min-conf(default 0.5) — BirdNET's author recommends ≥0.5.--nocturne-min-conf(default 0.15) — Nocturne v1's per-class-calibrated thresholds sit around 0.15-0.30 across the vocab.--top-k(default 3) — how many Nocturne predictions to keep per file.
Nocturne API auth
Anonymous is fine (rate-limited to 10 req/min per IP). For batch libraries pass a paid-tier key:
export NOCTURNE_KEY=ck_...
nocturne-fr scan ~/recordings --db library.sqlite --nocturne-key $NOCTURNE_KEY
Sign up at nocturne.runstratus.com/pricing.
SQLite schema
Two tables: recordings (one row per audio file) and detections (one row per model prediction). See schema.sql for indexes + full columns. The catalog file is portable — copy it, ship it to a Flask app, load it in DB Browser, whatever fits your workflow.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nocturne_fieldrecordist-0.1.0.tar.gz.
File metadata
- Download URL: nocturne_fieldrecordist-0.1.0.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f0927e237a76a553faccc01c6397d7a17aac2c28e25badd591afb7633273187
|
|
| MD5 |
5889e8cf3bd83debaf124d2613aa08cb
|
|
| BLAKE2b-256 |
1f4efdda02df09efd448731114de9a0c320182515ad847d3cd3589dc99d6e774
|
File details
Details for the file nocturne_fieldrecordist-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nocturne_fieldrecordist-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17e284c26ae79b86c3b04cfd002c536a36dfa80e4672e4c31bfba1767ee8a11c
|
|
| MD5 |
21c02c7aa19034d7837159b0f37f3e4a
|
|
| BLAKE2b-256 |
4df7946bd13ba7c56d7f3f5c506132b406a6e47987b99721432369751ea3559d
|