Skip to content
Morse UniverseMorse Universe

Morse code audio decoder

Hold your microphone to morse, or choose a recording, to turn it into text. The sound is read on your device and never uploaded.

How to use it

From your microphone

  1. Choose Microphone, then press Start listening and allow the microphone when your browser asks.
  2. Hold your phone or laptop close to the sound: a radio speaker, a video, or an oscillator.
  3. Watch the letters appear. The lamp lights with every mark it hears.
  4. Press Stop. The transcript becomes editable, so you can fix a letter and copy the text.

From an audio file

  1. Choose Audio file, then pick a recording or drop it on the box. WAV, MP3, M4A, OGG and FLAC all work.
  2. Read the letters. Anything underlined is a letter it is unsure of: click it to hear that part again.
  3. Fix the transcript if you need to, then press Copy text.

What you see

  • The waveform, the loudness of the sound, with the marks heard in it drawn underneath: dits (the short signals) in dark, dahs (the long ones) in orange.
  • The speed and the tone, such as 20 WPM and 650 Hz, and a confidence score for the whole transcript.
  • What we heard, letter by letter. A shaded band on the waveform and an underline in the text mark the letters it is unsure of.
  • The transcript, which you can correct and copy. Turn on Show morse in Settings to see the dots and dashes too.

How it reads morse

Morse on the air or in a recording is a single tone, switched on and off. The decoder works in four steps.

  1. It finds the tone. It searches 300 to 1,200 Hz for the strongest pitch that switches on and off, so a steady whistle doesn’t fool it. If the pitch drifts, it follows. You can widen the search, or set the pitch yourself, in Settings.
  2. It listens at that pitch only. Many times a second it measures how loud that one pitch is, so voices, hiss and other tones matter far less.
  3. It draws an on/off line. The line sits halfway between the noise and the signal, measured over 2.5 seconds either side. Where the signal fades, it looks just two dits either side, so it keeps up with a fade that comes and goes within a second.
  4. It learns the sender’s rhythm. From the lengths it hears, it finds the unit, the length of one dit, and names every mark and gap. It also learns how long this sender makes dahs and gaps, so a hand on a straight key that sends long dahs or runs letters together still reads.

Those lengths are set by ITU-R M.1677-1. A dah is three dits long; the gap inside a letter is one dit, between letters three, and between words seven.

A is a dit, a one-dit gap, then a dah three dits long.

The speed follows from the unit. Words per minute is timed on the word PARIS, which takes 50 units with the gap after it, so at 20 WPM one dit lasts 60 milliseconds.

PARIS drawn to scale. The shaded end is the 7-unit gap before the next word.

How accurate it is

We test the decoder on real recordings, on generated ones with clean timing, and on generated ones with the trouble real signals bring. Noise levels are measured in a 2,500 Hz band.

  • Real recordings. Four of the ARRL’s W1AW code practice files, at 10, 20, 30 and 40 WPM, 36 minutes in all. It read 0.4% of characters wrong at 10 WPM and none at the other three. These are sent by machine, so the timing is even.
  • Generated, clean timing. 40 recordings: 8 speeds from 5 to 40 WPM, each at 5 noise levels, from 20 dB above the noise down to as loud as the noise (0 dB). It read every character correctly and measured the speed to within 0.3%.
  • Below the noise. Slow morse at 5 WPM still read clean 9 dB under the noise. At 20 WPM, 9% of characters were wrong 6 dB under it, over five recordings.
  • Generated, real-world trouble. None wrong with a weaker station 120 to 250 Hz away, a steady whistle beside the tone, a tone drifting 120 Hz, or a steady hand on a straight key. A hurried hand that runs letters together: 6% wrong. A signal fading 15 dB almost every second: 7%. Fading, drift, a second station and a hand key at once: 12%.
  • Its confidence score. 82% of the letters it scored under 20% were wrong, and 1% or fewer of those it scored 60% or higher.

Where a signal fades right under the noise, letters are lost at the bottom of each fade. Those are the letters marked unsure, for you to check.

When it doesn’t read

It says there is no steady tone
Check that the morse is audible over other sound, and move the microphone closer. If the tone is under 300 Hz or over 1,200 Hz, widen Search from in Settings.
It follows the wrong signal
When two tones play at once, it takes the stronger one. Set it in Settings under Tone pitch to the one you want; the pitch it found is shown above the waveform.
Letters run together or split apart
That is usually a signal that fades faster than the on/off line keeps up with. Set Follow fading to Fast. For a steady signal with long pauses, Slow is steadier.
The microphone hears nothing
A muted microphone sends silence, and the decoder tells you so. Check your system’s input settings, and allow the microphone for this site if you blocked it before.
A headset makes it worse
Bluetooth headsets switch to a narrow call mode when their microphone is on, which muffles the tone. Use the device’s own microphone instead.

Questions

Can you decode morse code from audio?

Yes. Play morse to your microphone or choose a recording, and the decoder finds the tone, measures each mark and gap, and writes the letters out. It also tells you the speed and the pitch of the tone.

Is my recording uploaded anywhere?

No. The sound is decoded in your browser, on your device. Nothing is sent to a server, and nothing is kept after you close the page.

How do I decode morse code from a video?

Choose the video in the video decoder, which reads its sound track and any flashing light in it. You can also play it near your phone and use Microphone here.

What speeds can it read?

It was tested from 5 to 40 words per minute (WPM) and finds the speed by itself. It also reads Farnsworth timing, where letters are sent fast with long gaps between them.

Why are some letters underlined?

Those are letters the decoder is unsure of, scored under 40% confidence. In testing, 82% of letters scored under 20% were wrong, so check the underlined ones by ear.

Does it work on iPhone and Android?

Yes, in a current Safari, Chrome, Firefox or Edge. The Flashlight option, which flashes the phone’s light with each mark, works on Android in Chrome; iPhones don’t let a web page switch the light.

Can it read morse sent by light or tapping?

Not here: this decoder listens for a tone, the beep used on radio and in recordings, and clicks aren’t read. For a flashing light, film it and choose the video in the video decoder.

More morse tools

Sources