摩尔斯电码翻译与音频解码
在任意一侧输入,另一侧随之更新。没有东西会被悄悄丢掉,计时严格遵循标准,而录音也能走回头路 —— 音调、速度和阈值都是实测,而非假设。
工作方式
输入
两个输入框互为驱动。标点、带重音的字母以及 <SK> 这类缩语符都在表里,而真正没有编码的字符会被标记,而不是删掉。
调整发送
字符速度和整体速度是两个独立的旋钮 —— 这正是法恩斯沃思的含义。音调和波形也由你决定,时间轴会在你按下播放之前,按真实时长显示每一个点、划和间隔。
或者让它来听
打开录音,或者用麦克风。它会扫描找到载波,用大津法给包络定阈值,对连续段长度聚类求出单位时长,并报告音调、速度以及区分得有多干净。
带走
复制任意一侧,把音频下载为离线渲染的全质量 WAV,或者把消息直接交给套件里的另一个工具。
完整的字母表
字母、数字、十八种标点、各国带重音的字母,以及实际会发送的缩语符。真正没有编码的字符会被标出来,而不是悄悄删掉。
一个振荡器,一条包络
整条消息是一个音,由预先排定、带 5 ms 斜坡的增益曲线来开合,而不是每个点一个振荡器。节点更少,没有键控咔哒声,音频上下文也是复用而非每次新建。
它能听
把它对准一段录音或麦克风。Goertzel 扫描找到载波,大津法给包络定阈值,对连续段长度聚类得出单位时长 —— 音调和速度都是实测,不是假设。
把法恩斯沃思做对
字符速度与整体速度分开,多出来的时间按 ARRL 规定的 3:4 比例分摊到间隔上。这才是学会「听字母」而不是「数点」的方式。
看得懂的时间轴
每个点、划和间隔都按真实长度绘制,播放头在上面移动。把鼠标放到某个块上,就能看到它有多少毫秒。
导出音频
离线渲染成 44.1 kHz 的 16 位 WAV,可直接用于视频、课件或铃声,不必再从扬声器录一遍。
不上传任何内容
翻译、合成和解码都在这个标签页里完成。麦克风的音频流不离开页面,录音也不会保存到任何地方。
交接给套件里的其他工具
把消息直接送到 AudioSnap、Binary-Flow、QR Bolt 或 WordFlow,无需下载再上传。
双向互通,而且都不靠猜
一个页面里既是发报键也是收报机:包含标点与缩语符的完整 ITU 字母表、带法恩斯沃思间隔的标准 PARIS 计时,以及能从录音里读回摩尔斯的解码器。
浏览器就是发射机
Web Audio 合成音调,离线上下文渲染 WAV,decodeAudioData 加上 Goertzel 滤波器把录音读回来。这些都不需要服务器、账号或网络请求,关掉标签页,消息和录音就都没了。
既为学习,也为读懂
学摩尔斯,就是要在足够快的速度下听清字符,同时让字符之间留出余地 —— 法恩斯沃思间隔正是为此而生,所以这里把字符速度和整体速度分开。读摩尔斯则是反方向:电影里的一段、从接收机录下的信标、别人用语音消息发来的谜题。两者共处同一个页面,而后者会告诉你它测到了什么 —— 以赫兹表示的音调、以毫秒表示的单位时长、由此得出的每分钟字数,以及信号与间隔分离得有多干净 —— 这样即使答案错了,你也能跟它讲道理,而不是只能接受它错了。
你的内容不会离开这个标签页:不上传、不保存、不记录。站点确实会统计每个工具被打开过多少次,那只是一个没有 Cookie、没有标识符的总数,没有任何东西能把一次访问和你联系起来。
常见问题
Q我的文本或录音会被发送吗?+
不会。翻译、音调合成、WAV 渲染和音频解码都在你的浏览器里完成。麦克风的音频流不离开页面,两次访问之间也不保存任何东西。
Q支持哪些字符?+
完整的 ITU 字符集:A–Z、0–9、十八种标点、各国带重音的字母(À、Ä、Ç、É、Ñ、Ö、Ü、ß 等),以及常见缩语符 —— 用尖括号输入,比如 <SK>。没有摩尔斯对应的字符会用 # 标出并列出来,而不是被丢掉。
Q字符速度和整体速度有什么区别?+
这就是法恩斯沃思间隔。点和划按你设定的字符速度发送,而字母之间、单词之间的间隔会被拉长,直到整条消息达到整体速度。这样你学会的是按节奏辨认字母,而不是数元素个数。
Q它怎么解码一段录音?+
先用 Goertzel 滤波器在 250–1600 Hz 扫描找出载波,再以 5 ms 窗口测量该单一频率的幅度得到包络,用大津法选出开/关阈值,然后对得到的连续段长度聚类求出单位时长。音调、单位时长、速度以及两个聚类的分离度都会显示出来。
Q解码结果不对,为什么?+
看看分离度数值和包络曲线图。噪声大的录音、逐渐衰落的信号,或者间隔不均的手工发报,都会让信号段和间隔段互相重叠;一旦重叠,就不存在能正确分开它们的阈值。把片段裁到最干净的一段通常就能解决。
Q音频能用在别的地方吗?+
可以。WAV 会离线渲染为 44.1 kHz、16 位、单声道,并采用你设定的音调、波形和速度,可以直接放进视频或课件里。