Audio Morse Code Decoder
Upload an MP3 or WAV file containing Morse code beep tones and decode it to plain text using browser-based frequency analysis. No server upload — completely private.
Manual Input — if automatic detection fails
How the Audio Decoder Works
This tool uses the browser's built-in Web Audio API to process your audio file entirely locally. When you upload a file, the audio is decoded into raw PCM samples. The tool then scans the audio in short overlapping windows, computing the signal energy within the target frequency band you specify using a frequency analysis approach.
Each time window is classified as either "tone on" (Morse signal present) or "tone off" (silence) based on whether the energy in that frequency band exceeds the threshold you set. The resulting pattern of on/off segments is then measured and compared to expected dot and dash durations calculated from your WPM hint, producing a sequence of dots, dashes, letter spaces, and word spaces.
This approach works best with clean CW recordings — the type produced by Morse practice tools, radio transmitters, or our own main translator. Recordings with background noise, inconsistent pitch, or heavily compressed audio will give less accurate results. The Manual Input fallback handles any case where automatic detection is insufficient.
How to Use This Tool
Configure Settings
Set the frequency range of your Morse beep. Default 400–1200 Hz works for most CW signals. Set your expected WPM.
Upload Audio
Drop or browse to upload an MP3 or WAV file. The file is read in your browser — nothing is uploaded to any server.
Analyse & Decode
Click "Analyse & Decode". The tool processes the audio and displays the detected Morse code and decoded text.
Adjust if Needed
If results look wrong, adjust Threshold or WPM and try again. Or type the Morse manually in the fallback box.
Understanding the Settings
Adjusting these four parameters correctly is the key to good automatic detection results.
Freq Min / Max
The frequency range of the Morse beep tone in Hz. Standard CW radio tones are typically between 400–800 Hz. Our main translator uses 600 Hz by default. Set Min below and Max above the actual tone frequency. Default: 400–1200 Hz
Threshold (%)
How strong a signal must be (relative to the loudest signal detected) to be classified as "tone on". Lower values detect quieter signals but may trigger on noise. Higher values require a stronger signal. Default: 25%
WPM Hint
Your estimate of the transmission speed in words per minute. This is used to calculate the expected dot length and classify each segment as a dot, dash, letter gap, or word gap. Default: 15 WPM
Troubleshooting Tips
If you see too many dots with no dashes — increase WPM. If everything looks like one long dash — decrease WPM. If you see random noise — raise Threshold. If some signals are missed — lower Threshold.
Capabilities & Limitations
What Works Well
- Clean CW sine wave tone recordings
- WAV format (uncompressed — best accuracy)
- Recordings from Morse practice tools and our translator
- Consistent speed and pitch throughout
- Low background noise
- Adjustable frequency range and threshold
- Manual correction always available as fallback
- Visual waveform display for debugging
Important Limitations
Audio decoding is complex. Results may be unreliable with:
- Heavy background noise or static
- Variable pitch during transmission
- Highly compressed MP3 files
- Very high or very low WPM speeds
- Recordings with voice, music, or multiple simultaneous signals
- Telegraph Click mode recordings (non-sinusoidal waveform)
Always use Manual Input when automatic detection is inaccurate.