← StayDetector test

Don't take my word for it.

I don't own a dog. So instead of filming one dog once and calling that proof, Stay's detector is run against recorded clips — dogs that should trigger it, and household noise that shouldn't — with the results published.

This runs in your browser, right now. The clips ship with the repository and this page drives the same detector a live session uses. Change the sensitivity and re-run it if you don't believe the defaults.

-37 dB gate · default
What this does and doesn't show

These clips are played straight into the audio graph, so there is no room, no microphone and no distance in the measurement. Real rooms are harder. The sensitivity slider exists because of exactly that.

The set is small and it comes from what is freely licensed and redistributable, which is a narrower pool than what exists. Every clip and its licence is listed in public/test-audio/SOURCES.md.

The threshold was tuned against 12 of these clips, and it scored 5/5 and 0/7 on them. The other 22 arrived afterwards from a different source, and on those it gets 5/9 dogs with 4/13 false alarms. The perfect score was overfitting. The held-out number is the real one.

A television will set it off. One of the false alarms is a recording of people talking — human speech is voiced and sits inside the same 300–2500 Hz band as a bark, so this detector cannot tell a person from a dog. Raising the pitch floor fixes it and costs a whining clip, and whining is the sound this app exists for. So it stays.

That is where signal processing runs out: it can tell you what shape a sound is, never what made it. Past here you need a classifier.