不可聴音通信でローカルLLMによる無音オフライン会話を実現
18.5kHz以上の不可聴音帯域を変調し機内モードの端末間でLLM同士を無音対話
Intro
2台の端末上で動作するLLMにおいて、一方の発言を音声出力しもう一方のLLMで集音および文字起こしを行い、その応答を音声で返答させる構成を採ることでLLM間での自律対話は成立します。 しかし、可聴域の音声通信では周囲の人間に対して会話内容がすべて漏洩する問題が生じます。 人間には知覚不可能な不可聴音域が存在する一方で一般的なスマートフォンのスピーカーおよびマイクは18kHz以上の高周波音波の出力および入力に対応しています。 このハードウェア特性を利用し人間には知覚できない不可聴音域を用いたデータ通信系を構築することで周囲に知覚されない無音通信を実現しました。
実装
周波数帯の選定
スマートフォンのスピーカーとマイクが扱える周波数帯を実機テストした結果、人間の耳では聞き取れずかつマイク側で安定して認識可能な18.5kHz以上の高周波帯を採用しました。
周波数の割り当て構成は以下の通りです。
- プリアンブル: 18260Hz
- 同期信号: 18440Hz
- データ領域: 18600Hz 〜 19800Hz、80Hz間隔、16周波数
- 終端信号: 19960Hz
動作確認およびデバッグ用途として、1200Hzから2850Hzを用いる可聴音モードへの切り替え機能も備えています。
変調方式と符号化
単純な音声読み上げと文字起こしでは認識エラー率が高くレイテンシも増大するため、本システムではデジタル音響通信方式を採用しました。 データを4ビット単位に分割し、16種類の周波数にマッピングするMFSK-16方式により音響信号へ変換します。 通信経路上での誤り低減のため以下の処理を組み込んでいます。
- CRC-8チェックサムによるパケット破損の検知
- ボロノイ境界判定による周波数ドリフトへの追従
- 軟判定情報を利用した2シンボルの自動修復処理
シンボル時間は70msに設定し通信速度と受信精度の両立を図りました。
機能
本システムはWebブラウザ上で動作するPWAとして実装されています。
- 完全オフライン動作 ブラウザのService Workerにより全アセットおよびLLMモデルがキャッシュされるため、Wi-Fi、Bluetooth、モバイルデータ通信をすべて切断した機内モード下で完全に自律稼働します。
- オンデバイスローカルLLM 端末内のWeb Worker上でTransformers.jsを経由して小型モデルを実行します。モデルにはQwen2.5 0.5BおよびSmolLM2 135Mを採用しました。
- 画面による通信の可視化 人間には音響通信が一切聞こえないもののLLM同士はパケットの送受信を継続しており、対話内容は画面上のチャットUIに逐次描画されます。通信状態を人間が認識する手段は画面上のテキスト表示のみとなります。
- 対話制御と人間による割り込み 自律対話の停止ボタン、可聴音モードへの切り替えスイッチ、人間が手動でテキストを入力して対話に介入する送信インターフェースを備えています。
Outro
本システムはLLM同士の対話検証を目的として構築されましたが、画面を注視しない限り外部の人間は通信の発生そのものを認知できません。 この特性は電波探知や目視監視が存在する環境下における不正行為、あるいは隔離されたネットワーク環境からの機密情報漏洩など、意図しない用途へ転用される潜在的な懸念を内包しています。
伝搬特性の観点では、音量を最大に設定した場合でも遠方までは届かない可能性があります。高周波音波は空気中での減衰が著しく障害物による遮蔽も受けやすいため、有効通信距離は端末同士が近接した狭い範囲に限定される傾向があります。厳密な到達可能距離および環境ノイズ耐性の測定は未検証であり、今後の課題です。
- この内容のリポジトリ: GitHub - rsu-Suba/StealthLM