I can't hear

  • my doorbell when I'm in my shop
  • the dryer's mechanical chime when I'm upstairs
  • the oven's little buzzer when I'm out of the kitchen
  • which smoke alarm is going off (hearing aids don't have much sense of direction.)

How can an RPi Zero listen for a certain sound or frequency, and then trigger some remote notification? By WiFi? SMS? Other RPis with flashing lights and text displays?

I want to put one near every audio alarm in the house, to act as a relay.

  • 2
    It might be easier to tie into the existing doorbell switch as a microphone would need to differntate between sounds in a potentially noisey environment. Likewise you could use a motion sensor to detect the dryer cycle ending. – Steve Robillard Dec 19 '16 at 13:00
  • Thanks for the tips. It's not a wired doorbell, and I couldn't find one that offered multiple ringers for one switch. Plus, range is a problem, and they're all coded so we don't ring each other's doorbells. It seemed to me that a general solution might be in order -- all those different alarms and most of them are pretty useless when earshot is only about 10 yards! – Ron Phillips Dec 19 '16 at 13:04
  • 1
    You could use the door bell or chime itself to signal the Pi. – Steve Robillard Dec 19 '16 at 13:07
  • If you can wire directly to the appliances you might check the ESP8266 instead of the PiZero, it's even cheaper (and sells in quantities larger than one). If OTOH you need to discriminate specific sound I guess the ESP is not the first choice. – Ghanima Dec 19 '16 at 14:07
  • I have one of those cheap wireless door bells. Presuming you don't know much about electronics or programming, I think it would still be easier (and more foolproof) to open the receiver/chime up and wire it to something (including a pi) directly rather than trying to detect the sound. This actually has some advantages over a hardwired bell: 1) No chance of dangerous voltages involved, 2) Cheap and easy to replace if you screw it up. I.e., it is as close to a "risk free" experiment/pet project as you are likely to find. – goldilocks Dec 19 '16 at 14:26

You could probably use noise/sound sensors like this one from sparkfun: SparkFun Sound Detector (just an example)

They provide analog and/or digital outputs to trigger some kind of visual notification with the pi zeros.

I don't know if they are suitable for all your applications, but things like the door bell should work provided you set the correct threshold.

  • Thank you -- that is certainly an option in low-noise situations! – Ron Phillips Jan 17 '17 at 15:02

If you really want to make the computers listen for specific sounds, pick them out from ambient noise, and recognize them, you are probably in for quite a task.

I would recommend to start looking at audacity and nyquist and go from there.

Once you have done that, you could just add light beacons to the Pis and have them flash in unison on detection. The easiest way to do that would probably be to have one of them acting like a server, and the other ones as slaves. You could hook this up via a web server.

  • I'm curious: how would starting looking at Audacity and Nyquist help OP to process real-time audio on Raspberry Pi? – techraf Dec 19 '16 at 14:30
  • I knew the RPi could do voice recognition, and I just assumed frequency recognition would be easier. Not so, huh? – Ron Phillips Dec 19 '16 at 14:46
  • I like the idea of having the Pis flash in unison! – Ron Phillips Dec 19 '16 at 15:00
  • 1
    Those got me started. Now I'm looking at RPi guitar tuners or frequency detectors. I looked at Audio Fingerprinting, but maybe that is overkill. – Ron Phillips Dec 20 '16 at 13:02

You should learn Python , especially NumPy. Look at this example project utilizing those techniques :


  • Working on it! It's been about 8 years, but it is coming back. Thank you. – Ron Phillips Jan 17 '17 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.