Ultrasonic communication: use sound to transfer data

Martin Brinkmann
Jan 9, 2014

Whenever you want to chat with someone electronically, you will have to establish a connection somehow. This can be over the Internet, a local area network or mobile connection for example.

There are other means to communicate though, and one of them is by sound. While that is not an entirely new concept, there have not really been that many computer applications that make use of it.

Quietnet is a chat program coded in Python that operates using near ultrasonic frequencies. Ultrasound itself is sound with a frequency greater than 20 kHz which makes it inaudible for humans. The application itself works with ~19 kHz frequencies.

As far as usage goes, all you need to do is run two scripts, send.py and listen.py on your machine. Send is used to send chat messages using the frequency, while listen will display any messages that get picked up in the process.

You can use it for tests to see if it works. If there are multiple chat participants, each needs to run both programs -- assuming that they all want to receive and send.

Before Quietnet can be run, it is necessary to install Python, as well as pyaudio and numpy (Numerical Python), on the operating system.

Once that is out of the way, run the commands python send.py and python listen.py to get started. Whatever you type into the send.py window should appear on the listen.py window as well in the process.

The sending works without any of the usual technologies that you need to have enabled for it to work, such as Bluetooth or WiFi.

If it works depends on a number of factors though, including the quality of speakers and microphone. The author suggests to turn up the volume to improve the efficiency of the transfer, but that is about it.

Note that while you may not be able to hear to the sound, that animals or young humans may be able to.

I could not get the script to run on my Windows 7 machine with Python 3.3 installed.

Another  application is the web audio implementation Sonicnet.js, a JavaScript library that can send and receive data as sounds.

The author explains the concept behind the implementation:

Basically, you can specify a range of frequencies to use, and an alphabet of characters that can be transmitted. The frequency spectrum is split into ranges corresponding to the specified alphabet and start/end codes, with each character/code corresponding to a part of the full frequency range.

The sending side converts each character of the word to be sent into the center of the corresponding frequency range, and transmits that frequency for a certain duration. The receiving side does a continuous fourier transform of the signal and looks for peaks in the specified frequency range. Upon finding a peak for a significant duration, it does the conversion back from frequency to character.

The idea to use sound to transfer data is not new, but new applications may bring the technology to a larger audience.


Tutorials & Tips

Previous Post: «
Next Post: «


  1. ilev said on August 4, 2012 at 7:53 pm

    Doesn’t Windows 8 know that www. or http:// are passe ?

    1. Martin Brinkmann said on August 4, 2012 at 7:57 pm

      Well it is a bit difficulty to distinguish between name.com domains and files for instance.

    2. Leonidas Burton said on September 4, 2023 at 4:51 am

      I know a service made by google that is similar to Google bookmarks.

  2. VioletMoon said on August 16, 2023 at 5:26 pm

    @Ashwin–Thankful you delighted my comment; who knows how many “gamers” would have disagreed!

  3. Karl said on August 17, 2023 at 10:36 pm


    The comments section under this very article (3 comments) is identical to the comments section found under the following article:

    Not sure what the issue is, but have seen this issue under some other articles recently but did not report it back then.

  4. Anonymous said on August 25, 2023 at 11:44 am

    Omg a badge!!!
    Some tangible reward lmao.

    It sucks that redditors are going to love the fuck out of it too.

  5. Scroogled said on August 25, 2023 at 10:57 pm

    With the cloud, there is no such thing as unlimited storage or privacy. Stop relying on these tech scums. Purchase your own hardware and develop your own solutions.

    1. lollmaoeven said on August 27, 2023 at 6:24 am

      This is a certified reddit cringe moment. Hilarious how the article’s author tries to dress it up like it’s anything more than a png for doing the reddit corporation’s moderation work for free (or for bribes from companies and political groups)

  6. El Duderino said on August 25, 2023 at 11:14 pm

    Almost al unlmited services have a real limit.

    And this comment is written on the dropbox article from August 25, 2023.

  7. John G. said on August 26, 2023 at 1:29 am

    First comment > @ilev said on August 4, 2012 at 7:53 pm

    For the God’s sake, fix the comments soon please! :[

  8. Kalmly said on August 26, 2023 at 4:42 pm

    Yes. Please. Fix the comments.

  9. Kim Schmidt said on September 3, 2023 at 3:42 pm

    With Google Chrome, it’s only been 1,500 for some time now.

    Anyone who wants to force me in such a way into buying something that I can get elsewhere for free will certainly never see a single dime from my side. I don’t even know how stupid their marketing department is to impose these limits on users instead of offering a valuable product to the paying faction. But they don’t. Even if you pay, you get something that is also available for free elsewhere.

    The algorithm has also become less and less savvy in terms of e.g. English/German translations. It used to be that the bot could sort of sense what you were trying to say and put it into different colloquialisms, which was even fun because it was like, “I know what you’re trying to say here, how about…” Now it’s in parts too stupid to translate the simplest sentences correctly, and the suggestions it makes are at times as moronic as those made by Google Translations.

    If this is a deep-learning AI that learns from users’ translations and the phrases they choose most often – which, by the way, is a valuable, moneys worthwhile contribution of every free user to this project: They invest their time and texts, thereby providing the necessary data for the AI to do the thing as nicely as they brag about it in the first place – alas, the more unprofessional users discovered the translator, the worse the language of this deep-learning bot has become, the greater the aggregate of linguistically illiterate users has become, and the worse the language of this deep-learning bot has become, as it now learns the drivel of every Tom, Dick and Harry out there, which is why I now get their Mickey Mouse language as suggestions: the inane language of people who can barely spell the alphabet, it seems.

    And as a thank you for our time and effort in helping them and their AI learn, they’ve lowered the limit from what was once 5,000 to now 1,500…? A big “fuck off” from here for that! Not a brass farthing from me for this attitude and behaviour, not in a hundred years.

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.