Listen to Morse code through your microphone or open a recording and watch it turn into text. The decoder finds the tone pitch and the sending speed automatically, shows the dots and dashes as they arrive, and lets you fine-tune the threshold. Everything runs on your device.
Last updated:
Decoded a built-in sample below. Start the microphone, play the sample or open a recording. Audio never leaves your device.
Tone–
Speed–
Dot length–
Signal–
Lower picks up weak signals, higher rejects noise.
Narrow helps in noise but needs slower code.
Best results come from a clean, steady tone between 300 and 1,200 Hz. Hand-sent code with uneven spacing may split or merge letters; adjust the threshold or set the speed manually.
Advertisement
Advertisement
How to use the Morse Code Audio Decoder
Look at the sample decoded on load, or press Play sample to hear it decoded in real time.
Press Start microphone and hold your radio, phone or speaker close to the mic, or choose Decode audio file to open a recording.
Watch the graph: the green line is the tone level and the dashed line is the threshold. Each key-down shows as an orange bar.
Fine-tune if needed: lower the threshold for weak signals, raise it in noise, pick a narrower filter, or enter the tone and speed by hand.
Copy or download the decoded text when you are done.
Morse timing rules the decoder uses
International Morse code is built from one unit of time, the dot (also called a dit). Everything else is a multiple of it, which is why the decoder only needs to estimate the dot length to separate dots from dashes and letters from words.
Element
Standard length
Decoder decision point
Dot (dit)
1 unit of tone
Tone up to 2 units
Dash (dah)
3 units of tone
Tone longer than 2 units
Gap inside a letter
1 unit of silence
Silence up to 2 units
Gap between letters
3 units of silence
Silence longer than 2 units
Gap between words
7 units of silence
Silence longer than 5 units
The deciding points sit between the standard lengths with a margin on each side, which tolerates the stretched dashes and short gaps common in hand-sent code. Speed is reported with the PARIS standard: WPM = 1200 ÷ dot length in milliseconds.
Speed and dot length reference
Speed
Dot
Dash
Letter gap
Word gap
Typical use
5 WPM
240 ms
720 ms
720 ms
1.68 s
First lessons
13 WPM
92 ms
277 ms
277 ms
646 ms
Comfortable beginner copy
18 WPM
67 ms
200 ms
200 ms
467 ms
Built-in sample
20 WPM
60 ms
180 ms
180 ms
420 ms
Everyday on-air contacts
25 WPM
48 ms
144 ms
144 ms
336 ms
Experienced operators
35 WPM
34 ms
103 ms
103 ms
240 ms
Contest speed
Farnsworth timing sends letters at a high speed but stretches the gaps between them. The decoder handles it because it measures dot length from the tones and only uses gaps to split letters and words.
Tips for accurate decoding
Feed it a clean tone. Use a cable from the radio's headphone jack into a line or mic input when you can; acoustic pickup through the air adds room noise and echo.
Tune the receiver to a pitch between 500 and 900 Hz. That range is easy to separate from hum and hiss and is what most operators use.
Check the graph. The dashed threshold line should sit roughly halfway between the noise and the tops of the tone bursts. If short dots are missing, lower the threshold; if noise creates extra dots, raise it or pick the Narrow filter.
Lock the settings for weak signals. Untick the auto boxes and type the pitch and speed so a burst of noise cannot pull the decoder off.
It measures the strength of the Morse tone every 5 milliseconds with a narrow digital filter (a Goertzel filter) tuned to the detected pitch. When the level crosses the threshold the key is down. The length of each tone is compared with the estimated dot length: tones longer than two dots are dashes, gaps longer than two dots end a letter and gaps longer than five dots end a word.
What speeds can it decode?
It works best between about 5 and 35 words per minute. Faster code is possible with the Wide filter, because a narrow filter needs more time to respond. You can also switch off auto speed and type the WPM if you already know it.
Why do I get wrong letters or # symbols?
A # means the received pattern is not a valid Morse character, usually because a dot was missed or two letters ran together. Try moving the threshold, choosing a narrower filter in noise, getting the speaker closer to the microphone, or setting the speed manually. Uneven hand-sent code is harder to decode than machine-sent code.
Can it decode Morse code from a video or a radio recording?
Yes, if the browser can open the file. Most browsers decode WAV, MP3, OGG, M4A/AAC and WebM, including the audio track of many MP4 videos. A clear single tone works best; overlapping stations or heavy static reduce accuracy.
Is my audio uploaded anywhere?
No. The microphone stream and any file you open are processed entirely inside your browser with the Web Audio API. Nothing is recorded, stored or sent to a server.
What does WPM mean in Morse code?
Words per minute is based on the standard word PARIS, which is exactly 50 dot-lengths long including the word space. That gives the formula dot length (ms) = 1200 ÷ WPM, so 20 WPM has a 60 ms dot and a 180 ms dash.
Can it decode flashing light or tapping instead of sound?
No, this tool needs an audio tone. Tapping or clicking sounds have no steady pitch, so they are not detected reliably. For light signals you would need a camera-based decoder.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.