手旗信号翻訳
HELLOは1文字ごとに1組、合計5組の旗の位置になります。たとえばEはL:HIGH+R:DOWNで、左の旗が上、右の旗が下です。単語はスラッシュで区切られ、貼り付けた位置は英字に戻せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- HELLO
- 計算モード
- Encode
- エンコーディング
- flag_semaphore
- 入力長
- 5
- 出力長
- 78
この手旗信号翻訳ツールは、固定の決定的なチャートを用いて、平文を国際手旗信号の腕の位置名に変換し、その位置トークンを読みやすい文字と数字にデコードします。エンコードモードは各文字と数字をL:POS+R:POSと書かれる左手・右手の姿勢にマッピングし、連続する文字を単一のスペースで結合し、単語をスラッシュで区切るため、複数の単語からなるフレーズも曖昧になりません。デコードモードはその処理を逆にします。正しい形式の位置トークンのみを読み取り、柔軟な区切り文字を正規化し、すべてのペアを同じテーブルで照合し、文字や姿勢が未知の場合ははっきりと失敗します。
手旗信号とは何か、そしてこのツールが返す内容
手旗信号は、海上、スカウト活動、そして通信の歴史を学ぶ教室で使われる標準的な2旗の視覚アルファベットです。信号手は各手に1本ずつ旗を持ち、それぞれの腕を、下げる・低い・外側・高い・上げる、そして両方の旗が体の同じ側にあるときに使う2つの体を横切る姿勢という、少数の名前付きの位置のいずれかに置きます。
それらの組み合わせは、ラテン文字のAからZと、古典的なチャートで選ばれた文字の姿勢を共有する二重使用の数字0から9を綴ります。このページはその公開されたマッピングを、L:POS+R:POSという形式の素のテキストトークンとして実装するため、すべての結果は画像認識なしにコピー&ペースト可能で、検索可能で、自動テストに適しています。
エンコードモードは文字を大文字化し、対応する各文字を左右の位置に展開し、文字を1つのスペースで結合し、単語をスペース・スラッシュ・スペースで結合するため、人間でも機械でも動画のフレームのタイミングなしに単語の境界を判別できます。
デコードモードは同じテキストの慣習を受け付け、LとRの側の間の柔軟な句読点を許容し、大文字を再構築します(姿勢が二重使用の場合は数字ラベルより文字を優先します)。未知の文字をサイレントにスキップすることも、独自の拡張テーブルもありません。ライブの動画解析、機械式の塔式手旗信号、日本の旗文字の姿勢が必要な場合は専用ツールをご利用ください。
このランディングページは、教師、士官候補生、テスト作成者が共有するテキストのエンコード・デコード契約専用です。
テキストとモードの読み取り方法と結果を再現可能に保つ仕組み
modeは既定でencodeとなり、decodeを明示的に受け付けます。op、direction、actionといった別名は、すでにそれらの名前を使っているスクリプトのために同じスイッチにマッピングされます。
エンコードは単語分割のために外側の空白をトリムし、内部の連続する空白を単語区切りとして扱い、A-Zまたは0-9でない文字は誤った記号を名指しするメッセージとともに拒否します。
デコードは、左右の位置ペアに正規化できないトークンを拒否し、許可された7つのラベル以外の未知の姿勢名を拒否し、逆引きテーブルに存在しない位置ペアを拒否し、その際も解読不能なトークンを名指しします。
すべての分岐が純粋なテーブル参照と文字列の組み立てであるため、アルファベットが固定されている限り、同じテキストとモードを持つ2つのクライアントはWorkerのバージョンをまたいでバイト単位で同一の結果を受け取ります。
活用例
スカウトと士官候補生の練習
紙の位置チャートなしに、手旗信号の訓練やバッジ準備向けに学習フレーズをエンコードし練習受信をデコードします。
パズルと教室のデモ
共有された単語区切りの規則とともに、脱出ゲーム、CTF、ライブレッスン向けに決定的な手旗信号のヒントを生成します。
よくある質問
どの文字に対応していますか?
文字A-Z(エンコード時は大文字小文字を区別しません)と数字0-9です。数字は古典的な二重使用の姿勢を共有します(1はAと、9はIと、0はKと)。
単語と位置はどう記述されますか?
各文字はL:POS+R:POSで、位置はDOWN、LOW、OUT、HIGH、UP、ACROSS_LOW、ACROSS_HIGHのいずれかです。文字は単一のスペースで区切られます。単語はスペース・スラッシュ・スペース( / )で区切られます。
結果は決定的ですか?
はい。 同じテキストとモードは、ネットワーク、乱数、日付依存の挙動なしに常に同じ結果を生みます。
手旗信号で数字はどう表しますか?
0から9の数字は、従来の表で一部の英字と同じ姿勢を共有しています。符号化では各数字にその姿勢を割り当て、共通の姿勢を復号するときは英字として返します。
動画や写真から手旗信号を読み取れますか?
いいえ。扱うのはL:POS+R:POSの形で書かれた位置のテキストだけです。動画の解析や機械式の腕木信号、日本の手旗による仮名には、専用のツールが必要です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/semaphore \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HELLO"}'const res = await fetch("https://api.kit.forhosting.com/enc/semaphore", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HELLO"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/semaphore",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HELLO"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/semaphore", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HELLO"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HELLO"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/semaphore", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "HELLO"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.semaphore",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
エンジンはネットワークを呼び出すことも、乱数をサンプリングすることも、カレンダーの時計に依存することも決してないため、同じ入力とモードはブラウザとAPIの両方で常に同じ結果を生みます。代表的な検証例として、HELLOのエンコードは5つの位置トークンになり、その文字列のデコードはHELLOに戻り、未対応の記号はinvalid_inputで拒否されます。スカウトの練習、海軍史のデモ、パズルの設計にはこのページで無料にご利用いただき、CIやバックエンドサービスで再現可能な手旗信号の変換が必要な場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
手旗信号とは何か、そしてこのツールが返す内容
JSONレスポンスには、変換された文字列を表すresult、encodeまたはdecodeをエコーするmode、flag_semaphoreに固定されたencoding、自動テストがペイロードを再解析することなくサイズをアサートできるようinput_lengthとoutput_lengthが常に含まれます。すべての記号がきれいにマッピングされるか、そうでなければリクエストがinvalid_inputで失敗するかのいずれかです。
テキストとモードの読み取り方法と結果を再現可能に保つ仕組み
優先されるペイロードフィールドはtextで、input、value、s、messageといった別名を受け付けるため、フォーム、クエリ文字列、SDKクライアントは列名を変えずに同じ契約を再利用できます。自動化されたパイプライン内で旗のチャートを自前で再実装することなく同一の数学的結果が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。無効な入力はinvalid_inputを返し課金されないため、探索的な検証は安価なままであり、同じ契約をクイズ、ゲームエンジン、ドキュメントジェネレーターに統合するAPI呼び出し側にとって成功した変換は$0.002という固定の項目価格のままです。
手旗信号翻訳ツールが学習・伝統・テストで役立つ場面
学生が海事史を学ぶとき、スカウトの通信バッジの準備をするとき、あるいは紙のチャートなしに短い単語を両方向に変換しなければならない時間制限のある教室の演習を解くときに手旗信号に出会います。海軍伝統のグループや博物館の教育者は、ライブのデモンストレーションの前に練習フレーズを確認するためにテキストエンコーダーを使い、セッション後の受信を検証するためにデコーダーを使います。パズルデザイナーやゲーム作者は、同じヒントが常に同じ方法でエンコードされなければならない脱出ゲームやCTF風のチャレンジ向けに、決定的な手旗信号の謎かけを生成します。教育や運用向けに無料で決定的なユーティリティの小さなラボを構築する際は、他のテキスト符号化ヘルパーと組み合わせてご利用ください。API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、ホワイトボードのデモから自動化パイプラインへ、エンコードされた結果を変えることなく移行できます。
連携の活用例
CIとゴールデンフィクスチャ
自動化されたテストでエンコード・デコードのペアをアサートし、位置名と区切り文字がサイレントにずれないようにします。
技術的な質問
手旗信号翻訳ツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
どのモードに対応していますか?
mode=encode(既定)は平文をL:POS+R:POSのトークンに変換します。mode=decodeは位置文字列をテキストに戻します。