摩尔斯电码编解码

文字转电码、电码回文字,还能按国际标准的点划比例把电码放出来听,用来练听抄或者验证自己写的对不对。

文字 → 电码

默认字符之间一个空格、词之间用「/」包一个空格,这是电报里最通用的写法。

时长比例与 SOS

国际标准只规定比例,不规定绝对速度:一个点算 1 个单位,划是 3 个单位;同一个字符内部的符号间隔 1 个单位,字符之间 3 个单位,词之间 7 个单位。速度用 WPM 表示,即以每分钟发多少个「PARIS」这个词来衡量——PARIS 整词正好 50 个单位,于是求得一个点等于 1200 ÷ WPM 毫秒。上面滑到 12 WPM,一个点就是 100 毫秒。

这里播放时用的是正弦波加 5 毫秒淡入淡出。纯正弦波在音头音尾直接切会造成「咔」的爆音,加一个极短的包络就干净了;音调偏高会显得刺耳、偏低会闷,700Hz 左右接近真实电报机的听感。若浏览器提示自动播放被拦截,是因为音频上下文必须在用户手势里创建,再点一次播放即可。

SOS 之所以好识别,是因为它结构对称、节奏感强:三个点、三个划、三个点,从头念和从尾念结构一样,在噪声很大、只能听到断续声的环境里特别不容易听错。它在 1906 年的柏林国际无线电公约上被定为国际通用求救信号,1908 年生效,1912 年泰坦尼克号沉没时大量使用,从此广为人知。需要澄清一点:SOS 不是任何词的缩写,选它纯粹因为点划组合简单、不易混淆。

中文这边要特别说明:摩尔斯电码只有英文、数字和标点,中文没有对应的点划组合。中文早期电报用的是「中文电码」,也就是给每个汉字分配一组四位数字的码表,编解码都需要那张表,本工具没有收录,所以中文输入会提示不支持。要用摩尔斯发中文,通用做法是先把汉字转成拼音,再按英文发送。

解码时的容错是有限度的:多余的空白会被折叠、大写小写都当同一个字符、中点 · 和全角减号 − 会被归一成点和划、`/` 或连续空格当词分隔。但符号顺序本身没有冗余,点划差一个就解出别的字母,所以遇到认不出的组合,工具会把原始的点划列出来,让你自己核对。