Local stub inference walkthrough

Run badc infer run --stub-runner against a small manifest to validate scheduler wiring.

Paths + manifest generation

[ ]:
import subprocess
from pathlib import Path

DATASET_ROOT = Path("..") / "data" / "datalad" / "bogus"
AUDIO_FILE = DATASET_ROOT / "audio" / "GNWT-290_20230331_235938.wav"
MANIFEST = DATASET_ROOT / "manifests" / "GNWT-290_stub.csv"
MANIFEST.parent.mkdir(exist_ok=True)
subprocess.run(
    [
        "badc",
        "chunk",
        "manifest",
        str(AUDIO_FILE),
        "--chunk-duration",
        "60",
        "--output",
        str(MANIFEST),
    ],
    check=True,
)
print("Manifest ready:", MANIFEST)

Stub inference

Set USE_HAWKEARS = True once GPUs+HawkEars assets are available.

[ ]:
USE_HAWKEARS = False
cmd = [
    "badc",
    "infer",
    "run",
    str(MANIFEST),
    "--output-dir",
    str(DATASET_ROOT / "artifacts" / "infer"),
]
if USE_HAWKEARS:
    cmd.append("--use-hawkears")
else:
    cmd.append("--stub-runner")
subprocess.run(cmd, check=True)

Aggregate detections

[ ]:
AGG_OUT = DATASET_ROOT / "artifacts" / "aggregate" / "summary.csv"
AGG_OUT.parent.mkdir(parents=True, exist_ok=True)
subprocess.run(
    [
        "badc",
        "infer",
        "aggregate",
        str(DATASET_ROOT / "artifacts" / "infer"),
        "--output",
        str(AGG_OUT),
    ],
    check=True,
)
print("Aggregate CSV:", AGG_OUT)