ChickenNet Research 0.2.0 β Perch 2
A provenance-locked binary chicken_vocalization_present specialist head over frozen 1,536-dimensional Google Perch 2 embeddings.
This repository contains only the ChickenNet model family. It shares the frozen Perch 2 feature contract with other field heads and does not use BirdNET logits.
Status: public noncommercial research artifact; these exact checked JSON/NPZ bytes are privately deployed as a review-only field head. A threshold crossing selects audio for human review. It is not a calibrated probability or a confirmed biological observation.
This repository publishes the exact safe runtime bundle currently used by the chickennet-dev2-field-probe field head, plus sanitized aggregate provenance and challenge summaries. It contains no source audio, exact training manifest, coordinates, private observation locations, uploader identities, credentials, private paths, or arbitrary Python serialization.
Release identity
Public release: chickennet-research-0.2.0-perch2
Runtime slug: chickennet-dev2-field-probe
Bundle ID: d81cd5aee82176065f79abe4ae19db69f5c52c0ca4818d43fd981bf7781dcc41
Source artifact SHA-256: d1595cc65a484ea963172dcc3c8d4b20e0fb6fbc0771883b40105b77668d6686
Logical dataset hash: eae3953337fa2014596d5e95f0c63387421366196fed38888a5723da01f33935
Manifest JSONL SHA-256: afe315fcb4f6f8a096ea45a0cc20c6b86256b868b7f5e5589257aec8a228d1d5
The source joblib and exact row-level manifest remain in private scientific custody. The public JSON/NPZ bundle contains only the broad deployed head. release/training-summary.json publishes aggregate row, group, rights, split, and label-authority counts plus the exact private-manifest hash.
Inference contract
| Field | Value |
|---|---|
| Input audio to Perch | 5 seconds, 32 kHz, mono |
| Input to ChickenNet | one 1,536-dimensional Perch 2 embedding |
| Output | uncalibrated ranking score for chicken_vocalization_present |
| Research evaluation threshold | 0.47 |
| Deployed review-routing threshold | 0.9999 |
| Serialization | checked JSON metadata plus NPZ numeric arrays |
| Perch model-tree SHA-256 | 3fb2d54b3e34534f1130052b25737e54bbb5ebfd340ec040d4510772b64c81ff |
The Perch weights are not included. This specialist head cannot score raw waveforms by itself.
Training sources
| Source lane | Rows | Positive | Declared negative | Unknown | Recordings | Groups | Rights lane |
|---|---|---|---|---|---|---|---|
| esc50 | 2,000 | 80 | 1,920 | 0 | 2,000 | 1,524 | research_noncommercial: 2000 |
| laying-hen-control-first | 96 | 96 | 0 | 0 | 32 | 4 | core_releasable: 96 |
| poultry-health-first | 79 | 54 | 0 | 25 | 30 | 30 | core_releasable: 79 |
| ross308 | 317 | 258 | 59 | 0 | 26 | 14 | core_releasable: 317 |
| smartears-full | 3,000 | 2,000 | 1,000 | 0 | 3,000 | 65 | core_releasable: 3000 |
All source groups and parent recordings remain within one train/validation/test partition. The exact retained training-window audit found no missing or mismatched source windows. Weak and context-derived labels retain their recorded authority; they are not promoted to ecological truth.
Research-threshold evidence
| Lane | Result |
|---|---|
| Locked iNaturalist weak-positive challenge | 31 / 42 broad-head activations at research threshold 0.47 |
| Locked dog negative challenge | 9 / 26 activations at research threshold 0.47 |
| Generic private frog-domain diagnostic | 23 / 1,308 activations at research threshold 0.47; this lane is not a reviewed chicken-absence set |
These results were produced by the multi-head source artifact at its research threshold. They do not describe the much stricter deployed event policy.
Deployed-threshold replay
The retained challenge embeddings were replayed through the exact deployed broad-head bundle at 0.9999:
| Lane | Activations |
|---|---|
| iNaturalist weak-positive challenge | 9 / 42 |
| Dog negative challenge | 1 / 26 |
| Generic private frog-domain diagnostic | 1 / 1308 |
This replay is descriptive. The operational threshold was selected after these challenge sets had already been examined, so this is not an untouched threshold-selection experiment or a field accuracy estimate.
Operational relationship
The private field listener computes one Perch embedding per five-second window and scores InsectNet, ChickenNet, and FrogNet independently. BirdNET remains a separate evidence lane. Model assertions, exact spans, thresholds, and later human decisions are preserved separately.
The raw field archive, review ledger, sensor configuration, and operational repository are intentionally not published.
Verify the package
sha256sum --check SHA256SUMS
cd bundle && sha256sum --check SHA256SUMS
Load bundle/weights.npz only with allow_pickle=False. The package does not require joblib or pickle.
Included files
bundle/model.jsonβ exact deployed model metadata and inference contractbundle/weights.npzβ exact deployed numeric arraysbundle/SHA256SUMSβ deployed bundle-member checksumsrelease/release-manifest.jsonβ identity, rights, and custody boundaryrelease/training-summary.jsonβ sanitized aggregate training membership and split auditrelease/challenge-summary.jsonβ frozen research-threshold challenge summariesrelease/deployed-threshold-replay.jsonβ clearly labeled post-selection operational replaySHA256SUMSβ complete public payload inventory
Known limits
- The broad head does not identify individual birds, call meaning, behavior, welfare, health, sex, or age.
- The iNaturalist challenge is taxon-associated weak-positive evidence, not exact-span ground truth for every window.
- The strict field threshold intentionally sacrifices recall to bound review burden.
- No formal prevalence-adjusted field precision or recall estimate exists.
- The trainer run recorded a dirty Git worktree. Exact model bytes, data membership, manifests, embeddings, and retained windows survive, but the named clean commit alone does not reconstruct the historical trainer source state.
- Some source families encode DOI/license/member identity at row level rather than through one standardized source sidecar.
- The field bundle's historical key
training_manifest_hashcontains the canonical logical dataset hash. The separate JSONL byte hash is published in the release manifest and training summary.
Rights and provenance
The training matrix includes public permissive and noncommercial research lanes. Because ESC-50-derived material contributed to fitting, this artifact is distributed under CC BY-NC-SA 4.0 for noncommercial research and field evaluation, subject to all upstream terms. No upstream audio is redistributed and this release grants no rights to source recordings or Perch weights.
Source
- Source registry and tests: https://github.com/vortexpjeff/chickennet
- Tagged release tree: chickennet-research-0.2.0-perch2
- Older public research ancestor: TheVortexProject/chickennet-research-0.1.0-perch2
Load the checked deployed bundle
from pathlib import Path
from chickennet.bundle import load_bundle, score_embedding
bundle = load_bundle(Path('bundle'))
raw_score, review_score = score_embedding(bundle, perch2_embedding)
The input is one finite 1,536-dimensional Perch 2 embedding. Do not feed BirdNET logits or waveforms directly into this head.