雜記 › 資源分享 › SOS 只有 9 個音,整句字母表要 104 個音:摩斯碼的節奏怎麼算出來

SOS 只有 9 個音,整句字母表要 104 個音:摩斯碼的節奏怎麼算出來

三個短、三個長、三個短:為什麼 SOS 要放 3.0 秒

絕大多數人記住的摩斯碼是一串燈的形狀,而不是一段時間。等到自己想給一段舊影像配電報音,或者核對一份老設備手冊裡的訊號表,麻煩就來了:點和劃各佔多久,同一個字母裡的符號之間停多久,字母之間、詞與詞之間又該停多久。SOS 之所以是 9 個音、約 3.0 秒,全部能從這幾個數推出來。

比例是通行的那一套:點取 1 個單位,劃取 3 個單位,同一碼組內部的間隔是 1 個單位,字母之間 3 個單位,詞與詞之間 7 個單位。所謂「速度」並不改動比例,只改變基準點的長度——基準點一確定,後面每一檔時長都是它的整數倍。

時長種類合多少個點13 檔5 檔
點1 個單位92 毫秒240 毫秒
劃3 個單位276 毫秒720 毫秒
字母之間3 個單位276 毫秒720 毫秒
詞與詞之間7 個單位644 毫秒1680 毫秒

基準點的算法也寫得很直白:點的毫秒數取整自 1200 除以速度值。13 這個預設檔位算出來是 92 毫秒,未取整的值是 92.307692;把速度調到 5 檔,點就變成 240 毫秒;調到 20 檔是 60 毫秒,拉滿到 40 檔只剩 30 毫秒。乘上比例之後,同一句在兩端的速度下時長差出八倍。

點 92 毫秒 劃 276 毫秒 字母間隔 276 毫秒 單詞間隔 644 毫秒

圖 1|基準點取 92 毫秒時,劃與字母間隔同為 276 毫秒、單詞間隔 644 毫秒。條形長度按時長等比。

一句長話要放多少個音,取決於符號數而不是字數

把整句字母表 THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 編出來是 104 個符號,其中點 54、劃 50;按上面的時序逐音累加到末音結束是 37720 毫秒,末尾再補一個劃的長度 276 毫秒,頁面才報出 38.0 秒。聽起來不算久,但它含空格有 43 個字元、35 個碼組、9 個詞,平均每個詞不到四個碼組、音卻要十一個以上——真正的成本在間隔上,不在符號本身。

SOS 9 個音 · 3.0 秒 CQ CQ CQ DE UU 34 個音 · 13.2 秒 2026-10-15 52 個音 · 17.0 秒 整句字母表 104 個音 · 38.0 秒

圖 2|同一檔速度下四條範例的音數與時長,條形按音數等比;日期那一串只有 10 個碼組,卻要 52 個音。

HELLO WORLD 是個更好用的對照:10 個碼組、2 個詞,編出來 32 個符號(點 19、劃 13),按單位折算共 80 個單位,逐音累加 10488 毫秒。用 10488 除以基準點 92 恰好得 114.000 個點單位。我拿摩斯電碼轉換把這四句各放了一遍,頁面上的提示寫著「開始播放,共 32 個音,約 10.8 秒」——10488 加收尾那 276 毫秒再換算成秒,四捨五入正是 10.8。

碼表沒有想像的那麼大,但也不按「不超過 5 位」長

  • 整張表 54 個鍵:26 個字母、10 個數字、18 個標點,54 個碼值互不重複,反查是一一對應的。
  • 最短的碼只有 1 位:點解出 E,劃解出 T;數字一律 5 位,五個點就是 5,五個劃就是 0。
  • 長度超過 5 位的碼有 13 個,全部是標點;最長的是 $ 的 7 位碼 ...-..-。

這裡要提醒一句和頁面文案不一致的地方:解碼失敗的提示固定寫著「每段只能由 . 與 - 組成且不超過 5 位」,可 7 位的 ...-..- 照樣能解出 $,6 位的 .-.-.- 也能解出句點。那句話描述的是字母和數字的習慣長度,不是整張表的邊界。同樣,工具說明裡寫的「20 個標點」實際是 18 個,別照著它數。

容錯是一張白名單,不是「長得像就行」

為了讓手寫稿裡的各種破折號也能進來,編碼前有一串替換:4 個字元歸到點,5 個歸到劃,2 個歸到詞分隔。但它是白名單——全形星號、全形減號、中文句號、全形問號都不在其中,會原樣留著。底線反而被當成劃,於是 A_B 編碼時得到 .- ..--.- -...(底線本身在表裡,是 6 位的 ..--.-),可拿 A_B 去解碼會得到 ? :底線先變成劃,整段連成一個超長的碼組,反查不到。最直觀的一例是 ._,先歸一成 -.-,正好解出 K。

中文的情況更乾脆:輸入「中文 HELLO」,輸出只剩 .... . .-.. .-.. ---,並明確寫著「已跳過 2 個無法編碼的字元:中 文」。想走中文只能先轉成拼音或者四位電報碼數字,中文轉拼音這類先把字變成 Latin 的處理是必經的一步。全形標點同理被跳過,所以「中英文標點互譯」這個說法在這張表裡並不成立。大小寫則完全不敏感,編碼前一律轉大寫,hello world 與 HELLO WORLD 輸出相同;素材裡兩種混著寫的,先用大小寫轉換統一一遍更省事。

還能調的兩樣:速度與音調

速度輸入框允許 5 到 40,箝位規則值得知道:留空、寫 0、寫 abc 都落回 13;寫 500 或者 41 會被壓到 40;寫 -7、4 甚至 4.9 都抬到 5(先取整再箝位,小數部分直接丟掉)。音調不是連續的,只有 500、600、700、800 四個檔,預設選中 600。

Q:為什麼我打中文進去,出來是空的?

因為碼表裡沒有漢字。整句「你好世界」四個字全部跳過,輸出是空字串,告警會列出被跳過的四個字。這不是編碼失敗,是這些字元壓根不在表裡。

Q:5 檔和 40 檔差多少,為什麼要從慢的開始?

差八倍。5 檔時點是 240 毫秒、單詞間隔 1680 毫秒;40 檔時點只剩 30 毫秒、單詞間隔 210 毫秒。同一句 SOS 在慢檔更容易辨認,因為區分字母與字母的 3 個單位被放大了同樣倍數。初學建議是 8 到 13 檔。

Q:播放的結果能重現同一次嗎?

不能。編碼本身是確定的,同樣輸入永遠得到同一串碼;但播放的時刻只由這串碼和當時那檔速度即時算出,沒有第三個參數可保存,想留證據應該記編碼串而不是錄音。

Q:常用訊號表的碼和現編的碼一致嗎?

一致,只是空格切法不同。DE 是 -.. .,CQ 是 -.-. --.-;AR 按字母逐個編碼得 .- .-.,而訊號表習慣把它寫成連在一起的 .-.-.,是同一段音。表格與碼表在這幾條上互相對得上,可以拿來校自己的讀法。

📎 相關文章

轉盤上寫「權重 30」是幾成機會?扇區角度、放回與不放回的兩種抽法 2026-10-21 漸層底上的白字為什麼總看不清?把 WCAG 對比度逐個色標算一遍 2026-10-21 老照片放大就發糊?畫質提升能救回多少細節 2026-10-15 庫存標籤要條碼?CODE128 與 EAN-13 怎麼選 2026-10-15 拼豆圖紙怎麼做?把照片轉成色卡與網格 2026-10-15