DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Explore DTMF through transparent circuits, tone generation and frequency-aware decoding. Day121.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Day121 - 生成AIで作るセキュリティツール200
DTMFusionは、電話のキーを2つの音として鳴らし、信号の通り道を回路で見て、音から番号へ戻す教材です。 理想波とTP5089の教育用モデルを切り替え、規格の数値とデコーダーの判定を比べられます。 録音に残った音から番号を復元する側波路の仕組みも扱います。
日本語 / English
インストールは不要です。ファイル一式を保存し、index.htmlを直接開いても使えます。
マイクにはブラウザーの許可が必要です。HTTPSまたはlocalhostを推奨します。file://でのマイク利用はブラウザーによって異なります。
鳴らす前に端末の音量を小さくし、周りの人やペットに配慮してください。
キー5を押した経路だけを、太い破線と●で表示します。
IC世代では実周波数と推定分周比を区別して表示します。
番号、認識理由、推定した低群・高群の偏差を表示します。
座学は6節です。数値ごとに一次資料・推定・二次資料を区別します。 ライト版:ブロック図/IC世代/復元/座学。英語版は英語READMEに掲載しています。
?、認めなかった理由、8周波数のパワー表示明暗の保存値がない初回は、端末の配色設定に従います。保存済みの選択があれば、端末の設定より優先します。
押している間の音は短い区間をループ再生します。ずれ0%の理想波は1秒、IC世代やずれを加えた波は0.5〜2秒の範囲から、継ぎ目の段差が内部のサンプル間差を超えず、2音の位相誤差が小さい長さを選びます。最初の操作と設定変更時に音を小分けに準備し、キー・設定・サンプルレートごとに再利用します。初回は音声の起動と準備の時間が必要です。開始と終了のフェード、−12dBFSの上限、60秒の自動停止は維持しています。
画面は「キーから信号へ」「波形とスペクトル」「音から番号へ」「しくみを読む」の順です。狭い画面ではキーパッドの下に回路を置きます。 「透かして見る」はテンキー上のボタンで切り替えます。初期状態はONで、横4本が低群、縦4本が高群です。 周波数ラベルは理想波形/IC世代と周波数ずれの設定を反映します。OFFで通常のキー表示に戻り、右側の回路図は表示を続けます。 目盛りの余白はON/OFF共通です。切り替えても16キーの位置・寸法・間隔と外枠の高さは変わりません。 波形とスペクトルは選んだキー・設定から作るプレビューで、マイクの実測表示ではありません。波形は12ms、スペクトルは600〜1750Hzの範囲です。 マイクやWAVの解析状況は「音から番号へ」のパワー表示と判定結果で確認します。 パワーの棒は−60〜0dBの固定範囲です。−60dB未満は棒を空にし、横のdB数値は従来どおり表示します。
WAV入力はPCM 16/24/32bitまたはfloat32、1/2チャンネル、8〜96kHz、60秒・24MiB以下です。2チャンネルは平均します。 デコード後に読み込んだ音を保持せず、マイクは短い解析窓の値を順に破棄します。残るのは表示中の判定結果です。
このツールならではの使い方
?(例E3)、+3%では拒否(例E4)になることを比べる。「仕様上の境界」と「測定した推定値」を区別できる。製品の合否認証には使えない123をWAVにし、読み込んで同じ列へ戻す。音を記号として渡す仕組みを題材にできる。音に残る番号を秘密にする機能はない授業・家庭での自習、レトロ電子回路の調べもの、録音に含まれる情報の検討にも使えます。 マイクでの結果は部屋、スピーカー、端末の音声処理に左右されます。
以下は48kHz、音80ms、休止60msの例です。—は拒否して番号を追加しないことを表します。日英の表をテストで再計算します。
| ID | mode | profile | key | offset % | twist dB | low Hz | high Hz | result |
|---|---|---|---|---|---|---|---|---|
| E1 | ideal | NTT | 5 | 0 | 2 | 770 | 1336 | 5 |
| E2 | ic | NTT | 5 | 0 | 2.7 | 770.1 | 1331.7 | 5 |
| E3 | ideal | NTT | 5 | 2 | 2 | 785.4 | 1362.72 | ? |
| E4 | ideal | NTT | 5 | 3 | 2 | 793.1 | 1376.08 | — |
送出条件と受信条件を分けます。40ms/23msはQ.24表A-1のAT&T列の値であり、ITU-T全体の一律の規定ではありません。 レベル差は高群−低群です。以下は本ツールで扱う項目の抜粋で、規格の全要求を網羅しません。
| 出典 | 周波数偏差 | 音の長さ | 休止 | 周期 | レベル差 |
|---|---|---|---|---|---|
| Q.23 / 送出 | ≤1.8% | 規定なし | 規定なし | 規定なし | 標準化しない |
| Q.24 A-1 / NTT受信 | 動作≤1.8%、不動作≥3.0% | 動作≥40ms、不動作≤24ms | ≥30ms | ≥120ms | −5〜+5dB |
| Q.24 A-1 / AT&T受信 | 動作≤1.5%、不動作≥3.5% | 動作≥40ms、不動作≤23ms | ≥40ms | ≥93ms | −8〜+4dB |
| NTT技術参考資料 / 端末送出 | ≤1.5% | ≥50ms | ≥30ms | ≥120ms | 0〜+5dB |
出典はQ.23(1988年)、Q.24(1988年)Annex A、NTT東日本・第6.2版(2025年7月)p.14です。NTTの端末送出の表は1633Hz列を含みません。
解析はHann窓25.6ms、係数を整数ビンへ丸めないGoertzel法です。8本から各群の候補を選び、公称の±4%を0.5%刻みの17点で再計算します。 最大付近の対数パワーを放物線で補間し、同じキーの複数窓を平均して偏差を0.01%単位で判定します。これは表示・判定の刻みであり、精度保証ではありません。 推定したピークのパワーと公称の2位との比は6以上を要求し、レベル差は0.1dB単位です。
| rate Hz | N | rate/N Hz |
|---|---|---|
| 8000 | 205 | 39.02 |
| 44100 | 1129 | 39.06 |
| 48000 | 1229 | 39.06 |
48kHz・16キー・ずれ0%の窓長比較では、群内の比の最小値は20msで理想27.11/IC世代27.10、25.6msで1293.56/1261.38、32msで1413.24/1295.65でした。 25.6msを採用し、比のしきい値6は波形端や瞬断を含む窓の余裕を確保した教育用の設定です。音声全般に対する誤認率の保証ではありません。
2026-10-21の合成音測定では、以下の範囲で全16キーを正しく受理しました。3レート(8k/44.1k/48kHz)で同じ結果でした。 横軸はつまみで加えた偏差です。IC世代では表Iの周波数自体が公称からずれているため、規格の偏差とつまみの値は一致しません。
| mode | profile | 全16キーの受理範囲(%) | 1キー以上の受理範囲(%) |
|---|---|---|---|
| ideal | NTT | -1.8 … +1.8 | -1.8 … +1.8 |
| ideal | ATT | -1.5 … +1.5 | -1.5 … +1.5 |
| ic | NTT | -1.4 … +1.1 | -1.8 … +2.1 |
| ic | ATT | -1.1 … +0.8 | -1.5 … +1.8 |
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗