## Inspiration

We wanted to make something accessible to everyone that implemented cool API and ML models. After brainstorming ideas, we settled on something that would help us in our day-to-day lives: a bot that could record meetings, conversations, and lectures; a bot that can even take notes and summarize passages! Tehuantepec got its name after a glitchy run of speech to text, sentence filtering, and sentence paraphrasing. We think this is just the starting point of a cool idea that will only get better from here.

## What it does

Tehuantepec transcribes speech real time to text via a PC microphone. When the dialog ends, the speech gets input into a sentence filtering model. This model ranks sentence importance and removes sentences deemed not important to the conversation. These filtered sentences then get passed into a paraphraser model that replaces the sentence with a new--hopefully shorter--one that can even include new vocabulary.

## How we built it

We split the project into 3 modules: speech-to-text, sentence filtering, and sentence paraphrasing. For speech-to-text, we used a bidirectional stream between PC and Google API. The audio gets sent to Google cloud's speech-to-text API and outputs are chosen based off how stable and confident the model is in the result. For sentence filtering, we used Google's pre-trained natural language API to implement tf-idf. Tf-idf ranks sentence importance and filters out the least relevant words. For sentence paraphrasing, we wrote an RNN encoder-decoder neural network with an additional attention vector that takes in sentences and outputs a paraphrased version. The encoder neural network takes in a sentence of words and changes GRU-RNN hidden state cells. The decoder neural network takes the previous state as input and outputs the most likely first word. Using this word along with hidden state info, the decoder outputs the following consecutive words. The neural networks were written with Keras, Tensorflow, and tutorial help.

## Challenges we ran into

For speech-to-text, we ran into issues with transcription quality and transcription delay from background noise and weak WiFi signals. For sentence filtering, we had to learn Python to utilize Google cloud tools. For sentence paraphrasing, understanding what the neural networks are doing, trying to get an output, and formatting data were all huge challenges. At first, the model would only output commas or the word 'the'. Each iteration took hours to run (because we couldn't get Google cloud GPU to work and had to run local), and the only way to shorten run time was to sacrifice accuracy. Finding a sweet point between run-time and accuracy was incredibly difficult.

## Accomplishments that we're proud of

We got speech-to-text to work fairly quickly which gave us motivation. It was cool to see our sentence filter produce coherent, shortened passages. Although to the sentence paraphrasing was not very accurate, getting an output and understanding the recurrent neural networks was a huge success. Getting some output--even not accurate--finally let me work on improving the model and get a sense of how the model worked.

## What we learned

We learned Google cloud API, including speech-to-text, natural language processing, and Tensorflow/ Keras. We learned how to divide a project up and still collaborate to reach an end goal. We learned about neural networks, gated recurrent neural networks, industry standards for paraphrasing (and translation), and data processing/ formatting for neural networks.

## What's next for Tehuantepec

We want to raise accuracy at each step. For speech-to-text, we want to improve sound quality and transcription accuracy. For sentence filtering, we want to use more sophisticated algorithms. For sentence paraphrasing, we want to continue the progress of the neural network, adding in pointer generation so new vocabulary not from the source document can be generated. Right now, the model focuses on text generation, but another neural network (typically reinforcement learning or supervised) needs to be used to evaluate the quality of paraphrasing (and possibly length) to better fix the parameter values instead of cross-entropy loss.
## Inspiration

As electric vehicles (EVs) become increasingly popular, we saw the need for a tool that simplifies journey planning for EV drivers. Our goal was to create a solution that not only calculates optimal routes based on vehicle model and destination but also identifies nearby charging stations along the way.

## What it does

uOCars is a route planner designed specifically for EVs. It takes into account factors such as vehicle model, battery life, and destination to provide users with accurate estimations of their journey duration and the optimal times to charge their vehicles. Additionally, it locates nearby charging stations to ensure a seamless travel experience.

## How we built it

We built uOCars using a combination of Django for the backend logic and JavaScript for the frontend interface. We integrated Google Places API to identify charging stations along the route and implemented algorithms to calculate battery life and charging requirements based on the user's input.

## Challenges we ran into

Google Places API Integration: Difficulty integrating the Google Places API to retrieve data about charging stations efficiently.

Client Input Retrieval (POST Method): Spent significant time retrieving client input for the POST method, indicating challenges in data submission and processing.

Battery Life Prediction: Struggled with accurately predicting battery life, indicating challenges in modeling and forecasting battery usage.

Optimal Charging Time Determination: Faced difficulties in determining the best charging times based on various factors, highlighting challenges in optimization and decision-making algorithms.

## Accomplishments that we're proud of

We are proud to have developed a functional and user-friendly tool that addresses a real need in the EV community. Our solution not only provides valuable information to users but also promotes sustainability by encouraging the use of electric vehicles.

## What we learned

Throughout the development process, we gained valuable insights into EV technology, route planning algorithms, and API integration. We also improved our skills in frontend and backend development, as well as project management and interdepartmental teamwork.

## What's next for uOCars

In the future, we plan to further enhance uOCars by incorporating advanced features such as real-time traffic updates, EV charging station availability, and integration with smart navigation systems. We also aim to expand our coverage to include more regions and support additional EV models. Overall, our goal is to continue improving the user experience and making electric vehicle travel more accessible and convenient for everyone.
## Inspiration

When attending crowded lectures or tutorials, it's fairly difficult to discern content from other ambient noise. What if a streamlined pipeline existed to isolate and amplify vocal audio while transcribing text from audio, and providing general context in the form of images? Is there any way to use this technology to minimize access to education? These were the questions we asked ourselves when deciding the scope of our project.

## The Stack

**Front-end :** react-native

**Back-end :** python, flask, sqlalchemy, sqlite

**AI + Pipelining Tech :** OpenAI, google-speech-recognition, scipy, asteroid, RNNs, NLP

## What it does

We built a mobile app which allows users to record video and applies an AI-powered audio processing pipeline.

**Primary use case:** Hard of hearing aid which:

1. Isolates + amplifies sound from a recorded video (pre-trained RNN model)
2. Transcribes text from isolated audio (google-speech-recognition)
3. Generates NLP context from transcription (NLP model)
4. Generates an associated image to topic being discussed (OpenAI API)

## How we built it

* Frameworked UI on Figma
* Started building UI using react-native
* Researched models for implementation
* Implemented neural networks and APIs
* Testing, Testing, Testing

## Challenges we ran into

Choosing the optimal model for each processing step required careful planning. Algorithim design was also important as responses had to be sent back to the mobile device as fast as possible to improve app usability.

## Accomplishments that we're proud of + What we learned

* Very high accuracy achieved for transcription, NLP context, and .wav isolation
* Efficient UI development
* Effective use of each tem member's strengths

## What's next for murmr

* Improve AI pipeline processing, modifying algorithms to decreasing computation time
* Include multi-processing to return content faster
* Integrate user-interviews to improve usability + generally focus more on usability