人工守着扫描仪是极低效的事:几个小时的静电噪声里只有几秒钟有价值。一个 RTL-SDR 接收器加上本地转录,可以把它变成一个过滤器——Agent 持续监听,只在真正出事时给你发消息。
目标
使用廉价的 RTL-SDR USB 接收器扫描当地未加密的紧急频率。将原始音频传入 OpenClaw 进行本地转录和 NLP 分析。如果 AI 检测到关键词(如「火灾」「事故」「调度」),自动向你的 Telegram 发送结构化警报。
1. 硬件材料清单
总费用?不到一顿像样的餐厅饭。
- RTL-SDR V4 接收器: 亚马逊约 29 美元(附带基本偶极天线)。
- 主机: 任何一台已经在跑 OpenClaw 的常开机器。Apple Silicon 的 Mac Mini 或一台中端 Linux 主机都绰绰有余。
- 软件: rtl_fm 用于 CLI 调谐,OpenClaw v1.4+ 提供新的异步音频 API 流水线。
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" --continuous1.4 版本引入了 --continuous 标志用于音频流水线。在 2 秒静音后缓冲音频并分块发送给本地 Whisper 转录。
3. 设计 Agent 提示词
系统提示词决定这套东西是否可用。没有严格过滤,每次例行拦车都会推送一条通知,你一天之内就会把它静音。明确定义什么算「关键事故」,并强制其余情况只输出一个可以直接丢弃的标记。
# Radio Analyst System PromptYou are a critical incident analyst monitoring transcribed dispatch audio.
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".
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 中配置一个 Webhook。当「无线电分析师」Agent 输出的是 JSON 块而不是 ROUTINE 标记时,就通过 cURL 把数据转发到 Telegram Bot API。
结果
触发后的告警长这样:
转录和分析都跑在本机上——音频不会离开这台机器,也没有按分钟计费的 API 账单需要盯着。