Morse Code Translator: Text to Morse Code and Back, with Audio
“Hello, World” in Morse code is ···· · ·−·· ·−·· −−− −−··−− / ·−− −−− ·−· ·−·· −··. Type text to get International Morse code, or paste Morse to read it as text: letters are separated by a space and words by “ / ”, and dots and dashes typed as . - · − – all work, as do three or seven spaces between words. The code is the one in ITU-R M.1677-1, with figures, punctuation such as @ (·−−·−·) and the procedural signals, so SOS sent as one distress group is ···−−−···. Characters the code has no sign for are shown and listed, never dropped. Press Play to hear it at the speed you choose.
Updated Runs in your browser: nothing you enter is uploadedHow this tool works
Stays in your browser. Nothing you type is sent anywhere or saved.
Text
Morse code
Edit either box. In Morse, separate letters with a space and words with “ / ” (or three or more spaces). Dots and dashes can be . - or · −. Write a prosign in text as <SOS>.
Result
11 signs in 2 words · about 11 s at 15 WPM.
Play it
Sound starts only when you press Play. The speed uses the PARIS standard: one dot lasts 1200 ÷ WPM milliseconds.
The lamp is off because your device asks for reduced motion. The letter being sent is shown instead, without flashing.
Plays for about 11 s at 15 WPM.
Morse code letters A to Z
| Letter | Morse | Sounds like | Dots |
|---|---|---|---|
| A | ·− | di-dah | 5 |
| B | −··· | dah-di-di-dit | 9 |
| C | −·−· | dah-di-dah-dit | 11 |
| D | −·· | dah-di-dit | 7 |
| E | · | dit | 1 |
| F | ··−· | di-di-dah-dit | 9 |
| G | −−· | dah-dah-dit | 9 |
| H | ···· | di-di-di-dit | 7 |
| I | ·· | di-dit | 3 |
| J | ·−−− | di-dah-dah-dah | 13 |
| K | −·− | dah-di-dah | 9 |
| L | ·−·· | di-dah-di-dit | 9 |
| M | −− | dah-dah | 7 |
| N | −· | dah-dit | 5 |
| O | −−− | dah-dah-dah | 11 |
| P | ·−−· | di-dah-dah-dit | 11 |
| Q | −−·− | dah-dah-di-dah | 13 |
| R | ·−· | di-dah-dit | 7 |
| S | ··· | di-di-dit | 5 |
| T | − | dah | 3 |
| U | ··− | di-di-dah | 7 |
| V | ···− | di-di-di-dah | 9 |
| W | ·−− | di-dah-dah | 9 |
| X | −··− | dah-di-di-dah | 11 |
| Y | −·−− | dah-di-dah-dah | 13 |
| Z | −−·· | dah-dah-di-dit | 11 |
Morse code numbers 0 to 9
| Figure | Morse | Sounds like | Dots |
|---|---|---|---|
| 0 | −−−−− | dah-dah-dah-dah-dah | 19 |
| 1 | ·−−−− | di-dah-dah-dah-dah | 17 |
| 2 | ··−−− | di-di-dah-dah-dah | 15 |
| 3 | ···−− | di-di-di-dah-dah | 13 |
| 4 | ····− | di-di-di-di-dah | 11 |
| 5 | ····· | di-di-di-di-dit | 9 |
| 6 | −···· | dah-di-di-di-dit | 11 |
| 7 | −−··· | dah-dah-di-di-dit | 13 |
| 8 | −−−·· | dah-dah-dah-di-dit | 15 |
| 9 | −−−−· | dah-dah-dah-dah-dit | 17 |
Morse code punctuation and signs
| Sign | Morse | Name | Dots |
|---|---|---|---|
| . | ·−·−·− | Full stop (period) | 17 |
| , | −−··−− | Comma | 19 |
| : | −−−··· | Colon or division sign | 17 |
| ? | ··−−·· | Question mark | 15 |
| ' | ·−−−−· | Apostrophe | 19 |
| - | −····− | Hyphen or minus sign | 15 |
| / | −··−· | Fraction bar or division sign | 13 |
| ( | −·−−·− | Left bracket (parenthesis) | 19 |
| ) | −·−−·− | Right bracket (parenthesis) | 19 |
| " | ·−··−· | Quotation mark | 15 |
| = | −···− | Double hyphen (equals sign) | 13 |
| + | ·−·−· | Cross or addition sign | 13 |
| × | −··− | Multiplication sign | 11 |
| @ | ·−−·−· | Commercial at | 17 |
Prosigns: SOS and other procedural signals
| Prosign | Morse | Meaning | ITU-R M.1677-1 name | Note |
|---|---|---|---|---|
| <SOS> | ···−−−··· | Distress signal | Not listed (conventional) | The international distress signal, sent as one group. Typed as S O S with gaps it is three separate letters. |
| <HH> | ········ | Error, correction follows | Error | Eight dots. |
| <VE> | ···−· | Understood | Understood | Also written SN. |
| <AS> | ·−··· | Wait | Wait | Stand by. |
| <SK> | ···−·− | End of work (end of contact) | End of work | Sent when a contact is finished. |
| <KA> | −·−·− | Starting signal (attention) | Starting signal | Opens a transmission. |
| <AR> | ·−·−· | End of message | Cross or addition sign | The same signal as +, so a decoded .-.-. is shown as +. |
| <BT> | −···− | Break (new paragraph) | Double hyphen | The same signal as =, so a decoded -...- is shown as =. |
Morse code timing
| Part | Length in dots |
|---|---|
| Dot | 1 |
| Dash | 3 |
| Gap between the dots and dashes of one sign | 1 |
| Gap between two signs (letters) | 3 |
| Gap between two words | 7 |
| PARIS plus its word gap | 50 |
Speed in words per minute
| WPM | One dot (ms) | One dash (ms) | PARIS takes | Gap unit at 5 WPM effective (dots) |
|---|---|---|---|---|
| 5 | 240 | 720 | 12 s | 1.0 |
| 10 | 120 | 360 | 6.0 s | 3.6 |
| 13 | 92.3 | 276.9 | 4.6 s | 5.2 |
| 15 | 80 | 240 | 4.0 s | 6.3 |
| 20 | 60 | 180 | 3.0 s | 8.9 |
| 25 | 48 | 144 | 2.4 s | 11.5 |
| 30 | 40 | 120 | 2.0 s | 14.2 |
| 40 | 30 | 90 | 1.5 s | 19.4 |
How to translate text to Morse code
- Type or paste your text. Write it in the text box, for example “Hello, World”. Upper and lower case give the same code, and Morse has no difference between them.
- Read the Morse box. The Morse appears as you type: ···· · ·−·· ·−·· −−− −−··−− / ·−− −−− ·−· ·−·· −··. A space separates letters and “ / ” separates words. Switch the symbols between . - and · − if you prefer.
- Check the list of unknown characters. Anything the code has no sign for, such as ! or an accented letter, is marked [x] in the Morse and listed under the boxes, so you know what was not translated.
- Play it or copy it. Set the speed in WPM and the tone, then press Play to hear it (browsers only start sound after a click). Copy either box with its Copy button. To go the other way, paste Morse into the Morse box.
Frequently asked questions
- How do I write SOS in Morse code?
- ···−−−···: three dots, three dashes, three dots, sent as one group with no gaps. Typed as the letters S, O, S with spaces it is ··· −−− ···, which has the same dots and dashes with a gap between the letters. In this tool write <SOS> to get the distress group and plain SOS to get three letters.
- How is a Morse code message spelled out?
- Letters are separated by a space and words by a slash with spaces around it. “Hello, World” is ···· · ·−·· ·−·· −−− −−··−− / ·−− −−− ·−· ·−·· −··. Reading Morse works the same way back: the translator also accepts three or seven spaces between words, and the dot and dash look-alikes · • − – — _.
- What is the Morse code for @?
- ·−−·−· (di-dah-dah-di-dah-dit). The commercial at sign is part of International Morse code in ITU-R M.1677-1, so an email address such as name@example.com becomes −· ·− −− · ·−−·−· · −··− ·− −− ·−−· ·−·· · ·−·−·− −·−· −−− −−.
- What speed is 20 WPM, and what is the PARIS standard?
- Speed is counted in words of five letters, with PARIS as the standard word. PARIS and the gap after it take 50 dot lengths, so at W words per minute one dot lasts 1200 ÷ W milliseconds: 60 ms at 20 WPM, 80 ms at 15 WPM. At 20 WPM the word PARIS itself takes 2.6 s to send.
- What is Farnsworth spacing?
- Farnsworth spacing keeps each letter at full speed but stretches the gaps between letters and words, so the overall speed is lower. It is used for learning, because you hear each sign at its real rhythm while having more time to think. In this tool, tick Farnsworth, set the sign speed, and set a lower effective WPM: at 20 WPM signs with 10 WPM effective, the gap unit is 3.6 dots instead of 1.
- Why does the translator show [x] or � for some characters?
- Because the code has no sign for them. ITU-R M.1677-1 covers 26 letters, 10 figures and a short list of punctuation. Characters such as !, #, &, accented letters, emoji and most symbols are not in it, so text to Morse writes them as [x] (for example .... .. [!]), skips them in the audio and lists them under the boxes. Morse groups with no meaning are shown as � and listed as well. Nothing is ever dropped silently.
- Can I send punctuation like brackets and the equals sign?
- Yes: . , : ? ' - / ( ) " = + × and @ all have codes. Both brackets use −·−−·−; when decoding they come out as ( and ) in turn. + shares its code with the prosign <AR> (·−·−·) and = with <BT> (−···−), and × shares its code with X, so those decode to the character.
- Why does nothing play until I press the button?
- Browsers do not let a page start sound by itself. This page creates its audio only when you press Play, which counts as the click the browser needs, and Stop ends it at once. If the device is silent, check the volume and that the sound option is ticked.
- Does the flashing lamp respect reduced motion?
- Yes. If your device is set to reduce motion, the lamp is switched off and replaced by a steady readout of the letter being sent, so nothing flashes. Without that setting, the lamp is a small light that follows the signal and you can turn it off.
- Is anything I type sent anywhere?
- No. Translation and sound happen in your browser and nothing is uploaded or saved. Reload the page and your text is gone.
How it works
Text is read one character at a time, upper-cased, and looked up in the table of ITU-R M.1677-1 (International Morse code): the 26 letters, 10 figures and the punctuation and signs of the recommendation. Typographic quotes, apostrophes and dashes are folded to the plain sign first, and a prosign written as <SOS>, <AR> and so on is sent as one group. A character with no sign is kept in the output as [x] and listed. Morse is read by splitting on word gaps (“ / ”, a slash, or three or more spaces) and then on spaces between letters, after the dot variants · • and the dash variants − – — _ are folded to . and -. A group that is not in the table is shown as � and listed. Two codes are shared and resolved the same way every time: the bracket code decodes to ( and ) in turn, and the codes of +, =, / and X decode to those characters rather than to the prosigns <AR> and <BT>, and X is read as the letter rather than the multiplication sign. Timing follows the PARIS standard: a dot is 1200 ÷ WPM milliseconds, a dash 3 dots, the gap inside a sign 1, between signs 3 and between words 7. Farnsworth spacing keeps signs at the chosen speed and divides the time left over for an overall effective WPM among the 19 gap units of PARIS, so (60 000 ÷ effective − 37 200 ÷ speed) ÷ 19 ms is one gap unit. Sound is made with the Web Audio API: a sine oscillator whose volume is switched on and off with short ramps to avoid clicks, started only from a button press. Where this tool follows convention rather than the recommendation (the two-letter names of prosigns, and the SOS distress group), the table says so. Everything runs in your browser.
Sources
More free tools
- Text to Binary ConverterConvert text to binary, hex, octal or decimal bytes and back. UTF-8 by default (é is 2 bytes, an emoji 4) or UTF-16, with a per-character breakdown.
- Roman Numeral ConverterConvert numbers and years to Roman numerals and back, 1 to 3,999 (larger with a bar). Strict checking explains why IIII, VX or IC are not valid.
- SMS Character CounterCount SMS segments: GSM-7 (160 / 153) or UCS-2 (70 / 67), characters left, and which characters force UCS-2, with a one-click GSM-friendly fix.
- Number Base ConverterConvert whole numbers between binary, octal, decimal, hex and any base from 2 to 36, up to 5,000 digits, with grouped digits and a two’s-complement view.
- Word CounterCount words, characters, sentences and reading time, and check your text against X, LinkedIn, Instagram, SMS and meta description limits.
- Case ConverterConvert text to UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case or CONSTANT_CASE. Stays in your browser.