| --- |
| license: cc-by-nc-sa-4.0 |
| pipeline_tag: audio-classification |
| tags: |
| - audio-classification |
| - bioacoustics |
| - perch |
| - chickens |
| - poultry |
| - edge-ai |
| - research |
| - non-commercial |
| --- |
| |
| # 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 |
|
|
| ```text |
| 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 |
|
|
| ```bash |
| 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 contract |
| - `bundle/weights.npz` β exact deployed numeric arrays |
| - `bundle/SHA256SUMS` β deployed bundle-member checksums |
| - `release/release-manifest.json` β identity, rights, and custody boundary |
| - `release/training-summary.json` β sanitized aggregate training membership and split audit |
| - `release/challenge-summary.json` β frozen research-threshold challenge summaries |
| - `release/deployed-threshold-replay.json` β clearly labeled post-selection operational replay |
| - `SHA256SUMS` β 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_hash` contains 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](https://github.com/vortexpjeff/chickennet) |
| - Tagged release tree: [chickennet-research-0.2.0-perch2](https://github.com/vortexpjeff/chickennet/tree/chickennet-research-0.2.0-perch2) |
| - Older public research ancestor: [TheVortexProject/chickennet-research-0.1.0-perch2](https://huggingface.co/TheVortexProject/chickennet-research-0.1.0-perch2) |
| ## Load the checked deployed bundle |
|
|
| ```python |
| 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. |
|
|