モールス符号(モールス信号)変換・発音機

テキストとモールス符号を相互に変換し,ブラウザのWeb Audio APIを利用して信号音を再生するツールです.和文(かな)と欧文に対応しており,符号の再生速度や音高を調整して発音や光の表示を確認できます.

読み込み中...

このツールが向いている用途

操作欄に戻る ↑

文字テキストとモールス符号の相互変換や符号確認を行いたい作業に向いています.双方向変換機能により,欧文および和文のテキストを即座に符号化できます.

まず試せること

欧文テキスト入力で「SOS」と打ち込むと「... --- ...」に変換されます.生成された符号はコピーや音声での再生・停止が可能です.

利用条件

入力は最大5,000 UTF-16コード単位,音声再生は3分までに制限されます.漢字の読み変換には対応しておらず,未対応文字は「?」となり再生できません.光表示は参考値です.

ZeroToolsのブラウザ内処理とプライバシー

ZeroToolsは,入力内容を端末内で処理するツールを中心に提供しています.各ツールの対応範囲と制限を確認して利用してください.

データの取り扱い・プライバシー方針
第1章

欧文と和文の選択

本ツールは,国際規格に基づく欧文(アルファベット・数字・記号)と,日本語の和文(ひらがな・カタカナ)のモールス符号化および復号に対応しています.入力モードを「テキスト ⇒ 符号」に設定した場合,指定された文字種に応じて適切な符号表(INTERNATIONAL_MAPまたはWABUN_MAP)が参照されます.

欧文モードでは,入力文字列がJavaScriptのnormalize('NFKC')を用いて正規化されたのち大文字に変換され,各文字が対応する短点(.)と長点(-)のシーケンスにマッピングされます.和文モードにおいては,濁点や半濁点,小書き仮名などの特殊な文字に対する前処理が行われ,最終的にひらがな・カタカナの両方を同一の符号体系で処理する仕組みが組み込まれています.

また,和文モールスの特徴として,法令和文表に基づき「ト」は「..-..」,「チ」は「..-.」,「ル」は「-.--.」のように,それぞれ固有の別符号が割り当てられていることを確認できる例を含んでいます.加えて,和文の長音符(ー)や数字に関する対応も考慮されており,和文通信特有の表現を適切に処理します.

テキストの入力上限は5,000 UTF-16コード単位に設定されており,これを超える入力が行われた場合は変換処理の前に例外が送出されます.変換処理自体はブラウザのJavaScriptエンジン内で実行され,入力されたテキストデータがこの変換を目的として外部サーバーへ送信されることはありません.

第2章

かな・濁点と未対応文字

和文モードにおける文字の正規化と,両モード共通の未対応文字の扱いについて詳述します.日本語の和文モールス符号は,濁音や半濁音を基本となる清音と濁点符号(..)または半濁点符号(..--.)の2文字に分割して表現する特性があります.本ツールでは,入力されたテキストに対してUnicode正規化(NFD)を適用し,濁点(U+3099)および半濁点(U+309A)を基底文字から分離します.

さらに,小書き仮名(ァ,ィ,ゥなど)は対応する大きな仮名(ア,イ,ウなど)に置換され,区別が失われます.これは,伝統的な和文モールス通信において小書き仮名を厳密に区別しない運用を模倣したものです.一方で,漢字など現在の符号表に定義されていない文字が入力された場合,ツールはそれらを欠落させることなく,未知の文字を示す「?」記号に置き換えて出力します.

これにより,変換できなかった箇所が視覚的に明示され,元のテキストに未対応文字が含まれていた事実をユーザーが把握できるようになっています.また,「?」を含む符号シーケンスをそのまま再生しようとした場合,正しい単位時間が算出できないため再生エラーとなり,音声出力は中断されます.

これによって誤った符号化のまま発信されるのを防ぎます.文字から符号への確実なマッピングを補助するため,未対応文字の発見と修正は利用者がテキスト入力を通じて直接行う必要があります.

第3章

符号から戻す区切り

「符号 ⇒ テキスト」モードにおけるパース処理と区切り文字の規則について解説します.モールス符号をテキストに復号する際,ツールは入力された文字列の空白の数に基づいて文字と単語の境界を判定します.実装上,文字と文字の間は1つ以上の空白,単語と単語の間は3つ以上の空白(正規表現 \s{3,})で区切られているものとして処理されます.

符号からテキストへの逆変換では,欧文または和文の符号表のキーと値を反転させたマッピングオブジェクトが生成され,入力された符号シーケンスとの照合が行われます.和文モードの逆変換時には,分離されていた基底文字と濁点・半濁点符号がテキスト化された後,normalize('NFC')を用いることで再び結合済みの濁音・半濁音(例: 「カ」+「゛」→「ガ」)へと復元されます.

ただし,前述の通り小書き仮名は変換時に大きな仮名に正規化されているため,逆変換を行っても小書き仮名には戻らず,完全な可逆変換(ラウンドトリップ)が保証されない文字が存在します.また,長音符や記号などの一部の特殊文字に関しても,空白の区切りが不正確な場合は別の文字配列として誤認識される可能性があるため,符号入力時には適切なスペースの挿入が求められます.

このように,モールス符号からテキストへのパース処理は,入力された空白文字の正確なカウントと,正規化アルゴリズムの挙動に強く依存して動作しています.

第4章

プリセットと往復確認

利用者が直感的に動作を理解できるよう,本ツールにはいくつかのプリセット値が用意されています.欧文モードでは「SOS」「HELLO WORLD」「CQ CQ CQ」,和文モードでは「タスケテ」「こんにちは」「シーキュー」といった代表的な文字列をボタン一つで入力領域に設定できます.

これらのプリセットを読み込んだ際も即座に指定モードでの変換処理が走り,結果が出力欄に表示されます.出力された符号またはテキストは,クリップボードAPI(navigator.clipboard.writeText)を用いてOSのクリップボードへコピーすることが可能です.

コピー処理は非同期(await)で実行され,成功時にはボタンのアイコンが一時的に変化して完了を通知します.また,本ツールは入力値を直接状態として管理しているため,変換された符号をコピーし,モードを反転させてから再度入力することで,自身の入力がどのように復号されるかを往復確認することができます.

これにより,空白の数による単語の区切りなどが正しく認識されるかをテストできます.特に,モールス信号の学習中においては,自ら打ち込んだ符号が想定通りのテキストに戻るかを確認するラウンドトリップの検証が非常に有用です.クリップボードを介したデータの受け渡しは,外部のテキストエディタとの連携においても役立ち,入力内容を保存しつつ作業を継続するための機能として重要な役割を果たしています.

第5章

音と光・速度設定

Web Audio APIを利用した発振機(オシレーター)による音声再生と,パラメータの制御について説明します.再生ボタンが押下されると,まず入力された符号が再生用のイベントキューにパースされます.モールス符号のタイミングは国際標準に則り,短点1,長点3,同一文字内無音1,文字間3,単語間7の比率で構成されています.

例えば「SOS」(... --- ...)の場合,この文字間処理を含めて計算すると総27単位となります(S=5単位,文字間3単位,O=11単位,文字間3単位,S=5単位).再生速度はWPM(Words Per Minute)として5〜40の範囲で設定でき(初期値20),この値から1単位あたりのミリ秒数が算出されます.

音の高さ(周波数)は400Hzから1200Hzまで50Hz刻みで調整可能であり(初期値700Hz),ユーザーの聞き取りやすい帯域を選択できます.音声の再生にはAudioContextのOscillatorNodeとGainNodeが用いられ,クリックノイズを防ぐために音声の立ち上がりと立ち下がりにはごく短いフェード(linearRampToValueAtTime)が適用されます.

また,音声と同時に画面上のインジケーターが点灯しますが,光の制御にはJavaScriptのwindow.setTimeoutが用いられているため,厳密なAudioContextの時刻管理とは異なり,ブラウザの実行状況によって音声と発光のタイミングに若干のずれが生じる場合があります.

このように音声と視覚表示を別々の仕組みで同期させる設計となっています.

第6章

練習用の限界

本ツールにおける再生時間や実行環境の制約,および学習用途での限界について留意すべき点を述べます.連続して再生できる音声の長さには上限が設けられており,算定された再生総時間が3分(180秒)を超える符号シーケンスを入力した場合,再生処理は開始されずエラーメッセージが表示されます.

長文の変換結果を音声で確認したい場合は,テキストを分割して入力する必要があります.また,本ツールにおける文字から符号への変換および音声波形の生成は,お使いの端末上のブラウザ内で実行されるJavaScriptによって処理されますが,サイト全体の挙動としてアクセス解析やその他のリソース取得に関わる通信は発生し得るため,ブラウザ内での処理を理由とした利用環境の絶対的な安全性や,あらゆるオフライン環境での完全な動作を保証するものではありません.

あくまで入力された文字列と符号の相互関係をブラウザ上でシミュレートし,Web Audio APIを通じた音響フィードバックを得るための補助ツールとして設計されています.本格的な通信士の訓練や,法的な基準を満たす必要のある業務用ソフトウェアとしての利用には適しておらず,学習者が自己研鑽のために符号の構造やリズムを視覚的および聴覚的に確認するための範囲でご活用ください.

長時間の継続的な発音や極端に早いWPM設定時のブラウザの負荷など,Web技術に依存する限界を理解した上で利用することが推奨されます.

よくある質問(FAQ)

A.
入力されたテキストデータからモールス符号への変換,およびWeb Audio APIを用いた音声の生成処理は,すべてお使いのブラウザ内(JavaScript環境)で実行されます.変換を目的として入力内容が外部サーバーへ送信されることはありません.
A.
音声の再生には精度の高い時間管理が可能なWeb Audio APIのAudioContextを使用していますが,画面上の光(インジケーター)の点灯・消灯はブラウザのタイマー処理(setTimeout)で制御されています.そのため,端末の負荷状況などにより光の表示が音声のタイミングと厳密には一致しない場合があります.
A.
和文モールス符号の仕様に合わせ,入力された小書き仮名(ァ,ィなど)は内部の変換処理の段階で通常の仮名(ア,イなど)に正規化されます.そのため,符号からテキストに戻す際も大きな仮名として復元され,元の小書き仮名には戻りません.
A.
はい.ブラウザへの過度な負荷を防ぐため,1回の再生ボタン押下で鳴らすことができる音声の長さを最大3分間(180秒)に制限しています.設定したWPM(再生速度)によっても全体の時間は変動しますが,長文の場合は分割して再生してください.