Many people snore and many don't mind or seem to notice the noise. Sadly, another good part of humanity looses sleep as a result of snoring bed partners and/or roommates. This project is for them.
The device presented here produces an agreeable noise for the non-snorer to harken to and hopefully relax with. The device also "listens" for snores. When it detects snoring it increases the volume of the relaxing sound to cover the snoring. After five minutes — supposed to be enough for either the snoring to cease or for the non-snorer to fall asleep — the sound level decreases, completing a cycle, and snore detection starts over.
The Snore Shield continuously tracks the ambient sound level. Under normal sleeping conditions this level should be low. Snoring will increase the average sound level, but so will any other sound sources like moving in bed or passing traffic.
The Snore Shield is Arduino shield-compatible and plugs onto an Arduino, preferably a Uno (to keep it small), but other types should work too.
The device has two operating modes:
In continuous-sound mode the relaxing sound is on continuously. When snoring is detected the sound level is increased during five minutes.
Detecting snoring is a bit more complicated than simply comparing the current sound level to a running average. The Snore Shield requires three snores in a row, where a snore is defined as a short (up to about three seconds) loud sound followed by a period of silence lasting five to ten seconds.
The software needed to get the Snore Shield up and running can be downloaded for free from here.
It is a single-file Arduino sketch and a bunch of libraries, and as such it can be programmed into the board without special tools. All you need is a recent Arduino IDE.