BirdNET 3.0 support + 3.0 Geomodel#963
Open
Josef-Haupt wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds BirdNET 3.0 as the new default acoustic model, updates GUI/CLI affordances to select/use 2.4 vs 3.0, and introduces reconciliation logic so geo-model species lists can be safely applied to different acoustic model taxonomies by joining on scientific name.
Changes:
- Default acoustic inference and analysis to BirdNET 3.0; pin tests that assert label-baseline behavior to BirdNET 2.4.
- Add scientific-name-based reconciliation (
match_species_to_model) and thread it through location-based analysis so geo species filtering works across model versions/taxonomies. - Update GUI/CLI model/locale handling (new default model choice in GUI; CLI locale options derived from shared config).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/gui/test_presets.py | Adds regression test ensuring presets restore “BirdNET 3.0” selection from saved params. |
| tests/analyze/test_analyze.py | Pins several tests to BirdNET 2.4 and adds new tests covering default 3.0 + geo-species reconciliation behavior. |
| birdnet_analyzer/model_utils.py | Defaults inference to 3.0, forces custom classifiers onto 2.4 base, adds scientific-name mapping, and updates geo model loading. |
| birdnet_analyzer/gui/utils.py | Adds BirdNET 3.0 as a selectable GUI model, computes default selection, and adjusts locale visibility/choices. |
| birdnet_analyzer/gui/presets.py | Restores GUI model choice based on saved BirdNET version (2.4 vs 3.0). |
| birdnet_analyzer/gui/analysis.py | Wires selected GUI model choice into the birdnet= analysis parameter. |
| birdnet_analyzer/config.py | Derives default acoustic/geo versions from installed birdnet and centralizes supported locale unions. |
| birdnet_analyzer/cli.py | Uses derived default acoustic version and config-driven locale lists; restricts geo-species command locales. |
| birdnet_analyzer/analyze/core.py | Defaults analysis to 3.0 and enables scientific-name reconciliation when species list comes from location. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+40
to
+42
| # Languages the (always newest) geo model can label its species list in. The v3.0 | ||
| # geo and acoustic models share the same language set. | ||
| GEO_MODEL_LANGUAGES: list[str] = list(VALID_MODEL_LANGUAGES_V3_0) |
Comment on lines
+555
to
+559
| """Returns the models that can be selected on the current platform. | ||
|
|
||
| The BirdNET acoustic versions are taken from the installed birdnet library, newest | ||
| first, so a new model becomes selectable (and the default) without a code change. | ||
| """ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.