One tone
Keep other voices and music away from the microphone.
Listen · decode · create
A Morse code audio translator listens to beeps from your microphone or an uploaded recording and writes out the letters, or plays and downloads your own message as Morse sound. Tone and speed are detected automatically, and nothing leaves your device.
Tap Start listening. No settings needed.
Auto tone · Auto speed · waiting for input
The input meter shows volume, not decoding accuracy.
M4A, MP3, WAV, OGG, WebM supported by your browser · max 20 MB
Automatic detection is on by default. Change these only for a known signal.
Higher values accept weaker tones and may pick up more noise.
Your decoded message will appear here.
Ready to listen
Shaded letters need review. Tap one to compare possible readings.
Save signal measurements to help diagnose a decoding problem. No audio recording or camera image is included. Nothing is sent automatically.
Start a capture to enable Save signal report.
Speed: how quickly the letters play.
Enable longer gaps to adjust this. Lower spacing speed adds more time between letters and words.
Tone: how high the beep sounds.
.. / .-.. --- ...- . / -.-- --- ..-
Type a supported message first.
Ready when you are.
Flashing light may affect sensitive viewers. Stop if uncomfortable. Tap the screen or press Esc to stop.
44.1 kHz · WAV or MP3 · generated on your device
Keep other voices and music away from the microphone.
Even dots and gaps are easier to recognize.
Use Fix in decoder to correct any missed symbols.
The quickest way to decode Morse code audio is to let the tool hear it: either through the microphone while another device plays the beeps, or from a recording you upload. Both routes end in the same place, a line of dots and dashes above the decoded text.
If you have nothing to test with, Try a sample plays a known phrase, I LOVE YOU at 10 WPM and 600 Hz, so you can see the decoder working before you trust it with your own recording.
Live decoding works in real time, but the microphone is the part most people get wrong. The page asks the browser to switch off echo cancellation, noise suppression and automatic gain control, because those filters are tuned for voices and can swallow a steady tone. If the browser keeps them on anyway, you will see a warning: hold the phone close to the speaker in a quiet room.
Keep one tone in the room. Music, speech or a second signal overlapping the beeps is the most common reason a live session produces gibberish. The 40-bar meter under the status line shows volume only; a full meter does not mean the decoder has locked on. Record 10 s, then decode is a useful middle path when the live result keeps changing, because it captures a short clip and analyzes it in one pass.
Any audio format your browser can play will decode, up to 20 MB and three minutes. That covers a phone voice memo, a ham radio clip, a training file or a signal generated by a script, as long as the Morse tone is the loudest thing in it.
| Format | Typical source | Decoding notes |
|---|---|---|
| M4A | iPhone and Android voice memos | Works well; keep the mic near the speaker when you record |
| MP3 | Shared files, downloads | Compression can soften tone edges; clean files decode fine |
| WAV | Generated audio, radio software | Uncompressed, so timing and tone edges stay sharp |
| OGG | Browser apps, open-source tools | Similar to MP3 in practice |
| WebM | Screen or tab recordings | Decodes if the browser can play it; trim long silences first |
Mono recordings with little background noise give the cleanest result. A stereo file still works; the decoder reads the first channel.
Morse code sound is made in the second pane, Text → sound: type a message of up to 1,000 characters and press Play. Letters, numbers and common punctuation such as ? / @ = + are encoded; a character outside the table shows as # in the code line so you can spot it.
Exports are rendered at 44.1 kHz on your device, with the speed, spacing, pitch and waveform you set baked into the file. A study clip, a ringtone or a signal for someone else's decoder all come out of the same button.
The decoder never asks you what frequency or speed the signal uses; it measures both. For a file, it scans 300 to 1,200 Hz in 20 Hz steps with a Goertzel filter and keeps the frequency with the most energy. For the microphone, it watches 400 to 1,000 Hz and picks the band whose level rises and falls the most, which is what a keyed tone does and background hum does not.
Once the tone is known, every frame is marked on or off against a threshold set from the signal's own peak, so a quiet recording is judged on its own scale. The on-runs are then split into two clusters by duration, short ones become dots and long ones dashes, and the gaps are anchored to the 1, 3 and 7 unit spacing of International Morse. The dot length that falls out of this is converted to WPM with the standard 1,200 ÷ WPM rule, which is why a 10 WPM file reports dots of about 120 ms. A manual speed fixes that dot length instead of estimating it.
Automatic detection is on by default, and most recordings decode without touching anything. The controls under Advanced detection settings and Advanced sound settings exist for signals you already know, such as a file you generated at a fixed tone and speed.
| Setting | Pane | Range and default | What it changes |
|---|---|---|---|
| Sensitivity | Sound → text | 1–10, default 5 | Higher values accept weaker tones and let in more noise; lower values ignore faint sound |
| Tone (Hz) | Sound → text | 0 = auto, up to 1,000 | Fixes the frequency the decoder listens for; use when a noisy file has a known pitch |
| Speed (WPM) | Sound → text | 0 = auto, up to 40 | Fixes the dot length instead of estimating it from the signal |
| Speed | Text → sound | 5–40 WPM, default 10 | How fast letters play; letter and word gaps follow unless spacing is customized |
| Spacing speed | Text → sound | 5–40 WPM | Farnsworth-style longer gaps between letters and words at the same character speed |
| Tone and Sound | Text → sound | 300–1,000 Hz, default 600; clean tone, telegraph click or buzzer | Pitch and waveform of the generated audio |
Reset to automatic clears any manual tone or speed. The telegraph click option plays a short 900 Hz tap when a symbol starts and a 700 Hz tap when it ends, which is how a mechanical sounder is heard rather than a continuous beep.
A wrong result almost always traces to one of six causes, and the fix is usually on the page rather than in a different recording. Work down the table from the top; the first two rows cover most cases.
| What you see | Likely cause | Fix |
|---|---|---|
| Random letters, nothing readable | Another sound is louder than the Morse tone (music, speech, a second signal) | Move closer to the speaker, quiet the room, or re-record with one tone |
| Mostly right, a few letters shaded | Uneven keying or a dropout inside a dash | Tap each shaded letter and pick the alternative reading, or use Fix in decoder |
| Words run together | Word gaps shorter than seven units in the source | Set Speed (WPM) manually to the sending speed so gap classification is fixed |
| Letters split into fragments | Threshold too low for a noisy file | Lower Sensitivity to 3 or 4 so faint noise is not counted as a dot |
| Nothing decodes at all | Tone outside the scanned range, or the browser mic is filtering | Re-record with the tone between 400 and 1,000 Hz, or follow the on-screen mic warning and retry |
| Result changes while listening | Signal still arriving, or the source is being replayed | Wait for the full message, or use Record 10 s, then decode for a single pass |
If none of these help, open Wrong result? and save a signal report. It contains timing measurements only, no audio, and it is not sent anywhere unless you choose to share it.
Ham radio operators use a Morse code translator with audio input to check their own CW sending or to read a recorded contact without copying by ear. Students and anyone training their ear can generate a clip at 10 WPM, play it on a second device, and confirm the decoder hears what they intended to send.
Puzzle and escape room designers verify that an audio clue actually resolves to the right word. Developers testing a Raspberry Pi buzzer or a Python script point the microphone at the hardware and compare the decoded text with the input. Archivists and teachers use the upload route for old recordings and classroom demonstrations, where a clean WAV gives the most dependable read.
Practice letters, make a ringtone, prepare a study clip or compare a recording with the alphabet chart.
Watch the sound travel between two stations in the Simulator →
Make a clean image or read Morse in a picture.
Try a straight key and American Morse.
Type kana or romaji, get Wabun Morse.
Send between two stations and follow the signal.
Read dots, dashes, spoken Morse or binary.
Listen to clean Morse or create a sound file.
Flash a message with your screen or flashlight.
Listen, type and work on weak letters.
Quiz yourself or measure your speed.
Tap a message and improve your timing.
Plan beads, colours and the fit on your wrist.
Design a stencil and check its spacing.
No. Microphone input and uploaded files are processed in your browser with the Web Audio API, and nothing is stored or sent to a server. The optional signal report holds timing measurements only, and you decide whether to share it.
Any audio format your browser can play: M4A, MP3, WAV, OGG or WebM, up to 20 MB and three minutes. Mono files with one clear tone decode most reliably, and WAV keeps tone edges sharpest.
Yes. With the microphone running, letters appear as each character's beeps finish, and the result keeps updating until you stop. An uploaded file is analyzed in one pass as soon as it loads.
Yes, in Safari on iPhone and Chrome on Android, with nothing to install. The browser asks for microphone permission the first time you tap Start listening; voice memos can be uploaded directly from the phone.
Yes. Switch to Text → sound, type the message, and choose WAV or MP3. The export keeps the speed, spacing, pitch and waveform you selected and is generated on your device.
Yes, indirectly. Play the video or app on one device and let this page listen on another, or use Record 10 s, then decode for a short clip. A saved screen recording can also be uploaded if your browser can play the file.
Checked against ITU-R M.1677-1 · Last reviewed · How we check our pages · Report it