Inspiration
This project was created as a merger of multiple ideas. The Bath Hack provides a wide range of hardware to use in projects. To make use of this, we thought about utilising an Arduino to create a security system, which relied on machine learning to grant entry. However, we wanted our project to be more creative.
We selected this idea because it would be challenging and presented a broad range of learning opportunities but was realistically achievable and allowed us to exercise our creativity.
What It Does
Cypher takes an image of the user through their webcam, analyses this, and produces a diss track based on the user’s appearance and demeanour
How We Built It
Cypher's infrastructure can be divided into three parts:
• Frontend website for user interaction.
• Flask for website hosting.
• Image tagging & text generation backend.
Methods of Implementation:
• Numerous APIs: MediaAPI, OpenAI, UberDuck & others.
• Networking - POST requests for image data transmission.
• Image Tagging - VQA transformers were tested but time constraints meant existing methods had to be used.
• Flask Micro Web Framework - Website hosting.
Cypher was built using several programming languages, frameworks, APIs and image tagging methods. After initial designs were developed, we assigned roles to our four team members based on strengths and weaknesses. These included, frontend development & GUI design, networking & flask setup, API integration & prompt engineering.
Challenges We Ran Into
A major hurdle was our unfamiliarity with API interaction; extensive research was conducted before implementation. Furthermore, difficulty with speech recognition meant that our original plan to allow users to retaliate had to be put on hold. Given more time, we would allow users to do this and the best rap would be determined by a judge agent, which we developed. Finally, figuring out data transmission through POST requests required investigation until it was settled on transmitting image data through base64.
Accomplishments That We're Proud Of
We successfully implemented a working end product that is easily accessible and simple to use. Development of our project in a time-constrained environment required high degrees of communication, critical thinking and teamworking. On numerous occasions, ideas were scrapped or added in light of new discoveries; adaptability and quick-thinking were vital in ensuring that our project would be completed on time.
What We Learned
Over the course of this project, we learned how to interact with and implement many technologies new to us such as:
• JavaScript
• APIs
• Image Tagging
• Flask
Alongside technical skills, we also learned a great deal about communication, rapid-development, time-management and problem-solving.
What's Next for Cypher
The original concept involved the user also writing their own diss track, and another AI judging which diss track is better. Due to time constraints this wasn’t achievable, but if we were to continue working on this project, this feature would be something we would include.
Photo Credit: https://www.linkedin.com/in/joshuajdale/, https://www.linkedin.com/in/hayden-fernandes/
Built With
- css3
- flask
- html5
- huggingface-api
- javascript
- openai-api
- python
- serp
Log in or sign up for Devpost to join the conversation.