Inspiration
Some of us watched the movie Back to the Future which starred Michael J. Fox. We later saw an interview after he had been diagnosed with Parkinson's disease, and the change in his behavior was dramatic and surprising. After doing some additional research, we realized that current methods of diagnosis are only accurate to a rate of 26%, which is much lower than even a coin flip. Because of this, we were inspired to create a machine learning model which would diagnose Parkinson's at a significantly more accurate rate.
What it does
Our website allows the user to upload a WAV file, which is sent to our PRAAT backend to extract various vocal features such as pitch period entropy, jitter, and shimmer. These vocal features are used in our machine learning model, which uses the Gradient Boost algorithm to classify a patient as having Parkinson's or not with about 92% accuracy. This is a significant improvement over current methods of diagnosis, and would benefit the 10 million people with Parkinson's worldwide as well as future patients to come. The website outputs information regarding the patient's diagnosis as well as the numerical values computed for each of the features used. This is important for doctors in verifying or further investigating the diagnosis of our machine learning model. Additionally, our website offers helpful information for learning more about the disease.
How we built it
The website is built using HTML and CSS. It is hosted locally on a Python Flask server, which allows us to communicate to the PRAAT backend via a custom script. The machine learning portion of the website is also written using Python (Scikit learn library).
Challenges we ran into
One of the major challenges we ran into was getting PRAAT to extract the vocal features automatically. Initially, we tried to write a python script to automate clicking through the PRAAT GUI, which proved to be too difficult. We ended up spending most of the hackathon learning about how to write custom PRAAT scripts, and this made up the bulk of the processing for the project. Another significant challenge was getting the machine learning model's accuracy to be so high (92%), and we went through many iterations of improving the model. A third challenge we ran into was allowing the user to record their voice directly on the website. None of the online packages functioned specifically to our needs, but we eventually found a workaround by allowing the user to upload their own audio file.
Accomplishments that we're proud of
We're most proud of getting the PRAAT script to extract the vocal features, which took the majority of our time during the hackathon. Additionally, we are proud of being able to achieve such a high accuracy, which almost quadruples the current diagnostic accuracy rate. The technology we created is also a low-cost alternative to current methods of diagnosis, which involve specialized doctors performing careful, personal, time intensive analyses of a patient's medical history.
What we learned
We learned a lot from every facet of the project: writing PRAAT scripts, improving machine learning models, and how to build a website (two of our members did not have prior experience, so this hackathon was an amazing learning experience). We also learned that projects like these always have unexpected challenges that cause the time it takes to complete the project in actuality to be significantly more than the estimated time. This meant that we needed to work very efficiently and divide tasks based on each member's individual strengths and interests.
What's next for ParkinsonsDetector
In the future, we hope to incorporate a system to allow the user to record their voice directly on the website. We also hope to further improve our machine learning model's diagnostic accuracy and possibly even bring the product to clinical trials, as we believe there is huge potential in the medical industry for our product.
Log in or sign up for Devpost to join the conversation.