Main Content

Using a Tensorflow Lite Micro model this edge device keeps an ear out and vibrates if you are snoring.

Snoring is estimated to affect 57% of men and 40% of women in the United States. It even occurs in up to 27% of children. These statistics demonstrate snoring is widespread, but its severity and health implications can vary. Snoring can be light, occasional, and unconcerning, or it may be the sign of a serious underlying sleep-related breathing disorder. Snoring is caused by the rattling and vibration of tissues near the airway in the back of the throat. During sleep, the muscles loosen, narrowing the airway, and as we inhale and exhale, the moving air causes the tissue to flutter and make noise. Obstructive sleep apnea is a breathing disorder in which the airway gets blocked or collapsed during sleep, causing repeated lapses in breath. Snoring is one of the most common symptoms of obstructive sleep apnea. Unless someone else tells them, most people who snore are not aware of it, and this is part of why sleep apnea is under-diagnosed. In this project I have built a proof of concept of a non-invasive low-powered edge device which monitors and vibrates if you are snoring.

Development Environment
We are using Edge Impulse Studio for the feature generation and TensorFlow Lite model creation and training. We need to sign up a free account at and create a project to get started. For the local development work MacOS is used.

Data Collection
We have used Audioset, a large-scale dataset of manually annotated audio events, to download Snoring and other nature sounds which may occur during night. AudioSet consists of an expanding ontology of 632 audio event classes and a collection of human-labeled 10-second sound clips drawn from YouTube videos. The audio are extracted from the YouTube videos of the select events and converted into Waveform Audio file format (wav) with 16-bit depth mono channel at 16KHz sample rate. The following categories selected from the Audioset Ontology are downloaded. The first column is the category ID and second column is category label.”

Link to article