家里挂了个相框,但它不拍照片——它听。
鸟一叫,墨水屏就"啪"地刷出一张 19 世纪复古风格的鸟插画,标注这是蓝雀、那是画眉。没有摄像头,没有云端,不用装 App。它叫 fugleramme(荷兰语"鸟笼"的变体),一个基于树莓派的开源项目,最近上了 Hacker News。
TL;DR
- 全本地:树莓派 + 麦克风 + 墨水屏 + BirdNET-Go 推理,不依赖摄像头、不联网、不上传音频。
- 选音频识别而非视觉:鸟鸣比鸟影好认——树荫里、夜里、雾天,视觉识别直接瞎,音频照样工作。
- 渲染成 19 世纪古典鸟插画挂在墙上,比"识别结果 = 文字列表"多一层审美价值。
- 硬件门槛低:树莓派 4/5 + 一个 USB 麦克风 + 墨水屏模块,百元级配件。
- 适合:喜欢鸟、想要"活的墙饰"的 DIY 党,以及想入门边缘 AI 的人。
为什么用"听"而不是"看"?
这是整个项目最有意思的设计决策。
用摄像头识别鸟类要解决一堆问题:光线(树荫/逆光/夜晚)、遮挡(枝叶挡住鸟)、鸟在画面里占比小、分辨率、目标检测模型……一套下来又重又脆弱。
音频识别绕过了所有这些。
鸟一开嗓子,声波就在空气里传播,不管你站多远、不管它躲在叶子后面。麦克风接上就能采。配合 BirdNET-Go 这种纯音频鸟鸣分类模型,树莓派本地推理完全跑得动。
| 维度 | 视觉识别(摄像头) | 音频识别(fugleramme) |
|---|---|---|
| 光照依赖 | 强(暗光/逆光难) | 无(声音不挑光) |
| 遮挡 | 枝叶挡鸟直接失效 | 不影响(声波绕射) |
| 夜间 | 基本没戏 | 照样识别 |
| 隐私 | 拍到人/房 | 只采声音,拍不到人 |
| 模型门槛 | 视觉模型重 | BirdNET-Go 轻,边缘可跑 |
| 额外硬件 | 摄像头 | USB 麦克风 |
所以 fugleramme 选音频不是"偷懒",是这个场景音频天然更鲁棒。
BirdNET-Go 是什么?为什么选它
BirdNET 是 Cornell Lab(康奈尔大学鸟类学实验室)开源的鸟鸣分类系统,背后是 BIRDNET 训练出的卷积神经网络,能基于声音识别出全球 11000+ 鸟类物种。
fugleramme 用的是 BirdNET-Go 的 Go 语言实现,两个原因:
- 单二进制、无 Python 依赖,树莓派部署干净
- 推理快,树莓派 4(4GB)上实时跑完全够
配合麦克风采集的 5 秒滑窗,识别结果直接推给渲染层。
古典插画这一手,把"工具"变成了"摆件"
识别结果做成"文字列表 + 鸟名",那是工具;做成 19 世纪古典风格的鸟插画,那是艺术品。
fugleramme 走的是后者:识别出鸟种后,渲染对应手雕铜版画风格的插画(1800s 风格的博物学插图),再显示到墨水屏上。墨水屏断电不刷新、护眼、像挂着的画,配古典插画,整个就是墙上一幅"会动的鸟图鉴"。
这一层审美价值,是它和"智能鸟屋"这类纯工具型项目最大的差异——它是个摆件,不是你盯的数据面板。
搭建要什么?门槛有多低
| 部件 | 用途 | 大致成本 |
|---|---|---|
| 树莓派 4 / 5 | 推理 + 驱动 | 300-800 元 |
| USB 麦克风 | 采音 | 50-200 元 |
| 墨水屏模块(SPI 驱动) | 显示插画 | 100-300 元 |
| 3D 打印外壳 / 相框 | 挂墙 | 自制 |
| SD 卡 / 电源 | 系统 | 杂项 |
软件侧:刷一个精简系统,跑 BirdNET-Go + fugleramme 的渲染服务,开机自启。具体型号、接线、镜像选择,直接看项目 GitHub 的 README 和 hardware/ 目录(fugleramme 作者把硬件清单和接线图画得很细)。
入门者最该做的一步:先只跑 BirdNET-Go 命令行 + 一个 USB 麦,在终端里看识别结果,确认你的环境鸟鸣够、信噪比够,再上墨水屏渲染。分两步调,比一上来就全链路卡死在"显示没反应"好排得多。
它适合谁 / 不适合谁
适合:
- 喜欢观鸟、住郊区/院子/有阳台的 DIY 党
- 想入门边缘 AI(树莓派 + 本地推理 + 硬件接线),又不想啃大模型
- 想要一个"有生活感的科技摆件",而非效率工具
- 在意隐私,不想把家里音频上传云
不适合:
- 想要"实时监控 + 报警"——它不报警,就静静换图
- 城市高噪环境(鸟鸣被车流盖住)——信噪比拉胯,识别率掉
- 不想动手焊线 / 调硬件的人——这个项目要接 USB 麦、接墨水屏 SPI,纯软件党会劝退
常见问题
Q1: 为什么不用大模型 / GPT-4o 听声音?
A: 两个原因:① 边缘设备(树莓派)跑不了大模型,BirdNET-Go 是专为音频分类轻量化的;② 隐私——不想把"家门口鸟鸣"传到 OpenAI。全本地是 fugleramme 的设计底线。
Q2: 能识别中国本土鸟吗?
A: 取决于你训练 / 加载的 BirdNET 数据集。默认模型偏欧美常见种,国内鸟种要多跑一些本地样本、或直接换用面向东亚的训练集。这是数据问题,不是模型能力问题。
Q3: 墨水屏选什么规格?
A: 作者方案里用的是彩色墨水屏(4 寸级别),能渲染古典插画色彩。黑白墨水屏能跑但插画效果打折。具体型号看项目 hardware/ 目录,别照抄别的教程的型号,fugleramme 用的 SPI 驱动是特定的。
Q4: 夜里没鸟叫会一直显示同一张图吗?
A: 会。它有静默期的显示策略——没识别到鸟时保持当前画面或回退到默认插画。具体逻辑看项目 config。
Q5: 能扩展成"识别后推送到手机"吗?
A: 理论上可以。BirdNET-Go 识别结果可以接 HTTP webhook 推到你自己的小服务。但项目本体定位是"墙上的摆件",移动端推送不在它的主线里,要扩展得自己写。