English is the primary mode of communication today, and while expertise is the cornerstone of every field, one must definitely know how to communicate clearly and effectively. Statistics show that a mere 6% of the world's population are native English speakers. Some of the remaining 94% are fluent, but what about the others? Our web application serves those non-native speakers who are not already fluent in the language.

What it does

This web application is somewhat of an improvisation of a dictionary. Besides seeing the definition of the entered word, the application will give context based examples - not in the form of written sentences, but in the form of spoken sentences extracted from popular informative talks on YouTube. For example, if we entered a word 'Hello', we would get it's definition and play videos from YouTube that uses 'Hello' (in an appropriate context, of course). Another cool feature we have is that you do not need to skim through a 10 minute video just to hear the word 'Hello' - the video automatically plays the portion that has the word in it. Up to five different sentences from five different videos will play consecutively. All of the videos have subtitles, so the users can easily follow what is going on.

How we built it

We used to Python to split a playlist into videos, obtain URLs, and extract the subtitles from the videos. Using words from these subtitles, we created a database of words. Then it is pushed on to a Mongo Database. We also used Spring, a Java framework to build an API that reads from the Mongo Database to deliver data for a front end built in PHP and JavaScript. All of this is put together in a website that was made using HTML and CSS.

Challenges we ran into

Initially, the idea was to use Google's ML API that converts speech to text. We were able to extract an audio file from a YouTube video (as a URL), but could not figure out how to use that as an input for the speech recognition API. Finally, we resort to the method of extracting words from subtitles. We also struggled a little bit to integrate the front end PHP part with the UI.

Accomplishments that we're proud of

We used six different languages on three different servers and four different frameworks, and the integration was just as we wanted it to be. We overcame all our difficulties by either fixing it or choosing another alternative.

"The front end is pretty," says a member of our team.

What we learned

We learned how the Google Cloud Platform and their ML APIs work. We also learnt how to integrate the UI with the PHP part of the front end.

Also, only 6% of the world's population are native English speakers? Whaaaaat?

What's next for Werd

We have a relatively small database, so we need to expand it to include more complex words such as peculiar, equivocal, and so on. We must also work on expanding the number of videos we use. We are planning to add a priority key for each word; this key will ensure that the word that appears in the video will fit perfectly in context.

Share this project: