Accuracy of Smartphone-Mediated Snore Detection in a Simulated Real-World Setting: Algorithm Development and Validation
Bibliographic record
Abstract
Background: High-quality sleep is essential for both physical and mental well-being. Insufficient or poor-quality sleep is linked to numerous health issues, including cardiometabolic diseases, mental health disorders, and increased mortality. Snoring-a prevalent condition-can disrupt sleep and is associated with disease states, including coronary artery disease and obstructive sleep apnea. Objective: The SleepWatch smartphone app (Bodymatter, Inc) aims to monitor and improve sleep quality and has snore detection capabilities that were built through a machine-learning process trained on over 60,000 acoustic events. This study evaluated the accuracy of the SleepWatch snore detection algorithm in a simulated real-world setting. Methods: The snore detection algorithm was tested by using 36 simulated snoring audio files derived from 18 participants. Each file simulated a snoring index between 30 and 600 snores per hour. Additionally, 9 files with nonsnoring sounds were tested to evaluate the algorithm's capacity to avoid false positives. Sensitivity, specificity, and accuracy were calculated for each test, and results were compared by using Bland-Altman plots and Spearman correlation to assess the statistical association between detected and actual snores. Results: The SleepWatch algorithm showed an average sensitivity of 86.3% (SD 16.6%), an average specificity of 99.5% (SD 10.8%), and an average accuracy of 95.2% (SD 5.6%) across the snoring tests. The positive predictive value and negative predictive value were 98.9% (SD 2.6%) and 93.8% (SD 14.4%) respectively. The algorithm performed exceptionally well in avoiding false positives, with a specificity of 97.1% (SD 3.5%) for nonsnoring files. Inclusive of all snoring and nonsnore tests, the aggregated accuracy for all trials in this bench study was 95.6% (SD 5.3%). The Bland-Altman analysis indicated a mean bias of -29.8 (SD 41.7) snores per hour, and the Spearman correlation analysis revealed a strong positive correlation (rs=0.974; P<.001) between detected and actual snore rates. Conclusions: The SleepWatch snore detection algorithm demonstrates high accuracy and compares favorably with other snore detection apps. Aside from its broader use in sleep monitoring, SleepWatch demonstrates potential as a tool for identifying individuals at risk for sleep-disordered breathing, including obstructive sleep apnea, on the basis of the snoring index.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.008 | 0.033 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.001 | 0.001 |
| Science and technology studies | 0.000 | 0.001 |
| Scholarly communication | 0.001 | 0.001 |
| Open science | 0.001 | 0.001 |
| Research integrity | 0.002 | 0.001 |
| Insufficient payload (model declined to judge) | 0.001 | 0.000 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".