Inspiration

As students, we all regularly present our ideas to our peers and professors and participate in events, such as hackathons or job interviews, that require the skills to present our ideas efficiently and comprehensibly. This project serves as an accessible and convenient tool with an intuitive interface that makes it easy to feel prepared for any presentation. We were inspired to build off of and find a solution to a struggle that impacts all of us personally, as well as many others in academia and beyond.

What it does

ReadyPresent simulates a virtual-interview environment, allowing the user to record themselves for review along with automated feedback analysis on performance. While the presentation is active, the program utilizes MediaPipe to detect the user's face with their webcam and Web Speech API to detect their speech patterns. We are actively streaming the data collection while simultaneously calculating values to summarize the data and display it to the user live. At the end, personalized feedback and advice are given to the user based on their performance.

How we built it

We utilized Python, JavaScript, and HTML/CSS to program the project. APIs such as Web Speech API and our pre-trained ML model, MediaPipe, were incorporated for the speech pattern detection. Libraries such as NumPy and OpenCV were also implemented to complete calculations and design the interface. Vercel is used to host the front-end of the application while Render hosts the backend.

Challenges we ran into

We originally structured the foundation of the program with AssemblyAI to collect data on the speech patterns. However, when we attempted to deploy the web application, we received an error that the model we were using for AssemblyAI was outdated. Regardless of how much we updated our API version, we were receiving this error message. We were forced to redesign our backend structure with a different API for speech detection, leading us to use Web Speech API. Although it is more reliable, one drawback is that it doesn't provide as wide a range of features as AssemblyAI.

Accomplishments that we're proud of

The last-minute switch from AssemblyAI to Web Speech API undid several hours of our progress. We did not believe we would finish the project in time for submissions. However, we were still able to modify the previous code to incorporate a completely different API and also format our features in the application in a cohesive manner, so we are proud of how much we've been able to overcome in only a couple of hours.

What we learned

We worked with many APIs and applications that we had never encountered before in order to accomplish this project. For some of us, this project was the first large development project we've ever done, and that alone gave us an unforgettable experience. We also learned the importance of planning and time management, as this was an extremely time-limited project with a lot of different parts. Most of us also haven't collaboratively programmed before, so this project gave us more real-world collaborative experience.

What's next for ReadyPresent

Though ReadyPresent works efficiently, we still have more features we wish to implement to make this an even more effective application. We wish to expand the advice section and make the personalized tips even more detailed by incorporating an AI feature to analyze the speech.

Built With

Share this project:

Updates