人がスキャナーを聞き続けるのは効率が悪すぎます。数時間のノイズの中に、意味のある数秒があるだけです。RTL-SDRドングルとローカル文字起こしを組み合わせれば、それがフィルターになります。エージェントが常時監視し、実際にインシデントを検知したときだけ通知します。
目標
安価なRTL-SDR USBドングルで地元の非暗号化緊急周波数をスキャン。生の音声をOpenClawにフィードしてローカル文字起こしとNLP分析。AIがキーワード(例:「火災」「事故」「出動」)を検出したら、構造化アラートをTelegramに自動送信。
1. ハードウェア部品リスト
総費用?まともなレストランの食事より安い。
- RTL-SDR V4ドングル: Amazon約29ドル(基本的なダイポールアンテナ付属)。
- ホストマシン: OpenClawがすでに稼働している常時起動のマシンなら何でも構いません。Apple SiliconのMac MiniでもミドルレンジのLinux機でも余裕があります。
- ソフトウェア: CLIチューニング用rtl_fm、新しい非同期Audio APIパイプライン用OpenClaw v1.4+。
2. ソフトウェアパイプライン
これを接続するにはbashスクリプトが少し必要でした。rtl_fmを使って地元の出動周波数(154.250 MHz)にロックし、スケルチされた音声をOpenClawが理解できる形式に直接パイプします。
#!/bin/bash
# Listen to 154.250MHz and pipe raw audio data
rtl_fm -M fm -f 154.250M -s 22050 -l 10 | \
sox -t raw -r 22050 -e signed -b 16 -c 1 - -t wav - | \
claw pipe --agent "Radio Analyst" --continuousバージョン1.4で音声パイプライン用--continuousフラグが導入されました。2秒の無音まで音声をバッファリングし、ローカルWhisperにチャンクして文字起こし。
3. エージェントプロンプトの作成
実用になるかどうかはシステムプロンプト次第です。厳密なフィルターがなければ、日常的な交通取り締まりのたびに通知が飛び、一日でミュートすることになります。何を「重大」とみなすかを定義し、それ以外は破棄できる単一のトークンだけを出力させてください。
Analyze the transcript. If you detect a major incident (Structure Fire, Multi-vehicle collision, Pursuits, or Active Threats), output JSON:
{ "type": "[Incident Type]", "location": "[Extracted Address]", "severity": 1-10 }
If routine traffic, output EXACTLY: "ROUTINE".
4. Telegramインターセプト
OpenClawにウェブフックを設定します。「ラジオアナリスト」エージェントがROUTINEではなくJSONブロックを出力したとき、cURL経由でTelegram Bot APIにペイロードを転送します。
結果
発報されたアラートはこのような形で届きます:
文字起こしも分析もホスト上で完結します。音声はマシンの外に出ず、分単位のAPI課金を気にする必要もありません。