Personal noise-evidence logger for quarry rock-breaker noise: A-weighted
levels, YAMNet sound classification, rhythm-based breaker detection, event
clips, and NSW-NPfI-aligned reporting. See docs/PLAN.md for the design,
docs/tuning-notes.md for detector-tuning state, and docs/epa-reference.md
for the verified EPA methodology.
uv sync --extra ml
uv run python scripts/fetch_model.py # YAMNet model + class map (~4 MB)
uv run quarryd # capture daemon (Ctrl-C to stop)
uv run quarry-web # dashboard at http://localhost:8321
uv run quarry-report --date YYYY-MM-DD # daily PNG/CSV report
uv run pytest # full test suiteCopy config.example.yaml to config.yaml and pass --config config.yaml
to override defaults (mic device, calibration, thresholds).
The git repo alone is NOT the whole project state. Also copy:
data/— the SQLite DB (all noise history and the human labels) and the event audio clips. The labeled-clip regression suite (tests/test_labeled_samples.py) reads these; without them it skips and all accumulated ground truth is lost.samples/— any reference recordings (if present).models/— optional;scripts/fetch_model.pyre-downloads it.config.yaml— if one was created locally.
Then on the new machine: install uv, run uv sync --extra ml, and
uv run pytest — the labeled-samples tests passing confirms the data came
across intact. Set repo-local git identity if needed (this is a personal
project): git config user.email <personal email> and
git config commit.gpgsign false.
Pi 5 deployment: see docs/pi-setup.md and deploy/.