Stuck under home-arrest with all negative news surrounding us, we decided to do something that'd make people laugh. We saw the Tonight Show, Star Wars (Darth Vader and Jar-Jar Binks) and from there got our inspiration. By the way, here's the link for the Tonight show episode: https://www.youtube.com/watch?v=7m-NPuXPBqM
What it does
The fun and witty part is divided into three fragments:
- WORD CHANGER: If you send a normal text message, it gets replaced by a very funny different word. For example, if you see that you have written, “You are a good boy”, to someone, you should be prepared to see your message go like, “You are obsessed with yourself.”
- VOICE ENHANCER: This function plays with your voice messages. It randomly changes the pitch of your voice, either high or low, there’s no foretelling. The output is an unpredictable mess of your voice, or unpredictably, enhancing of your voice.
- IMAGE FILTERS: In this fragment your normal picture gets a randomly generated filter which might increase, or (ALAS!) decrease the beauty of your image. You get a thin film of random color on your image. It’s your luck.
How we built it
Our app uses firebase and flutter. Flutter to build the app and firebase as backend. There is a collection called messages, which has documents with the name sender ID-receiver ID. Each document has a sub-collection with the same name and there, for each message in that channel, there is a document which contains:- Type (Integer. 0 for normal text, 1 for Image, 2 for Gif and 3 for voice message) Content( Message, Image URL in Firebase storage, GIF name, or message in the voice text) Its ID from Its ID to And a timestamp
To send a normal message is easy. To send Image, we use ImagePicker to get the image from the gallery, store it in firebase storage and get a download url from there. Then the content of that message is the URL which can be shown using a normal CachedNetworkImage Widget. There are 9 built in GIFs. You chose one and its name is stored in content. Then using an AssetImage we can show it with Content+".gif". Voice messages are done using a combination of text to speech and speech to text. Now the funny part To send messages, we pass it through google translate 7 times. To apply filters, we use a random color and effect and in ColorFiltered Widget For voice messages, we set a random speed and pitch. And voila, the magic is done.
Challenges we ran into
Google Translate API Bugs. Huuuh!!!! They are quite disturbing. Further we were unable to screen record a preview so we finally used a traditional trick.
Accomplishments that we're proud of
Making and submitting our project on a very very difficult and un-fore-predictable theme. But we used our Out-of-the-Box thinking (wink). And THE BIGGEST ONE!!! Instead of relying on Machine Learning, we used Google Translate Plug-in.
What we learned
Coping up with our daily challenges and pressure management. Also learnt how to build a chat app, Speech to text and TTS and apply filters to Images.
What's next for HeheChat
Hoping to make this app public and open for use (wink!) and providing a good laugh to our viewers and judges.