[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-tphakala--birdnet-go":3,"tool-tphakala--birdnet-go":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":77,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":117,"forks":118,"last_commit_at":119,"license":120,"difficulty_score":32,"env_os":121,"env_gpu":122,"env_ram":123,"env_deps":124,"category_tags":133,"github_topics":135,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":153,"updated_at":154,"faqs":155,"releases":184},8666,"tphakala\u002Fbirdnet-go","birdnet-go","Realtime BirdNET soundscape analyzer","BirdNET-Go 是一款基于人工智能的实时鸟类声音监测与分析工具，专为全天候捕捉和识别鸟鸣而设计。它利用训练有素的 BirdNET AI 模型，能够精准识别全球超过 6500 种鸟类的叫声，帮助用户轻松将环境中的自然声音转化为结构化的观测数据。\n\n这款工具主要解决了传统鸟类调查耗时费力、依赖人工经验的痛点。通过自动化分析声卡采集的音频流，BirdNET-Go 实现了 24\u002F7 不间断监测，并将结果实时保存至日志或数据库，甚至支持推送到 BirdWeather.com 等平台。其最大的亮点在于完全本地化处理，无需联网即可运行，既保护了隐私又降低了延迟；同时资源占用极低，能在树莓派等小型设备上流畅工作。此外，它还提供了直观的 Web 管理界面，支持 40 多种语言显示鸟名，并允许用户将识别结果作为直播叠加层，非常适合用于观鸟直播。\n\nBirdNET-Go 非常适合生态研究人员、鸟类爱好者以及拥有家庭观鸟设备的普通用户。对于开发者而言，由于其采用 Go 语言编写且开源，也便于进行二次开发或集成到更大的生态监测系统中。无论是想记录后院鸟况的自然爱好者，还是需要长期声学数据的科研团队，Bir","BirdNET-Go 是一款基于人工智能的实时鸟类声音监测与分析工具，专为全天候捕捉和识别鸟鸣而设计。它利用训练有素的 BirdNET AI 模型，能够精准识别全球超过 6500 种鸟类的叫声，帮助用户轻松将环境中的自然声音转化为结构化的观测数据。\n\n这款工具主要解决了传统鸟类调查耗时费力、依赖人工经验的痛点。通过自动化分析声卡采集的音频流，BirdNET-Go 实现了 24\u002F7 不间断监测，并将结果实时保存至日志或数据库，甚至支持推送到 BirdWeather.com 等平台。其最大的亮点在于完全本地化处理，无需联网即可运行，既保护了隐私又降低了延迟；同时资源占用极低，能在树莓派等小型设备上流畅工作。此外，它还提供了直观的 Web 管理界面，支持 40 多种语言显示鸟名，并允许用户将识别结果作为直播叠加层，非常适合用于观鸟直播。\n\nBirdNET-Go 非常适合生态研究人员、鸟类爱好者以及拥有家庭观鸟设备的普通用户。对于开发者而言，由于其采用 Go 语言编写且开源，也便于进行二次开发或集成到更大的生态监测系统中。无论是想记录后院鸟况的自然爱好者，还是需要长期声学数据的科研团队，BirdNET-Go 都是一个高效、轻量且易用的理想选择。","# BirdNET-Go\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_fbac01d51263.webp\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003C!-- Project Status -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftphakala\u002Fbirdnet-go?include_prereleases&style=flat-square&color=blue\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_b69738084c67.png\">\n  \u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_d2ac516e558c.png\">\n\n  \u003Cbr>\n\n  \u003C!-- Code Quality -->\n  \u003Ca href=\"https:\u002F\u002Fgolang.org\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt%20with-Go-teal?style=flat-square&logo=go\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_7ef969369a25.png\">\n  \u003C\u002Fa>\n\n  \u003Cbr>\n\n  \u003C!-- Community -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fnetwork\u002Fmembers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=purple\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fgraphs\u002Fcontributors\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=orange\">\n  \u003C\u002Fa>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=red\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1298738918239100939?style=flat-square&logo=discord&color=5865F2&label=Discord\">\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fcoderabbit.ai\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcoderabbit\u002Fprs\u002Fgithub\u002Ftphakala\u002Fbirdnet-go?utm_source=oss&utm_medium=github&utm_campaign=tphakala%2Fbirdnet-go&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\nBirdNET-Go is an AI solution for continuous avian monitoring and identification\n\n- 24\u002F7 realtime bird song analysis of soundcard capture, analysis output to log file, SQLite or MySQL\n- Utilizes BirdNET AI model trained with more than 6500 bird species\n- Local processing, Internet connectivity not required\n- Easy to use Web user interface for data visualisation\n- Supports over 40 languages for species names\n- Advanced features like [Deep Detection](doc\u002Fwiki\u002Fguide.md#deep-detection) for improved accuracy and [Live Audio Streaming](doc\u002Fwiki\u002Fguide.md#live-audio-streaming).\n- BirdWeather.com API integration\n- Realtime log file output can be used as overlay in OBS for bird feeder streams etc.\n- Minimal runtime dependencies, BirdNET Tensorflow Lite model is embedded in compiled binary\n- Provides endpoint for Prometheus data scraping\n- Runs on Windows, Linux and macOS\n- Low resource usage, works on Raspberry Pi 3 and equivalent 64-bit single board computers\n\n## Installation\n\nQuick install script for Debian, Ubuntu and Raspberry Pi OS based systems:\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fraw\u002Fmain\u002Finstall.sh -o install.sh\nbash .\u002Finstall.sh\n```\n\n## Development Setup\n\nFor developers who want to contribute or build from source:\n\n> See [CONTRIBUTING.md](CONTRIBUTING.md#step-1-install-task-runner) for more details.\n\n```bash\n# Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go.git\ncd birdnet-go\n\n# Install Task (if not already installed)\n# Linux: sh -c \"$(curl --location https:\u002F\u002Ftaskfile.dev\u002Finstall.sh)\" -- -d -b \u002Fusr\u002Flocal\u002Fbin\n# macOS: brew install go-task (assumes Homebrew is installed)\n\n# Setup development environment (Linux apt-based or macOS with homebrew)\ntask setup-dev\n\n# Build the project\ntask\n\n# Start development server with hot reload\ntask dev_server # or \"air realtime\"\n```\n\nThe `setup-dev` task will automatically install:\n\n- Go 1.25\n- Node.js LTS\n- Build tools (gcc, git, wget, etc.)\n- golangci-lint (Go linter)\n- air (hot reload for Go)\n- Frontend dependencies and Playwright browsers\n\n## Web Dashboard\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_d0cb92fbf91a.webp\" \u002F>\n\nFor detailed installation instructions, see the [installation documentation](doc\u002Fwiki\u002Finstallation.md). For securing your BirdNET-Go installation, see the [security documentation](doc\u002Fwiki\u002Fsecurity.md). See [recommended hardware](doc\u002Fwiki\u002Fhardware.md) for optimal performance.\n\nThere is more detailed usage documentation at [Wiki](doc\u002Fwiki\u002Fguide.md)\n\n## Community\n\nJoin our [Discord server](https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd) for support, discussions, and updates about BirdNET-Go!\n\n## Related Projects\n\n### Core & Extensions\n\n- [BirdNET-Analyzer](https:\u002F\u002Fgithub.com\u002Fbirdnet-team\u002FBirdNET-Analyzer) - Upstream project providing the BirdNET AI model for bird sound identification\n- [BirdNET-Go Classifiers](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go-classifiers) - Enhanced BirdNET classifiers including additional species\n\n### System Integration\n\n- [Cockpit BirdNET-Go](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fcockpit-birdnet-go) - Web-based system management plugin for BirdNET-Go using Cockpit framework\n\n### Migration Tools\n\n- [BirdNET-Pi2Go](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-pi2go) - Database conversion tool for migrating from BirdNET-Pi to BirdNET-Go\n\n### Hardware Solutions\n\n- [BirdNET-Go ESP32 RTSP Microphone](https:\u002F\u002Fgithub.com\u002FSukecz\u002Fbirdnetgo-esp32-rtsp-mic) - ESP32-based RTSP streaming microphone for remote audio capture\n- [ESP32 Audio Streamer](https:\u002F\u002Fgithub.com\u002Fjpmurray\u002Fesp32-audio-streamer) - Alternative ESP32 RTSP streaming solution for BirdNET-Go audio input\n- [M5Stack Atom Echo RTSP Mic](https:\u002F\u002Fgithub.com\u002Fstedrow\u002Fbirdnetgo-m5stack-atom-echo-rtsp-mic) - RTSP audio streaming server for M5Stack Atom Echo, no soldering required\n\n## Contributing\n\n**Want to contribute?** We welcome contributions from the community! 🎉\n\nFor comprehensive contributing guidelines, development setup, and workflow documentation, see [**CONTRIBUTING.md**](CONTRIBUTING.md).\n\n### Quick Start for Contributors\n\n**Experienced developers** can get started in 5 minutes:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go.git && cd birdnet-go\ntask setup-dev  # One command installs everything (Go, Node.js, tools, git hooks)\nair realtime    # Start developing with hot reload\n```\n\n**New to the project?** The [contributing guide](CONTRIBUTING.md) includes:\n\n- 📋 [TL;DR Quick Start](CONTRIBUTING.md#tldr---quick-start-for-experienced-developers) - 5-minute setup\n- 🔧 [Automated Environment Setup](CONTRIBUTING.md#development-environment-setup) - `task setup-dev` handles everything\n- 📖 [Development Workflow](CONTRIBUTING.md#development-workflow) - Hot reload, git hooks, testing\n- ⚖️ [License & Privacy](CONTRIBUTING.md#license-and-legal) - CC BY-NC-SA 4.0, privacy-by-design\n- 💬 [Discord Community](https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd) - Get help and discuss features\n\nAll contributions must follow:\n\n- ✅ Privacy-by-design principles\n- ✅ Code quality standards (automated via git hooks)\n- ✅ CC BY-NC-SA 4.0 license terms\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for complete details.\n\n## Data Sources\n\n### Taxonomy Data\n\nBirdNET-Go includes embedded taxonomy data derived from the eBird\u002FClements Checklist:\n\n- **Source**: [eBird API v2](https:\u002F\u002Fapi.ebird.org\u002Fv2\u002Fref\u002Ftaxonomy\u002Febird)\n- **Copyright**: © Cornell Lab of Ornithology\n- **License**: Used under eBird API Terms of Use for non-commercial purposes\n- **Attribution**: Taxonomy data powered by [eBird.org](https:\u002F\u002Febird.org)\n- **Purpose**: Provides fast local genus\u002Ffamily lookups without requiring API calls\n- **Coverage**: 2,374 genera, 254 families, 11,145 species\n\nFor more information about eBird's taxonomy, visit [eBird Taxonomy](https:\u002F\u002Febird.org\u002Fscience\u002Fuse-ebird-data\u002Fthe-ebird-taxonomy).\n\n## License\n\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International\n\n## Authors\n\nTomi P. Hakala\n\nContributions by Hampus Carlsson, Jan Vrska, @twt--, @aster1sk, @hoover67\n\nPlease let me know if you are missing from contributors list!\n\nBirdNET AI model by the K. Lisa Yang Center for Conservation Bioacoustics at the Cornell Lab of Ornithology in collaboration with Chemnitz University of Technology. Stefan Kahl, Connor Wood, Maximilian Eibl, Holger Klinck.\n\nBirdNET label translations by Patrick Levin for BirdNET-Pi project by Patrick McGuire.\n","# BirdNET-Go\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_fbac01d51263.webp\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003C!-- 项目状态 -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftphakala\u002Fbirdnet-go?include_prereleases&style=flat-square&color=blue\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_b69738084c67.png\">\n  \u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_d2ac516e558c.png\">\n\n  \u003Cbr>\n\n  \u003C!-- 代码质量 -->\n  \u003Ca href=\"https:\u002F\u002Fgolang.org\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt%20with-Go-teal?style=flat-square&logo=go\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_7ef969369a25.png\">\n  \u003C\u002Fa>\n\n  \u003Cbr>\n\n  \u003C!-- 社区 -->\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fnetwork\u002Fmembers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=purple\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fgraphs\u002Fcontributors\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=orange\">\n  \u003C\u002Fa>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Ftphakala\u002Fbirdnet-go?style=flat-square&color=red\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1298738918239100939?style=flat-square&logo=discord&color=5865F2&label=Discord\">\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fcoderabbit.ai\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcoderabbit\u002Fprs\u002Fgithub\u002Ftphakala\u002Fbirdnet-go?utm_source=oss&utm_medium=github&utm_campaign=tphakala%2FBirdnet-go&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\nBirdNET-Go 是一款用于持续性鸟类监测与识别的 AI 解决方案。\n\n- 全天候实时分析声卡采集的鸟鸣，分析结果可输出至日志文件、SQLite 或 MySQL 数据库。\n- 使用经过超过 6500 种鸟类数据训练的 BirdNET AI 模型。\n- 支持本地处理，无需互联网连接。\n- 提供易于使用的 Web 用户界面，用于数据可视化。\n- 支持超过 40 种语言的物种名称。\n- 具备高级功能，如 [深度检测](doc\u002Fwiki\u002Fguide.md#deep-detection) 以提升准确性，以及 [实时音频流](doc\u002Fwiki\u002Fguide.md#live-audio-streaming)。\n- 集成 BirdWeather.com API。\n- 实时日志文件输出可用作 OBS 中的叠加层，适用于鸟食台直播等场景。\n- 运行时依赖极少，BirdNET TensorFlow Lite 模型已嵌入编译后的二进制文件中。\n- 提供用于 Prometheus 数据抓取的端点。\n- 支持 Windows、Linux 和 macOS 系统。\n- 资源占用低，可在 Raspberry Pi 3 及同等性能的 64 位单板计算机上运行。\n\n## 安装\n\n适用于 Debian、Ubuntu 和 Raspberry Pi OS 系统的快速安装脚本：\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fraw\u002Fmain\u002Finstall.sh -o install.sh\nbash .\u002Finstall.sh\n```\n\n## 开发环境搭建\n\n面向希望贡献或从源码构建的开发者：\n\n> 更多详情请参阅 [CONTRIBUTING.md](CONTRIBUTING.md#step-1-install-task-runner)。\n\n```bash\n# 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go.git\ncd birdnet-go\n\n# 安装 Task（如果尚未安装）\n# Linux: sh -c \"$(curl --location https:\u002F\u002Ftaskfile.dev\u002Finstall.sh)\" -- -d -b \u002Fusr\u002Flocal\u002Fbin\n# macOS: brew install go-task（假设已安装 Homebrew）\n\n# 搭建开发环境（基于 apt 的 Linux 或使用 Homebrew 的 macOS）\ntask setup-dev\n\n# 构建项目\ntask\n\n# 启动带有热重载功能的开发服务器\ntask dev_server # 或 \"air realtime\"\n```\n\n`setup-dev` 任务将自动安装：\n\n- Go 1.25\n- Node.js LTS\n- 构建工具（gcc、git、wget 等）\n- golangci-lint（Go 代码检查工具）\n- air（Go 语言热重载工具）\n- 前端依赖项和 Playwright 浏览器\n\n## Web 控制面板\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_readme_d0cb92fbf91a.webp\" \u002F>\n\n有关详细的安装说明，请参阅 [安装文档](doc\u002Fwiki\u002Finstallation.md)。为确保您的 BirdNET-Go 安装安全，请参阅 [安全文档](doc\u002Fwiki\u002Fsecurity.md)。有关最佳性能的推荐硬件，请参阅 [硬件指南](doc\u002Fwiki\u002Fhardware.md)。\n\n更多详细的使用文档请参见 [Wiki](doc\u002Fwiki\u002Fguide.md)。\n\n## 社区\n\n加入我们的 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd)，获取支持、参与讨论并了解 BirdNET-Go 的最新动态！\n\n## 相关项目\n\n### 核心与扩展\n\n- [BirdNET-Analyzer](https:\u002F\u002Fgithub.com\u002Fbirdnet-team\u002FBirdNET-Analyzer) - 上游项目，提供用于鸟类声音识别的 BirdNET AI 模型。\n- [BirdNET-Go Classifiers](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go-classifiers) - 包含额外物种的增强型 BirdNET 分类器。\n\n### 系统集成\n\n- [Cockpit BirdNET-Go](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fcockpit-birdnet-go) - 基于 Cockpit 框架的 BirdNET-Go Web 管理插件。\n\n### 迁移工具\n\n- [BirdNET-Pi2Go](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-pi2go) - 用于从 BirdNET-Pi 迁移到 BirdNET-Go 的数据库转换工具。\n\n### 硬件解决方案\n\n- [BirdNET-Go ESP32 RTSP 麦克风](https:\u002F\u002Fgithub.com\u002FSukecz\u002Fbirdnetgo-esp32-rtsp-mic) - 基于 ESP32 的 RTSP 流媒体麦克风，用于远程音频采集。\n- [ESP32 音频流媒体](https:\u002F\u002Fgithub.com\u002Fjpmurray\u002Fesp32-audio-streamer) - 作为 BirdNET-Go 音频输入的替代性 ESP32 RTSP 流媒体解决方案。\n- [M5Stack Atom Echo RTSP 麦克风](https:\u002F\u002Fgithub.com\u002Fstedrow\u002Fbirdnetgo-m5stack-atom-echo-rtsp-mic) - 适用于 M5Stack Atom Echo 的 RTSP 音频流媒体服务器，无需焊接。\n\n## 贡献\n\n**想参与贡献吗？** 我们欢迎社区的每一位贡献者！🎉\n\n有关全面的贡献指南、开发环境搭建及工作流程文档，请参阅 [**CONTRIBUTING.md**](CONTRIBUTING.md)。\n\n### 贡献者快速入门\n\n**有经验的开发者** 可在 5 分钟内开始：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go.git && cd birdnet-go\ntask setup-dev  # 一条命令即可完成所有安装（Go、Node.js、工具、Git 钩子）\nair realtime    # 开始开发，享受热重载\n```\n\n**初次接触该项目？** 在 [贡献指南](CONTRIBUTING.md) 中，您将找到：\n\n- 📋 [TL;DR 快速入门](CONTRIBUTING.md#tldr---quick-start-for-experienced-developers) - 5 分钟即可完成设置。\n- 🔧 [自动化环境搭建](CONTRIBUTING.md#development-environment-setup) - `task setup-dev` 将为您处理一切。\n- 📖 [开发工作流程](CONTRIBUTING.md#development-workflow) - 热重载、Git 钩子、测试。\n- ⚖️ [许可与隐私](CONTRIBUTING.md#license-and-legal) - CC BY-NC-SA 4.0 许可，隐私设计原则。\n- 💬 [Discord 社区](https:\u002F\u002Fdiscord.gg\u002FgcSCFGUtsd) - 获取帮助并讨论功能。\n\n所有贡献必须遵循：\n\n- ✅ 隐私设计原则。\n- ✅ 代码质量标准（通过 Git 钩子自动执行）。\n- ✅ CC BY-NC-SA 4.0 许可条款。\n\n完整详情请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n## 数据来源\n\n### 分类学数据\n\nBirdNET-Go 包含基于 eBird\u002FClements 名录的嵌入式分类学数据：\n\n- **来源**：[eBird API v2](https:\u002F\u002Fapi.ebird.org\u002Fv2\u002Fref\u002Ftaxonomy\u002Febird)\n- **版权**：© 康奈尔鸟类学实验室\n- **许可**：根据 eBird API 使用条款，仅限非商业用途\n- **署名**：分类学数据由 [eBird.org](https:\u002F\u002Febird.org) 提供\n- **用途**：无需调用 API 即可快速进行本地属\u002F科查询\n- **覆盖范围**：2,374 个属、254 个科、11,145 个物种\n\n如需了解更多关于 eBird 分类学的信息，请访问 [eBird 分类学](https:\u002F\u002Febird.org\u002Fscience\u002Fuse-ebird-data\u002Fthe-ebird-taxonomy)。\n\n## 许可证\n\n知识共享 署名-非商业性使用-相同方式共享 4.0 国际版\n\n## 作者\n\n托米·P·哈卡拉\n\n贡献者：汉普斯·卡尔松、扬·弗尔斯卡、@twt--、@aster1sk、@hoover67\n\n如果您发现自己的名字未被列入贡献者名单，请告知我们！\n\nBirdNET 人工智能模型由康奈尔鸟类学实验室 K. Lisa Yang 保护生物声学中心与开姆尼茨工业大学合作开发。参与人员包括：斯特凡·卡尔、康纳·伍德、马克西米利安·艾布尔、霍尔格·克林克。\n\nBirdNET 标签翻译由帕特里克·莱文为帕特里克·麦圭尔的 BirdNET-Pi 项目完成。","# BirdNET-Go 快速上手指南\n\nBirdNET-Go 是一个基于 AI 的鸟类声音监测与识别工具，支持 24\u002F7 实时分析声卡输入，本地运行无需联网，并提供易用的 Web 管理界面。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux (Debian\u002FUbuntu\u002FRaspberry Pi OS), Windows, macOS\n- **硬件建议**：\n  - 最低配置：树莓派 3 或同等性能的 64 位单板计算机\n  - 推荐配置：4GB+ 内存，多核 CPU（用于并发处理）\n- **网络**：运行时不需要互联网连接（模型已嵌入二进制文件），但安装时可能需要下载资源。\n\n### 前置依赖\n对于普通用户，官方提供的一键安装脚本会自动处理大部分依赖。\n对于开发者或从源码构建，需要手动安装以下工具：\n- Go 1.25+\n- Node.js LTS\n- 基础构建工具 (gcc, git, wget 等)\n- Task (任务运行器)\n\n## 安装步骤\n\n### 方法一：一键安装（推荐 Linux\u002F树莓派用户）\n适用于 Debian、Ubuntu 和 Raspberry Pi OS 系统。运行以下命令自动下载并安装：\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fraw\u002Fmain\u002Finstall.sh -o install.sh\nbash .\u002Finstall.sh\n```\n\n> **注意**：国内用户若下载缓慢，可尝试配置代理或使用国内镜像加速 `curl` 请求。\n\n### 方法二：源码构建（开发者）\n如果你希望贡献代码或自定义编译：\n\n```bash\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go.git\ncd birdnet-go\n\n# 2. 安装 Task 运行器 (如未安装)\n# Linux:\nsh -c \"$(curl --location https:\u002F\u002Ftaskfile.dev\u002Finstall.sh)\" -- -d -b \u002Fusr\u002Flocal\u002Fbin\n# macOS (需 Homebrew):\n# brew install go-task\n\n# 3. 设置开发环境 (自动安装 Go, Node.js, lint 工具等)\ntask setup-dev\n\n# 4. 编译项目\ntask\n\n# 5. 启动带热重载的开发服务器\ntask dev_server\n```\n\n## 基本使用\n\n安装完成后，BirdNET-Go 通常作为后台服务运行，并通过 Web 界面进行配置和监控。\n\n1. **启动服务**\n   如果是通过一键脚本安装，服务通常会自动启动。若需手动启动二进制文件：\n   ```bash\n   .\u002Fbirdnet-go\n   # 或者在开发模式下\n   air realtime\n   ```\n\n2. **访问 Web 仪表盘**\n   打开浏览器访问默认地址（通常为 `http:\u002F\u002Flocalhost:8080` 或你在配置中指定的端口）。\n   \n3. **配置音频输入**\n   - 进入 Web 界面的 **Settings** (设置)。\n   - 选择你的音频输入设备（声卡或 USB 麦克风）。\n   - 调整灵敏度阈值以过滤背景噪音。\n   - 保存配置，系统将开始实时分析鸟鸣并记录到 SQLite\u002FMySQL 数据库或日志文件中。\n\n4. **数据查看与导出**\n   - 在仪表盘查看实时识别结果和统计图表。\n   - 支持将日志输出为 OBS 覆盖层，用于直播推流。\n   - 提供 Prometheus 接口供监控系统抓取数据。\n\n详细的高级功能（如深度检测、音频流推送）请参考项目 Wiki 文档。","一位生态研究员在偏远湿地部署了自动录音设备，旨在全天候监测珍稀鸟类的迁徙与活动规律。\n\n### 没有 birdnet-go 时\n- **人工听辨效率极低**：研究人员需手动收听数千小时的录音文件，耗时数周才能完成一次数据整理，且极易因疲劳产生漏判。\n- **无法实时响应异常**：由于数据需定期取回硬盘分析，若发现偷猎者入侵或罕见鸟类出现，往往错过最佳现场干预或观测时机。\n- **硬件资源难以承载**：尝试在树莓派等边缘设备上运行其他大型 AI 模型时，常因内存不足或依赖复杂导致系统频繁崩溃。\n- **数据可视化困难**：识别结果散落在杂乱的文本日志中，缺乏直观的时间轴图表，难以向公众或资助方展示生动的监测成果。\n\n### 使用 birdnet-go 后\n- **自动化精准识别**：birdnet-go 利用内置的 6500+ 物种模型，在树莓派上直接对声卡采集的音频进行 24\u002F7 实时分析，瞬间输出结构化数据至数据库。\n- **即时预警与直播联动**：通过实时日志输出功能，研究员将识别结果直接推流至 OBS，当检测到目标鸟种时自动触发摄像头录制或发送警报。\n- **轻量稳定运行**：得益于 Go 语言的编译特性与嵌入式 TFLite 模型，birdnet-go 在低配单板电脑上长期稳定运行，无需联网即可本地处理所有数据。\n- **直观的数据洞察**：内置的 Web 仪表盘自动生成物种出现频率图表，支持多语言物种名显示，让复杂的声学数据一目了然。\n\nbirdnet-go 将原本滞后的离线声学分析转变为实时的边缘智能感知，极大降低了生物多样性监测的门槛与成本。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftphakala_birdnet-go_fbac01d5.webp","tphakala","Tomi P. Hakala","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftphakala_58c0001e.jpg",null,"Finland","https:\u002F\u002Fgithub.com\u002Ftphakala",[80,84,88,92,96,100,104,108,111,114],{"name":81,"color":82,"percentage":83},"Go","#00ADD8",68.4,{"name":85,"color":86,"percentage":87},"Svelte","#ff3e00",15.6,{"name":89,"color":90,"percentage":91},"TypeScript","#3178c6",12.4,{"name":93,"color":94,"percentage":95},"Shell","#89e051",2.6,{"name":97,"color":98,"percentage":99},"CSS","#663399",0.5,{"name":101,"color":102,"percentage":103},"JavaScript","#f1e05a",0.2,{"name":105,"color":106,"percentage":107},"Python","#3572A5",0.1,{"name":109,"color":110,"percentage":107},"Makefile","#427819",{"name":112,"color":113,"percentage":107},"HCL","#844FBA",{"name":115,"color":116,"percentage":107},"Dockerfile","#384d54",1033,89,"2026-04-17T14:52:53","NOASSERTION","Linux, Windows, macOS","不需要 GPU，使用嵌入式 Tensorflow Lite 模型进行本地处理","低资源占用，可在 Raspberry Pi 3 及同等 64 位单板计算机上运行（具体数值未说明）",{"notes":125,"python":126,"dependencies":127},"该项目主要使用 Go 语言编写，运行时依赖极少，BirdNET Tensorflow Lite 模型已嵌入编译后的二进制文件中，无需联网即可运行。开发环境需安装 Go 1.25、Node.js LTS 及相关构建工具。支持树莓派 3 等低功耗设备。","不需要 Python（基于 Go 语言编译的二进制文件）",[128,129,130,131,132],"Go 1.25 (开发环境)","Node.js LTS (开发环境)","gcc","git","wget",[134,14],"音频",[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],"audio","bioacoustics","birds","golang","tensorflow","birdnet","birdnet-pi","wildlife","birdweather","raspberry-pi","artificial-intelligence","tailwindcss","contributions-welcome","go","linux","raspberrypi","svelte","2026-03-27T02:49:30.150509","2026-04-18T03:34:43.683688",[156,161,166,171,176,180],{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},38814,"RTSP 流断开后无法自动重连怎么办？","该问题已在最新版本中通过重构 FFmpeg 流管理解决。新版本引入了进程状态机跟踪、退避机制、熔断器和重启逻辑。FFmpegManager 现在包含 `RestartStream()` 方法，支持基于健康状态的自动重启和看门狗监控。RTSP 流现在具有带有指数退避和健康监控的稳健重连功能。如果遇到重连问题，请确保使用最新构建版本（如 nightly-20250826 或更新），并检查日志。如果问题仍然存在，请提交包含日志的新 Issue。","https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\u002F737",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},38815,"升级到 dev 版本后鸟类检测率降至接近零是什么原因？","这通常是由于 Docker 镜像基础系统变更导致的。维护者确认问题已修复：在将 Docker 镜像更新为 Debian 13 Trixie 后，发现默认不再包含 `addgroup` 命令，导致程序运行异常。解决方案是确保在最终镜像的 `apt install` 步骤中包含 `addgroup` 包。用户反馈拉取最新源码重新构建（Linux AMD\u002FARM 和 Windows）或等待官方修复后的最新 dev 镜像即可恢复正常检测率。","https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\u002F1314",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},38816,"如何纠正模型将其他声音（如羊叫、人类喷嚏）误识别为特定鸟类（如哈达达伊比斯、乌林鸮）的问题？","可以通过训练自定义分类器来减少误报。具体步骤如下：\n1. 提取包含已验证目标鸟类叫声的音频片段，存入对应物种文件夹（例如 `Anthreptes orientalis_Eastern Violet-backed Sunbird`）。\n2. 提取所有不包含任何需要学习声音的“负样本”部分，存入 `Background` 文件夹。\n3. 如果音频片段中包含与目标鸟类重叠的其他鸟叫声，将其存入带前缀 `-` 的文件夹（例如 `-Anthreptes orientalis_...`）。\n4. 对于误报的人类声音（如喷嚏），应将这些声音片段加入 `human` 文件夹作为负样本训练，并将背景噪音加入背景文件夹。\n详细文档可参考：https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fblob\u002Fmain\u002Fdoc\u002Fwiki\u002Ftraining-a-custom-classifier.md","https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\u002F1184",{"id":172,"question_zh":173,"answer_zh":174,"source_url":175},38817,"更新 nightly 版本后出现高 CPU 负载且进程频繁重启如何解决？","高 CPU 负载和频繁重启通常是因为 FFmpeg 在连接丢失时陷入重试循环。维护者发布了修复版本（如 nightly-20250710），配置 FFmpeg 以检测连接问题并在超时后停止重试。\n建议操作步骤：\n1. 升级到最新的 nightly 版本。\n2. 在 BirdNET-Go 设置中，尝试将所有流的协议切换为 UDP。\n3. 重启 BirdNET-Go 服务以确保新配置生效。\n日志中若出现 `✅ Stream ... is healthy` 和正常的 `FFmpeg process ended normally`  followed by `Waiting ... before restart attempt`，则表明修复生效，系统能正常处理断流并重连，不再占用过高 CPU。","https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fissues\u002F811",{"id":177,"question_zh":178,"answer_zh":179,"source_url":175},38818,"摄像头重启后 BirdNET-Go 无法恢复流连接，必须重启软件本身吗？","在旧版本中确实存在此问题，但在引入套接字超时（socket timeout）机制的最新 nightly 版本中已解决。新版本能够检测到摄像头重启导致的连接中断，并自动触发 FFmpeg 重启流程。\n验证方法：\n1. 确保运行的是包含修复的最新 nightly 版本（20250710 之后）。\n2. 保持默认设置或使用 UDP 模式。\n3. 重启摄像头设备。\n观察日志，若看到 `⏳ Waiting Xs before restart attempt` 随后 `✅ FFmpeg started`，说明系统已自动恢复，无需手动重启 BirdNET-Go 服务。",{"id":181,"question_zh":182,"answer_zh":183,"source_url":170},38819,"如何处理 BirdNET 模型对特定物种的持续误识别？","除了调整置信度阈值（如设置为 100% 才记录）或将误报物种加入过滤列表（如狗过滤器）外，最根本的解决方法是提供训练数据给模型团队或自行训练自定义分类器。\n对于自行训练：\n- 将误识别的录音放入对应的正确物种子文件夹中（如果是真阳性但被漏检）。\n- 如果是纯误报（如人声被识别为猫头鹰），将这些录音放入 `human` 或背景噪音文件夹作为负样本。\n- 也可以联系 BirdNET 团队或通过相关讨论区（如 BirdNET-Pi discussions）询问是否可以使用您整理的文件夹结构数据进行官方模型训练。",[185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280],{"id":186,"version":187,"summary_zh":188,"released_at":189},314728,"nightly-20260414","本次夜间版本是一次重大的架构升级。亮点包括：支持多音源音频采集及动态设备重新配置、引入基于 Perch v2 和 ONNX 后端的全新多模型检测流水线、对音频子系统进行全面重构、大幅增强数据库可靠性，以及在检测、流媒体、通知和仪表板等多个模块中修复了超过 50 处问题。\n\n## 新特性\n\n### 多音源音频采集\nBirdNET-Go 现在可以同时监听多个声卡。每个音源都可独立设置增益和 EQ 滤波器配置。采集流水线支持动态设备重新配置——用户无需重启服务器即可通过 UI 添加、移除或重新指定音源。这一功能基于全新的 `internal\u002Faudiocore` 包实现，该包用整洁的依赖注入式音频架构替换了原有的单体 `myaudio` 模块（#2612、#2614、#2616、#2737、#2738、#2739）。\n\n### 多模型检测基础架构（预览——本版本仅支持 BirdNET v2.4）\n音频采集流水线已重写，支持并行输入一个或多个 AI 模型；同时新增了一个受构建标签控制的 ONNX 推理后端，与现有的 TensorFlow Lite 后端并存。Docker 镜像现搭载 ONNX Runtime 1.24.4，并将分类器相关代码重组至 `internal\u002Fclassifier` 包下，按后端划分子包，且引入基于配置的模型标识注册机制。\n\n**目前这仍处于预览阶段，尚未作为正式功能发布。** 本版本继续仅运行 BirdNET v2.4。虽然技术上已接入对 Google Perch v2 和即将发布的 BirdNET v3.0 的支持，但这些功能目前仍处于 **未测试状态**，发行包中并未附带额外模型，且暂无用于启用或配置替代模型的 UI。未来版本计划推出一个模型目录 UI，以方便部署更多模型——最终还将集成来自 BattyBirdNET-Pi 项目的蝙蝠检测模型。随着新流水线逐步成熟，预计仍会存在一些不完善之处。更多信息请参阅讨论帖 [#2725](https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fdiscussions\u002F2725)（#2617、#2619、#2622、#2623、#2624、#2625、#2626、#2628、#2631、#2637、#2639、#2676）。\n\n### 物种自定义配置编辑器重构\n物种自定义配置编辑器现已采用可复用的编辑组件进行重构，提供更简洁一致的用户体验，其中包括常用名与学名之间的双向解析功能（#2685、#2687）。\n\n### HTTPS 健康检查\n容器健康检查现支持 HTTPS 端点，并具备响应验证功能，可正确处理重定向请求（由 @mmomjian 提交的 #2673，以及 #2680）。\n\n### 统一的 UI 过渡效果\nUI 中的下拉菜单和模态框现采用统一的过渡样式，使整体交互更加连贯（#2563）。\n\n### 匈牙利语本地化\nUI 新增匈牙利语（hu）本地化支持（由 @cinadr 提交的 #2488）。\n\n### 支持转储中包含 GitHub 问题编号\n从“设置 > 支持”页面上传的支持转储文件现在可携带 GitHub 问题编号，该编号会传递至 Sentry 平台，从而更轻松地将诊断数据与已上报的问题关联起来（#2","2026-04-14T08:39:38",{"id":191,"version":192,"summary_zh":193,"released_at":194},314729,"nightly-20260322","**如果您正在使用 nightly-20260321 版本，请升级到此版本。** 该版本修复了一个严重 bug，该 bug 会导致“设置 > 集成”页面卡死整个 UI，使所有导航功能无响应。Docker 和裸机部署均受此影响。\n\n此版本包含了 nightly-20260321 的所有功能：带有实时检测标签的实时频谱图、优雅重启、引导向导、基于 OIDC 安全保护的 HLS 流媒体、分类体系同义词覆盖、Discord Webhook 通知，以及三种新的本地化语言。\n\n---\n\n## 重大 Bug 修复\n\n- **“集成”页面卡死（effect_update_depth_exceeded）** — eBird API 密钥验证中的无限响应式循环导致 Svelte 运行时在导航至“设置 > 集成”时完全锁定，所有按钮和导航功能都会被冻结，直到关闭该标签页为止 (#2475，修复 #2478、#2474)。\n\n## 遥测功能改进\n\n- **前端 Sentry 错误监控** — 现在会将客户端错误上报至 Sentry，并进行隐私过滤，有助于更快地捕获此类 UI 崩溃问题 (#2476)。\n- **遥测系统加固** — 添加了空值保护、事件队列容量限制、日志记录器与 Sentry 的对接，以及源码映射支持，以生成更有意义的前端堆栈跟踪信息 (#2477)。","2026-03-22T12:59:15",{"id":196,"version":197,"summary_zh":198,"released_at":199},314730,"nightly-20260321-397","**如果您使用 Discord 通知，请升级到此版本。** 之前的夜间构建会静默屏蔽 Discord 警报，因为检测结果以错误的内部通知类型发出，导致 Webhook 投递始终无法触发。\n\n本版本包含了早期 nightly-20260321 中的所有功能：带有实时检测标签的实时频谱图、优雅重启、引导向导、基于 OIDC 保护的 HLS 流媒体、分类体系同义词覆盖，以及三种新语言环境。\n\n---\n\n## Discord 和 Webhook 通知修复\n\n- **修复 Discord 通知被静默屏蔽的问题** — 检测警报曾以错误的内部通知类型发出，导致 Discord 及其他 Webhook 通知被静默丢弃而非正常发送 (#2467)\n- **将检测元数据传递给 Webhook 模板** — Webhook 模板现在可接收到完整的检测元数据（物种、置信度、位置、时间戳），从而修复了空缺或损坏的 Discord 富文本嵌入 (#2473)\n- **修复物种追踪器过早更新的问题** — 物种追踪器在检测尚未完全生成时便已更新，导致通知上下文中显示过时数据 (#2469)\n\n## 文档\n\n- **Discord 通知设置指南** — 包含富文本 Webhook 模板的分步指南 (#2472)","2026-03-21T21:23:41",{"id":201,"version":202,"summary_zh":203,"released_at":204},314731,"nightly-20260321","本次夜间版本是一次大型功能发布。亮点包括：带有实时 BirdNET 检测标签的实时频谱图可视化、优雅的二进制和容器重启、首次引导向导、OIDC 安全保护的 HLS 流媒体、分类学同义词覆盖，以及新增三种本地化语言。\n\n## 新特性\n\n### 实时频谱图与检测标签\n为音频流提供实时瀑布式频谱图可视化，并在频谱图上直接叠加 BirdNET 的实时检测标签。标签通过 program_date_time 时间戳与 HLS 播放头同步，对于持续检测到的物种还会显示重复检测标记。此外，还提供了用于仪表盘的紧凑型 MiniSpectrogram 小部件，以及一个新的 SpectrogramPlayer 组件，用于替换检测行中的完整 AudioPlayer（#2391、#2430、#2368）。\n\n### 优雅的二进制与容器重启\n无需丢失数据即可从 UI 重启 BirdNET-Go。支持原生二进制重启和 Docker 容器重启，并在系统概览中新增了一个 RestartCard。后台迁移会在重启完成后继续同步已完成的检测结果，并包含启动时的对账机制，以补全重启期间可能遗漏的数据（#2443）。\n\n### 引导向导\n全新的向导对话框系统，用于首次设置和新功能介绍流程。通过分步引导对话框，帮助新用户完成初始配置（#2418、#2423）。\n\n### 分类学同义词覆盖\n允许用户配置已被重新分类物种的分类学同义词映射。提供用于管理覆盖、验证和日志记录的设置界面。预装了近期被重新分类物种的内置映射（斑鸠属 → 斑尾鸽属、牛背鹭属 → 苍鹭属、库柏氏鹰的学名）（由 @tariquesani 提交的 #2427 和 #2395，以及 #2440）。\n\n### 公开直播音频访问\n新增选项，允许面向公众的部署环境开放未认证的直播音频流访问权限。支持热加载——更改会立即生效，无需重启（#2356）。\n\n### 默认音频增益设置\n可配置所有视图中音频播放的默认增益级别（#2354）。\n\n### 自定义配置文件路径\n新增 `--config` \u002F `-c` CLI 标志，用于指定自定义配置文件路径，适用于运行多个实例或非标准部署场景（#2455）。\n\n### 告警规则验证\n现在在保存告警规则时会对升级步骤进行验证，防止配置错误的升级链路（#2464）。\n\n### Portainer 应用模板\n官方 Portainer 应用模板，支持一键部署，并附有 UID\u002FGID 配置说明文档。\n\n### 检测详情页英雄区改版\n检测详情页的英雄区现采用三卡布局，以提升信息密度。\n\n### 设置表单改版\n所有设置表单均按照系统设计语言进行了重新设计，以实现视觉一致性（#2336）。\n\n### 新增本地化语言\n- 丹麦语（da）（#2366）\n- 瑞典语（sv）（#2365）\n- 拉脱维亚语（lv）（#2364）\n\n## 安全性\n\n- **HLS 流鉴权** — 使用基于会话的流令牌，防止未认证用户访问 HLS 音频流（#2406）\n- **加固 HTTP 安全**","2026-03-21T19:33:54",{"id":206,"version":207,"summary_zh":208,"released_at":209},314743,"v0.6.3","## What's Changed\r\n* add About page by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F484\r\n* refactor: Enhance error handling and template rendering with improved… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F487\r\n* fix: Improve SSE connection management and client-side error handling… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F488\r\n* feat: Add MQTT connection testing and configuration management by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F490\r\n* refactor: Reorganize and enhance view templates for improved structure by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F491\r\n* refactor: Reorganize routes into \u002Fapi\u002Fv1 by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F492\r\n* Added Portuguese (Brazil) labels file (labels_pt-br.txt) by @Fotguedes in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F496\r\n* Refactor UI to components by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F498\r\n* chore(deps): bump golang.org\u002Fx\u002Fcrypto from 0.33.0 to 0.34.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F494\r\n* chore(deps): bump github.com\u002Fprometheus\u002Fclient_golang from 1.20.3 to 1.21.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F493\r\n* feat: Add comprehensive JSON API implementation for analytics and sys… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F500\r\n* fix: Fix diskmanager file type protection check and add unit testing by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F503\r\n* Update AUTHORS file by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F506\r\n* feat: Birdweather dynamic restart on reconfigure by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F509\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F499\r\n* chore(deps): bump github.com\u002Fklauspost\u002Fcpuid\u002Fv2 from 2.2.9 to 2.2.10 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F512\r\n* chore(deps): bump golang.org\u002Fx\u002Fcrypto from 0.34.0 to 0.35.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F511\r\n* chore(deps): bump golang.org\u002Fx\u002Foauth2 from 0.26.0 to 0.27.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F510\r\n* chore: Set Tailwind CSS and DaisyUI versions to known good level by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F518\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F513\r\n* refactor: Improve responsive table view with dynamic hourly count dis… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F521\r\n* refactor: Centralize RTSP URL sanitization in conf package by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F522\r\n\r\n## New Contributors\r\n* @Fotguedes made their first contribution in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F496\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fcompare\u002Fv0.6.2...v0.6.3","2025-03-08T09:33:51",{"id":211,"version":212,"summary_zh":213,"released_at":214},314732,"nightly-20260315","本次夜间版本带来了多项重要的前端功能——OIDC身份认证、配色方案系统、带有处理工具的音频片段提取、仪表盘自定义以及天气\u002F月相显示——同时还修复了大量稳定性与可靠性问题。\n\n## 新特性\n\n### 认证与安全\n- **OIDC 提供商支持** — 可连接自托管的身份提供商（Keycloak、Authentik 等），实现单点登录 (#2324)\n- **OIDC 前端设置界面** — 直接从安全设置页面配置 OIDC 提供商 (#2328)\n- **OIDC 的 RP 发起注销** — 完善的注销流程，可同时登出 BirdNET-Go 和身份提供商 (#2327)\n- **TLS 证书管理** — 四种证书模式（无、自签名、自定义、ACME）可通过 UI 配置 (#2288)\n- **MQTT TLS 证书管理** — 通过设置界面配置 MQTT 连接的 TLS 证书 (#2296)\n- **允许 iframe 嵌入** — 新增选项，允许将 BirdNET-Go 嵌入 iframe 中 (#2291)\n- **从浏览器日志中脱敏凭据** — 敏感信息在输出到控制台前会被清除 (#2306)\n- **GenerateRandomSecret 返回错误** — 正确传播错误，而非静默返回空字符串 (#2307)\n\n### 仪表盘与 UI\n- **配色方案系统** — 预设配色方案、自定义颜色选择器，并支持服务器端持久化 (#2252)\n- **可自定义的仪表盘布局** — 支持内联编辑，可调整小部件宽度 (#2265)\n- **天气显示和月相** — 仪表盘横幅上实时显示天气和月相指示 (#2300)\n- **仪表盘齿轮设置** — 新增下拉菜单，包含地图控件和仪表盘选项 (#2289)\n- **页眉中的设置菜单** — 将主题切换按钮替换为齿轮设置菜单 (#2287)\n- **重置仪表盘选项** — 可从页眉菜单将仪表盘布局恢复为默认值\n- **遥测监听地址选择器** — 用包含端口字段的 IP 下拉列表替代自由文本输入 (#2257)\n\n### 音频与分析\n- **从频谱图中提取音频片段** — 可直接从频谱图视图中提取并下载音频片段 (#2303)\n- **音频处理工具栏** — 提供去噪、归一化和增益控制功能，用于音频播放 (#2323)\n- **重新设计的音频处理工具栏** — 统一控件，布局更优化 (#2334)\n- **音频分析过载通知** — 当系统无法跟上实时音频分析时发出警报 (#2286)\n- **音频均衡滤波器时序诊断** — 为 RTSP 流上的音频均衡提供时序指标 (#2262)\n\n### 可观测性与配置\n- **eBird API 密钥验证** — 可从设置界面测试 eBird API 的连通性 (#2335)\n- **环境检测和 CPU 详情** — 系统信息现显示容器环境和 CPU 型号 (#2264)\n- **后端连通性检查** — 当服务器不可达时，显示离线横幅并启用轮询保护 (#2269)\n\n## Bug 修复\n\n### 音频与分析\n- **在服务器端等待音频编码完成** — 防止对正在进行的编码提前返回 503 错误 (#2284)\n- **防止 a","2026-03-15T17:02:31",{"id":216,"version":217,"summary_zh":218,"released_at":219},314733,"nightly-20260311","本次夜间构建主要聚焦于音频处理、数据库迁移、分类学映射以及前端的稳定性提升和缺陷修复。此外，还新增了 Prometheus 可观测性指标，并对物种设置页面进行了更新。\n\n## 新特性\n\n- **物种设置页面改版** — 采用系统设计语言对物种设置页面进行焕新，以实现更一致的视觉与交互体验 (#2190)\n- **BirdNET 缓冲区溢出的 Prometheus 指标** — 新增指标，用于监控 BirdNET 处理流水线因缓冲区压力而丢弃音频片段的情况 (#2230)\n- **MyAudio 的 Prometheus 指标接入** — 之前未使用的音频采集指标现已导出至 Prometheus (#2232)\n- **BirdNET 处理中的缓冲区溢出跟踪** — 内部遥测机制用于记录分析过程中音频缓冲区溢出的情况 (#2229)\n\n## 缺陷修复\n\n### 音频与分析\n- **音频仍在编码时返回 503 而非 404** — 现在当编码正在进行时，音频请求将返回 503（服务不可用），以便客户端可以重试 (#2227)\n- **处理 RTSP 重连时缺失分析缓冲区的问题** — 防止在 RTSP 源重新连接但分析缓冲区尚未分配时发生宕机 (#2214)\n- **为慢速存储延长音频文件就绪超时时间** — 针对 NAS 和网络挂载存储，适当延长了超时时间 (#2210)\n- **在音频文件校验重试中保留指数退避策略** — 此前退避策略被意外简化为线性退避，现已恢复为正确的指数退避 (#2218)\n\n### FFmpeg 与路径处理\n- **防止入口路径前缀污染 FFmpeg 二进制路径** — 入口路径不再泄漏到 FFmpeg 可执行文件的解析过程中 (#2216)\n- **将 FFmpeg 路径验证扩展至所有执行点** — 在所有调用 FFmpeg 的地方保持一致的路径验证 (#2219)\n\n### 数据库与数据存储\n- **检测并修复 legacy image_caches 表中的 v2 列污染问题** — 自动修复那些误引入 v2 列的旧表 (#2188)\n- **在 MySQL 孤立表清理期间禁用外键检查** — 避免在 MySQL 上删除孤立表时出现迁移失败 (#2208)\n- **恢复 species_code 并修复 v2only 分析中的空摘要** — 现在分析查询能够正确返回物种代码和摘要 (#2223)\n\n### 分类学\n- **为重新分类的物种添加 BirdNET 同义词映射** — 将重命名的物种重新映射回其当前分类体系 (#2215)\n- **解决剩余未映射的 BirdNET 物种问题** — 修复了最后 10 种此前没有分类学映射的物种 (#2217)\n\n### 前端\n- **强制所有鸟类缩略图采用 4:3 宽高比例** — 在所有视图中实现一致的缩略图尺寸 (#2189)\n- **修正 PWA 清单中的 start_url 和 scope** — 修复了 PWA 安装及导航行为上的问题 (#2221)\n- **防止物种列表中出现 each_key_duplicate 错误** — 消除了 Svelte 控制台中因重复键值而产生的警告信息 (#2224)\n- **在 imageprovider 错误通知中显示 scientific_name** — 错误提示现在会包含物种的学名，便于调试 (#2231)\n\n### 图像提供者\n- **缓存网络故障，避免重复的 DNS 解析失败**","2026-03-11T14:43:32",{"id":221,"version":222,"summary_zh":223,"released_at":224},314734,"nightly-20260310","**此夜间版本（2026年3月10日）包含对3月9日发布的夜间版本的关键错误修复。** 主要修复包括：所有音源的音频滤波链初始化、多音源设置中双二阶滤波器状态损坏的预防、MySQL v2迁移兼容性，以及声级处理器的稳定性问题。如果您已安装3月9日的夜间版本，强烈建议您更新至此版本。\n\n本版本还包含了3月9日夜间版本中的所有功能和改进：V2数据库模式、告警规则引擎、重新设计的UI页面、PWA支持等更多内容。\n\n---\n\n## 关键错误修复（自3月9日夜间版本以来）\n\n- **非malgo音源的音频滤波链未初始化** — 滤波链仅针对malgo音频源进行设置，导致RTSP及其他音源无法应用滤波 (#2163)\n- **多音源设置中双二阶滤波器状态损坏** — 音源间共享滤波器状态导致相互干扰；现改为每个音源独立使用滤波链 (#2168)\n- **声级处理器错误泛滥及竞态条件** — 声级处理器中存在过多错误日志记录及数据竞争问题 (#2169)\n- **MySQL v2 AutoMigrate在旧版模式下失败** — 当MySQL中存在旧版表时，v2迁移会失败 (#2165)\n- **V2数据库表名不匹配** — 处理PR#2165之前存在的表名不匹配问题，适用于已有的V2数据库 (#2185)\n- **图像提供者在科学名称为空时崩溃** — 在读取路径中增加对空科学名称的防护措施 (#2164)\n- **移除冗余的SSE音频文件轮询** — 删除了处理器中不必要的轮询操作 (#2167)\n- **分层关闭的生命周管理** — 引入新的Service接口，以实现更整洁的启动与关闭顺序 (#2147)\n- **LegacyService启动\u002F停止中的竞态条件** — 消除了服务启动与停止之间的竞态问题 (#2178)\n- **FFmpeg退出码未被捕获** — 现在会在handleQuickExitError中捕获真实的退出码 (#2177)\n- **日志配置结构体标签缺失** — 为日志配置结构体添加了mapstructure标签 (#2186)\n- **AviCommons现为默认图像提供者** — 将默认的鸟类图像提供者切换至AviCommons (#2142, #2144)\n\n## 新特性\n\n### V2数据库模式\n\n**变更内容：** 数据库现采用规范化设计，将标签、模型和预测分别存储于独立的表中，并通过外键关联。这一设计支持多模型运行、模型专属标签，并显著提升查询效率。\n\n**迁移：** 现有安装可从系统\u002F数据库仪表板迁移到新的V2模式。迁移过程分阶段进行，具备进度跟踪与验证功能，需由用户手动启动。全新安装则直接使用V2模式。\n\n**重要性：** 新的告警规则引擎、高级分析功能以及数据库仪表板等功能均依赖于V2模式。未来的新功能也将完全基于此基础开发。\n\n### 告警规则引擎\n\n一个灵活的基于规则的通知系统，取代了简单的阈值告警。您可以创建结合多个条件的规则……","2026-03-10T13:53:25",{"id":226,"version":227,"summary_zh":228,"released_at":229},314735,"nightly-20260118","本次预发布版本（2026年1月18日）带来了音频播放优化、Home Assistant 集成增强，以及全平台的多项问题修复。\n\n## 新特性\n\n**音频播放速度控制**\n新增针对检测音频片段的播放速度控制功能，并采用面向无障碍的设计 (#1774)。\n\n**磁盘通知聚合**\n磁盘空间通知现按挂载点进行聚合，以减少通知噪音 (#1822)。\n\n**Home Assistant 的 MQTT 检测 ID**\nMQTT 消息中现已包含 detectionId，以更好地支持 Home Assistant 自动化 (#1824)。\n\n## 问题修复\n\n**Home Assistant 及反向代理**\n- 解决了 Home Assistant MQTT 发现相关问题 (#1777)\n- 为 Home Assistant Ingress 提供反向代理导航支持 (#1815)\n- 修复了 Cloudflare Tunnel 部署中的 CSRF 令牌生成问题 (#1823)\n\n**动态阈值学习**\n- 添加了冷却时间，防止阈值过快学习 (#1819)\n- 已丢弃的检测不再触发阈值学习 (#1828)\n- 动态阈值仅在实际发生学习时才添加物种 (#1829)\n\n**前端及单页应用路由**\n- SPA 路由现对导航状态的变化具有响应性 (#1820)\n- 修复了带有查询参数的 URL 在 SPA 导航中出现 404 错误的问题 (#1826)\n- 为 buildAppUrl 添加了开放重定向防护 (#1817)\n- 解决了 iOS Safari 上移动设备音频播放失败的问题 (#1825)\n- 解决了 ESLint 的安全性和质量警告 (#1775)\n\n**通知与 SSE**\n- 通知现使用检测时间而非处理时间 (#1782)\n- 防止了 SSE 通知中 JSON 序列化过程中的崩溃 (#1784)\n- 避免了“数据库中未找到该备注”的通知 (#1783)\n\n**国际化**\n- 修复了首次加载时显示翻译键的竞争条件问题 (#1786)\n- StatusBadges 组件现使用 i18n 翻译 (#1780)\n\n**其他修复**\n- 设置重叠现在会在降低筛选级别时向下同步 (#1776)\n- 解决了天气检测的时区问题 (#1779)\n- 已验证状态现从正确的检测字段读取 (#1827)\n- 将无害物种验证错误的日志级别调低 (#1821)","2026-01-18T16:07:15",{"id":231,"version":232,"summary_zh":233,"released_at":234},314736,"nightly-20260113","本次预发布版本（2026年1月13日）引入了流配置的重大重构，支持多协议并提供实时监控功能。\n\n## 主要特性\n\n**流配置重构**\n对音频流配置进行全面 overhaul，支持命名流和多种协议。现在可以为流设置独立名称，并支持 RTSP、HTTP 以及基于文件的源，同时可自动从旧版配置迁移（#1764）。\n\n**实时流统计**\n新增流监控 UI，提供实时统计更新和状态历史时间线，用于跟踪流的健康状况和性能（#1770）。\n\n## Bug 修复\n\n- ExecuteCommand 操作现可在无参数情况下正常工作（#1760）\n- 脚本配置错误现已显示在用户通知中（#1761）\n- MQTT BirdImage 的 JSON 字段已恢复为 PascalCase 格式，以保持向后兼容性（#1762）\n- MQTT 声级模板已修正，长设备名称已被截断（#1763）\n- 侧边栏活动菜单项高亮显示功能已恢复（#1771）","2026-01-13T21:26:44",{"id":236,"version":237,"summary_zh":238,"released_at":239},314737,"nightly-20260111","此预发布版本（2026年1月11日）新增了对Home Assistant的集成支持。\n\n## 新功能\n\n**Home Assistant MQTT 自动发现**\nBirdNET-Go 现在支持 Home Assistant 的 MQTT 自动发现功能，可实现与 Home Assistant 的自动集成，从而实现实时鸟类检测监控。该功能包含用于配置的新设置界面 (#1749, #1750)。","2026-01-11T20:07:03",{"id":241,"version":242,"summary_zh":243,"released_at":244},314738,"nightly-20260110","This pre-release (January 10, 2026) represents 18 days of development with numerous improvements since the previous nightly build, focusing on expanded OAuth authentication options, enhanced spectrogram customization, improved logging infrastructure, and comprehensive bug fixes.\n\n## Major Features\n\n**Expanded OAuth Authentication**\nAdded support for Microsoft Account, LINE, and Kakao OAuth providers with a redesigned login modal featuring dynamic provider UI (#1654, #1658, #1662, #1663).\n\n**Centralized Logging System**\nComplete overhaul of logging infrastructure with unified structured logging, log rotation support, and dedicated spectrogram log files for easier debugging (#1676, #1678, #1741).\n\n**Spectrogram Customization**\nNew configurable visual style presets and dynamic range settings give users control over spectrogram appearance (#1713, #1727).\n\n**Enhanced Mobile Experience**\nComprehensive improvements to mobile UI across the application for better usability on smaller screens (#1685).\n\n**Weather Integration Improvements**\nDaily activity cards now display hourly weather icons, with complete yr.no symbol code mappings for accurate weather visualization (#1739, #1668).\n\n**Reverse Proxy Support**\nNew Base URL configuration enables proper operation behind reverse proxies (#1636).\n\n**Scientific Name Species Lookups**\nSpecies configuration now supports lookups by scientific name in addition to common name (#1718).\n\n**Runtime Configuration**\nSPA migrated to runtime config fetching, eliminating need for rebuilds on configuration changes (#1660).\n\n**Performance Optimization**\nAdded image load queue to limit concurrent spectrogram loads, improving page load performance (#1745).\n\n## Security\n\n- Security hardening with fuzzing tests and vulnerability fixes (#1648, #1649)\n- Centralized sensitive data sanitization for logging prevents accidental credential exposure (#1714)\n- Support bundle redaction gaps closed for better privacy protection (#1709)\n\n## Bug Fixes\n\n- Night detection search now correctly applies sunset\u002Fsunrise offsets (#1641)\n- Weather temperature stored in Celsius with correct display-time conversion (#1650)\n- Weather temperature and wind speed unit conversions corrected (#1733)\n- Weather timestamps stored in local timezone for correct date queries (#1740)\n- Weather icon derived from description when weatherIcon is unknown (#1737)\n- Audio buffer precision loss and race conditions fixed (#1689, #1691)\n- SSE write deadline reset prevents audio-level disconnections (#1675)\n- Duplicate SSE notification connections eliminated (#1742)\n- Duplicate Telegram\u002FShoutrrr notifications on timeout prevented (#1712)\n- BirdWeather test connection now includes Audio and BirdNET settings (#1667)\n- Detection comments API returns full comment objects instead of strings (#1731)\n- Locked detections can now be unlocked (#1686)\n- Comment section no longer collapses when typing (#1687)\n- Notification status correctly mapped to frontend read boolean (#1688)\n- Notification delete modal now appears correctly (#1695)\n- Dashboard fetches more detections when pagination limit increases (#1725)\n- Sox timeout handling improved with better fallback logging (#1726)\n- Species config keys normalized for case-insensitive matching (#1716)\n- ICU plural syntax with nested braces handled correctly (#1684)\n- SPA client-side routing implemented properly (#1698)\n- Horizontal scrollbar prevented when sidebar is collapsed (#1659)\n- Windows FIFO logging uses internal logger correctly (#1736)","2026-01-10T16:16:32",{"id":246,"version":247,"summary_zh":248,"released_at":249},314739,"nightly-20251223","This pre-release (December 23, 2025) represents 9 days of development with 76 commits since the previous nightly build, focusing on completing the migration to the new Svelte 5 UI, major security hardening, and extensive code quality improvements.\r\n\r\n## 🎉 Major Milestone: Svelte 5 UI is Now Default\r\n\r\n**The legacy HTMX-based UI has been completely removed.** The modern Svelte 5 interface is now the only UI for all users. This completes a multi-month migration effort that brings:\r\n\r\n- Faster, more responsive interactions\r\n- Modern component architecture\r\n- Improved accessibility\r\n- Better mobile experience\r\n- Enhanced notification system with grouping and styling\r\n\r\nThe `newUI` setting has been removed as it is no longer needed.\r\n\r\n## Major Features\r\n\r\n**Collapsible Desktop Sidebar**\r\nNew sidebar design with icons-only collapsed mode for more screen real estate. Smooth animations and improved navigation organization (#1626).\r\n\r\n**Enhanced Daily Summary Dashboard**\r\nDashboard daily summary now features animations and dynamic sorting for better visualization of bird activity patterns (#1622).\r\n\r\n**Runtime Statistics UI**\r\nDatabase runtime statistics are now visible in the settings interface, providing insight into system performance and data storage (#1621).\r\n\r\n**Species Tracking Settings**\r\nNew UI panel for configuring species tracking behavior, with settings changes applied at runtime without restart (#1591, #1595).\r\n\r\n**Per-Species Notification Controls**\r\nConfigure cooldown periods and confidence thresholds per species for push notifications, reducing alert fatigue for common visitors (#1579).\r\n\r\n**Dynamic Threshold Controls**\r\nView and reset dynamic threshold runtime data directly from the frontend (#1601).\r\n\r\n**Notification Improvements**\r\nEnhanced notification system with grouping, consistent styling, and security improvements (#1609).\r\n\r\n## Security & Infrastructure\r\n\r\n**CSRF Protection**\r\nNew CSRF middleware added to the API server for enhanced security against cross-site request forgery attacks (#1603).\r\n\r\n**File Permission Hardening**\r\n- Restricted WriteFile permissions to 0600 (#1613)\r\n- Hardened file and directory permissions throughout (#1612)\r\n- Secure handling of file path operations (#1619)\r\n\r\n**New HTTP Server Architecture**\r\nComplete refactoring of the HTTP server infrastructure with improved architecture, moving authentication to server level (#1596, #1598).\r\n\r\n**OAuth Migration**\r\nOAuth callback endpoints migrated from legacy V1 to V2 API (#1574).\r\n\r\n## Bug Fixes\r\n\r\n- Detection review API endpoint now uses correct URL path format (#1629)\r\n- Mobile responsiveness improved for header dropdowns (#1628)\r\n- Mobile touch interactions no longer blocked by sidebar overlay (#1627)\r\n- Frontend object injection and TypeScript linter warnings resolved (#1600)\r\n- Missing i18n translations added for hardcoded strings (#1592)\r\n- Avicommons image provider switched to 2022 taxonomy for accuracy (#1582)\r\n- Spectrogram memory leak and context exhaustion prevented (#1573)\r\n- Hemisphere seasons now update correctly when defaults exist (#1572)\r\n\r\n## Code Quality\r\n\r\nExtensive refactoring across multiple packages to improve maintainability, reduce cognitive complexity, and increase test coverage:\r\n\r\n- API v2 code quality improvements and complexity reduction (#1605, #1604, #1599)\r\n- Species tracker split into focused modules with comprehensive tests (#1593, #1594)\r\n- Notification, MQTT, and telemetry packages refactored (#1576, #1578, #1585)\r\n- Spectrogram, security, privacy, and observability improvements (#1588, #1586, #1589, #1590)\r\n- BirdWeather and image provider code quality enhancements (#1584, #1583)\r\n- Dynamic threshold code deduplicated with accessibility improvements (#1602)\r\n- SecureFS cognitive complexity reduced with improved test coverage (#1575)\r\n\r\n## Upgrading\r\n\r\nUsers of previous nightly builds should note:\r\n- The `realtime.newui` configuration option has been removed\r\n- The application will automatically use the new Svelte 5 interface\r\n- All previous functionality remains available through the new UI","2025-12-23T15:33:29",{"id":251,"version":252,"summary_zh":253,"released_at":254},314740,"nightly-20251214","### 🚀 Major Features & Enhancements\n\n#### **Configurable False Positive Filter Levels** (#1476, #1560, #1477)\n- **Problem**: Hidden detection filtering tied to overlap settings caused user confusion and unexpected behavior\n- **Root Cause**: Users didn't know overlap controlled both analysis frequency AND false positive filtering\n- **Solution**: Explicit 6-level filtering system that users can see, understand, and control\n- **Filter Levels**:\n  | Level | Name | Confirmations | Use Case |\n  |-------|------|---------------|----------|\n  | 0 | **Off** | 1 | **Default** - No filtering, accepts first detection |\n  | 1 | Lenient | ~2 | Low-quality audio (surveillance cameras, cheap mics) |\n  | 2 | Moderate | ~3 | Balanced filtering for most setups |\n  | 3 | Balanced | ~4 | Standard filtering with good confidence |\n  | 4 | Strict | ~5 | High-confidence environments |\n  | 5 | Maximum | ~6+ | Maximum accuracy requirements |\n- **Configuration**: `realtime.falsepositivefilter.level: 0` in config.yaml\n- **UI**: New False Positive Filter settings section with level selector\n- **Impact**: Resolves user complaints about \"BirdNET-Go detecting less than expected\"\n\n#### **Push Notification Settings UI** (#1557, #1558) \n- **Feature**: Full frontend settings UI for configuring push notification providers\n- **Implementation**:\n  * Provider configuration panel in settings\n  * Support for Shoutrrr URLs and custom scripts\n  * Filter configuration for notification routing\n  * Test notification functionality\n- **Template Variables** (#1485) - **Community Contribution by @cameronr**:\n  * Added `DetectionID` for building custom URLs\n  * Added `DetectionPath` for webhook integrations\n  * Useful when server is behind a proxy and needs custom URL construction\n- **Impact**: Push notifications now fully configurable via web UI (previously config file only)\n\n**Thanks to @cameronr for the template variable additions!**\n\n#### **Spectrogram Generation Modes** (#1403, #1407, #1410, #1422)\n- **Pre-rendering** (#1403, #1407): Background spectrogram generation immediately after audio is saved\n  * Feeds PCM data directly to Sox (bypasses FFmpeg) in low-priority worker pool\n  * Configurable via UI toggle in settings\n  * ⚠️ Increases disk usage (~55 KB per detection)\n- **User-Requested Mode** (#1410): For resource-constrained systems (Raspberry Pi, etc.)\n  * Only generates spectrograms when user views detection\n  * Reduces CPU\u002Fdisk usage for systems with limited resources\n- **FFmpeg 7.x Optimization** (#1345): Improved spectrogram generation for newer FFmpeg versions\n- **Backend Scalability** (#1422): Architecture improvements for handling high detection volumes\n- **Code Consolidation** (#1408): Eliminated duplicate spectrogram generation code\n- **Three Modes Available**:\n  | Mode | Description | Use Case |\n  |------|-------------|----------|\n  | Pre-rendered | Generate immediately | Fast UI, more disk |\n  | On-demand | Generate when viewed | Balanced (default) |\n  | User-requested | Only on explicit request | Resource-constrained |\n\n#### **Local eBird Taxonomy Database** (#1442)\n- **Problem**: Runtime eBird API dependency for genus\u002Ffamily lookups caused latency and required API keys\n- **Solution**: Embedded local taxonomy database with 2,374 genera, 254 families, 11,145 species\n- **Performance**: 500x faster response times (\u003C1ms vs 200-500ms)\n- **New Endpoints**:\n  * `GET \u002Fapi\u002Fv2\u002Ftaxonomy\u002Fgenus\u002F:genus` - All species in genus\n  * `GET \u002Fapi\u002Fv2\u002Ftaxonomy\u002Ffamily\u002F:family` - All species in family\n  * `GET \u002Fapi\u002Fv2\u002Ftaxonomy\u002Ftree\u002F:scientific_name` - Complete taxonomic tree\n- **Hybrid Mode**: Local taxonomy + eBird API fallback for subspecies\u002Flocale data\n- **No API Key Required**: Core taxonomy features work offline\n- **Impact**: Eliminates runtime API dependency, improves reliability and performance\n\n#### **Improved macOS\u002FDarwin Support** (#1523, #1543, #1545, #1546) - **Community Contribution by @HurleySk**\n- **Resource Monitoring** (#1523): macOS-specific implementations for filesystem, inode, disk, and memory stats\n- **Realtime Audio** (#1543): macOS support for air realtime and audio devices\n- **Build System** (#1545, #1546): Lint task with TensorFlow CGO flags, Air config for v1.63+ compatibility\n- **Impact**: Enhanced macOS development and runtime support\n\n**Special thanks to @HurleySk for improving macOS support!**\n\n#### **Dynamic Threshold Persistence** (#1383, #1384, #1395, #1495)\n- **Problem**: Learned detection thresholds lost on application restart, causing detection drops\n- **Solution**: Database persistence layer with automatic save\u002Fload\n- **Implementation**:\n  * New `dynamic_thresholds` table with comprehensive metadata\n  * Periodic persistence every 30 seconds via background worker\n  * Automatic cleanup of expired thresholds every 24 hours\n  * Graceful shutdown with 15s flush timeout for slow storage (SD cards)\n- **Priority Fix** (#1495): Custom species thresholds now properly override dynamic thresholds\n- **Impact**: Thresholds survive restart","2025-12-14T20:23:42",{"id":256,"version":257,"summary_zh":258,"released_at":259},314741,"nightly-20251028","#### **Logging System Panic Resolution** (#1468) - **Community Contribution by @d0ugal**\r\n- **Problem**: Application crashes on startup with panic: `interface conversion: interface {} is int64, not slog.Level`\r\n- **Root Cause**: Using reserved `slog` key \"level\" as an attribute name in threshold persistence logging\r\n- **Reserved Keys in Go slog**: `time`, `level`, `msg`, `source` are automatically treated as log metadata, not regular attributes\r\n- **Impact**:\r\n  * Startup failures on systems using dynamic threshold persistence (introduced in nightly-20251026)\r\n  * Panic occurred during threshold loading when logging used `\"level\"` attribute conflicting with `slog.LevelKey`\r\n- **Solution**: Two-part fix for robustness\r\n  * Changed attribute key from `\"level\"` to `\"threshold_level\"` in threshold persistence logging\r\n  * Added safety check in `defaultReplaceAttr` to gracefully handle type mismatches instead of panicking\r\n- **Testing**: Comprehensive test coverage with 48 test cases verifying the fix and preventing regression\r\n- **Impact**: Restores stable startup for all users, prevents future panics from accidental use of reserved keys\r\n\r\n**Special thanks to @d0ugal (Dougal Matthews) for identifying the root cause and providing a complete fix with thorough testing!**\r\n\r\n---\r\n\r\n### 🚀 Major Features & Enhancements\r\n\r\n#### **Interactive Notification System** (#1447) - **Community Contribution by @cameronr**\r\n- **Feature**: Notification cards now clickable, navigating directly to detection details\r\n- **Implementation**:\r\n  * Detection notifications link to specific detection detail pages\r\n  * Keyboard accessibility support (Enter\u002FSpace keys)\r\n  * Dynamic visual styling indicates interactive notifications\r\n  * Event propagation handling prevents accidental activation during mark-as-read\u002Fdelete actions\r\n- **User Experience**: Single click\u002Ftap from notification to full detection details with spectrogram, weather, and metadata\r\n- **Accessibility**: Full keyboard navigation support with ARIA attributes\r\n- **Testing**: Includes test notification generation with proper detection links\r\n\r\n**Special thanks to @cameronr (Cameron Ring) for this excellent UX improvement!**\r\n\r\n#### **Detection Metadata Exposure for Notifications** (#1458)\r\n- **Feature**: Advanced webhook template customization with 8 new metadata fields\r\n- **Available Fields** (all with `bg_` prefix):\r\n  * `bg_detection_url` - Direct link to detection details page\r\n  * `bg_image_url` - Direct link to spectrogram image\r\n  * `bg_confidence_percent` - Formatted confidence percentage (e.g., \"95\")\r\n  * `bg_detection_time` - Formatted time of detection\r\n  * `bg_detection_date` - Formatted date of detection\r\n  * `bg_latitude` - GPS latitude (float64, 0.0 if unavailable)\r\n  * `bg_longitude` - GPS longitude (float64, 0.0 if unavailable)\r\n- **Use Cases**:\r\n  * Conditional GPS coordinates in webhooks: `{{if ne .Metadata.bg_latitude 0.0}}`\r\n  * Confidence-based filtering in notification templates\r\n  * Rich Discord embeds with clickable links and images\r\n  * Location-aware notifications for mobile integrations\r\n- **Privacy Features**:\r\n  * UI warning panel when using external webhooks with GPS data\r\n  * RFC-compliant localhost\u002Fprivate IP detection (IPv4 RFC 1918, IPv6 RFC 4193)\r\n  * Startup warnings when localhost + external webhooks configured\r\n  * Comprehensive privacy documentation in WEBHOOK.md\r\n- **Documentation**: Complete webhook guide with template safety, type handling, and privacy considerations\r\n- **Testing**: 40+ test cases covering private network detection, GPS handling, and metadata validation\r\n- **Impact**: Enables sophisticated notification customization while maintaining user privacy awareness\r\n\r\n#### **Internationalization Validation System** (#1464)\r\n- **Problem**: Translation coverage drift and missing translation keys causing runtime errors\r\n- **Solution**: Automated validation infrastructure with two complementary validators\r\n- **Translation File Validator**:\r\n  * Validates completeness across all 6 supported languages (EN, DE, FR, ES, FI, PT)\r\n  * ICU MessageFormat syntax validation\r\n  * Parameter consistency checking\r\n  * Detects empty values and untranslated strings\r\n  * LLM-friendly JSON output for automated fixes\r\n- **Usage Validator**:\r\n  * Scans codebase for `t()` translation usage\r\n  * Finds missing translations (keys used but not defined)\r\n  * Finds unused translations (dead keys)\r\n  * Prevents runtime errors from missing keys\r\n- **Features**:\r\n  * Fast execution (\u003C 500ms complete validation)\r\n  * GitHub Actions CI\u002FCD integration with PR comments\r\n  * 11 new npm scripts for validation workflows\r\n  * Comprehensive 400+ line documentation\r\n  * ast-grep patterns for future advanced validation\r\n- **NPM Scripts**:\r\n  * `npm run i18n:validate` - Validate translation files\r\n  * `npm run i18n:check-usage` - Check code usage\r\n  * `npm run i18n:validate:full` - Complete validation\r\n  * `npm run i18n:find-unused` - Find dead keys\r\n- **CI\u002FCD Integratio","2025-10-28T18:19:32",{"id":261,"version":262,"summary_zh":263,"released_at":264},314742,"v0.6.4","## What's Changed\r\n* feat: persist recent detections limit by storing it in browser local storage by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F544\r\n* fix: logo invert fix by @PovilasID in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F535\r\n* fix: enhance responsive design and add utility functions by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F546\r\n* refactor: enhance cleanup functions to return detailed metrics by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F547\r\n* refactor: Remove Cloudflare Access integration by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F526\r\ngo\u002Fpull\u002F531\r\n* refactor: enhance RTSP URL sanitization and streamline audio source a… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F541\r\n* refactor: simplify CSRFMiddleware by allowing cookies over HTTP by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F542\r\n* chore(deps): bump golang.org\u002Fx\u002Fcrypto from 0.35.0 to 0.36.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F527\r\n* chore(deps): bump github.com\u002Fprometheus\u002Fclient_golang from 1.21.0 to 1.21.1 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-\r\n* chore(deps): bump golang.org\u002Fx\u002Fnet from 0.35.0 to 0.36.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F539\r\n* chore(deps): bump golang.org\u002Fx\u002Ftime from 0.10.0 to 0.11.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F529\r\n\r\n## New Contributors\r\n* @PovilasID made their first contribution in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F535\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fcompare\u002Fv0.6.3...v0.6.4","2025-03-15T10:36:58",{"id":266,"version":267,"summary_zh":268,"released_at":269},314744,"v0.6.2","This version fixes BirdWeather uploads which were broken by unannounced API change\r\n\r\n## What's Changed\r\n* chore(deps): bump github.com\u002Fspf13\u002Fcobra from 1.8.1 to 1.9.1 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F464\r\n* chore(deps): bump golang.org\u002Fx\u002Fnet from 0.34.0 to 0.35.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F463\r\n* chore(deps): bump github.com\u002Fgo-echarts\u002Fgo-echarts\u002Fv2 from 2.4.0 to 2.5.1 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F465\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F443\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F467\r\n* chore(deps): bump golang.org\u002Fx\u002Foauth2 from 0.25.0 to 0.26.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F462\r\n* feat: Add CSRF protection middleware and token handling by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F469\r\n* feat: Add gain control to audio player by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F471\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F468\r\n* feat: Add high pass filter to audio player by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F473\r\n* fix: Add working pagination for hourly results .. by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F474\r\n* fix: Update soundscape duration type from string to integer by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F479\r\n* feat: Enhance install script with robust update and cleanup mechanisms by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F481\r\n* feat: Improve version handling and build process by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F482\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fcompare\u002Fv0.6.1...v0.6.2","2025-02-21T08:20:45",{"id":271,"version":272,"summary_zh":273,"released_at":274},314745,"v0.6.1","## What's Changed\r\n* feat: add CPU specification handling for optimized thread management by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F398\r\n* feat: enhance audio file processing with terminal width support by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F400\r\n* feat: add directory watch functionality and enhance audio file proces… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F401\r\n* fix: Audio clip downloads for non default export paths by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F403\r\n* refactor: enhance audio input configuration in install script by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F405\r\n* refactor: improve audio settings configuration and validation by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F406\r\n* Fix docker build process for nightly builds by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F407\r\n* refactor: enhance clip name sanitization and path handling in media handler by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F408\r\n* refactor: fix linter warnings to improve code idioms by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F410\r\n* refactor: reduce complexity of processAudioFile() function by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F411\r\n* refactor: improve memory efficiency and reduce code complexity by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F412\r\n* refactor: fix various linter warnings by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F414\r\n* feat: action menu for detections by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F416\r\n* refactor: update database schema to include review and comment tables by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F418\r\n* feat: Hide detection action menu for unauthenticated users by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F420\r\n* Update dependency licenses by @github-actions in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F399\r\n* refactor: improve MQTT client reliability and testing by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F422\r\n* refactor: improve GORM model constraints and foreign key definitions by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F423\r\n* fix: resolve few linter errors by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F421\r\n* feat: Add ability to lock detections to protect them from cleanup by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F424\r\n* feat: Add status column by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F425\r\n* feat: Store image provider cache in database to speed up application restarts by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F426\r\n* Several UI fixes and improvements by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F434\r\n* fix: Correct filename encoding in audio clip content disposition header by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F436\r\n* refactor: Enhance audio source configuration by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F437\r\n* chore(deps): bump golang.org\u002Fx\u002Ftime from 0.9.0 to 0.10.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F442\r\n* chore(deps): bump golang.org\u002Fx\u002Ftext from 0.21.0 to 0.22.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F441\r\n* chore(deps): bump golang.org\u002Fx\u002Fcrypto from 0.32.0 to 0.33.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F440\r\n* chore(deps): bump golang.org\u002Fx\u002Fterm from 0.28.0 to 0.29.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F439\r\n* feat: Source selection menu for audio level indicator by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F444\r\n* refactor: Improve RTSP stream configuration and settings handling by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F445\r\n* fix: replace portugese label file with valid one by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F452\r\n* refactor: improve audio device initialization process by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F450\r\n* refactor: make diskmanager package respect locked clips during cleanup by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F455\r\n* fix: Various fixes to sound card initialization messages etc. by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F459\r\n* fix: Position action menu based on screen space by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F460\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fcompare\u002Fv0.6.0...v0.6.1","2025-02-16T17:04:47",{"id":276,"version":277,"summary_zh":278,"released_at":279},314746,"v0.6.0","## What's Changed\r\n* Add arrows to dashboard date picker by @farski in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F207\r\n* Add link to web root when clicking on logo by @isZumpo in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F210\r\n* Improve devcontainer experience by @isZumpo in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F201\r\n* feat: Dynamic threshold keeps track of high confidence bird calls and… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F206\r\n* feat: get weather data from openweathermap.org and save hourly weathe… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F213\r\n* Add thumbnail support by @isZumpo in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F76\r\n* Publish bird images in mqtt events by @isZumpo in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F219\r\n* refactor: improve thumbnails code, add cache size metrics for telemetry by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F220\r\n* fix: Protect access to ringBuffers and prevData maps with rbMutex by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F223\r\n* feat:_ add settings to enable thumbnails on dashboard by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F227\r\n* feat: add hourly results for daily summary table by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F228\r\n* fix: Add context timeout for MQTT publish by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F232\r\n* fix: Handle MQTT client connection error gracefully by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F233\r\n* refactor: add MQTT client unit tests and use node name as MQTT client id by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F235\r\n* refactor: telemetry package refactored to modular structure by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F240\r\n* fix: Hourly occurences not being calculated correctly when using MySQL by @PeteLawrence in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F238\r\n* Fix merge conflict by @xconverge in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F243\r\n* Documentation of Recommended Hardware by @florisre in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F245\r\n* Refactor HTTP controller code and settings UI by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F256\r\n* Add web UI error pages and improve error logging by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F258\r\n* refactor: unify detection list HTML templates and handler functions, … by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F260\r\n* feat: add sunrise and sunset data to dashboard and detection listings… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F262\r\n* Respect the BirdNET.RangeFilter.Threshold setting when filtering species by @PeteLawrence in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F263\r\n* fix: dog and privacy filtering got broken with multiple audio sources… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F264\r\n* fix: enhance error checking in birdweather code to avoid crashes or o… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F265\r\n* refactor: major rewrite of ffmpeg process management by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F270\r\n* feat: collect system resource usage info as debug in cases where ring… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F271\r\n* refactor: use gopkg.in\u002Fyaml.v3 to update config.yaml by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F280\r\n* Audio equalizer filter function by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F281\r\n* Full refresh of partial route pages & other UI enhancements by @petterip in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F292\r\n* feat: add support for custom classifiers by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F293\r\n* build(deps): bump golang.org\u002Fx\u002Fnet from 0.29.0 to 0.30.0 by @dependabot in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F291\r\n* feat: enable use of TensorFlow XNNPACK delegate for accelerating infe… by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F303\r\n* Implement OAuth2 authentication (for issue #301) by @petterip in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F313\r\n* UI Responsivity and Technical Improvements by @petterip in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F316\r\n* Fix hour cell links & add sticky headers for Recent detections by @petterip in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F318\r\n* fix: only validate required input fields by @petterip in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F320\r\n* File analysis worker pool by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F347\r\n* Devcontainer Docker Notes by @jkrauska in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F362\r\n* feat: implement audio watchdog for RTSP source monitoring by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F365\r\n* Weather info refactor by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F366\r\n* BirdNET debug by @tphakala in https:\u002F\u002Fgithub.com\u002Ftphakala\u002Fbirdnet-go\u002Fpull\u002F370\r\n* Fix SSE session handlin","2025-01-16T05:47:31",{"id":281,"version":282,"summary_zh":283,"released_at":284},314747,"v0.5.5","## [0.5.5] - 2024-06-09\r\n\r\n### 🚀 Features\r\n\r\n- *(audio)* Support for multiple RTSP streams\r\n- *(birdnet)* Range filter model is now selectable between latest and previous \"legacy\" version\r\n- *(birdnet)* Added \"birdnet-go range print\" command which lists all species included by range filter model\r\n- *(birdnet)* BirdNET overlap setting impacts now realtime process also\r\n\r\n### 🐛 Bug Fixes\r\n\r\n- *(privacy)* Fix defaults for privacy and dog bark filters and fix incorrect setting names in default config.yaml\r\n- *(privacy)* Do not print dog bark detections if dog bark filter is not enabled\r\n- *(privacy)* Fix printf declaration for human detection confidence reporting\r\n- *(audio)* Yield to other goroutines in file_utils, policy_age, and policy_usage\r\n- *(build)* Linux\u002Farm64 cross-compilation in docker build\r\n\r\n### 🚜 Refactor\r\n\r\n- *(audio)* Refactor analysis and capture buffers to support multiple individual buffers for different audio sources\r\n- *(audio)* Move RTSP code to rtsp.go\r\n- *(config)* Config file format for range filter model changed due model type option\r\n- *(rtsp)* Update default RTSP URLs to an empty slice\r\n- *(rtsp)* Update RTSP stream URLs example in config.yaml\r\n- *(privacy)* Make pricacy filter and dog bark filter source specific\r\n- *(build)* Move buildDate variable to main.go\r\n\r\n### 🏗️ Building\r\n\r\n- *(deps)* Bump github.com\u002Fspf13\u002Fviper from 1.18.2 to 1.19.0\r\n- *(deps)* Bump github.com\u002Fshirou\u002Fgopsutil\u002Fv3 from 3.24.4 to 3.24.5\r\n","2024-06-09T13:24:15"]