sleePy Links
Inspiration
Do you have sleeping problems? Do you like listening to music? This mobile app uses the latter to solve the former. All you have to do is connect your smart watch, connect your music library, specify your bedtime, and sleePy will do the rest.
What it Does?
The sleePy app allows you to connect your smartwatch and music service. The app predicts your heart rate based on your patterns, then gives music suggestions to help lower your heart rate, aiding you in falling asleep. With its simple, no-brainer interface, sleePy is designed to be user-friendly, even for the drowsy user.
Previous AI developed around heart rate prediction is notorious for having issues with causing a user's heart rate to fall - any sudden movement can cause heart rate to spike leading to inaccurate predictions. By tailoring the model and training to the instance where a person is resting in bed both major issues are resolved. This AI also took resting heart rate as an additional input - improving accuracy as current heart rate trends towards resting heart rate.
How We Built It
- Front-end: Next.js
- Backend: Flask
- Data Processing: Python with pytorch, librosa, pygame, tkinter etc.
- The AI uses 4 fully connected layers in pytorch with ReLu and dropout applied to improve accuracy, this results in a minimal amount of loss for even a small training set.
- The development team was given heart rate monitoring devices and was forced to listen to sleep-inducing music and recording their change in heart rates. This helped train the model at the cost of all team members being incredibly tired at critical development moments. In hindsight we should have seen this coming.
- Deployment: Vercela
Challenges We Ran Into
- Working with React Native was difficult
- Getting the project to work on mobile
- Previously was using ANT+, a wireless protocol similar to Bluetooth, but it did not work so had to resort to Bluetooth from the Fitbit. This was disappointing as we had hoped for better fidelity of data from Garmin devices compared to Fitbit (Garmin devices have less delay, higher accuracy).
Accomplishments That We're Proud Of
- Firstly, we are most proud of conceptualizing an innovative useful application and being able to bring it to life.
- Learning how to use new software or use a software in a way we did not before.
- Proud that we were able to connect the Fitbit to the software designed (it is not reliable).
- Putting ourselves to sleep multiple times while training the AI.
What We Learned?
- Building an application that puts you to sleep really hampers productivity.
- Some of our teammates learned how to use GitHub for the first time despite being seniors.
- Hardware that works well with other's machine is not guaranteed to work with your machine (looking at you Garmin ANT+ wireless communication protocol).
- Not to underestimate React Native
- Learned to how to build a tool to accelerate AI training using Python
What's Next?
- Having an api to automatically collect the heart rate data from the smart watch without time delay.
- Feeding a time series of heart rates into the AI instead of just resting Heart Rate and current Heart Rate.
- Having the volume of the music decreasing as the user's heart rate drops
- Creating and using Adobe Express Add-on to be able to modify the colours and movement of elements in images based on variable input such as heart rate data. This visual addition of this app will help with stress management and mindfulness, allowing the user to relax better.
DevPost Links of Team Members