We all like music, and we thought it would be cool to mess around with the frequency and sounds that music creates to send secret messages between people. In our minds, this was an uncommon approach to tacking the idea of encoding and decoding messages, thereby creating a more interesting method of communication.

What it does

We built a web-based platform that takes text as an input and converts it into a sound based on a prescribed set of frequencies that we have assigned to each letter and special character that we use in our daily communication. The receiver of the message then listens to this sound on a separate device and webpage wherein the contents of the secret sound message is revealed to them after having heard the sound. In doing so, the user gets to see the message get converted from sound to text in real-time.

How we built it

The front-end user web-platform was built on Javascript, HTML5, and CSS. The web-platform would be the primary interface that users would see and involves both the sending and receiving of messages. The back-end conversion of the text to sound and vice-versa was built on Javascript using the AudioContext API. It also required using the built-in microphone system on one's device. To connect the back-end with the front-end, we used Google Cloud Platform to link the website pages and also the algorithm for the sound conversion.

Challenges we ran into

Initially, our plan was to have a stored WAV file, which we would then read to decode the message. However, we found the implementation of the algorithm with a stored sound file to be very challenging as we were not able to separate the various frequencies and store them separately in an array. As such, we thought it would be more useful to have the sound played out loud and interpreted by our algorithm in real-time without actually having stored it anywhere.

Another challenge we faced was with the styling of the web-based platform, namely because we were using open-source templates and were having trouble integrating them with our existing HTML and Javascript files. However, after careful review of our code and the open-source code, we found a way to create a more visually appealing user interface that would make the user experience simpler and cleaner.

Another challenge we faced was dealing with the background noise while testing our audio conversion. We were having challenges accurately interpreting our messages due to the clash of the frequencies. In the end, we found that our product worked best in a quiet space, under relatively low volume conditions. This is an area that we would like to improve upon for the future.

Accomplishments that we're proud of

We're incredibly proud of the fact that we managed to successfully test our audio conversion and connect it to a web-based platform so that it can actually function as a messaging service. We're also happy with the way that we built our website in terms of its UI and functionality. Also, on the back end, there were a lot of different calculations that needed to be taken into account while trying to separate the different frequencies.

What we learned

We learned more advanced skills in web development and had a chance to refine our HTML and Javascript capabilities. In addition, we also gained a better understanding of how various APIs can be integrated within the context of audio analysis. We also learned about the Fast Fourier Transform, which is an algorithm to convert frequencies into data. In addition, we gained more experience with the Google Cloud Platform and how it can be used as a server. We also became more knowledgeable about how to both conceptualize a design on paper, or rather on the whiteboard, and build it out into an actual product. Going through this design thinking process was a very collaborative and fun experience for all of us.

What's next for SoundChat

We would like to find a way to make SoundChat work more effectively with stored WAV files and also build out some noise cancellation feature so that our product can work better in crowded environments. This would make our service more applicable to the real world. In addition, our hope is to build out a mobile application version of this so that it can be more accessible and functional as an actual communication platform.

Built With

Share this project: