## Inspiration

Being a student of the University of Waterloo, every other semester I have to attend interviews for Co-op positions. Although it gets easier to talk to people, the more often you do it, I still feel slightly nervous during such face-to-face interactions. During this nervousness, the fluency of my conversion isn't always the best. I tend to use unnecessary filler words ("um, umm" etc.) and repeat the same adjectives over and over again. In order to improve my speech through practice against a program, I decided to create this application.

## What it does

InterPrep uses the IBM Watson "Speech-To-Text" API to convert spoken word into text. After doing this, it analyzes the words that are used by the user and highlights certain words that can be avoided, and maybe even improved to create a stronger presentation of ideas. By practicing speaking with InterPrep, one can keep track of their mistakes and improve themselves in time for "speaking events" such as interviews, speeches and/or presentations.

## How I built it

In order to build InterPrep, I used the Stdlib platform to host the site and create the backend service. The IBM Watson API was used to convert spoken word into text. The mediaRecorder API was used to receive and parse spoken text into an audio file which later gets transcribed by the Watson API.

The languages and tools used to build InterPrep are HTML5, CSS3, JavaScript and Node.JS.

## Challenges I ran into

"Speech-To-Text" API's, like the one offered by IBM tend to remove words of profanity, and words that don't exist in the English language. Therefore the word "um" wasn't sensed by the API at first. However, for my application, I needed to sense frequently used filler words such as "um", so that the user can be notified and can improve their overall speech delivery. Therefore, in order to implement this word, I had to create a custom language library within the Watson API platform and then connect it via Node.js on top of the Stdlib platform. This proved to be a very challenging task as I faced many errors and had to seek help from mentors before I could figure it out. However, once fixed, the project went by smoothly.

## Accomplishments that I'm proud of

I am very proud of the entire application itself. Before coming to Qhacks, I only knew how to do Front-End Web Development. I didn't have any knowledge of back-end development or with using API's. Therefore, by creating an application that contains all of the things stated above, I am really proud of the project as a whole. In terms of smaller individual accomplishments, I am very proud of creating my own custom language library and also for using multiple API's in one application successfully.

## What I learned

I learned a lot of things during this hackathon. I learned back-end programming, how to use API's and also how to develop a coherent web application from scratch.

## What's next for InterPrep

I would like to add more features for InterPrep as well as improve the UI/UX in the coming weeks after returning back home. There is a lot that can be done with additional technologies such as Machine Learning and Artificial Intelligence that I wish to further incorporate into my project!
## Inspiration

The amount of data in the world today is mind-boggling. We are generating 2.5 quintillion bytes of data every day at our current pace, but the pace is only accelerating with the growth of IoT.

We felt that the world was missing a smart find-feature for videos. To unlock heaps of important data from videos, we decided on implementing an innovative and accessible solution to give everyone the ability to access important and relevant data from videos.

## What it does

CTRL-F is a web application implementing computer vision and natural-language-processing to determine the most relevant parts of a video based on keyword search and automatically produce accurate transcripts with punctuation.

## How we built it

We leveraged the MEVN stack (MongoDB, Express.js, Vue.js, and Node.js) as our development framework, integrated multiple machine learning/artificial intelligence techniques provided by industry leaders shaped by our own neural networks and algorithms to provide the most efficient and accurate solutions.

We perform key-word matching and search result ranking with results from both speech-to-text and computer vision analysis. To produce accurate and realistic transcripts, we used natural-language-processing to produce phrases with accurate punctuation.

We used Vue to create our front-end and MongoDB to host our database. We implemented both IBM Watson's speech-to-text API and Google's Computer Vision API along with our own algorithms to perform solid key-word matching.

## Challenges we ran into

Trying to implement both Watson's API and Google's Computer Vision API proved to have many challenges. We originally wanted to host our project on Google Cloud's platform, but with many barriers that we ran into, we decided to create a RESTful API instead.

Due to the number of new technologies that we were figuring out, it caused us to face sleep deprivation. However, staying up for way longer than you're supposed to be is the best way to increase your rate of errors and bugs.

## Accomplishments that we're proud of

* Implementation of natural-language-processing to automatically determine punctuation between words.
* Utilizing both computer vision and speech-to-text technologies along with our own rank-matching system to determine the most relevant parts of the video.

## What we learned

* Learning a new development framework a few hours before a submission deadline is not the best decision to make.
* Having a set scope and specification early-on in the project was beneficial to our team.

## What's next for CTRL-F

* Expansion of the product into many other uses (professional education, automate information extraction, cooking videos, and implementations are endless)
* The launch of a new mobile application
* Implementation of a Machine Learning model to let CTRL-F learn from its correct/incorrect predictions
## Inspiration

With our inability to acquire an oculus rift at YHack, we were looking forward to using one in any implementation. As we are entering the job market soon, in search of summer internships, we thought about how many people, students in particular, do not have sufficient interviewing experience. Thus, our idea was to use VR to provide these people with the ability to train and succeed with interviews.

## What it does

This hack simulates an interview scenario to aid in the practice of interviewing skills and the removal of improper speech patterns using Unity, Oculus and IBM Watson.

## How I built it

Using Unity, starting and interview scenes were created and animations were implemented. The backend of the speech processing system was built with IBM Watson Unity tools. These tools allowed for the integration for IBM speech to text api's and allow the user's speech to be converted into text and later processed for the output.

## Challenges I ran into

While implementing IBM Watson speech to text, Oculus Rift compatibility, and Unity Scenes, we came across a few errors. Firstly, we had been working in different versions of unity, so when the time came to compile our projects together there were compatibility issues.

## Accomplishments that I'm proud of

One things we are proud of how we overcame the many challenges that arose during this project. We were also proud of the overall implementation of the different facets of the hack and how we were able to mesh them all together.

## What I learned

All of us had to learn how to use and implement virtual reality as none of us had the opportunity to work with it before. We also learned a lot about Unity and implementing items such as VR and IBM Watson speech to text.

## What's next for InterVR

Implementing more thorough testing on the speech to text file would be the first large improvement that could be made for InterVR. Another improvement that could be made for InterVR is a more diverse cast of interviewers, additional scenes for the interviews, and more questions to allow the user to have a more specialized experience.