在线文本与摩尔斯电码双向转换,支持音频播放、速度调节、频率自定义和波形可视化
摩斯密码翻译器是一款实现普通文本与摩尔斯电码(Morse Code)之间双向转换的在线工具。摩尔斯电码由美国画家塞缪尔·莫尔斯(Samuel Morse)和物理学家阿尔弗雷德·维尔(Alfred Vail)于 1836 年共同发明,是人类历史上第一种广泛使用的数字化编码系统。它通过"点"(Dit,用 · 表示)和"划"(Dah,用 − 表示)两种基本信号的不同排列组合来表示字母、数字和标点符号。在电报时代的一百多年里,摩尔斯电码是全球远程通信的核心技术;即便在今天,它仍然在业余无线电(HAM Radio)、航空航海导航、紧急求救通信等领域发挥着重要作用。
本翻译器完全在浏览器本地运行,支持英文字母 A-Z、数字 0-9 以及常用标点符号的精确编码与解码。内置 Web Audio API 音频播放引擎,可以模拟真实电报的"嘀嗒"声音,支持调节发送速度(5-40 WPM)和音调频率(300-1200Hz),并提供实时波形可视化效果。无论是业余无线电爱好者练习抄收、紧急求救信号生成,还是教育学习和编程实践,本工具都能满足需求。
业余无线电爱好者使用摩尔斯电码进行 CW(Continuous Wave,等幅报)模式通信。与语音通信相比,CW 模式在相同功率下传输距离更远、抗干扰能力更强。使用本工具可以练习编码和解码:先将文本编码为摩斯电码并慢速播放,训练自己的听力抄收能力;也可以将接收到的摩斯电码粘贴到解码框中验证抄收结果。建议初学者从 10-15 WPM 开始练习,循序渐进提高速度。
SOS(··· −−− ···)是国际通用的摩尔斯电码紧急求救信号。三个点(S)、三个划(O)、再三个点(S),因为简单易记而被全球采用。在野外生存、海上遇险、登山迷路等紧急情况下,可以通过手电筒闪烁、敲击金属、吹哨子等方式发送 SOS 信号。使用本工具可以快速确认 SOS 的正确编码节奏,也可以播放音频学习正确的发送速度。除了 SOS,常用的紧急信号还包括 MAYDAY(语音)、XXX(紧急信号)等。
摩尔斯电码是计算机科学和信息论教学中的经典案例。它完美诠释了前缀编码(Prefix Code)的概念——任何一个字符的编码都不是另一个字符编码的前缀,这保证了解码时不会产生歧义。学生可以使用本工具验证手工编码的结果,或观察不同字符的编码长度差异(常用字母如 E 只用一个点,生僻字母如 Q 需要四个符号),这正是早期数据压缩思想的体现。在编程练习中,实现摩斯电码的编解码也是学习查表算法、递归解析的好题目。
摩尔斯电码因其神秘性和可创造性,常被用于密室逃脱、寻宝游戏、互动解谜等娱乐场景中。游戏设计者可以用本工具将提示信息加密为摩斯电码,通过灯光闪烁、声音节拍、密码纸条等形式呈现给玩家。玩家则可以用解码功能快速破译线索。无论是作为出题方还是解题方,摩斯密码翻译器都能让游戏过程更加顺畅有趣。
摩尔斯电码的核心是一张字符到点划序列的映射表。国际电信联盟(ITU)在 ITU-R M.1677-1 建议书中规定了标准摩尔斯电码的完整字符集,包括 26 个英文字母、10 个数字、若干标点符号和特殊 prosign(操作符号如 AR、BT、SK 等)。
编码过程相对简单:遍历输入文本的每个字符,将其转换为大写后查表获取对应的摩斯编码,字符之间用单个空格分隔,单词之间用斜杠或三个空格分隔。解码过程则相反,先按单词分隔符拆分,再按字符分隔符拆分每个单词中的符号,最后通过反向映射表查找对应的字符。
音频播放使用 Web Audio API 实现。通过创建 OscillatorNode 振荡器生成指定频率的正弦波信号,连接 GainNode 音量节点控制开关,按时间序列逐段播放点和划。一个"点"持续 1 个时间单位,"划"持续 3 个时间单位;点划之间间隔 1 个单位,字母之间间隔 3 个单位,单词之间间隔 7 个单位。速度(WPM,每分钟单词数)与单个时间单位的换算公式为:单位时间(ms) = 60000 / (50 × WPM),即标准 PARIS 单词(50 个单位长度)每分钟发送的次数。
// 摩斯密码映射表(部分)
const MORSE_MAP = {
'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---',
'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--',
'Z': '--..',
'0': '-----', '1': '.----', '2': '..---', '3': '...--',
'4': '....-', '5': '.....', '6': '-....', '7': '--...',
'8': '---..', '9': '----.'
};
// 编码函数
function encode(text) {
return text.toUpperCase().split('').map(char => {
if (char === ' ') return '/';
return MORSE_MAP[char] || '';
}).filter(s => s !== '').join(' ');
}
// 解码函数
function decode(morse) {
const REVERSE = Object.fromEntries(
Object.entries(MORSE_MAP).map(([k, v]) => [v, k])
);
return morse.split(' / ').map(word =>
word.split(' ').map(code => REVERSE[code] || '?').join('')
).join(' ');
}
// 速度换算:WPM 转单点位时长(ms)
function wpmToUnitMs(wpm) {
// 标准 PARIS 单词 = 50 个单位
return 60000 / (50 * wpm);
}
以下是常用字母和数字的摩斯电码编码,供快速查阅。记忆摩斯电码有一些小技巧:比如 E(最常用字母)只有一个点,T 只有一个划;数字的编码有规律——0 是五个划,从 1 到 5 是"点渐增划渐减",从 6 到 9 是"划渐增点渐减"。
A:是的,指的是同一个东西。英文统一为 Morse Code,中文翻译有"摩尔斯电码""摩斯密码""莫尔斯码"等多种写法,都是同一个概念。"电码"强调它是电报时代的通信编码,"密码"则更偏向于它作为一种替代编码的神秘感。在正式技术文档中通常称为"摩尔斯电码",在日常和娱乐场景中常被叫做"摩斯密码"。
A:标准摩斯电码本身只支持拉丁字母、数字和少量标点,不直接支持中文。但中文可以通过其他方式用摩斯电码传输:一种是使用中文电码(四位数字代表一个汉字,如"我"=2053),先将汉字转为数字再用摩斯电码发送数字;另一种是直接用汉语拼音传输。本工具支持英文字母和数字的编解码,如果需要传送中文内容,可以先将中文转换为拼音或数字电码再使用本工具。
A:WPM 是 Words Per Minute 的缩写,即每分钟单词数,是衡量摩斯电码发送速度的国际标准单位。计算基准是以"PARIS"这个标准单词(共 50 个时间单位长度)为参考,每分钟能发送多少个这样的单词。初学者建议从 5-10 WPM 开始,熟练后逐步提高到 15-20 WPM。业余无线电爱好者通常要求达到 12-20 WPM 才能参加某些等级的考试,专业报务员可以达到 30-40 WPM 甚至更快。本工具支持 5-40 WPM 的速度范围。
A:SOS 被选为国际求救信号不是因为它是某个词组的缩写(虽然后来有了 Save Our Souls / Save Our Ship 等解释),而是因为它的摩斯编码 ··· −−− ··· 非常简单易记、辨识度高——三个点、三个划、三个点,节奏分明,即使在嘈杂的环境中也容易被识别。SOS 于 1906 年在柏林国际无线电报会议上被确定为国际统一求救信号,1908 年正式生效,取代了之前各国不同的求救信号(如英国使用的 CQD)。
A:这是摩尔斯电码设计的精妙之处——根据字母在英语中的使用频率来分配编码长度。使用频率越高的字母,编码越短。例如 E(出现频率最高)只有一个点(·),T 只有一个划(−),都是 1 个单位;而 Z、Q、X 等不常用字母则需要 4 个符号。这种设计可以最大限度地减少平均传输时长,提高通信效率,和现代数据压缩中的霍夫曼编码(Huffman Coding)思想是一致的。据统计,使用摩斯电码传输英文文本的平均每个字母长度约为 2.5 个单位,远低于固定长度编码的 4-5 个单位。
A:虽然摩斯电码作为主要通信手段的时代已经过去,但它在多个领域仍然具有实用价值:(1)业余无线电:全球仍有数百万 HAM 爱好者使用 CW 模式通信,在远距离低功率通信方面 CW 有不可替代的优势;(2)航空航海:部分导航信标(如 VOR、NDB)仍使用摩斯电码发送台站识别码;(3)紧急通信:在通信基础设施损毁时,简单的摩斯电码可以通过手电筒、反光镜、哨子等简易设备传递信息;(4)辅助技术:有研究用摩斯电码帮助渐冻症等运动障碍患者通过眼部运动进行交流。
A:如果点击播放按钮没有声音,请按以下步骤排查:(1)检查设备音量是否开启,浏览器标签页是否被静音;(2)部分浏览器要求用户先与页面交互才能播放音频,请先点击一下页面任意位置再播放;(3)尝试更换浏览器,推荐使用 Chrome、Edge、Firefox 等现代浏览器;(4)音频是通过 Web Audio API 实时生成的,不依赖外部文件或 CDN,所以网络不影响播放。如果仍然有问题,可以联系我们反馈:[email protected]。
A:Prosign 是 Procedure Sign(操作符号)的缩写,是摩斯电码通信中用于表示特定操作指令的特殊组合。它们不是普通的字母缩写,而是作为一个整体发送(字母之间没有通常的间隔),因此在书写时通常用一个字符上面加横线表示。常见的 prosign 包括:AR(·−·−,表示"结束",即 End of Message)、BT(−···−,分隔符)、SK(···−·−,表示"通信结束,再见")、CQ(−·−· −−,表示"普遍呼叫",即呼叫所有电台)、K(−·−,表示"请回答")等。这些符号在正式的电报通信和业余无线电 CW 联络中非常重要。