We originally wanted to use steganography to hide data in sound. This idea evolved into something that would allow us to send meta-data with music and send other information that other users can get from their laptop or smart phones.

What it does

VNUCP takes any binary data and can transmit it as high frequency audio content. With varying transfer rates to account for ambient noise via the host's microphone (if available), we provide a more robust solution than previous academic works. An audio file can be sent along with this information as is relevant, especially for metadata applications.

How we built it

We took low level C functions to provide a real time unix command line utility for transmission and reception of information following this protocol. We prototyped the idea in matlab before moving to C for increased performance. In addition, we built a web framework to be able to extract such data and leverage relatively low resource intensive web APIs.

Challenges we ran into

Signal processing is not a simple task. There are many, many considerations that have to be taken account for. Everything from the hardware you use to process, transmit, and receive the sound to the acoustic signature of your surroundings affect transmission quality. We also got hung up by SSL certificates on remote servers.

Accomplishments that we're proud of

The results are very promising. With results that have accuracy on the order of ~80%, this form of communication holds promise especially in instances where internet connections are scarce. The decoding algorithm in its non-real time form is much more accurate than the real-time implementation, and so with more development the realtime implementation could see strong performance gains.

What we learned

We learned about the difficulties of producing a novel, robust audio communication system, among other web-centric hurdles.

What's next for Variable-rate Near-Ultrasonic Communication Protocol

As VNUCP in its current incarnation is only the physical layer, there is room to add more layers, like error correction codes and checksums, that would prove largely beneficial for the accuracy of this communication protocol.

Built With

Share this project: