Skip to main content

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:

  1. Set Reaper's ReaScript Python interpreter to the same env where you pip installed this package (Preferences → Plug-ins → ReaScript).
  2. Actions → Load ReaScript → select nocturne_reaper.py.
  3. 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.

Metadata

Release files for nocturne-fieldrecordist 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nocturne-fieldrecordist 0.1.0
File Size Uploaded Provenance Actions
nocturne_fieldrecordist-0.1.0.tar.gz 11.4 kB Without provenance Details for nocturne_fieldrecordist-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nocturne-fieldrecordist 0.1.0
File Interpreter ABI Platform Actions
nocturne_fieldrecordist-0.1.0-py3-none-any.whl Python 3 none any Details for nocturne_fieldrecordist-0.1.0-py3-none-any.whl

Total release size: 23.9 kB

Release files / nocturne_fieldrecordist-0.1.0.tar.gz

Download URL nocturne_fieldrecordist-0.1.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8f0927e237a76a553faccc01c6397d7a17aac2c28e25badd591afb7633273187
BLAKE2b-256 checksum
How to use checksums
1f4efdda02df09efd448731114de9a0c320182515ad847d3cd3589dc99d6e774
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release files / nocturne_fieldrecordist-0.1.0-py3-none-any.whl

Download URL nocturne_fieldrecordist-0.1.0-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17e284c26ae79b86c3b04cfd002c536a36dfa80e4672e4c31bfba1767ee8a11c
BLAKE2b-256 checksum
How to use checksums
4df7946bd13ba7c56d7f3f5c506132b406a6e47987b99721432369751ea3559d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Security for nocturne-fieldrecordist 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page