Add fart-finder: always-on flatulence detector for the DevKit - #378
rdyplayerB wants to merge 1 commit into
Conversation
Always-on flatulence detector for the OpenHome DevKit. A device-side YAMNet detector with a Ripter magnitude scale logs events; a cloud background daemon polls it and announces each one in an emergency-broadcast voice. Includes a voice skill for status, arm, disarm and sensitivity. Verified end to end against the OpenHome cloud with a Mac standing in for the DevKit. Not yet run on DevKit hardware. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
🔀 Branch Merge CheckPR direction: ✅ Passed — |
✅ Community PR Path Check — PassedAll changed files are inside the |
✅ Ability Validation Passed |
🔍 Lint Results🔧 Formatting fixes availableThis PR is from a fork, so fixes could not be pushed automatically. Download the git apply autofix.patch❌
|
Fart Finder
Seismic-grade flatulence detection for the OpenHome DevKit. It listens to the room on the device microphone, recognises the sound with YAMNet (which has a literal Fart class), grades each event on a logarithmic "Ripter" scale, and warns everyone in range:
Audio never leaves the device; only event metadata reaches the cloud.
Trigger words:
fart finder,fart detector,flatulenceLayout
main.py— voice skill: status, arm, disarm, sensitivitybackground.py— cloud daemon: polls the device, interrupts, announces, runs hooksdevkit_functions.py— device side: listener daemon (mic thread, Unix socket) and the RPC functionslistener/— pure signal processing plus the vendored YAMNet TFLite model (16 MB, Apache 2.0) and class mappi/— install script, systemd unit, ALSA shared-capture configTesting
validate_ability.pyand the server-side upload scan.devkit_functions.py selftestreports mic, model and timing for anyone who has one.Notes for review
devkit_functions.py; the other modules are pure, which is what the upload scan requires.🤖 Generated with Claude Code