## Inspiration

Video is a great form of media, but it's often to slow and too long. We want a way to find the most important parts of a video, and only watch those parts.

## What it does

Users can submit a video Scribr, and Scribr will automatically find the most important parts of the video, and will provide a brand new video, trimmed to just the important moments.

## How we built it

Scribr first transcribes the video using the RevSpeech API. Then it does a form of sentiment analysis on the transcribed videos, using NLP, to find the most important sentences. It then finds the timestamps of all of the important videos, and then re-cuts the video to trim down to only those sentences.

## Challenges we ran into

So many challenges. From installing Python on a windows computer (for a brand new coder!) to automatically trimming videos on a server... we were genuinely shocked the first time the entire process worked, and we played a trimmed video that actually worked.

It was so seamless, we actually wasn't sure if it worked the first time.

## Accomplishments that we're proud of

We are proud that we came together with a diverse skillset, including someone who just learned how to code, and were able to create a real, working system.

## What we learned

One of us learned to code. The others learned Flask, RevSpeech, how a computationally intense backend system worked, how to work quickly, and how to power through until the end.

## What's next for Team Two

I say dance, they say 'How high?' We're got many more ideas that we want to add to this project. And as soon as we sleep for a week or two, we'll get back to adding them.
## Inspiration

Our project was inspired by people who don't learn the "old school" way. Some people learn best by reciting things out loud, but the problem with that is sometimes it's too quiet to talk, and sometimes it's too loud to talk.

## What it does

Our project is a website that allows you to create a group with your classmates/coworkers, in which you can record video of yourself silently mouthing out whatever lecture or book you're reading, allowing you to pay full attention without worrying about writing notes, a loud environment, or an environment in which you're not allowed to talk. Our project reads your lips and puts it into text, creating notes for the video you take. Then, with your notes, we summarize your key points and build a quiz so you can focus on the important parts of your work.

## How we built it

For the front end of our website, we used React JS and Chakra. We used Auth0 to create an account system for our project. We used Symphonic Labs' API to read your lips and convert your silent words to text. We used MongoDB to save all your notes to a database in your group. We then used a Cohere API to summarize the key points of the text and make a quiz out of it. We also used an Open AI API to convert mp3 files to text, in case you wanted to record a lecturer or friend speaking, and then convert it to notes and quizzes.

## Challenges we ran into

We tried to get live video transcribing with Symphonic Lab's API using Open CV, but since Open CV was giving us frames of the video, Symphonic Lab's API wasn't able to transcribe it. Instead, we switched to allowing users to record their videos on the site, immediately download them and upload it for transcribing.

## Accomplishments that we're proud of

We are very proud of combining all the complicated API's to create a complete and flowing product, something that all of us will definitely be using for school.

## What we learned

This was our group's first time using more than one API for a project, but it ended up with a website that performs a useful and complicated function, and we will be using multiple APIs in the future!

## What's next for Studying with Hack the North
## Inspiration

We both are interested in linguistics and learning languages, but one of the biggest roadblocks to regular practice was that we couldn't find enough entertaining media to watch in a given language. We wanted to build software that could automatically translate the audio of a given video into another language so that we could watch whatever content we wanted in whatever language we wanted to learn. Throughout the process, we realized it could make a huge difference to vision-impaired people who need to get information from a video but are unable to use subtitles. It can also be valuable to people who do not understand the language a given video that does not offer subtitles.

## What it does

Given the URL of any YouTube video, a destination language the video is to be translated into, and an output filename, our software writes a translated video to the local disk of whatever machine this code is running on. The proof-of-concept backend could easily be served through a website or mobile app for distribution in the future.

## How we built it

Our software takes in the URL of any YouTube video, a destination language the video is to be translated into, and an output filename for the final translated video. It then downloads the video, along with any subtitles that are available from YouTube. If subtitles are not available, we use Google's Web Speech API (via Autosub) to auto-generate subtitles. We then programmatically build a new audio file, parsing the subtitle files for timing information to ensure the audio stays synced with the video. Finally, we strip the audio from the video, use sklearn and scipy to tease apart the voice from the rest of the audio, combine the non-voice audio with the translated speech, and combine with the video component.

## Challenges we ran into

One of the biggest challenges was keeping the audio in-sync with the video. We wrote our own parser for the .vtt filetype (a subtitle filetype) and then wrote an algorithm that detects pauses in speech and segments the subtitle text into chunks accordingly. It then uses these chunks to add silence to the audio file if the pause is longer than a certain threshold.

Another challenge was separating the voice from the rest of the audio in the original video. We wanted all other sounds, i.e. theme songs, sound effects, and general noise to be included in the final video to maximize similarity to dubbing by a human being. We used Independent Component Analysis and then adjusted the volume level of the noise track to accomplish this.

## Accomplishments that we're proud of

We're very proud of the overall impact this project could have for disabled people and foreign language learners. We're also happy with the quality of the final translated video we were able to achieve, and have many plans for future optimizations and services.

## What we learned

We learned a lot about best software engineering practices and are proud of the overall organization we were able to achieve in the repo. We also learned a lot about audio/video formats, as well as various machine learning topics.

## What's next for a.tv

We plan to host the service on a website and/or mobile app in the coming weeks, as well as further improve synchronization, automatically generate male/female voice based on original video, and possibly even use sentiment analysis to create even more realistic dubs.