Morse code translator for text and audio
Type plain English (or paste dots and dashes) and get International Morse the other way — live as you type. Play the sequence as CW tones, tweak WPM and pitch, copy either side. Decoder, converter, and “text to Morse” searches land here on purpose: one solid tool instead of five thin clones.
When to use
Checking a message before you send it as sound or light; decoding a puzzle string; hearing how a callsign or short phrase sounds at a chosen WPM; confirming a paste of dots and dashes before you share it.
When not
Don’t use this as a life-safety radio procedure course. For structured learning, open the trainer or listening practice. Image-from-photo OCR is not supported (and won’t be). Emergency certification is not what this page is for.
Assumptions
International Morse for Latin letters, digits, and common punctuation. Chinese characters use standard Chinese Telegraph Code (汉字 → 4-digit CTC → Morse digits), same scheme as traditional Chinese CW traffic — not pinyin. Word gap shown as `/` by default; letter gap as space. Pretty Unicode dits/dahs are normalized. Audio uses Web Audio after your first click (browsers block autoplay).
Examples
Input
Text: SOS
Result
Morse: ... --- ...
Continuous prosign-style SOS practice also lives on the SOS page.
Input
Text: 中国
Result
CTC 0022 0948 → eight digit Morse groups
中 = 0022 · 国 = 0948. Play works the same as Latin.
Input
Morse: .... . .-.. .-.. --- / .-- --- .-. .-.. -..
Result
Text: HELLO WORLD
Slash separates words; spaces separate letters.
Input
Play at 20 WPM · 600 Hz
Result
Hear the sequence; Stop cuts tones mid-schedule
How it works
- Encode maps each character to a dit/dah pattern; unknown characters are skipped with a status note.
- Decode splits on spaces and / (or |); unknown tokens become ? with a clear skip list.
- Playback builds a PARIS-based timing table, then schedules Web Audio oscillators after you click Play.
- Flash / vibrate (optional) follow the same on/off schedule; Stop closes audio immediately.
dit ms ≈ 1200 / WPM · dah = 3×dit · letter gap ≈ 3 dit · word gap = / (7 dit timing)
Gotchas
- American Railroad Morse is not this chart — if an old book disagrees, you’re probably on the wrong alphabet.
- Pretty Unicode dots `·—` and ASCII `.-` both work; mixed junk spaces still break decode.
- Autoplay: hit Play once to unlock audio; silent failure is usually a browser gesture rule, not a broken tone.
- Huge pastes are fine locally, but keep Challenge share URLs short if you plan to share Morse elsewhere.
Compare
What you can do on this page
Encode plain text into International Morse, decode dots and dashes back to letters, play the sequence as CW-style tones, adjust WPM and pitch, copy either pane, and optionally flash or vibrate the pattern. Swap panes when you want Morse on the left. Sample and Clear reset the console without leaving the page.
Searches for “decoder,” “converter,” or “text to Morse” land here on purpose: one solid bidirectional tool instead of five thin clones with the same engine renamed.
Input tips that save frustration
- Prefer ASCII .- for long pastes; pretty ·— also works after normalization.
- Word breaks: use / (or multiple spaces). Letter breaks: single spaces.
- Unknown characters are skipped with a status note — check the status line under the console.
- Browsers block autoplay: click Play once after the page loads to unlock Web Audio.
Where to go next
Need louder focus on tone shaping? Try the audio translator. Learning path: trainer and listening practice. Visual only: flashlight. Chart peek: alphabet. Distress rhythm: SOS.
Common questions
Direct answers — no synonym padding.
Related tools
Practice tool only — not a license exam, not emergency training certification. See Methodology and Terms.