## Inspiration 💡

With the introduction of online-based learning, a lot of video tutorials are being created for students and learners to gain knowledge. As much as the idea is excellent, there was also a constraint whereby the tutorials may contain long hours of content and in some cases, it is inaccessible to users with disability. This is seen as a problem in the world today, that's why we built an innovative and creative solution **Vid2Text** to provide the solution to this. It is a web application that provides users with easy access to audio and video text transcription for all types of users. So either if the file is in an audio or video format it can always be converted to readable text.

## 🍁About

Vid2Text is a web app that allows users to upload audio and video files with ease, which then generates Modified and Customized Audio and Video Transcriptions.
Some of the features it provides are:

### Features

* Automatically transcribe audio and video files with high accuracy.
* Modified and Customized Audio and Video Transcriptions.
* Easy Keyword Search through Text
* Easy Keyword Search and Highlight through Text.

## How we built it

We built our project using Django, a Python web framework that uses the MVC architecture to develop full-stack web applications. When the user uploads the video they want to transcribe, we created a script that uploads the video onto the Django model database and after that, the video gets uploaded to the AssemblyAI server. The response of that part is the *upload\_url*. Finally, we send a post request, with the video transcript ID and get the video transcript text as the response. We utilized the AssemblyAI to match and search the transcript text for keywords. We also created an accessible and good user experience for the client-side.

## Challenges we ran into

In course of the hackathon, we faced some issues with limited time and integration of the AssemblyAI to determine the video duration of the uploaded videos dynamically. Initially, we were confused about how to do that, but we finally figured it out.

## Accomplishments that we're proud of

Finally, after long hours of work, we were able to build and deploy the full web application. The team was able to put in extra effort towards making it work.

## What we learned

This hackathon gave us the opportunity to learn how to use a Django project together with utilizing the Django and AssemblyAI API and also we were able to work together as a team despite the fact we were from different timezones.

## What's next for Vid2Text ⏭

For our next steps:
We plan to include more features like multiple language transcription, and export text files as pdf.
Also, improve the user experience and make it more accessible.
## Inspiration

The inspiration for DigiSpotter came from within our team members, who recently started going to the gym in the past year. We agreed that starting out in the gym is hard without having a personal coach or gym partner that is willing to train you. DigiSpotter aims to solve this issue by being your electronic gym partner that can keep track of your workout and check on your form in real time to ensure you are training safely and optimally.

## What it does

DigiSpotter uses your phone's camera to create a skeletal model of yourself as you are performing an exercise and will compare it across various parameters to the optimal form. If you are doing something wrong DigiSpotter will let you know after each set. It can detect errors such as suboptimal range of motion, incorrect extension, and incorrect positioning of body parts. It also counts for you as you are working out, and will automatically start a rest timer after each set. All you have to do is leave your phone in front of you as if you are taking a video of yourself working out. The results of your workout are saved to your account in the app's database to track improvements in mobility and general gym progress.

## How we built it

We created this app using Swift for the backend and SwiftUI for the frontend. We are using ARKit for iPhone to help us create our position tracking model for various positions in the body as running natively drastically increases the performance of the app and the accuracy of the tracking. Using our position tracking model, we can calculate the relative angles of body parts and determine their deviation from an optimal angle.

## Challenges we ran into

ARKit is designed more for creating virtual avatars from motion capture data and not interpreting movement between relative body parts, and such in order to create a skeleton that fits our needs we needed to make many changes from any other tracking library.

## Accomplishments that we're proud of

We are able to calculate deviation from an optimal squat and relay the information to the user.

## What we learned

All of us were completely new to developing for iOS so we had many challenges attempting to figure out the conventions of Swift and how we can interact with our app.

## What's next for DigiSpotter

We would like to add as many exercises as we can to the App and we want to further expand how much historical data we can collect so our users can have a more detailed view of how they have improved over time.
## Inspiration

Like most people, our team has found it difficult to adapt to e-learning during the pandemic. Among difficulties often faced by students in e-learning is dealing with the large quantity of asynchronous lecture content.

By providing the ability to download sped-up copies and transcriptions of online lecture content, we hoped to alleviate students’ e-learning difficulties.

## What it does

The app allows upload of a range of video formats. Users can download captions to convenient .txt files (eliminating the need to scroll through long videos to find where the prof mentioned what cellular structure is known as the powerhouse of the cell). Users can also download a copy of the video that is sped up to a comfortable level to help them achieve more efficient review sessions.

## How we built it

We used Node.js, Express, React, and Python’s SpeechRecognition and MoviePy libraries to build a web application to address the issues we identified in e-learning.

## Challenges we ran into

Since our backend requires Node.js to interface with Python, we found it difficult to manage the interface of these two languages. We settled on Node.js’s `child_process` API to resolve these issues.

## Accomplishments that we're proud of

We’re proud of the application’s streamlined design, providing users quick access to its main functionality quickly.

## What we learned

We learned about Python Speech Recognition APIs and handling of file upload/download APIs.

## What's next for Transcription App

The next steps are enabling file sharing between users.