Parkinson's Disease is a notoriously difficult disease to diagnose and monitor over time. However, dysphonia is a well known condition used to diagnose Parkinson's and can be diagnosed through the use of audio signatures. We wanted to make its diagnosis accessible, especially in poverty stricken areas in developing countries, where the medical expertise is not as good as developed nations.
What it does
It allows patients suspected to have Parkinson's call a number which then gives them a script to recite. Their audio sample is then retrieved and various features are extracted from it. These features are then fed through a model trained on data of people with Parkinson's reciting similar letters/phrases. The model then outputs a prediction which is sent to the concerned healthcare professional along with other features such as jitter, pitch, shimmer, etc. This data can then be used to longitudinally monitor deterioration of Parkinson's disease.
How we built it
We used Nexmo's API to retrieve a number that our users could call. We utilised their API to record and retrieve the audio recording for our analysis using an academic linguistic tool called PRAAT. We created our machine learning model using Keras and Tensorflow and put everything together using ngrok and Flask.
Challenges we ran into
Another team was doing something really similar.
The Nexmo API stopped working near the end of the hackathon and we still hadn't tested the entire pipeline.
Accomplishments that we're proud of
1) Getting a machine learning model working that performs better than the baseline models. 2) Setting up Flask + ngrok + Nexmo 3) Setting up a pipeline 4) Writing a PRAAT script
What we learned
1) Writing a PRAAT script. 2) Using Flask 3) Setting up Nexmo without adequate documentation
What's next for Mobile Parkinsons Diagnostics
A model trained on more data.