tphakala/birdnet-go
GitHub: tphakala/birdnet-go
一个用于实时鸟类监测与识别的本地 AI 声音分析解决方案。
Stars: 1048 | Forks: 91
BirdNET-Go 是一款用于持续鸟类监测与识别的 AI 解决方案
- 24/7 实时分析声卡捕获的鸟类鸣唱,输出日志文件、SQLite 或 MySQL
- 使用 BirdNET AI 模型,训练数据包含超过 6500 种鸟类
- 本地处理,无需互联网连接
- 易于使用的 Web 用户界面用于数据可视化
- 支持 40 多种语言的物种名称
- 高级功能,如用于提升精度的 [深度检测](doc/wiki/guide.md#deep-detection) 和 [实时音频流](doc/wiki/guide.md#live-audio-streaming)。
- 集成 BirdWeather.com API
- 实时日志文件输出可用于在 OBS 中作为鸟类喂食器流媒体的叠加层等
- 运行时依赖极少,BirdNET TensorFlow Lite 模型已嵌入编译后的二进制文件
- 提供 Prometheus 数据抓取端点
- 支持 Windows、Linux 和 macOS
- 资源占用低,适用于 Raspberry Pi 3 及同等 64 位单板计算机
## 安装
适用于 Debian、Ubuntu 和 Raspberry Pi OS 系统的快速安装脚本:
```
curl -fsSL https://github.com/tphakala/birdnet-go/raw/main/install.sh -o install.sh
bash ./install.sh
```
## 开发环境设置
面向希望贡献或从源码构建的开发者:
```
# 克隆仓库
git clone https://github.com/tphakala/birdnet-go.git
cd birdnet-go
# 安装 Task(如果尚未安装)
# Linux: sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
# macOS: brew install go-task(假设已安装 Homebrew)
# 设置开发环境(基于 Linux apt 或带有 Homebrew 的 macOS)
task setup-dev
# 构建项目
task
# 启动热重载开发服务器
task dev_server # or "air realtime"
```
`setup-dev` 任务将自动安装:
- Go 1.25
- Node.js LTS
- 构建工具(gcc、git、wget 等)
- golangci-lint(Go 代码检查器)
- air(Go 的热重载)
- 前端依赖项与 Playwright 浏览器
## Web 仪表板
有关详细安装说明,请参阅 [安装文档](doc/wiki/installation.md)。如需保护 BirdNET-Go 安装安全,请参考 [安全文档](doc/wiki/security.md)。请查看 [推荐硬件](doc/wiki/hardware.md) 以获得最佳性能。
更多使用文档请访问 [Wiki](doc/wiki/guide.md)
## 相关项目
### 核心与扩展
- [BirdNET-Analyzer](https://github.com/birdnet-team/BirdNET-Analyzer) - 提供用于鸟类声音识别的 BirdNET AI 模型的上游项目
- [BirdNET-Go Classifiers](https://github.com/tphakala/birdnet-go-classifiers) - 增强的 BirdNET 分类器,包含更多物种
### 系统集成
- [Cockpit BirdNET-Go](https://github.com/tphakala/cockpit-birdnet-go) - 基于 Cockpit 框架的 BirdNET-Go Web 系统管理插件
### 迁移工具
- [BirdNET-Pi2Go](https://github.com/tphakala/birdnet-pi2go) - 从 BirdNET-Pi 迁移数据库的工具
### 硬件解决方案
- [BirdNET-Go ESP32 RTSP 麦克风](https://github.com/Sukecz/birdnetgo-esp32-rtsp-mic) - 基于 ESP32 的 RTSP 流式麦克风,用于远程音频采集
- [ESP32 Audio Streamer](https://github.com/jpmurray/esp32-audio-streamer) - BirdNET-Go 音频输入的另一种 ESP32 RTSP 流式解决方案
- [M5Stack Atom Echo RTSP 麦克风](https://github.com/stedrow/birdnetgo-m5stack-atom-echo-rtsp-mic) - 无需焊接的 RTSP 音频流式服务器,适用于 M5Stack Atom Echo
## 数据来源
### 分类数据
BirdNET-Go 包含源自 eBird/Clements 检查单的嵌入式分类数据:
- **来源**:[eBird API v2](https://api.ebird.org/v2/ref/taxonomy/ebird)
- **版权**:© 康奈尔鸟类学实验室
- **许可**:根据 eBird API 使用条款,仅限非商业用途
- **归属**:分类数据由 [eBird.org](https://ebird.org) 提供支持
- **用途**:无需调用 API 即可实现快速的本地属/科查找
- **覆盖范围**:2,374 个属、254 个科、11,145 个物种
有关 eBird 分类学的更多信息,请访问 [eBird 分类学](https://ebird.org/science/use-ebird-data/the-ebird-taxonomy)。
## 许可
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
## 作者
Tomi P. Hakala
贡献者:Hampus Carlsson、Jan Vrska、@twt--、@aster1sk、@hoover67
如果您未出现在贡献者名单中,请告知!
BirdNET AI 模型由康奈尔鸟类学实验室的 K. Lisa Yang 保护生物声学中心与 Chemnitz University of Technology 合作开发。Stefan Kahl、Connor Wood、Maximilian Eibl、Holger Klinck。
BirdNET 标签翻译由 Patrick Levin 为 BirdNET-Pi 项目完成,项目由 Patrick McGuire 发起。