belun.app Blog

Morse Code Translator — Decode Morse to Text, With Audio

To decode Morse code, set the direction to «Morse to text», pick the alphabet, and paste the code with one space between letters and a slash between words.

.... . .-.. .-.. --- → HELLO
... --- ... → SOS
-.-. --- --- .-.. → COOL

The gaps are not decoration — they are part of the code. Run-together Morse such as ...---... cannot be decoded by anything, because it reads equally legally as SOS or EEETTTEEE. Accepted formats ↓

Type text to get dots and dashes, or paste Morse to read it back as plain text. Press Play to hear the result as real audio at anywhere from 5 to 40 words per minute — the same PARIS timing radio operators use. Supports both the Latin and Russian Morse alphabets, plus digits and punctuation.

Morse code chart (A–Z)

The international alphabet, settled at the Berlin conference of 1851 and barely changed since. Code length runs inversely to how often a letter appears in English: E is a single dot, Q takes four elements. Every code below is generated by the same engine that powers the tool, so the chart cannot drift from the output.

Letter ABCDEFGHIJKLM
Code .--...-.-.-.....-.--........----.-.-..--
Letter NOPQRSTUVWXYZ
Code -.---.--.--.-.-....-..-...-.---..--.----..

Digits

Digit 0123456789
Code -----.----..---...--....-.....-....--...---..----.

Punctuation

. full stop .-.-.-
, comma --..--
? question mark ..--..
! exclamation mark -.-.--
: colon ---...
; semicolon -.-.-.
' apostrophe .----.
" quotation mark .-..-.
( opening bracket -.--.
) closing bracket -.--.-
- hyphen -....-
/ slash -..-.
_ underscore ..--.-
= equals sign -...-
+ plus .-.-.
& ampersand .-...
@ at sign .--.-.
$ dollar sign ...-..-

Formats the decoder accepts

A gap in Morse is part of the code, not layout, and that is where most online decoding goes wrong. Here is what this decoder takes, and the one thing it cannot.

What you paste How it reads
... --- ... The canonical form: letters separated by single spaces. Reads as SOS.
.... .. / - .... . .-. . A forward slash is a word gap. Three or more spaces do the same job.
_ _ _ Underscores for dashes — what Morse turns into after a trip through a chat client. Accepted; reads as TTT.
··− ·−· Middots and en/em dashes, as printed charts and Wikipedia use them. Accepted.
...---... Cannot be read — by anyone. With no gaps the same run decodes equally legally as SOS or EEETTTEEE. Add the spaces.

Russian Morse code, and why the alphabet matters

The Russian alphabet was adopted in 1856 and built on existing Latin codes rather than new ones: each Cyrillic letter took the code of a Latin letter that sounded like it. The price is that 26 of the 32 Cyrillic letters share a code outright. Nothing in the received signal says which alphabet was sent, so the decoder asks instead of guessing — .... .. is a perfectly good "HI" and a perfectly good "ХИ".

Most pairs transliterate cleanly — Х/H, Ц/C, Ф/F. The interesting ones are the 4 where the sound drifted: Russian В is a /v/, but Ж had already taken the code for Latin V, so В ended up on W.

.-- Cyrillic В — Latin W
...- Cyrillic Ж — Latin V
--.- Cyrillic Щ — Latin Q
-..- Cyrillic Ь — Latin X
Cyrillic Code Shared with
А .- A
Б -... B
В .-- W
Г --. G
Д -.. D
Е . E
Ж ...- V
З --.. Z
И .. I
Й .--- J
К -.- K
Л .-.. L
М -- M
Н -. N
О --- O
П .--. P
Р .-. R
С ... S
Т - T
У ..- U
Ф ..-. F
Х .... H
Ц -.-. C
Ч ---. —
Ш ---- —
Щ --.- Q
Ъ --.-- —
Ы -.-- Y
Ь -..- X
Э ..-.. —
Ю ..-- —
Я .-.- —

Ё has no code of its own and is sent as Е. If a decode comes out as gibberish, flipping the alphabet is the first thing worth trying.

Speed and timing

Everything is measured in one unit — the length of a dot. A dash is three units, the gap inside a letter is one, between letters three, between words seven. Speed is quoted against the reference word PARIS, which takes exactly 50 units including its trailing gap, so 20 WPM means 1000 units a minute. The slider sets exactly these values.

WPM Dot Dash The word PARIS
5 240 ms 720 ms 12 s
10 120 ms 360 ms 6 s
15 80 ms 240 ms 4 s
20 60 ms 180 ms 3 s
25 48 ms 144 ms 2.4 s
30 40 ms 120 ms 2 s
40 30 ms 90 ms 1.5 s

5–10 WPM is comfortable for a beginner, 20 WPM is a common licensing benchmark, 40 WPM is contest territory. Get the proportions wrong and an experienced operator will not read you, even if every dot and dash is technically correct.

Common words in Morse code

Encoded by the same engine as everything else on this page. Copy a row, paste it into the input and press Play to hear it.

SOS ... --- ...
HELLO .... . .-.. .-.. ---
I LOVE YOU .. / .-.. --- ...- . / -.-- --- ..-
HELP .... . .-.. .--.
YES -.-- . ...
NO -. ---
OK --- -.-
2026 ..--- ----- ..--- -....

SOS was adopted at the 1906 Berlin radiotelegraph conference for its rhythm, not its initials — "Save Our Souls" was reverse-engineered later. Nine even elements in a row sound like nothing else in Morse, which is why it is sent as one unbroken group and why it is written "...---..." on paper.

How it works

  1. 1
    Choose a direction and alphabet Pick Morse to text to read a message, or Text to Morse to write one. Set the alphabet to Latin for English or Cyrillic for Russian — several codes are shared between the two, so the signal alone cannot tell them apart.
  2. 2
    Paste the code with spaces Separate letters with one space and words with a forward slash: ".... . .-.. .-.. ---". The decoder also accepts underscores for dashes, middots for dots, and three or more spaces as a word break. Run-together Morse like "...---..." cannot be read — without gaps it is genuinely ambiguous.
  3. 3
    Listen and copy Press Play to hear it as tones, drag the speed slider to set words per minute, then hit Copy to take the result with you.

Your data stays private

All processing happens entirely in your browser. No files, text, or data are ever sent to our servers. You can disconnect from the internet and this tool will still work.

Frequently asked questions

How do I decode Morse code to text?
Set the direction to Morse to text, pick the alphabet, and paste the code into the left box with one space between letters and a forward slash between words. The plain text appears on the right as you type — there is no button to press. If the result looks like nonsense, switch the alphabet and look again: the same signal reads differently in Latin and Cyrillic.
Why will "...---..." not decode?
Because it has no gaps, and in Morse a gap is part of the code rather than formatting. That same run of nine elements reads equally legally as SOS and as EEETTTEEE — there is no way to choose between them. Write it as "... --- ..." and it decodes. Any site that claims to decode run-together Morse is guessing.
How do I write Morse code so the decoder understands it?
Use a period for a dot and a hyphen for a dash. Put one space between letters and a forward slash between words, like ".... .. / - .... . .-. .". The decoder is forgiving: it also accepts en dashes, em dashes, middots, and three-or-more spaces as a word gap.
What speed is the audio playback?
The slider runs from 5 to 40 words per minute using PARIS timing, the standard reference word. A dash lasts three times a dot, gaps between letters are three dots long, and gaps between words are seven. Amateur radio operators typically start around 5–10 WPM; 20 WPM is a common licensing benchmark.
Does it support Russian Morse code?
Yes. Switch the alphabet selector to Cyrillic to encode and decode the Russian Morse alphabet (А–Я). Because several Russian codes reuse Latin sequences — Х is "....", the same as Latin H — you have to tell the decoder which alphabet to assume.
Why does my text show skipped characters?
Morse has no code for characters like %, #, or emoji, so they are dropped and listed under the output. Letters, digits, and common punctuation (period, comma, question mark, slash, colon, and others) all translate fine.
How are numbers written in Morse code?
Every digit is exactly five elements long, which makes them easy to spot by ear. One is ".----", and each following digit trades a dot for a dash: 2 is "..---", 3 is "...--", 4 is "....-", 5 is ".....". From six it mirrors: "-....", "--...", "---..", "----.", and zero is five dashes. Digits are identical in the Latin and Russian alphabets.
Can it read Morse code from a photo?
No — the tool works on text, not images. If your code is in a screenshot, type it out by hand; in practice that is faster than fighting with recognition, because a single misread element changes the whole letter. The rule of thumb when reading by eye or ear: a short element is a dot, one about three times longer is a dash, and a clear break is a letter boundary.
Is the audio a recording?
No, it is synthesised in the browser — a 600 Hz sine tone through the Web Audio API, the same way Morse sounds on the air. That means it works offline, and it matters more than it sounds: Morse is learned by rhythm, not by looking at dots and dashes on a page.
Is my text sent to a server?
No. The translation table and the audio both run inside your browser tab using JavaScript and the Web Audio API. Nothing is uploaded, logged, or stored, and the tool keeps working with the network switched off.

From the blog

Morse Code in 2026: How It Works and How to Read It How Morse timing actually works, why SOS was picked, and how to translate and hear dots and dashes in your browser. Read the post →

Related tools