Docker部署Fugleramme:无树莓派也能在家庭服务器上跑起鸟类识别相框的完整指南
【免费下载链接】fuglerammeBird frame for Raspberry Pi - real-time bird detection by audio, fully local AI, rendered as real, hand-cut 1800s bird illustrations. On an e-ink panel, a TV, or any screen.项目地址: https://gitcode.com/gh_mirrors/fu/fugleramme
Fugleramme是一款开源的鸟类识别相框:它通过麦克风实时收听鸟鸣,用本地 AI(BirdNET-Go)识别物种,再把每只鸟渲染成 19 世纪手绘博物插画,拼成一幅会"生长"的鸟类海报。而借助 Docker 部署,你不需要树莓派和电子墨水屏——一台装了 Docker 的家庭服务器加一个 USB 麦克风,就能在电视、显示器或手机上看到自家花园此刻有哪些鸟 🐦
Fugleramme 的工作原理:两个容器各司其职
整个系统由两部分组成,Docker 部署时对应两个容器:
| 组件 | 职责 | 端口 |
|---|---|---|
| BirdNET-Go | 监听麦克风,音频识别鸟类,存储检测记录 | 8090(仪表盘) |
| Fugleramme | 轮询 BirdNET-Go 的 API,把识别结果渲染成插画页面 | 8080(页面)/ 8080/admin(管理页) |
鸟一被听到,Fugleramme 就把它匹配到对应插画,按体型大小摆上"纸张",页面只在有新鸟时重绘:
前提条件:一台 Linux 主机 + 一个 USB 麦克风
在开始前,请确认你的家庭服务器满足以下条件:
- ✅ 已安装 Docker(支持
docker compose命令) - ✅ 一个 USB 麦克风(指向窗外效果最佳)
- ✅ 系统必须是Linux——麦克风通过
/dev/snd进入容器,Docker Desktop(macOS/Windows)无法捕获宿主机音频 - ✅ 8080 与 8090 端口空闲
💡 没有树莓派完全可以:官方镜像是纯 Web 模式,不提供电子墨水屏驱动。想要墨水屏相框才是树莓派的主场。
快速开始:一条命令启动鸟类识别相框
克隆仓库,进入examples/目录(内含现成的 examples/docker-compose.yml),即可同时拉起两个容器:
git clone https://gitcode.com/gh_mirrors/fu/fugleramme cd fugleramme/examples docker compose up -d启动后访问:
http://<服务器IP>:8080/—— 鸟类识别相框页面http://<服务器IP>:8080/admin—— 管理页(设置模式、分辨率、语言等)http://<服务器IP>:8090—— BirdNET-Go 仪表盘(配置麦克风与位置)
该 compose 文件把日志和 HLS 片段放进内存(tmpfs),避免撑爆硬盘;检测数据持久化在birdnet-data卷中,这个卷一定要保留。
配置麦克风与地理位置:识别准不准的关键
打开 BirdNET-Go 仪表盘(:8090)完成两步设置,详见官方配置文档:
1. 添加声卡(必做):进入 Settings → Audio,添加你的 USB 麦克风,声音就进来了。
2. 设置你的位置(强烈建议):填入准确经纬度,识别器会据此过滤掉当地不可能出现的物种,显著减少误报(比如把摩托车听成海鹦)。
项目还内置了一份调好的检测参数模板 detector/config/config.yaml.template:更高的阈值、范围过滤、假阳性过滤等级 2,在"漏报"和"乱报"之间取得了不错的平衡。
已有 BirdNET-Go?只部署相框容器
如果你家里已经跑着 BirdNET-Go,就只需要 Fugleramme 一个容器,用环境变量指向它:
services: fugleramme: image: ghcr.io/arnegiacomo/fugleramme:latest environment: FUGLERAMME_DETECTOR_URL: http://birdnet.local:8080 TZ: Europe/Oslo ports: - "8080:8080" volumes: - fugleramme:/data restart: unless-stopped volumes: fugleramme:⚠️ 注意:容器内的
127.0.0.1指的是容器自己。请填主机的名称、IP,或同一个 Docker 网络中 BirdNET-Go 的容器名。
环境变量预置:不点管理页也能定制画面
管理页上的每个设置都能用FUGLERAMME_<名称>环境变量在启动时"播种",常用项:
| 变量 | 作用 | 示例 |
|---|---|---|
FUGLERAMME_MODE | 显示模式 | collage/latest/arrival |
FUGLERAMME_WEB_RESOLUTION | 网页渲染分辨率 | 720p/1080p/1440p/4K |
FUGLERAMME_WEB_ASPECT | 画面比例 | 16:9/4:3 |
FUGLERAMME_LOOKBACK_HOURS | 拼贴回看时长 | 24(0 为全部时间) |
FUGLERAMME_PRIMARY_LANGUAGE | 鸟名语言 | nb、en或sci |
FUGLERAMME_ADMIN_PASSWORD | 管理页密码 | 建议设置 |
⚠️ 这些变量只是播种而非覆盖:一旦你在管理页保存过某项设置,对应变量就会失效。想要重新播种,删掉/data卷即可(检测记录不受影响,仅重置设置)。完整变量清单见容器文档。
画面投到哪台屏幕上:电视、壁纸都支持
Fugleramme 通过 HTTP 输出画面,任何设备都能当"相框",详见显示方案文档:
- 电视/显示器:用浏览器全屏打开
:8080即可; - 三星 The Frame 画框电视:有社区项目可在 Art Mode 下推送拼贴画,客厅里和真画作混挂毫无违和感;
- macOS 壁纸/屏保:用 examples/wallpaper-macos.sh 定期抓取渲染页面作为桌面背景,锁屏画面同样惊艳;
更新与日常维护
容器化部署的更新非常简单——镜像被"替换"而非原地升级,数据卷不受影响:
docker compose pull && docker compose up -d管理页的 System 选项卡发现新版本时会提醒你。得益于 Dockerfile 的分层设计(165 MB 的鸟类插画按首字母拆成多个层),更新只会拉取变化的部分,几百 KB 起步。想要全自动,可搭配 Watchtower 定时检查更新。
镜像标签策略:latest跟随每次发布;0.20只在次版本内打补丁;0.20.1完全固定不变。
常见问题排查
🔍 页面空白或提示检测器不可达:确认 BirdNET-Go 容器在跑(docker ps),检查管理页 Detector 选项卡里的地址,点Test connection查看连通状态。检测器短暂离线时相框会保留上一页画面,看起来像"没动静"。
🎙️ 有声音但识别不到鸟:问题在 BirdNET-Go 一侧——打开:8090检查声卡是否选对。
🔐 管理页忘密码:docker compose exec fugleramme sed ...修改卷内/data/settings.json的admin_password字段即可,详见故障排查文档。
🌐 只显示拉丁文学名:鸟名来自 BirdNET-Go 的本地化词库,需要在 Detector 选项卡填写其密码(OIDC 暂不支持)。
📌回顾:一台 Linux 家庭服务器 + USB 麦克风 + 三条命令,你就能拥有这只"会生长的鸟鸣相框"。Fugleramme 完全本地运行、零云依赖,识别结果以 19 世纪博物插画的姿态挂上你家任何一块屏幕——下一次窗外有鸟叫时,画面会自己更新。
【免费下载链接】fuglerammeBird frame for Raspberry Pi - real-time bird detection by audio, fully local AI, rendered as real, hand-cut 1800s bird illustrations. On an e-ink panel, a TV, or any screen.项目地址: https://gitcode.com/gh_mirrors/fu/fugleramme
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考