From 34aa8339149a921981f5a21f8ebe979aac8a34b9 Mon Sep 17 00:00:00 2001 From: Josef Haupt Date: Tue, 11 Feb 2025 10:05:49 +0100 Subject: [PATCH] Add new documentation + rework CLI args (#564) --- .github/workflows/documentation.yml | 31 + .gitignore | 3 + LICENSE | 379 +----- README.adoc | 850 ------------ README.md | 89 ++ birdnet_analyzer/analyze/__init__.py | 0 birdnet_analyzer/analyze/__main__.py | 161 +++ .../{analyze.py => analyze/utils.py} | 413 +----- birdnet_analyzer/audio.py | 23 +- birdnet_analyzer/checkpoints/README.md | 87 -- birdnet_analyzer/cli.py | 601 +++++++++ birdnet_analyzer/client.py | 137 -- birdnet_analyzer/config.py | 247 +--- birdnet_analyzer/embeddings.py | 228 ---- birdnet_analyzer/embeddings/__init__.py | 0 birdnet_analyzer/embeddings/__main__.py | 63 + birdnet_analyzer/embeddings/utils.py | 133 ++ birdnet_analyzer/gui/__main__.py | 35 +- birdnet_analyzer/gui/analysis.py | 42 +- birdnet_analyzer/gui/multi_file.py | 14 +- birdnet_analyzer/gui/segments.py | 26 +- birdnet_analyzer/gui/single_file.py | 20 +- birdnet_analyzer/gui/species.py | 5 +- birdnet_analyzer/gui/train.py | 17 +- birdnet_analyzer/gui/utils.py | 4 +- birdnet_analyzer/localization.py | 6 +- birdnet_analyzer/model.py | 199 ++- birdnet_analyzer/network/__init__.py | 0 birdnet_analyzer/network/client.py | 91 ++ birdnet_analyzer/network/server.py | 57 + .../{server.py => network/utils.py} | 86 +- birdnet_analyzer/segments/__init__.py | 0 birdnet_analyzer/segments/__main__.py | 47 + .../{segments.py => segments/utils.py} | 140 +- birdnet_analyzer/species/__init__.py | 0 birdnet_analyzer/species/__main__.py | 10 + .../{species.py => species/utils.py} | 49 +- birdnet_analyzer/train/__init__.py | 0 birdnet_analyzer/train/__main__.py | 42 + birdnet_analyzer/{train.py => train/utils.py} | 190 +-- birdnet_analyzer/translate.py | 10 +- birdnet_analyzer/utils.py | 189 +-- docs/Makefile | 20 + docs/_config.yml | 6 - docs/_includes/head-custom.html | 9 - docs/_static/BirdNET-Go-logo.webp | Bin 0 -> 117442 bytes .../_static/Muuttolintujen-Kev\303\244t.png" | Bin 0 -> 260180 bytes .../{favicon.ico => _static/birdnet-icon.ico} | Bin docs/_static/birdnet-pi.png | Bin 0 -> 12666 bytes docs/_static/birdnet_logo.png | Bin 0 -> 21410 bytes docs/_static/birdnetlib.png | Bin 0 -> 2683 bytes docs/_static/birdweather.png | Bin 0 -> 23973 bytes docs/_static/chirpity.png | Bin 0 -> 125512 bytes docs/_static/css/custom.css | 4 + docs/_static/dawnchorus.png | Bin 0 -> 39700 bytes docs/_static/ecopi.png | Bin 0 -> 20990 bytes ...ecosound-web_logo_large_white_on_black.png | Bin 0 -> 22293 bytes docs/_static/faunanet_logo.png | Bin 0 -> 38659 bytes docs/_static/gui.png | Bin 0 -> 62308 bytes docs/_static/haikubox.png | Bin 0 -> 25997 bytes docs/_static/ribbit.png | Bin 0 -> 62257 bytes docs/_static/whobird.png | Bin 0 -> 44686 bytes docs/assets/css/style.scss | 8 - docs/assets/img/birdnet_logo.png | Bin 26773 -> 0 bytes docs/assets/img/dummy_birds_image.png | Bin 1824531 -> 0 bytes docs/assets/img/dummy_frogs_image.png | Bin 2834838 -> 0 bytes docs/assets/img/dummy_project_image.png | Bin 2507347 -> 0 bytes docs/assets/js/projects_data.js | 1194 ----------------- docs/conf.py | 49 + docs/faq.rst | 13 + docs/index.html | 57 - docs/index.rst | 54 + docs/installation.rst | 92 ++ docs/make.bat | 35 + docs/models.rst | 136 ++ docs/projects.html | 177 --- docs/showroom.rst | 136 ++ docs/usage.rst | 9 + docs/usage/cli.rst | 180 +++ docs/usage/docker.rst | 4 + docs/usage/gui.rst | 54 + pyproject.toml | 24 + requirements.txt | 11 - 83 files changed, 2572 insertions(+), 4424 deletions(-) create mode 100644 .github/workflows/documentation.yml delete mode 100644 README.adoc create mode 100644 README.md create mode 100644 birdnet_analyzer/analyze/__init__.py create mode 100644 birdnet_analyzer/analyze/__main__.py rename birdnet_analyzer/{analyze.py => analyze/utils.py} (56%) delete mode 100644 birdnet_analyzer/checkpoints/README.md create mode 100644 birdnet_analyzer/cli.py delete mode 100644 birdnet_analyzer/client.py delete mode 100644 birdnet_analyzer/embeddings.py create mode 100644 birdnet_analyzer/embeddings/__init__.py create mode 100644 birdnet_analyzer/embeddings/__main__.py create mode 100644 birdnet_analyzer/embeddings/utils.py create mode 100644 birdnet_analyzer/network/__init__.py create mode 100644 birdnet_analyzer/network/client.py create mode 100644 birdnet_analyzer/network/server.py rename birdnet_analyzer/{server.py => network/utils.py} (66%) create mode 100644 birdnet_analyzer/segments/__init__.py create mode 100644 birdnet_analyzer/segments/__main__.py rename birdnet_analyzer/{segments.py => segments/utils.py} (73%) create mode 100644 birdnet_analyzer/species/__init__.py create mode 100644 birdnet_analyzer/species/__main__.py rename birdnet_analyzer/{species.py => species/utils.py} (55%) create mode 100644 birdnet_analyzer/train/__init__.py create mode 100644 birdnet_analyzer/train/__main__.py rename birdnet_analyzer/{train.py => train/utils.py} (69%) create mode 100644 docs/Makefile delete mode 100644 docs/_config.yml delete mode 100644 docs/_includes/head-custom.html create mode 100644 docs/_static/BirdNET-Go-logo.webp create mode 100644 "docs/_static/Muuttolintujen-Kev\303\244t.png" rename docs/{favicon.ico => _static/birdnet-icon.ico} (100%) create mode 100644 docs/_static/birdnet-pi.png create mode 100644 docs/_static/birdnet_logo.png create mode 100644 docs/_static/birdnetlib.png create mode 100644 docs/_static/birdweather.png create mode 100644 docs/_static/chirpity.png create mode 100644 docs/_static/css/custom.css create mode 100644 docs/_static/dawnchorus.png create mode 100644 docs/_static/ecopi.png create mode 100644 docs/_static/ecosound-web_logo_large_white_on_black.png create mode 100644 docs/_static/faunanet_logo.png create mode 100644 docs/_static/gui.png create mode 100644 docs/_static/haikubox.png create mode 100644 docs/_static/ribbit.png create mode 100644 docs/_static/whobird.png delete mode 100644 docs/assets/css/style.scss delete mode 100644 docs/assets/img/birdnet_logo.png delete mode 100644 docs/assets/img/dummy_birds_image.png delete mode 100644 docs/assets/img/dummy_frogs_image.png delete mode 100644 docs/assets/img/dummy_project_image.png delete mode 100644 docs/assets/js/projects_data.js create mode 100644 docs/conf.py create mode 100644 docs/faq.rst delete mode 100644 docs/index.html create mode 100644 docs/index.rst create mode 100644 docs/installation.rst create mode 100644 docs/make.bat create mode 100644 docs/models.rst delete mode 100644 docs/projects.html create mode 100644 docs/showroom.rst create mode 100644 docs/usage.rst create mode 100644 docs/usage/cli.rst create mode 100644 docs/usage/docker.rst create mode 100644 docs/usage/gui.rst create mode 100644 pyproject.toml delete mode 100644 requirements.txt diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 00000000..334e9ea1 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,31 @@ +name: documentation + +on: [push, pull_request, workflow_dispatch] + +permissions: + contents: write + +jobs: + docs: + runs-on: ubuntu-latest + env: + IS_GITHUB_RUNNER: "true" + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: Install dependencies + run: | + pip install sphinx sphinx_rtd_theme sphinx-argparse sphinx-autobuild + - name: Sphinx build + run: | + sphinx-build docs _build + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + with: + publish_branch: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: _build/ + force_orphan: true \ No newline at end of file diff --git a/.gitignore b/.gitignore index 88acd382..10562f0c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ foo* # Apple :/ .DS_Store +# Documentation +_build + # Installers installers/ desktop.ini diff --git a/LICENSE b/LICENSE index 63f44cc3..0e2e75c4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,360 +1,19 @@ -Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International -Public License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-NonCommercial-ShareAlike 4.0 International Public License -("Public License"). To the extent this Public License may be -interpreted as a contract, You are granted the Licensed Rights in -consideration of Your acceptance of these terms and conditions, and the -Licensor grants You such rights in consideration of benefits the -Licensor receives from making the Licensed Material available under -these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-NC-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution, NonCommercial, and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. NonCommercial means not primarily intended for or directed towards - commercial advantage or monetary compensation. For purposes of - this Public License, the exchange of the Licensed Material for - other material subject to Copyright and Similar Rights by digital - file-sharing or similar means is NonCommercial provided there is - no payment of monetary compensation in connection with the - exchange. - - l. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - m. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - n. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part, for NonCommercial purposes only; and - - b. produce, reproduce, and Share Adapted Material for - NonCommercial purposes only. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties, including when - the Licensed Material is used other than for NonCommercial - purposes. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-NC-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database for NonCommercial purposes - only; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - including for purposes of Section 3(b); and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. \ No newline at end of file +Copyright (c) 2024 birdnet-team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.adoc b/README.adoc deleted file mode 100644 index 0669d035..00000000 --- a/README.adoc +++ /dev/null @@ -1,850 +0,0 @@ -//*********************************************** -//***************** SETTINGS ******************** -//*********************************************** - -:doctype: book -:use-link-attrs: -:linkattrs: - -// Github Icons -ifdef::env-github[] -:tip-caption: :bulb: -:note-caption: :information_source: -:important-caption: :heavy_exclamation_mark: -:caution-caption: :fire: -:warning-caption: :warning: -endif::[] - -// Table of Contents -:toc: -:toclevels: 2 -:toc-title: -:toc-placement!: -:sectanchors: - -// Numbered sections -:sectnums: -:sectnumlevels: 2 - -// Links -:cc-by-nc-sa: http://creativecommons.org/licenses/by-nc-sa/4.0/ - -//************* END OF SETTINGS ****************** -//************************************************ - - -// Header -++++ -
-

BirdNET-Analyzer

-

Automated scientific audio data processing and bird ID.

-

-++++ - -// Badges -:license-badge: https://badgen.net/badge/License/CC-BY-NC-SA%204.0/green -:os-badge: https://badgen.net/badge/OS/Linux%2C%20Windows%2C%20macOS/blue -:species-badge: https://badgen.net/badge/Species/6512/blue -:downloads-badge: https://www-user.tu-chemnitz.de/~johau/birdnet_total_downloads_badge.php -:reddit-badge: https://img.shields.io/reddit/subreddit-subscribers/BirdNET_Analyzer?style=social -// Mail icon from FontAwesome -:mail-badge: https://img.shields.io/badge/Mail us!-ccb--birdnet%40cornell.edu-yellow.svg?style=social&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tISBGb250IEF3ZXNvbWUgUHJvIDYuNC4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLiAtLT48cGF0aCBkPSJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2MjIuMUwyMjAuNSAyOTEuN2MyMC43IDE3IDUwLjQgMTcgNzEuMSAwTDQ2NCAxNTAuMVYxMjhjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek00OCAyMTIuMlYzODRjMCA4LjggNy4yIDE2IDE2IDE2SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWMjEyLjJMMzIyIDMyOC44Yy0zOC40IDMxLjUtOTMuNyAzMS41LTEzMiAwTDQ4IDIxMi4yek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6Ii8+PC9zdmc+ - -image:{license-badge}[CC BY-NC-SA 4.0, link={cc-by-nc-sa}] -image:{os-badge}[Supported OS, link=""] -image:{species-badge}[Number of species, link=""] -image:{downloads-badge}[Downloads, link=""] -// build badge -image:https://github.com/kahst/BirdNET-Analyzer/actions/workflows/docker-build.yml/badge.svg[Docker Build, link="https://github.com/kahst/BirdNET-Analyzer/actions/workflows/docker-build.yml"] - - -[.text-center] -image:{mail-badge}[Email, link=mailto:ccb-birdnet@cornell.edu, height=25] -image:{reddit-badge}[Subreddit subscribers, link="https://reddit.com/r/BirdNET_Analyzer", height=25] - -++++ -
-++++ - -[discrete] -== Introduction - -This repo contains BirdNET models and scripts for processing large amounts of audio data or single audio files. -This is the most advanced version of BirdNET for acoustic analyses and we will keep this repository up-to-date with new models and improved interfaces to enable scientists with no CS background to run the analysis. - -https://github.com/kahst/BirdNET-Analyzer/releases/download/v1.5.0/BirdNET-Analyzer-1.5.0-win_amd64.exe[*Click here to download the Windows installer*] and follow the https://github.com/kahst/BirdNET-Analyzer#setup-windows[setup instructions]. - -https://github.com/kahst/BirdNET-Analyzer/releases/download/v1.5.0/BirdNET-Analyzer-1.5.0-mac_arm64.pkg[*Click here to download the macOS package*]. - -https://tuc.cloud/index.php/s/2TX59Qda2X92Ppr/download/BirdNET_GLOBAL_6K_V2.4_Model_Raven.zip[*Download the newest Raven model here*] and follow the https://github.com/kahst/BirdNET-Analyzer#setup-raven-pro[setup instructions]. - -Feel free to use BirdNET for your acoustic analyses and research. -If you do, please cite as: - ----- -@article{kahl2021birdnet, - title={BirdNET: A deep learning solution for avian diversity monitoring}, - author={Kahl, Stefan and Wood, Connor M and Eibl, Maximilian and Klinck, Holger}, - journal={Ecological Informatics}, - volume={61}, - pages={101236}, - year={2021}, - publisher={Elsevier} -} ----- - -This work is licensed under a {cc-by-nc-sa}[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]. - -[discrete] -== About - -Developed by the https://www.birds.cornell.edu/ccb/[K. Lisa Yang Center for Conservation Bioacoustics] at the https://www.birds.cornell.edu/home[Cornell Lab of Ornithology] in collaboration with https://www.tu-chemnitz.de/index.html.en[Chemnitz University of Technology]. - -Go to https://birdnet.cornell.edu to learn more about the project. - -Want to use BirdNET to analyze a large dataset? Don't hesitate to contact us: ccb-birdnet@cornell.edu - -We also have a discussion forum on https://reddit.com/r/BirdNET_Analyzer[Reddit] if you have a general question or just want to chat. - -*Have a question, remark, or feature request? Please start a new issue thread to let us know. Feel free to submit a pull request.* - - -[discrete] -== Contents -toc::[] - -== Usage guide - -This document provides instructions for downloading and installing the GUI, and conducting some of the most common types of analyses. Within the document, a link is provided to download example sound files that can be used for practice. - -Download the PDF here: https://zenodo.org/records/8357176[BirdNET-Analyzer Usage Guide] - -Watch our presentation on how to use BirdNET-Analyzer to train your own models: https://youtu.be/HuEZGIPeyq0[BirdNET - BioacousTalks at YouTube] - -== Showroom - -BirdNET powers a number of fantastic community projects dedicated to bird song identification, all of which use models from this repository. -These are some highlights, make sure to check them out! - -.Community projects -[cols="~,~", options="header"] -|=== -| Project | Description - -| image:https://tuc.cloud/index.php/s/cDqtQxo8yMRkNYP/download/logo_box_loggerhead.png[HaikuBox,300,link=https://haikubox.com] -| -*HaikuBox* + -Once connected to your WiFi, Haikubox will listen for birds 24/7. -When BirdNET finds a match between its thousands of labeled sounds and the birdsong in your yard, it identifies the bird species and shares a three-second audio clip to the Haikubox website and smartphone app. - -Learn more at: https://haikubox.com[HaikuBox.com] - -| image:https://tuc.cloud/index.php/s/WKCZoE9WSjimDoe/download/logo_box_birdnet-pi.png[BirdNET-PI,300,link=https://birdnetpi.com] -| *BirdNET-Pi* + -Built on the TFLite version of BirdNET, this project uses pre-built TFLite binaries for Raspberry Pi to run on-device sound analyses. -It is able to recognize bird sounds from a USB sound card in realtime and share its data with the rest of the world. - -Note: You can find the most up-to-date version of BirdNET-PI at https://github.com/Nachtzuster/BirdNET-Pi[github.com/Nachtzuster/BirdNET-Pi] - -Learn more at: https://birdnetpi.com[BirdNETPi.com] - -| image:https://tuc.cloud/index.php/s/jDtyG9W36WwKpbR/download/logo_box_birdweather.png[BirdWeather,300,link=https://app.birdweather.com] -| *BirdWeather* + -This site was built to be a living library of bird vocalizations. -Using the BirdNET artificial neural network, BirdWeather is continuously listening to over 1,000 active stations around the world in real-time. - -Learn more at: https://app.birdweather.com[BirdWeather.com] - -| image:https://tuc.cloud/index.php/s/kqT7GXXzfDs3NyA/download/birdnetlib-logo.png[birdnetlib,300,link=https://joeweiss.github.io/birdnetlib/] -| *birdnetlib* + -A python api for BirdNET-Analyzer and BirdNET-Lite. `birdnetlib` provides a common interface for BirdNET-Analyzer and BirdNET-Lite. - -Learn more at: https://joeweiss.github.io/birdnetlib/[github.io/birdnetlib] - -| image:https://tuc.cloud/index.php/s/zpNkXJq7je3BKNE/download/logo_box_ecopi_bird.png[ecoPI:Bird,300,link=https://oekofor.netlify.app/en/portfolio/ecopi-bird_en/] -| *ecoPi:Bird* + -The ecoPi:Bird is a device for automated acoustic recordings of bird songs and calls, with a self-sufficient power supply. -It facilitates economical long-term monitoring, implemented with minimal personal requirements. - -Learn more at: https://oekofor.netlify.app/en/portfolio/ecopi-bird_en/[oekofor.netlify.app] - -| image:https://tuc.cloud/index.php/s/HQiPxG2rKbmDb64/download/dawn_chorus_logo.png[DawnChorus,300,link=https://dawn-chorus.org/en/] -| *Dawn Chorus* + -Dawn Chorus invites global participation to record bird sounds for biodiversity research, art, and raising awareness. -This project aims to sharpen our senses and creativity by connecting us more deeply with the wonders of nature. - -Learn more at: https://dawn-chorus.org/en/[dawn-chorus.org] - -| image:https://tuc.cloud/index.php/s/M27nZ4LmNaNEKMg/download/chirpity_logo.png[Chirpity,300,link=https://chirpity.mattkirkland.co.uk] -| *Chirpity* + -Chirpity is a desktop application available for Windows, Mac and Linux platforms. Optimized for speed and ease of use, it can analyze anything from short clips to hundreds of hours of audio with unparalleled speed. Detections can be validated against reference calls, edited and saved to a call library. Results can also be exported to a variety of formats including CSV, Raven and eBird. - -Learn more at: https://chirpity.mattkirkland.co.uk[chirpity.mattkirkland.co.uk] - -| image:https://raw.githubusercontent.com/tphakala/birdnet-go/main/doc/BirdNET-Go-logo.webp[Go-BirdNET,300,link=https://github.com/tphakala/go-birdnet] -| *Go-BirdNET* + -Go-BirdNET is an application inspired by BirdNET-Analyzer. While the original BirdNET is based on Python, Go-BirdNET is built using Golang, -aiming for simplified deployment across multiple platforms, from Windows PCs to single board computers like Raspberry Pi. - -Learn more at: https://github.com/tphakala/go-birdnet[github.com/tphakala/go-birdnet] - -| image:https://github.com/woheller69/whoBIRD/blob/master/fastlane/metadata/android/en-US/images/icon.png[whoBIRD,300,link=https://github.com/woheller69/whoBIRD] -| *whoBIRD* + -whoBIRD empowers you to identify birds anywhere, anytime, without an internet connection. Built upon the TFLite version of BirdNET, this Android application harnesses the power of machine learning to recognize birds directly on your device. - -Learn more at: https://github.com/woheller69/whoBIRD[whoBIRD] - -| image:https://tuc.cloud/index.php/s/gKEcaoqPEB9MHpp/download/logo_muuttolintujen_kev%C3%A4t.png[Muuttolintujen Kevät,300,link=https://www.jyu.fi/en/research/muuttolintujen-kevat] -| *Muuttolintujen Kevät* + -Muuttolintujen Kevät (Migration Birds Spring) is a mobile application developed at the University of Jyväskylä, enabling users to record bird songs and make bird observations using a re-trained version of BirdNET. - -Learn more at: https://www.jyu.fi/en/research/muuttolintujen-kevat[jyu.fi] - -| image:https://github.com/ssciwr/faunanet/blob/master/faunanet_logo.png[faunanet,300,link=https://github.com/ssciwr/faunanet] -| *faunanet* + -faunanet provides a platform for bioacoustics research projects and is an extension of Birdnet-Analyzer based on birdnetlib. faunanet is written in pure Python and is developed by the Scientific Software Center at the University of Heidelberg, Germany. - -Learn more at: https://github.com/ssciwr/faunanet[faunanet] - -| image:https://github.com/ecomontec/ecoSound-web/blob/master/src/assets/images/ecosound-web_logo_large_white_on_black.png[ecoSound-web,300,link=https://ecosound-web.de/ecosound_web/] -| *ecoSound-web* + -ecoSound-web is a web application for ecoacoustics to manage, re-sample, navigate, visualize, annotate, and analyze soundscape recordings. It can execute BirdNET on recording batches and is currently being developed at INRAE, France. - -Learn more at: https://f1000research.com/articles/9-1224/v3[F1000Research] and https://github.com/ecomontec/ecoSound-web[GitHub] - -| image:https://tuc.cloud/index.php/s/p6qb25SqEbLExkQ/download/ribbit_logo.png[Ribbit,300,link=https://ribbit.edi.eco/ ] -| *Ribbit* + -Record frog calls and the web app will tell you the species. Clip it, Ribbit! The app uses a custom classifier built with BirdNET embeddings to identify frog species and gives nature enthusiasts the possibility to learn more about amphibians. - -Learn more at: https://ribbit.edi.eco[ribbit.edi.eco] -|=== - -*Other cool projects:* - -* BirdCAGE is an application for monitoring the bird songs in audio streams: https://github.com/mmcc-xx/BirdCAGE[BirdCAGE at GitHub] -* BattyBirdNET-Analyzer is a tool to assist in the automated classification of bat calls: https://github.com/rdz-oss/BattyBirdNET-Analyzer[BattyBirdNET-Analyzer at GitHub] - -Working on a cool project that uses BirdNET? Let us know and we can feature your project here. - -== Projects map - -We have created an interactive map of projects that use BirdNET. If you are working on a project that uses BirdNET, please let us know https://github.com/kahst/BirdNET-Analyzer/issues/221[here] and we can add it to the map. - -You can access the map here: https://kahst.github.io/BirdNET-Analyzer/projects.html[Open projects map] - -== Model version update - -[discrete] -==== V2.4, June 2023 - -* more than 6,000 species worldwide -* covers frequencies from 0 Hz to 15 kHz with two-channel spectrogram (one for low and one for high frequencies) -* 0.826 GFLOPs, 50.5 MB as FP32 -* enhanced and optimized metadata model -* global selection of species (birds and non-birds) with 6,522 classes (incl. 10 non-event classes) - -You can find a list of previous versions here: https://github.com/kahst/BirdNET-Analyzer/tree/main/birdnet_analyzer/checkpoints[BirdNET-Analyzer Model Version History] - -[discrete] -==== Species range model V2.4 - V2, Jan 2024 - -* updated species range model based on eBird data -* more accurate (spatial) species range prediction -* slightly increased long-tail distribution in the temporal resolution -* see https://github.com/kahst/BirdNET-Analyzer/discussions/234[this discussion post] for more details - -== Technical Details - -Model V2.4 uses the following settings: - -* 48 kHz sampling rate (we up- and downsample automatically and can deal with artifacts from lower sampling rates) -* we compute 2 mel spectrograms as input for the convolutional neural network: -** first one has fmin = 0 Hz and fmax = 3000; nfft = 2048; hop size = 278; 96 mel bins -** second one has fmin = 500 Hz and fmax = 15 kHz; nfft = 1024; hop size = 280; 96 mel bins -* both spectrograms have a final resolution of 96x511 pixels -* raw audio will be normalized between -1 and 1 before spectrogram conversion -* we use non-linear magnitude scaling as mentioned in http://ceur-ws.org/Vol-2125/paper_181.pdf[Schlüter 2018] -* V2.4 uses an EfficienNetB0-like backbone with a final embedding size of 1024 -* See https://github.com/kahst/BirdNET-Analyzer/issues/177#issuecomment-1772538736[this comment] for more details - -== Setup -=== Setup (Raven Pro) - -If you want to analyze audio files without any additional coding or package install, you can now use https://ravensoundsoftware.com/software/raven-pro/[Raven Pro software] to run BirdNET models. -After download, BirdNET is available through the new "Learning detector" feature in Raven Pro. -For more information on how to use this feature, please visit the https://ravensoundsoftware.com/article-categories/learning-detector/[Raven Pro Knowledge Base]. - -https://tuc.cloud/index.php/s/2TX59Qda2X92Ppr/download/BirdNET_GLOBAL_6K_V2.4_Model_Raven.zip[Download the newest model version here], extract the zip-file and move the extracted folder to the Raven models folder. On Windows, the models folder is `C:\Users\\Raven Pro 1.6\Models`. Start Raven Pro and select *BirdNET_GLOBAL_6K_V2.4_Model_Raven* as learning detector. - -=== Setup (Python package) - -The easiest way to setup BirdNET on your machine is to install https://joeweiss.github.io/birdnetlib/[birdnetlib] or https://pypi.org/project/birdnet/[birdnet] through pip with: - -[source,sh] ----- - -pip3 install birdnetlib - -or - -pip3 install birdnet ----- - -Please take a look at the https://joeweiss.github.io/birdnetlib/#using-birdnet-analyzer[birdnetlib user guide] on how to analyze audio with `birdnetlib`. - -When using the `birdnet`-package, you can run BirdNET with: - -[source,python] ----- -from pathlib import Path -from birdnet.models import ModelV2M4 - -# create model instance for v2.4 -model = ModelV2M4() - -# predict species within the whole audio file -species_in_area = model.predict_species_at_location_and_time(42.5, -76.45, week=4) -predictions = model.predict_species_within_audio_file( - Path("soundscape.wav"), - filter_species=set(species_in_area.keys()) -) - -# get most probable prediction at time interval 0s-3s -prediction, confidence = list(predictions[(0.0, 3.0)].items())[0] -print(f"predicted '{prediction}' with a confidence of {confidence:.6f}") -# predicted 'Poecile atricapillus_Black-capped Chickadee' with a confidence of 0.814056 ----- - -For more examples and documentation, make sure to visit https://pypi.org/project/birdnet/[pypi.org/project/birdnet/]. -For any feature request or questions regarding `birdnet`, please add an issue or PR at https://github.com/birdnet-team/birdnet[github.com/birdnet-team/birdnet]. - -=== Setup (Ubuntu) - -Install Python 3.10: - -[source,sh] ----- -sudo apt-get update -sudo apt-get install python3.10 python3.10-dev -pip3 install --upgrade pip ----- - -Install TFLite runtime (recommended) or Tensorflow (has to be 2.15): - -[source,sh] ----- -pip3 install tflite-runtime - -OR - -pip3 install tensorflow==2.15.0 ----- - -Install Librosa to handle audio files: - -[source,sh] ----- -pip3 install librosa resampy -sudo apt-get install ffmpeg ----- - -Clone the repository - -[source,sh] ----- -git clone https://github.com/kahst/BirdNET-Analyzer.git -cd BirdNET-Analyzer ----- - -=== Setup (Windows) - -Before you attempt to setup BirdNET-Analyzer on your Windows machine, please consider downloading our fully-packaged version that does not require you to install any additional packages and can be run "as-is". - -You can download this version here: https://github.com/kahst/BirdNET-Analyzer/releases/download/v1.5.0/BirdNET-Analyzer-1.5.0-win_amd64.exe[BirdNET-Analyzer Windows] - -. Download the https://github.com/kahst/BirdNET-Analyzer/releases/download/v1.5.0/BirdNET-Analyzer-1.5.0-win_amd64.exe[*BirdNET-Analyzer-setup.exe*] file -. Before installing, make sure to right-click the exe-file, select "Properties" and check the box "Unblock" under "Security" at the bottom of the "General" tab. - ** If Windows does not display this option, the file can be unblocked with the PowerShell 7 command `Unblock-File -Path .\BirdNET-Analyzer.zip` -. During installation, you may see a warning *"Windows protected your PC"* due to the lack of a digital signature. Simply select "More info" and then "Run anyway" to proceed with the installation. -. Follow the on-screen instructions -. After installation, click the desktop icon or navigate to the extracted folder at `C:\Users\\AppData\Local\Programs\BirdNET-Analyzer` -. You can start the analysis through the command prompt with `+BirdNET-Analyzer.exe --i "path\to\folder" ...+` (see <> for more details), or you can launch `BirdNET-Analyzer-GUI.exe` to start the analysis through a basic GUI. - -For more advanced use cases (e.g., hosting your own API server), follow these steps to set up BirdNET-Analyzer on your Windows machine: - -Install Python 3.10 or higher (has to be 64bit version) - -* Download and run installer: https://www.python.org/downloads/release/python-3100/[Download Python installer] - -WARNING: :exclamation:**Make sure to check: ☑ "Add path to environment variables" during install**:exclamation: - -Install Tensorflow (has to be 2.5 or later), Librosa and NumPy - -* Open command prompt with *`Win + S`* type "command" and click on "Command Prompt" -* Type `pip install --upgrade pip` -* Type `pip install librosa resampy` -* Install Tensorflow by typing `pip install tensorflow` - -NOTE: You might need to run the command prompt as "administrator". -Type *`Win + S`*, search for command prompt and then right-click, select "Run as administrator". - -Install Visual Studio Code (optional) - -* Download and install VS Code: https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user[Download VS Code installer] -* Select all available options during install - -Install BirdNET using Git (for simple download see below) - -* Download and install Git Bash: https://github.com/git-for-windows/git/releases/download/v2.34.1.windows.1/Git-2.34.1-64-bit.exe[Download Git Bash installer] -* Select Visual Studio Code as default editor (optional) -* Keep all other settings as recommended -* Create folder in personal directory called "Code" (or similar) -* Change to folder and right click, launch "Git bash here" -* Type `+git clone https://github.com/kahst/BirdNET-Analyzer.git+` -* Keep BirdNET updated by running `git pull` for BirdNET-Analyzer folder occasionally - -Install BirdNET from zip - -* Download BirdNET: https://github.com/kahst/BirdNET-Analyzer/archive/refs/heads/main.zip[Download BirdNET Zip-file] -* Unpack zip file (e.g., in personal directory) -* Keep BirdNET updated by re-downloading the zip file occasionally and overwrite existing files - -Run BirdNET from command line - -* Open command prompt with *`Win + S`* type "command" and click on "Command Prompt" -* Navigate to the folder where you installed BirdNET (cd path\to\BirdNET-Analyzer) -* See <> for command line arguments - -NOTE: With Visual Studio Code installed, you can right-click the BirdNET-Analyzer folder and select "Open with Code". -With proper extensions installed (View -> Extensions -> Python) you will be able to run all scripts from within VS Code. - -=== Setup (macOS) - -NOTE: Installation was only tested on M1 and M2 chips. -Feedback on older Intel CPUs or newer M3 chips is welcome! - - - -==== Requirements - -You need to install the Xcode command-line tools: - -[source,sh] ----- -xcode-select --install ----- - -Clone the git repository into your prefered folder if you have not done that yet: - -[source,sh] ----- -cd ~/YOUR_FOLDER -git clone https://github.com/kahst/BirdNET-Analyzer.git -cd BirdNET-Analyzer ----- - -==== Setup the environment -We are going to create a virtual environment to install the required packages. -Virtual environments allow you to manage separate package installations for different projects. - -[source,sh] ----- -python3 -m venv venv-birdnet -source venv-birdnet/bin/activate -python -m pip install -U pip ----- - -WARNING: :exclamation:**Make sure that you are using Python 3.10, if not install it from the https://www.python.org/downloads/release/python-3100/[Python website].**:exclamation: - -The nexttime you want to use BirdNET, go to the BirdNET-Analyzer folder and run `source venv-birdnet/bin/activate` to activate the virtual environment. - -==== Install dependencies - -TensorFlow for macOS and Metal plug-in: - -[source,sh] ----- -python -m pip install tensorflow==2.15.0 tensorflow-metal ----- - -Librosa and ffmpeg: - -[source,sh] ----- -python -m pip install librosa resampy ----- - -keras_tuner: - -[source,sh] ----- -python -m pip install keras_tuner ----- - -==== Verify - -Run the example. -It will take a while the first time you run it. -Subsequent runs will be faster. - -[source,sh] ----- -python -m birdnet_analyzer.analyze ----- - -NOTE: Now, you can install and use <<_setup_python_package,birdnet>>. - -== Usage -=== Usage (CLI) - -. Inspect config file for options and settings, especially inference settings. -Specify a custom species list if needed and adjust the number of threads TFLite can use to run the inference. -. Run `analyzer.py` to analyze an audio file. -You need to set paths for the audio file and selection table output. -Here is an example: -+ -[source,sh] ----- -python3 -m birdnet_analyzer.analyze --i /path/to/audio/folder --o /path/to/output/folder ----- -+ -NOTE: Your custom species list has to be named 'species_list.txt' and the folder containing the list needs to be specified with `--slist /path/to/folder`. -You can also specify the number of CPU threads that should be used for the analysis with `--threads ` (e.g., `--threads 16`). -If you provide GPS coordinates with `--lat` and `--lon`, the custom species list argument will be ignored. -+ - -Here's a complete list of all command line arguments: -+ ----- ---i, Path to input file or folder. If this is a file, --o needs to be a file too. ---o, Path to output file or folder. If this is a file, --i needs to be a file too. ---lat, Recording location latitude. Set -1 to ignore. ---lon, Recording location longitude. Set -1 to ignore. ---week, Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list. ---slist, Path to species list file or folder. If folder is provided, species list needs to be named "species_list.txt". If lat and lon are provided, this list will be ignored. ---sensitivity, Detection sensitivity; Higher values result in higher sensitivity. Values in [0.5, 1.5]. Defaults to 1.0. ---min_conf, Minimum confidence threshold. Values in [0.01, 0.99]. Defaults to 0.1. ---overlap, Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0. ---rtype, Specifies output format. Values in ['table', 'audacity', 'r', 'kaleidoscope', 'csv']. Defaults to 'table' (Raven selection table). ---threads, Number of CPU threads. ---batchsize, Number of samples to process at the same time. Defaults to 1. ---locale, Locale for translated species common names. Values in ['af', 'de', 'it', ...] Defaults to 'en'. ---sf_thresh, Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99]. Defaults to 0.03. ---classifier, Path to custom trained classifier. Defaults to None. If set, --lat, --lon and --locale are ignored. ---fmin and --fmax, Minimum and maximum frequency for bandpass filter. Defaults to 0 and 15000. ---combine_results, Also outputs a combined file for all the selected result types. If set combined tables will be generated. Defaults to False. ---skip_existing_results, skip files that have already been analyzed. Defaults to False. ----- -+ -Here are two example commands to run this BirdNET version: -+ -[source,sh] ----- -python3 -m birdnet_analyzer.analyze --i example/ --o example/ --slist example/ --min_conf 0.5 --threads 4 - -python3 -m birdnet_analyzer.analyze --i example/ --o example/ --lat 42.5 --lon -76.45 --week 4 --sensitivity 1.0 ----- -+ -. Run `embeddings.py` to extract feature embeddings instead of class predictions. -Result file will contain timestamps and lists of float values representing the embedding for a particular 3-second segment. -Embeddings can be used for clustering or similarity analysis. -Here is an example: -+ -[source,sh] ----- -python3 -m birdnet_analyzer.embeddings --i example/ --o example/ --threads 4 --batchsize 16 ----- -+ -Here's a complete list of all command line arguments: -+ ----- ---i, Path to input file or folder. If this is a file, --o needs to be a file too. ---o, Path to output file or folder. If this is a file, --i needs to be a file too. ---overlap, Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0. ---threads, Number of CPU threads. ---batchsize, Number of samples to process at the same time. Defaults to 1. ---fmin and --fmax, Minimum and maximum frequency for bandpass filter. Defaults to 0 and 15000. ----- -+ -. After the analysis, run `segments.py` to extract short audio segments for species detections to verify results. -This way, it might be easier to review results instead of loading hundreds of result files manually. -+ -Here's a complete list of all command line arguments: -+ ----- ---audio, Path to folder containing audio files. ---results, Path to folder containing result files. ---o, Output folder path for extracted segments. ---min_conf, Minimum confidence threshold. Values in [0.01, 0.99]. Defaults to 0.1. ---max_segments, Number of randomly extracted segments per species. ---seg_length, Length of extracted segments in seconds. Defaults to 3.0. ---threads, Number of CPU threads. ----- -+ -. When editing your own `species_list.txt` file, make sure to copy species names from the labels file of each model. -+ -You can find label files in the checkpoints folder, e.g., `checkpoints/V2.3/BirdNET_GLOBAL_3K_V2.3_Labels.txt`. -+ -Species names need to consist of `scientific name_common name` to be valid. -+ -. You can generate a species list for a given location using `species.py` in case you need it for reference. -Here is an example: -+ -[source,sh] ----- -python3 -m birdnet_analyzer.species --o example/species_list.txt --lat 42.5 --lon -76.45 --week 4 ----- -+ -Here's a complete list of all command line arguments: -+ ----- ---o, Path to output file or folder. If this is a folder, file will be named 'species_list.txt'. ---lat, Recording location latitude. ---lon, Recording location longitude. ---week, Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list. ---threshold, Occurrence frequency threshold. Defaults to 0.03. ---sortby, Sort species by occurrence frequency or alphabetically. Values in ['freq', 'alpha']. Defaults to 'freq'. ----- -+ -The year-round list may contain some species, that are not included in any list for a specific week. See https://github.com/kahst/BirdNET-Analyzer/issues/211 for more details. -. This is a very basic version of the analysis workflow, you might need to adjust it to your own needs. -. Please open an issue to ask for new features or to document unexpected behavior. -. I will keep models up to date and upload new checkpoints whenever there is an improvement in performance. -I will also provide quantized and pruned model files for distribution. - -=== Usage (Docker) - -Install docker for Ubuntu: - -[source,sh] ----- -sudo apt install docker.io ----- - -Build Docker container: - -[source,sh] ----- -sudo docker build -t birdnet . ----- - -NOTE: You need to run docker build again whenever you make changes to the script. - -In order to pass a directory that contains your audio files to the docker file, you need to mount it inside the docker container with `-v /my/path:/mount/path` before you can run the container. - -You can run the container for the provided example soundscapes with: - -[source,sh] ----- -sudo docker run -v $PWD/example:/audio birdnet analyze.py --i audio --o audio --slist audio ----- - -You can adjust the directory that contains your recordings by providing an absolute path: - -[source,sh] ----- -sudo docker run -v /path/to/your/audio/files:/audio birdnet analyze.py --i audio --o audio --slist audio ----- - -You can also mount more than one drive, e.g., if input and output folder should be different: - -[source,sh] ----- -sudo docker run -v /path/to/your/audio/files:/input -v /path/to/your/output/folder:/output birdnet analyze.py --i input --o output --slist input ----- - -See <> above for more command line arguments, all of them will work with Docker version. - -NOTE: If you like to specify a species list (which will be used as post-filter and needs to be named 'species_list.txt'), you need to put it into a folder that also has to be mounted. - -=== Usage (Server) - -You can host your own analysis service and API by launching the `server.py` script. -This will allow you to send files to this server, store submitted files, analyze them and send detection results back to a client. -This could be a local service, running on a desktop PC, or a remote server. -The API can be accessed locally or remotely through a browser or Python client (or any other client implementation). - -. Install one additional package with `pip3 install bottle`. -. Start the server with `python3 -m birdnet_analyzer.server`. -You can also specify a host name or IP and port number, e.g., `python3 -m birdnet_analayzer.server --host localhost --port 8080`. -+ -Here's a complete list of all command line arguments: -+ ----- ---host, Host name or IP address of API endpoint server. Defaults to '0.0.0.0'. ---port, Port of API endpoint server. Defaults to 8080. ---spath, Path to folder where uploaded files should be stored. Defaults to '/uploads'. ---threads, Number of CPU threads for analysis. Defaults to 4. ---locale, Locale for translated species common names. Values in ['af', 'de', 'it', ...] Defaults to 'en'. ----- -+ -NOTE: The server is single-threaded, so you'll need to start multiple instances for higher throughput. -This service is intented for short audio files (e.g., 1-10 seconds). -+ -. Query the API with a client. -You can use the provided Python client or any other client implementation. -Request payload needs to be `multipart/form-data` with the following fields: `audio` for raw audio data as byte code, and `meta` for additional information on the audio file. -Take a look at our example client implementation in the `client.py` script. -+ -This script will read an audio file, generate metadata from command line arguments and send it to the server. -The server will then analyze the audio file and send back the detection results which will be stored as a JSON file. -+ -Here's a complete list of all command line arguments: -+ ----- ---host, Host name or IP address of API endpoint server. ---port, Port of API endpoint server. ---i, Path to file that should be analyzed. ---o, Path to result file. Leave blank to store with audio file. ---lat, Recording location latitude. Set -1 to ignore. ---lon, Recording location longitude. Set -1 to ignore. ---week, Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list. ---overlap, Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0. ---sensitivity, Detection sensitivity; Higher values result in higher sensitivity. Values in [0.5, 1.5]. Defaults to 1.0. ---pmode, Score pooling mode. Values in ['avg', 'max']. Defaults to 'avg'. ---num_results, Number of results per request. ---sf_thresh, Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99]. Defaults to 0.03. ---save, Define if files should be stored on server. Values in [True, False]. Defaults to False. ----- -+ -. Parse results from the server. -The server will send back a JSON response with the detection results. -The response also contains a `msg` field, indicating `success` or `error`. -Results consist of a sorted list of (species, score) tuples. -+ -This is an example response: -+ - -[source,json] ----- -{"msg": "success", "results": [["Poecile atricapillus_Black-capped Chickadee", 0.7889], ["Spinus tristis_American Goldfinch", 0.5028], ["Junco hyemalis_Dark-eyed Junco", 0.4943], ["Baeolophus bicolor_Tufted Titmouse", 0.4345], ["Haemorhous mexicanus_House Finch", 0.2301]]} ----- -+ -NOTE: Let us know if you have any questions, suggestions, or feature requests. -Also let us know when hosting an analysis service - we would love to give it a try. - -=== Usage (GUI) - -We provide a very basic GUI which lets you launch the analysis through a web interface. - -.Web based GUI -image::https://tuc.cloud/index.php/s/QyBczrWXCrMoaRC/download/analyzer_gui.png[GUI screenshot] - -. You need to install two additional packages in order to use the GUI with `pip3 install pywebview gradio` -. Launch the GUI with `python3 -m birdnet_analyzer.gui`. -. Set all folders and parameters, after that, click 'Analyze'. - -== Training - -You can train your own custom classifier on top of BirdNET. -This is useful if you want to detect species that are not included in the default species list. -You can also use this to train a classifier for a specific location or season. -All you need is a dataset of labeled audio files, organized in folders by species (we use folder names as labels). -*This also works for non-bird species, as long as you have a dataset of labeled audio files*. -Audio files will be resampled to 48 kHz and converted into 3-second segments (we will use the center 3-second segment if the file is longer, we will pad with random noise if the file is shorter). -We recommend using at least 100 audio files per species (although training also works with less data). -You can download a sample training data set https://drive.google.com/file/d/16hgka5aJ4U69ane9RQn_quVmgjVY2AY5[here]. - -. Collect training data and organize in folders based on species names. -. Species labels should be in the format `_` (e.g., `Poecile atricapillus_Black-capped Chickadee`), but other formats work as well. -. It can be helpful to include a non-event class. -If you name a folder 'Noise', 'Background', 'Other' or 'Silence', it will be treated as a non-event class. -. Run the training script with `python3 train.py --i --o `. -+ -Here is a list of all command line arguments: -+ ----- ---i, Path to training data folder. Subfolder names are used as labels. ---o, Path to trained classifier model output. ---crop_mode, Crop mode for training data. Values in ['center', 'first', 'segments']. Defaults to 'center'. ---crop_overlap, Overlap of training data segments in seconds if crop_mode is 'segments'. Defaults to 0. ---epochs, Number of training epochs. Defaults to 50. ---batch_size, Batch size. Defaults to 32. ---val_split, Validation split ratio. Defaults to 0.2. ---learning_rate, Learning rate. Defaults to 0.001. ---hidden_units, Number of hidden units. Defaults to 0. If set to >0, a two-layer classifier is used. ---dropout, Dropout rate. Defaults to 0. ---mixup, Whether to use mixup for training. ---upsampling_ratio, Balance train data and upsample minority classes. Values between 0 and 1. Defaults to 0. ---upsampling_mode, Upsampling mode. Can be 'repeat', 'mean' or 'smote'. Defaults to 'repeat'. ---model_format, Model output format. Can be 'tflite', 'raven' or 'both'. Defaults to 'tflite'. ---model_save_mode, Model save mode. Can be 'replace' or 'append'. Defaults to 'replace'. ---cache_mode, Cache mode. Can be 'none', 'load' or 'save'. Defaults to 'none'. ---cache_file, Path to cache file. Defaults to 'train_cache.npz'. ---threads, Number of CPU threads. ---fmin and --fmax, Minimum and maximum frequency for bandpass filter. Defaults to 0 and 15000. ---autotune, Whether to use automatic hyperparameter tuning (this will execute multiple training runs to search for optimal hyperparameters). ---autotune_trials, Number of training runs for hyperparameter tuning. Defaults to 50. ---autotune_executions_per_trial, The number of times a training run with a set of hyperparameters is repeated. Defaults to 1. ----- - -**The script saves the trained classifier model based on the best validation loss achieved during training. This ensures that the model saved is optimized for performance according to the chosen metric.** - -After training, you can use the custom trained classifier with the `--classifier` argument of the `analyze.py` script. If you want to use the custom classifier in Raven, make sure to set `--model_format raven`. - -NOTE: Adjusting hyperparameters (e.g., number of hidden units, learning rate, etc.) can have a big impact on the performance of the classifier. - -We recommend trying different hyperparameter settings. If you want to automate this process, you can use the `--autotune` argument (in that case, make sure to install keras_tuner with `pip3 install keras-tuner`). - -Example usage (when downloading and unzipping the sample training data set): - -[source,sh] ----- -python3 -m birdnet_analyzer.train --i train_data/ --o checkpoints/custom/Custom_Classifier.tflite -python3 -m birdnet_analyzer.analyze --classifier checkpoints/custom/Custom_Classifier.tflite ----- - -NOTE: Setting a custom classifier will also set the new labels file. -Due to these custom labels, the location filter and locale will be disabled. - -You can include negative samples for classes by prefixing the folder names with a '-' (e.g., `-Poecile atricapillus_Black-capped Chickadee`). Do this with samples that definitely do not contain the species. Negative samples will only be used for training and not for validation. Also keep in mind that negative samples will only be used when a corresponding folder with positive samples exists. Negative samples cannot be used for binary classification, instead include these samples in the non-event folder. - -To train with multi-label data separate the class labels with commas in the folder names (e.g., `Poecile atricapillus_Black-capped Chickadee, Cardinalis cardinalis_Northern Cardinal`). This can also be combined with negative samples as described above. The validation split will be performed combination of classes, so you might want to ensure sufficient data for each combination of classes. When using multi-label data the upsampling mode will be limited to 'repeat'. - -== Segment review - -Please read the excellent paper from Connor M. Wood and Stefan Kahl: https://scholar.google.com/citations?view_op=view_citation&hl=en&user=Uwta4wYAAAAJ&sortby=pubdate&citation_for_view=Uwta4wYAAAAJ:j3f4tGmQtD8C[Guidelines for appropriate use of BirdNET scores and other detector outputs]. - - -The *Review* tab in the GUI is an implementation of the workflow described in the paper. It allows you to review the segments that were detected by BirdNET and to label the segments manually. This can help you to choose an appropriate threshold for your specific use case. - -General workflow: - -. Use the *Segments* tab in the GUI or the `segments.py` script to extract short audio segments for species detections. -. Open the *Review* tab in the GUI and select the parent directory containing the directories for all the species you want to review. -. Review the segments and manually check "positive" if the segment does contain target species or "negative" if it does not. - -For each selected sample the logistic regression curve is fitted and the threshold is calculated. The threshold is the point where the logistic regression curve crosses the 0.5 line. - -== GUI Language - -The default language of the GUI is English, but you can change it to German, French, Chinese or Portuguese in the *Settings* tab of the GUI. If you want to contribute a translation to another language you, use the files inside the `lang` folder as a template. You can then send us the translated files or create a pull request. -To check your translation, place your file inside the `lang` folder and start the GUI, your language should now be available in the *Settings* tab. After selecting your language, you should restart the GUI to apply the changes. - -We thank our collaborators for contributing translations: - -Chinese: Sunny Tseng (https://github.com/SunnyTseng[@Sunny Tseng]) - -French: https://github.com/FranciumSoftware[@FranciumSoftware] - -Portuguese: Larissa Sugai (https://github.com/LSMSugai[@LSMSugai]) - -Russian: Александр Цветков (cau@yandex.ru, radio call sign: R1BAF) - -== Funding - -This project is supported by Jake Holshuh (Cornell class of `'69) and The Arthur Vining Davis Foundations. -Our work in the K. Lisa Yang Center for Conservation Bioacoustics is made possible by the generosity of K. Lisa Yang to advance innovative conservation technologies to inspire and inform the conservation of wildlife and habitats. - -The development of BirdNET is supported by the German Federal Ministry of Education and Research through the project “BirdNET+” (FKZ 01|S22072). -The German Federal Ministry for the Environment, Nature Conservation and Nuclear Safety contributes through the “DeepBirdDetect” project (FKZ 67KI31040E). -In addition, the Deutsche Bundesstiftung Umwelt supports BirdNET through the project “RangerSound” (project 39263/01). - -== Partners - -BirdNET is a joint effort of partners from academia and industry. -Without these partnerships, this project would not have been possible. -Thank you! - -.Our partners -image::https://tuc.cloud/index.php/s/KSdWfX5CnSRpRgQ/download/box_logos.png[Logos of all partners] diff --git a/README.md b/README.md new file mode 100644 index 00000000..bcc42b0b --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +
+

BirdNET-Analyzer

+ + BirdNET-Logo + +
+
+
+ +[![License](https://badgen.net/badge/License/CC-BY-NC-SA%204.0/green)](http://creativecommons.org/licenses/by-nc-sa/4.0/) +![OS](https://badgen.net/badge/OS/Linux%2C%20Windows%2C%20macOS/blue) +[![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-3110/) +![Species](https://badgen.net/badge/Species/6512/blue) +![Downloads](https://www-user.tu-chemnitz.de/~johau/birdnet_total_downloads_badge.php) +[![Docker](https://github.com/kahst/BirdNET-Analyzer/actions/workflows/docker-build.yml/badge.svg)](https://github.com/kahst/BirdNET-Analyzer/actions/workflows/docker-build.yml) + +
+ +This repo contains BirdNET models and scripts for processing large amounts of audio data or single audio files. +This is the most advanced version of BirdNET for acoustic analyses and we will keep this repository up-to-date with new models and improved interfaces to enable scientists with no CS background to run the analysis. + +Feel free to use BirdNET for your acoustic analyses and research. +If you do, please cite as: + +```bibtex +@article{kahl2021birdnet, + title={BirdNET: A deep learning solution for avian diversity monitoring}, + author={Kahl, Stefan and Wood, Connor M and Eibl, Maximilian and Klinck, Holger}, + journal={Ecological Informatics}, + volume={61}, + pages={101236}, + year={2021}, + publisher={Elsevier} +} +``` + +This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-nc-sa/4.0/). + +## Documentation + +The documentation and further information will be listed [here](https://kahst.github.io/BirdNET-Analyzer/) + +## About + +Developed by the [K. Lisa Yang Center for Conservation Bioacoustics](https://www.birds.cornell.edu/ccb/) at the [Cornell Lab of Ornithology](https://www.birds.cornell.edu/home) in collaboration with [Chemnitz University of Technology](https://www.tu-chemnitz.de/index.html.en). + +Go to https://birdnet.cornell.edu to learn more about the project. + +Want to use BirdNET to analyze a large dataset? Don't hesitate to contact us: ccb-birdnet@cornell.edu + +**Have a question, remark, or feature request? Please start a new issue thread to let us know. Feel free to submit a pull request.** + +## License + +- **Source Code**: The source code for this project is licensed under the [MIT License](https://opensource.org/licenses/MIT). +- **Models**: The models used in this project are licensed under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/). + +Please ensure you review and adhere to the specific license terms provided with each model. Note that educational and research purposes are considered non-commercial use cases. + +## Usage guide + +This document provides instructions for downloading and installing the GUI, and conducting some of the most common types of analyses. Within the document, a link is provided to download example sound files that can be used for practice. + +Download the PDF here: [BirdNET-Analyzer Usage Guide](https://zenodo.org/records/8357176) + +Watch our presentation on how to use BirdNET-Analyzer to train your own models: [BirdNET - BioacousTalks at YouTube](https://youtu.be/HuEZGIPeyq0) + +## Projects map + +We have created an interactive map of projects that use BirdNET. If you are working on a project that uses BirdNET, please let us know [here](https://github.com/kahst/BirdNET-Analyzer/issues/221) and we can add it to the map. + +You can access the map here: [Open projects map](https://kahst.github.io/BirdNET-Analyzer/projects.html) + +## Funding + +This project is supported by Jake Holshuh (Cornell class of ´69) and The Arthur Vining Davis Foundations. +Our work in the K. Lisa Yang Center for Conservation Bioacoustics is made possible by the generosity of K. Lisa Yang to advance innovative conservation technologies to inspire and inform the conservation of wildlife and habitats. + +The development of BirdNET is supported by the German Federal Ministry of Education and Research through the project “BirdNET+” (FKZ 01|S22072). +The German Federal Ministry for the Environment, Nature Conservation and Nuclear Safety contributes through the “DeepBirdDetect” project (FKZ 67KI31040E). +In addition, the Deutsche Bundesstiftung Umwelt supports BirdNET through the project “RangerSound” (project 39263/01). + +## Partners + +BirdNET is a joint effort of partners from academia and industry. +Without these partnerships, this project would not have been possible. +Thank you! + +![Logos of all partners](https://tuc.cloud/index.php/s/KSdWfX5CnSRpRgQ/download/box_logos.png) \ No newline at end of file diff --git a/birdnet_analyzer/analyze/__init__.py b/birdnet_analyzer/analyze/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/analyze/__main__.py b/birdnet_analyzer/analyze/__main__.py new file mode 100644 index 00000000..16aca869 --- /dev/null +++ b/birdnet_analyzer/analyze/__main__.py @@ -0,0 +1,161 @@ +import os +from multiprocessing import Pool, freeze_support + +import birdnet_analyzer.cli as cli +import birdnet_analyzer.config as cfg +import birdnet_analyzer.utils as utils + +# Freeze support for executable +freeze_support() + +parser = cli.analyzer_parser() + +args = parser.parse_args() + +try: + if os.get_terminal_size().columns >= 64: + print(cli.ASCII_LOGO, flush=True) +except Exception: + pass + +import birdnet_analyzer.species.utils as species # noqa: E402 +from birdnet_analyzer.analyze.utils import analyze_file, combine_results, load_codes, save_analysis_params # noqa: E402 + +# Load eBird codes, labels +cfg.CODES = load_codes() +cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) + +cfg.SKIP_EXISTING_RESULTS = args.skip_existing_results + +# Set custom classifier? +if args.classifier is not None: + cfg.CUSTOM_CLASSIFIER = args.classifier # we treat this as absolute path, so no need to join with dirname + + if args.classifier.endswith(".tflite"): + cfg.LABELS_FILE = args.classifier.replace(".tflite", "_Labels.txt") # same for labels file + + if not os.path.isfile(cfg.LABELS_FILE): + cfg.LABELS_FILE = args.classifier.replace("Model_FP32.tflite", "Labels.txt") + + cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) + else: + cfg.APPLY_SIGMOID = False + cfg.LABELS_FILE = os.path.join(args.classifier, "labels", "label_names.csv") + cfg.LABELS = [line.split(",")[1] for line in utils.read_lines(cfg.LABELS_FILE)] + + args.lat = -1 + args.lon = -1 + args.locale = "en" + +# Load translated labels +lfile = os.path.join( + cfg.TRANSLATED_LABELS_PATH, os.path.basename(cfg.LABELS_FILE).replace(".txt", "_{}.txt".format(args.locale)) +) + +if args.locale not in ["en"] and os.path.isfile(lfile): + cfg.TRANSLATED_LABELS = utils.read_lines(lfile) +else: + cfg.TRANSLATED_LABELS = cfg.LABELS + +### Make sure to comment out appropriately if you are not using args. ### + +# Load species list from location filter or provided list +cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK = args.lat, args.lon, args.week +cfg.LOCATION_FILTER_THRESHOLD = args.sf_thresh + +if cfg.LATITUDE == -1 and cfg.LONGITUDE == -1: + if not args.slist: + cfg.SPECIES_LIST_FILE = None + else: + cfg.SPECIES_LIST_FILE = args.slist + + if os.path.isdir(cfg.SPECIES_LIST_FILE): + cfg.SPECIES_LIST_FILE = os.path.join(cfg.SPECIES_LIST_FILE, "species_list.txt") + + cfg.SPECIES_LIST = utils.read_lines(cfg.SPECIES_LIST_FILE) +else: + cfg.SPECIES_LIST_FILE = None + cfg.SPECIES_LIST = species.get_species_list(cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD) + +if not cfg.SPECIES_LIST: + print(f"Species list contains {len(cfg.LABELS)} species") +else: + print(f"Species list contains {len(cfg.SPECIES_LIST)} species") + +# Set input and output path +cfg.INPUT_PATH = args.input + +if not args.output: + if os.path.isfile(cfg.INPUT_PATH): + cfg.OUTPUT_PATH = os.path.dirname(cfg.INPUT_PATH) + else: + cfg.OUTPUT_PATH = cfg.INPUT_PATH +else: + cfg.OUTPUT_PATH = args.output + +# Parse input files +if os.path.isdir(cfg.INPUT_PATH): + cfg.FILE_LIST = utils.collect_audio_files(cfg.INPUT_PATH) + print(f"Found {len(cfg.FILE_LIST)} files to analyze") +else: + cfg.FILE_LIST = [cfg.INPUT_PATH] + +# Set confidence threshold +cfg.MIN_CONFIDENCE = args.min_conf + +# Set sensitivity +cfg.SIGMOID_SENSITIVITY = args.sensitivity + +# Set overlap +cfg.SIG_OVERLAP = args.overlap + +# Set bandpass frequency range +cfg.BANDPASS_FMIN = args.fmin +cfg.BANDPASS_FMAX = args.fmax + +# Set audio speed +cfg.AUDIO_SPEED = args.audio_speed + +# Set result type +cfg.RESULT_TYPES = args.rtype + +# Set output file +cfg.COMBINE_RESULTS = args.combine_results + +# Set number of threads +if os.path.isdir(cfg.INPUT_PATH): + cfg.CPU_THREADS = args.threads + cfg.TFLITE_THREADS = 1 +else: + cfg.CPU_THREADS = 1 + cfg.TFLITE_THREADS = args.threads + +# Set batch size +cfg.BATCH_SIZE = args.batchsize + +# Add config items to each file list entry. +# We have to do this for Windows which does not +# support fork() and thus each process has to +# have its own config. USE LINUX! +flist = [(f, cfg.get_config()) for f in cfg.FILE_LIST] +result_files = [] + +# Analyze files +if cfg.CPU_THREADS < 2 or len(flist) < 2: + for entry in flist: + result_files.append(analyze_file(entry)) +else: + with Pool(cfg.CPU_THREADS) as p: + # Map analyzeFile function to each entry in flist + results = p.map_async(analyze_file, flist) + # Wait for all tasks to complete + results.wait() + result_files = results.get() + +# Combine results? +if cfg.COMBINE_RESULTS: + print(f"Combining results, writing to {cfg.OUTPUT_PATH}...", end="", flush=True) + combine_results(result_files) + print("done!", flush=True) + +save_analysis_params(os.path.join(cfg.OUTPUT_PATH, cfg.ANALYSIS_PARAMS_FILENAME)) diff --git a/birdnet_analyzer/analyze.py b/birdnet_analyzer/analyze/utils.py similarity index 56% rename from birdnet_analyzer/analyze.py rename to birdnet_analyzer/analyze/utils.py index 6d39c027..76692903 100644 --- a/birdnet_analyzer/analyze.py +++ b/birdnet_analyzer/analyze/utils.py @@ -1,19 +1,15 @@ """Module to analyze audio samples.""" -import argparse import datetime import json -import multiprocessing import operator import os -from multiprocessing import Pool, freeze_support import numpy as np import birdnet_analyzer.audio as audio import birdnet_analyzer.config as cfg import birdnet_analyzer.model as model -import birdnet_analyzer.species as species import birdnet_analyzer.utils as utils # 0 1 2 3 4 5 6 7 8 9 10 11 @@ -24,33 +20,6 @@ ) CSV_HEADER = "Start (s),End (s),Scientific name,Common name,Confidence,File\n" SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) -ASCII_LOGO = r""" - . - .-=- - .:=++++. - ..-======#=:. - .-%%%#*+=-#+++:.. - .-+***======++++++=.. - .=====+==++++++++-. - .=+++====++++++++++=:. - .++++++++=======----===: - =+++++++====-----+++++++-. - .=++++==========-=++=====+=:. - -++======---:::::-=++++***+:. - ..---::::::::::::::::-=*****+-. - ..--------::::::::::::--+##-.:. - ++++=::::::... ..-------------::::::-::.::. - ..::-------:::.-=.:::::+-.... ....:--:.. - ..::-======--+::...... .:---:. - ..:--==+++++==-.. .-+==- - ......::----: **=-- - ..-=-:. *+=:= - ..-==== +++ =+** - ========+ - **===== - ***+== - ****+ -""" def save_analysis_params(path): @@ -81,7 +50,7 @@ def save_analysis_params(path): ) -def loadCodes(): +def load_codes(): """Loads the eBird codes. Returns: @@ -176,52 +145,6 @@ def generate_audacity(timestamps: list[str], result: dict[str, list], result_pat utils.save_result_file(result_path, out_string) -# def generate_rtable(timestamps: list[str], result: dict[str, list], afile_path: str, result_path: str): -# """ -# Generates a R table string from the given timestamps and result data, and saves it to a file. - -# Args: -# timestamps (list[str]): A list of timestamp strings in the format "start-end". -# result (dict[str, list]): A dictionary where keys are timestamp strings and values are lists of tuples containing -# classification results (label, confidence). -# afile_path (str): The path to the audio file being analyzed. -# result_path (str): The path where the result table file will be saved. - -# Returns: -# None -# """ -# out_string = RTABLE_HEADER - -# for timestamp in timestamps: -# rstring = "" -# start, end = timestamp.split("-", 1) - -# for c in result[timestamp]: -# if c[1] > cfg.MIN_CONFIDENCE and (not cfg.SPECIES_LIST or c[0] in cfg.SPECIES_LIST): -# label = cfg.TRANSLATED_LABELS[cfg.LABELS.index(c[0])] -# rstring += "{},{},{},{},{},{:.4f},{:.4f},{:.4f},{},{},{},{},{},{}\n".format( -# afile_path, -# start, -# end, -# label.split("_", 1)[0], -# label.split("_", 1)[-1], -# c[1], -# cfg.LATITUDE, -# cfg.LONGITUDE, -# cfg.WEEK, -# cfg.SIG_OVERLAP, -# (1.0 - cfg.SIGMOID_SENSITIVITY) + 1.0, -# cfg.MIN_CONFIDENCE, -# cfg.SPECIES_LIST_FILE, -# os.path.basename(cfg.MODEL_PATH), -# ) - -# # Write result string to file -# out_string += rstring - -# utils.save_result_file(result_path, out_string) - - def generate_kaleidoscope(timestamps: list[str], result: dict[str, list], afile_path: str, result_path: str): """ Generates a Kaleidoscope-compatible CSV string from the given timestamps and results, and saves it to a file. @@ -302,7 +225,7 @@ def generate_csv(timestamps: list[str], result: dict[str, list], afile_path: str utils.save_result_file(result_path, out_string) -def saveResultFiles(r: dict[str, list], result_files: dict[str, str], afile_path: str): +def save_result_files(r: dict[str, list], result_files: dict[str, str], afile_path: str): """ Saves the result files in various formats based on the provided configuration. @@ -318,7 +241,7 @@ def saveResultFiles(r: dict[str, list], result_files: dict[str, str], afile_path os.makedirs(cfg.OUTPUT_PATH, exist_ok=True) # Selection table - timestamps = getSortedTimestamps(r) + timestamps = get_sorted_timestamps(r) if "table" in result_files: generate_raven_table(timestamps, r, afile_path, result_files["table"]) @@ -367,7 +290,7 @@ def combine_raven_tables(saved_results: list[str]): # skip header and add to file f_name = lines[1].split("\t")[10] - f_duration = audio.getAudioFileLength(f_name, cfg.SAMPLE_RATE) + f_duration = audio.get_audio_file_Length(f_name) audiofiles.append(f_name) @@ -398,7 +321,7 @@ def combine_raven_tables(saved_results: list[str]): except Exception as ex: print(f"Error: Cannot combine results from {rfile}.\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) listfilesname = cfg.OUTPUT_RAVEN_FILENAME.rsplit(".", 1)[0] + ".list.txt" @@ -406,38 +329,6 @@ def combine_raven_tables(saved_results: list[str]): f.writelines((f + "\n" for f in audiofiles)) -# def combine_rtable_files(saved_results: list[str]): -# """ -# Combines multiple R table files into a single file. - -# Args: -# saved_results (list[str]): A list of file paths to the result table files to be combined. - -# Returns: -# None -# """ -# # Combine all files -# with open(os.path.join(cfg.OUTPUT_PATH, cfg.OUTPUT_RTABLE_FILENAME), "w", encoding="utf-8") as f: -# f.write(RTABLE_HEADER) - -# for rfile in saved_results: -# with open(rfile, "r", encoding="utf-8") as rf: -# try: -# lines = rf.readlines() - -# # make sure it's a selection table -# if "filepath" not in lines[0] or "model" not in lines[0]: -# continue - -# # skip header and add to file -# for line in lines[1:]: -# f.write(line) - -# except Exception as ex: -# print(f"Error: Cannot combine results from {rfile}.\n", flush=True) -# utils.writeErrorLog(ex) - - def combine_kaleidoscope_files(saved_results: list[str]): """ Combines multiple Kaleidoscope result files into a single file. @@ -467,7 +358,7 @@ def combine_kaleidoscope_files(saved_results: list[str]): except Exception as ex: print(f"Error: Cannot combine results from {rfile}.\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) def combine_csv_files(saved_results: list[str]): @@ -496,10 +387,10 @@ def combine_csv_files(saved_results: list[str]): except Exception as ex: print(f"Error: Cannot combine results from {rfile}.\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) -def combineResults(saved_results: list[dict[str, str]]): +def combine_results(saved_results: list[dict[str, str]]): """ Combines various types of result files based on the configuration settings. This function checks the types of results specified in the configuration @@ -526,7 +417,7 @@ def combineResults(saved_results: list[dict[str, str]]): combine_csv_files([f["csv"] for f in saved_results if f]) -def getSortedTimestamps(results: dict[str, list]): +def get_sorted_timestamps(results: dict[str, list]): """Sorts the results based on the segments. Args: @@ -538,7 +429,7 @@ def getSortedTimestamps(results: dict[str, list]): return sorted(results, key=lambda t: float(t.split("-", 1)[0])) -def getRawAudioFromFile(fpath: str, offset, duration): +def get_raw_audio_from_file(fpath: str, offset, duration): """Reads an audio file and splits the signal into chunks. Args: @@ -548,10 +439,12 @@ def getRawAudioFromFile(fpath: str, offset, duration): The signal split into a list of chunks. """ # Open file - sig, rate = audio.openAudioFile(fpath, cfg.SAMPLE_RATE, offset, duration, cfg.BANDPASS_FMIN, cfg.BANDPASS_FMAX, cfg.AUDIO_SPEED) + sig, rate = audio.open_audio_file( + fpath, cfg.SAMPLE_RATE, offset, duration, cfg.BANDPASS_FMIN, cfg.BANDPASS_FMAX, cfg.AUDIO_SPEED + ) # Split into raw audio chunks - chunks = audio.splitSignal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN) + chunks = audio.split_signal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN) return chunks @@ -614,7 +507,7 @@ def get_result_file_names(fpath: str): return result_names -def analyzeFile(item): +def analyze_file(item): """ Analyzes an audio file and generates prediction results. @@ -629,7 +522,7 @@ def analyzeFile(item): """ # Get file path and restore cfg fpath: str = item[0] - cfg.setConfig(item[1]) + cfg.set_config(item[1]) result_file_names = get_result_file_names(fpath) @@ -649,18 +542,18 @@ def analyzeFile(item): print(f"Analyzing {fpath}", flush=True) try: - fileLengthSeconds = int(audio.getAudioFileLength(fpath) / cfg.AUDIO_SPEED) + fileLengthSeconds = int(audio.get_audio_file_Length(fpath) / cfg.AUDIO_SPEED) except Exception as ex: # Write error log print(f"Error: Cannot analyze audio file {fpath}. File corrupt?\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) return None # Process each chunk try: while offset < fileLengthSeconds: - chunks = getRawAudioFromFile(fpath, offset, duration) + chunks = get_raw_audio_from_file(fpath, offset, duration) samples = [] timestamps = [] @@ -705,18 +598,18 @@ def analyzeFile(item): except Exception as ex: # Write error log print(f"Error: Cannot analyze audio file {fpath}.\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) return None # Save as selection table try: - saveResultFiles(results, result_file_names, fpath) + save_result_files(results, result_file_names, fpath) except Exception as ex: # Write error log print(f"Error: Cannot save result for {fpath}.\n", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) return None @@ -724,265 +617,3 @@ def analyzeFile(item): print(f"Finished {fpath} in {delta_time:.2f} seconds", flush=True) return result_file_names - - -if __name__ == "__main__": - # Freeze support for executable - freeze_support() - - # Parse arguments - parser = argparse.ArgumentParser( - description=ASCII_LOGO, - formatter_class=argparse.RawDescriptionHelpFormatter, - usage="python -m birdnet_analyzer.analyze [options]", - ) - parser.add_argument("--i", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to input file or folder.") - parser.add_argument("--o", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to output folder.") - parser.add_argument("--lat", type=float, default=-1, help="Recording location latitude. Set -1 to ignore.") - parser.add_argument("--lon", type=float, default=-1, help="Recording location longitude. Set -1 to ignore.") - parser.add_argument( - "--week", - type=int, - default=-1, - help="Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list.", - ) - parser.add_argument( - "--slist", - default="", - help='Path to species list file or folder. If folder is provided, species list needs to be named "species_list.txt". If lat and lon are provided, this list will be ignored.', - ) - parser.add_argument( - "--sensitivity", - type=float, - default=1.0, - help="Detection sensitivity; Higher values result in higher sensitivity. Values in [0.5, 1.5]. Defaults to 1.0.", - ) - parser.add_argument( - "--min_conf", - type=float, - default=0.1, - help="Minimum confidence threshold. Values in [0.01, 0.99]. Defaults to 0.1.", - ) - parser.add_argument( - "--overlap", - type=float, - default=0.0, - help="Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0.", - ) - - class UniqueSetAction(argparse.Action): - def __call__(self, parser, args, values, option_string=None): - setattr(args, self.dest, {v.lower() for v in values}) - - parser.add_argument( - "--rtype", - default={"table"}, - choices=["table", "audacity", "kaleidoscope", "csv"], - nargs="+", - help="Specifies output format. Values in ['table', 'audacity', 'kaleidoscope', 'csv']. Defaults to 'table' (Raven selection table).", - action=UniqueSetAction, - ) - parser.add_argument( - "--combine_results", - help="Also outputs a combined file for all the selected result types. If not set combined tables will be generated. Defaults to False.", - action=argparse.BooleanOptionalAction, - ) - parser.add_argument( - "--threads", type=int, default=min(8, max(1, multiprocessing.cpu_count() // 2)), help="Number of CPU threads." - ) - parser.add_argument( - "--batchsize", type=int, default=1, help="Number of samples to process at the same time. Defaults to 1." - ) - parser.add_argument( - "--locale", - default="en", - help="Locale for translated species common names. Values in ['af', 'en_UK', 'de', 'it', ...] Defaults to 'en' (US English).", - ) - parser.add_argument( - "--sf_thresh", - type=float, - default=0.03, - help="Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99]. Defaults to 0.03.", - ) - parser.add_argument( - "--classifier", - default=None, - help="Path to custom trained classifier. Defaults to None. If set, --lat, --lon and --locale are ignored.", - ) - parser.add_argument( - "--fmin", - type=int, - default=cfg.SIG_FMIN, - help=f"Minimum frequency for bandpass filter in Hz. Defaults to {cfg.SIG_FMIN} Hz.", - ) - parser.add_argument( - "--fmax", - type=int, - default=cfg.SIG_FMAX, - help=f"Maximum frequency for bandpass filter in Hz. Defaults to {cfg.SIG_FMAX} Hz.", - ) - parser.add_argument( - "--audio_speed", - type=float, - default=1.0, - help="Speed factor for audio playback. Values < 1.0 will slow down the audio, values > 1.0 will speed it up. Defaults to 1.0.", - ) - parser.add_argument( - "--skip_existing_results", - action="store_true", - help="Skip files that have already been analyzed. Defaults to False.", - ) - - args = parser.parse_args() - - try: - if os.get_terminal_size().columns >= 64: - print(ASCII_LOGO, flush=True) - except Exception: - pass - - # Set paths relative to script path (requested in #3) - cfg.MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MODEL_PATH) - cfg.LABELS_FILE = os.path.join(SCRIPT_DIR, cfg.LABELS_FILE) - cfg.TRANSLATED_LABELS_PATH = os.path.join(SCRIPT_DIR, cfg.TRANSLATED_LABELS_PATH) - cfg.MDATA_MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MDATA_MODEL_PATH) - cfg.CODES_FILE = os.path.join(SCRIPT_DIR, cfg.CODES_FILE) - cfg.ERROR_LOG_FILE = os.path.join(SCRIPT_DIR, cfg.ERROR_LOG_FILE) - - # Load eBird codes, labels - cfg.CODES = loadCodes() - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) - - cfg.SKIP_EXISTING_RESULTS = args.skip_existing_results - - # Set custom classifier? - if args.classifier is not None: - cfg.CUSTOM_CLASSIFIER = args.classifier # we treat this as absolute path, so no need to join with dirname - - if args.classifier.endswith(".tflite"): - cfg.LABELS_FILE = args.classifier.replace(".tflite", "_Labels.txt") # same for labels file - - if not os.path.isfile(cfg.LABELS_FILE): - cfg.LABELS_FILE = args.classifier.replace("Model_FP32.tflite", "Labels.txt") - - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) - else: - cfg.APPLY_SIGMOID = False - cfg.LABELS_FILE = os.path.join(args.classifier, "labels", "label_names.csv") - cfg.LABELS = [line.split(",")[1] for line in utils.readLines(cfg.LABELS_FILE)] - - args.lat = -1 - args.lon = -1 - args.locale = "en" - - # Load translated labels - lfile = os.path.join( - cfg.TRANSLATED_LABELS_PATH, os.path.basename(cfg.LABELS_FILE).replace(".txt", "_{}.txt".format(args.locale)) - ) - - if args.locale not in ["en"] and os.path.isfile(lfile): - cfg.TRANSLATED_LABELS = utils.readLines(lfile) - else: - cfg.TRANSLATED_LABELS = cfg.LABELS - - ### Make sure to comment out appropriately if you are not using args. ### - - # Load species list from location filter or provided list - cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK = args.lat, args.lon, args.week - cfg.LOCATION_FILTER_THRESHOLD = max(0.01, min(0.99, float(args.sf_thresh))) - - if cfg.LATITUDE == -1 and cfg.LONGITUDE == -1: - if not args.slist: - cfg.SPECIES_LIST_FILE = None - else: - cfg.SPECIES_LIST_FILE = os.path.join(SCRIPT_DIR, args.slist) - - if os.path.isdir(cfg.SPECIES_LIST_FILE): - cfg.SPECIES_LIST_FILE = os.path.join(cfg.SPECIES_LIST_FILE, "species_list.txt") - - cfg.SPECIES_LIST = utils.readLines(cfg.SPECIES_LIST_FILE) - else: - cfg.SPECIES_LIST_FILE = None - cfg.SPECIES_LIST = species.getSpeciesList(cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD) - - if not cfg.SPECIES_LIST: - print(f"Species list contains {len(cfg.LABELS)} species") - else: - print(f"Species list contains {len(cfg.SPECIES_LIST)} species") - - # Set input and output path - cfg.INPUT_PATH = args.i - cfg.OUTPUT_PATH = args.o - - # Parse input files - if os.path.isdir(cfg.INPUT_PATH): - cfg.FILE_LIST = utils.collect_audio_files(cfg.INPUT_PATH) - print(f"Found {len(cfg.FILE_LIST)} files to analyze") - else: - cfg.FILE_LIST = [cfg.INPUT_PATH] - - # Set confidence threshold - cfg.MIN_CONFIDENCE = max(0.01, min(0.99, float(args.min_conf))) - - # Set sensitivity - cfg.SIGMOID_SENSITIVITY = max(0.5, min(1.0 - (float(args.sensitivity) - 1.0), 1.5)) - - # Set overlap - cfg.SIG_OVERLAP = max(0.0, min(2.9, float(args.overlap))) - - # Set bandpass frequency range - cfg.BANDPASS_FMIN = max(0, min(cfg.SIG_FMAX, int(args.fmin))) - cfg.BANDPASS_FMAX = max(cfg.SIG_FMIN, min(cfg.SIG_FMAX, int(args.fmax))) - - # Set audio speed - cfg.AUDIO_SPEED = max(0.01, args.audio_speed) - - # Set result type - cfg.RESULT_TYPES = args.rtype - - # Set output file - cfg.COMBINE_RESULTS = args.combine_results - - # Set number of threads - if os.path.isdir(cfg.INPUT_PATH): - cfg.CPU_THREADS = max(1, int(args.threads)) - cfg.TFLITE_THREADS = 1 - else: - cfg.CPU_THREADS = 1 - cfg.TFLITE_THREADS = max(1, int(args.threads)) - - # Set batch size - cfg.BATCH_SIZE = max(1, int(args.batchsize)) - - # Add config items to each file list entry. - # We have to do this for Windows which does not - # support fork() and thus each process has to - # have its own config. USE LINUX! - flist = [(f, cfg.getConfig()) for f in cfg.FILE_LIST] - result_files = [] - - # Analyze files - if cfg.CPU_THREADS < 2 or len(flist) < 2: - for entry in flist: - result_files.append(analyzeFile(entry)) - else: - with Pool(cfg.CPU_THREADS) as p: - # Map analyzeFile function to each entry in flist - results = p.map_async(analyzeFile, flist) - # Wait for all tasks to complete - results.wait() - result_files = results.get() - - # Combine results? - if cfg.COMBINE_RESULTS: - print(f"Combining results, writing to {cfg.OUTPUT_PATH}...", end="", flush=True) - combineResults(result_files) - print("done!", flush=True) - - save_analysis_params(os.path.join(cfg.OUTPUT_PATH, cfg.ANALYSIS_PARAMS_FILENAME)) - - # A few examples to test - # python3 analyze.py --i example/ --o example/ --slist example/ --min_conf 0.5 --threads 4 - # python3 analyze.py --i example/soundscape.wav --o example/soundscape.BirdNET.selection.table.txt --slist example/species_list.txt --threads 8 - # python3 analyze.py --i example/ --o example/ --lat 42.5 --lon -76.45 --week 4 --sensitivity 1.0 --rtype table --locale de - \ No newline at end of file diff --git a/birdnet_analyzer/audio.py b/birdnet_analyzer/audio.py index 8892090c..52779fc3 100644 --- a/birdnet_analyzer/audio.py +++ b/birdnet_analyzer/audio.py @@ -5,13 +5,12 @@ import soundfile as sf from scipy.signal import firwin, kaiserord, lfilter - import birdnet_analyzer.config as cfg RANDOM = np.random.RandomState(cfg.RANDOM_SEED) -def openAudioFile(path: str, sample_rate=48000, offset=0.0, duration=None, fmin=None, fmax=None, speed=1.0): +def open_audio_file(path: str, sample_rate=48000, offset=0.0, duration=None, fmin=None, fmax=None, speed=1.0): """Open an audio file. Opens an audio file with librosa and the given settings. @@ -30,14 +29,14 @@ def openAudioFile(path: str, sample_rate=48000, offset=0.0, duration=None, fmin= """ # Open file with librosa (uses ffmpeg or libav) if speed == 1.0: - - sig, rate = librosa.load(path, sr=sample_rate, offset=offset, duration=duration, mono=True, res_type="kaiser_fast") - + sig, rate = librosa.load( + path, sr=sample_rate, offset=offset, duration=duration, mono=True, res_type="kaiser_fast" + ) + else: - # Load audio with original sample rate sig, rate = librosa.load(path, sr=None, offset=offset, duration=duration, mono=True) - + # Resample with "fake" sample rate sig = librosa.resample(sig, orig_sr=int(rate * speed), target_sr=sample_rate, res_type="kaiser_fast") rate = sample_rate @@ -50,7 +49,7 @@ def openAudioFile(path: str, sample_rate=48000, offset=0.0, duration=None, fmin= return sig, rate -def getAudioFileLength(path): +def get_audio_file_Length(path): """ Get the length of an audio file in seconds. @@ -78,7 +77,7 @@ def get_sample_rate(path: str): return librosa.get_samplerate(path) -def saveSignal(sig, fname: str, rate=48000): +def save_signal(sig, fname: str, rate=48000): """Saves a signal to file. Args: @@ -127,7 +126,7 @@ def pad(sig, seconds, srate, amount=None): return sig -def splitSignal(sig, rate, seconds, overlap, minlen, amount=None): +def split_signal(sig, rate, seconds, overlap, minlen, amount=None): """Split signal with overlap. Args: @@ -191,7 +190,7 @@ def splitSignal(sig, rate, seconds, overlap, minlen, amount=None): return sig_splits -def cropCenter(sig, rate, seconds): +def crop_center(sig, rate, seconds): """Crop signal to center. Args: @@ -264,7 +263,7 @@ def bandpass(sig, rate, fmin, fmax, order=5): # the Nyquist frequency and a default stop band attenuation of 100 dB. # For a complete description of this method, see Discrete-Time Signal Processing # (Second Edition), by Alan Oppenheim, Ronald Schafer, and John Buck, Prentice Hall 1998, pp. 474-476. -def bandpassKaiserFIR(sig, rate, fmin, fmax, width=0.02, stopband_attenuation_db=100): +def bandpass_kaiser_fir(sig, rate, fmin, fmax, width=0.02, stopband_attenuation_db=100): """ Applies a bandpass filter to the given signal using a Kaiser window FIR filter. Args: diff --git a/birdnet_analyzer/checkpoints/README.md b/birdnet_analyzer/checkpoints/README.md deleted file mode 100644 index c95883e1..00000000 --- a/birdnet_analyzer/checkpoints/README.md +++ /dev/null @@ -1,87 +0,0 @@ -## BirdNET Analyzer Model Version History - -This repository contains only the latest version of the BirdNET-Analyzer model. We will track the changes in this document and also provide permanent download links to previous versions for testing and/or other use cases. - -Older models can also be used as custom classifiers in the GUI or using the `--classifier` argument in the `birdnet_analyzer.analyze` command line. - -Just download your desired model version and unzip. -GUI: Select the `*_Model_FP32.tflite` file under **Species selection** > **Custom classifier** -CLI: `python -m birdnet_analyzer ... --classifier ` - -Model update history: - -**V2.4** -- more than 6,000 species worldwide -- covers frequencies from 0 Hz to 15 kHz with two-channel spectrogram (one for low and one for high frequencies) -- 0.826 GFLOPs, 50.5 MB as FP32 -- enhanced and optimized metadata model -- global selection of species (birds and non-birds) with 6,522 classes (incl. 10 non-event classes) -- Download here: [BirdNET-Analyzer-V2.4.zip](https://drive.google.com/file/d/1ixYBPbZK2Fh1niUQzadE2IWTFZlwATa3) - -**V2.3** - -- slightly larger (36.4 MB vs. 21.3 MB as FP32) but smaller computational footprint (0.698 vs. 1.31 GFLOPs) than V2.2 -- larger embedding size (1024 vs 320) than V2.2 (hence the bigger model) -- enhanced and optimized metadata model -- global selection of species (birds and non-birds) with 3,337 classes (incl. 10 non-event classes) -- Download here: [BirdNET-Analyzer-V2.3.zip](https://drive.google.com/file/d/1hhwQBVBngGnEhmqYeDksIW8ZY1FJmwyi) - -**V2.2** - -- smaller (21.3 MB vs. 29.5 MB as FP32) and faster (1.31 vs 2.03 GFLOPs) than V2.1 -- maintains same accuracy as V2.1 despite more classes -- global selection of species (birds and non-birds) with 3,337 classes (incl. 10 non-event classes) -- Download here: [BirdNET-Analyzer-V2.2.zip](https://drive.google.com/file/d/166w8IAkXGKp6ClKb8vaniG1DmOr8Fwem) - -**V2.1** - -- same model architecture as V2.0 -- extended 2022 training data -- global selection of species (birds and non-birds) with 2,434 classes (incl. 10 non-event classes) -- Download here: [BirdNET-Analyzer-V2.1.zip](https://drive.google.com/file/d/15cvPiezn_6H2tQs1FGMVrVdqiwLjLRms) - -**V2.0** - -- same model design as 1.4 but a bit wider -- extended 2022 training data -- global selection of species (birds and non-birds) with 1,328 classes (incl. 10 non-event classes) -- Download here: [BirdNET-Analyzer-V2.0.zip](https://drive.google.com/file/d/1h2Tbk_29ghNdK62ynrdRWyxT4H1fpFGs) - -**V1.4** - -- smaller, deeper, faster -- only 30% of the size of V1.3 -- still linear spectrogram and EfficientNet blocks -- extended 2021 training data -- 1,133 birds and non-birds for North America and Europe -- Download here: [BirdNET-Analyzer-V1.4.zip](https://drive.google.com/file/d/1h14-Y8dOrPr9XCWfIoUjlWMJ9aWyNkKa) - -**V1.3** - -- Model uses linear frequency scale for spectrograms -- uses V2 fusion blocks and V1 efficient blocks -- extended 2021 training data -- 1,133 birds and non-birds for North America and Europe -- Download here: [BirdNET-Analyzer-V1.3.zip](https://drive.google.com/file/d/1h0nJzPjyJWbkfPyaWpS332xUwzDOygs9) - -**V1.2** - -- Model based on EfficientNet V2 blocks -- uses V2 fusion blocks and V1 efficient blocks -- extended 2021 training data -- 1,133 birds and non-birds for North America and Europe -- Download here: [BirdNET-Analyzer-V1.2.zip](https://drive.google.com/file/d/1h-il_W6t8Tz_XHrRMO1zcp_ThYp9QPLK) - -**V1.1** - -- Model based on Wide-ResNet (aka "App model") -- extended 2021 training data -- 1,133 birds and non-birds for North America and Europe -- Download here: [BirdNET-Analyzer-V1.1.zip](https://drive.google.com/file/d/1gzpwiCAf2HkfcAmlRq1K9Q0KrDsd5nGP) - -**App Model** - -- Model based on Wide-ResNet -- ~3,000 species worldwide -- currently deployed as BirdNET app model -- Download here: [BirdNET-Analyzer-App-Model.zip](https://drive.google.com/file/d/1gxkxPFlaTYxHFqAODDHYGUX8uEkZDWaL) diff --git a/birdnet_analyzer/cli.py b/birdnet_analyzer/cli.py new file mode 100644 index 00000000..145e4b58 --- /dev/null +++ b/birdnet_analyzer/cli.py @@ -0,0 +1,601 @@ +import argparse +import os + +import birdnet_analyzer.config as cfg + +SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) +ASCII_LOGO = r""" + . + .-=- + .:=++++. + ..-======#=:. + .-%%%#*+=-#+++:.. + .-+***======++++++=.. + .=====+==++++++++-. + .=+++====++++++++++=:. + .++++++++=======----===: + =+++++++====-----+++++++-. + .=++++==========-=++=====+=:. + -++======---:::::-=++++***+:. + ..---::::::::::::::::-=*****+-. + ..--------::::::::::::--+##-.:. + ++++=::::::... ..-------------::::::-::.::. + ..::-------:::.-=.:::::+-.... ....:--:.. + ..::-======--+::...... .:---:. + ..:--==+++++==-.. .-+==- + ......::----: **=-- + ..-=-:. *+=:= + ..-==== +++ =+** + ========+ + **===== + ***+== + ****+ +""" + + +def io_args(): + """ + Creates an argument parser for input and output paths. + Returns: + argparse.ArgumentParser: The argument parser with input and output path arguments. + Arguments: + input (str): Path to the input file or folder. Defaults to the value specified in cfg.INPUT_PATH. + output (str): Path to the output folder. Defaults to the input path if not specified. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "input", + metavar="INPUT", + help="Path to input file or folder.", + ) + p.add_argument("-o", "--output", help="Path to output folder. Defaults to the input path.") + + return p + + +def bandpass_args(): + """ + Creates an argument parser for bandpass filter frequency arguments. + This function sets up an argument parser with two arguments: + --fmin and --fmax, which define the minimum and maximum frequencies + for the bandpass filter, respectively. The values are constrained + to be within the range defined by cfg.SIG_FMIN and cfg.SIG_FMAX. + Returns: + argparse.ArgumentParser: The configured argument parser. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "--fmin", + type=lambda a: max(0, min(cfg.SIG_FMAX, int(a))), + default=cfg.SIG_FMIN, + help="Minimum frequency for bandpass filter in Hz.", + ) + p.add_argument( + "--fmax", + type=lambda a: max(cfg.SIG_FMIN, min(cfg.SIG_FMAX, int(a))), + default=cfg.SIG_FMAX, + help="Maximum frequency for bandpass filter in Hz.", + ) + + return p + + +def species_args(): + """ + Creates an argument parser for species-related arguments. + Returns: + argparse.ArgumentParser: The argument parser with the following arguments: + --lat (float): Recording location latitude. Set -1 to ignore. Default is -1. + --lon (float): Recording location longitude. Set -1 to ignore. Default is -1. + --week (int): Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). + Set -1 for year-round species list. Default is -1. + --slist (str): Path to species list file or folder. If folder is provided, species list needs to be named + "species_list.txt". If lat and lon are provided, this list will be ignored. + --sf_thresh (float): Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99]. + Defaults to cfg.LOCATION_FILTER_THRESHOLD. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument("--lat", type=float, default=-1, help="Recording location latitude. Set -1 to ignore.") + p.add_argument("--lon", type=float, default=-1, help="Recording location longitude. Set -1 to ignore.") + p.add_argument( + "--week", + type=int, + default=-1, + help="Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list.", + ) + p.add_argument( + "--slist", + help='Path to species list file or folder. If folder is provided, species list needs to be named "species_list.txt". If lat and lon are provided, this list will be ignored.', + ) + p.add_argument( + "--sf_thresh", + type=lambda a: max(0.01, min(0.99, float(a))), + default=cfg.LOCATION_FILTER_THRESHOLD, + help="Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99].", + ) + + return p + + +def sigmoid_args(): + """ + Creates an argument parser for sigmoid sensitivity. + This function sets up an argument parser with a single argument `--sensitivity`. + The sensitivity value is constrained to be within the range [0.5, 1.5], where higher + values result in higher detection sensitivity. The default value is taken from + `cfg.SIGMOID_SENSITIVITY`. + Returns: + argparse.ArgumentParser: The argument parser with the sensitivity argument configured. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "--sensitivity", + type=lambda a: max(0.5, min(1.0 - (float(a) - 1.0), 1.5)), + default=cfg.SIGMOID_SENSITIVITY, + help="Detection sensitivity; Higher values result in higher sensitivity. Values in [0.5, 1.5].", + ) + + return p + + +def overlap_args(help_string="Overlap of prediction segments. Values in [0.0, 2.9]."): + """ + Creates an argument parser for the overlap of prediction segments. + Args: + help_string (str): A custom help string for the overlap argument. Defaults to a formatted string + indicating the range [0.0, 2.9] and the default value from cfg.SIG_OVERLAP. + Returns: + argparse.ArgumentParser: An argument parser with the overlap argument configured. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "--overlap", + type=lambda a: max(0.0, min(2.9, float(a))), + default=cfg.SIG_OVERLAP, + help=help_string, + ) + + return p + + +def audio_speed_args(): + """ + Creates an argument parser for audio speed configuration. + This function sets up an argument parser with a single argument `--audio_speed` + which allows the user to specify a speed factor for audio playback. The speed factor + must be a float value where values less than 1.0 will slow down the audio and values + greater than 1.0 will speed it up. The minimum allowed value is 0.01. The default + value is taken from the configuration (`cfg.AUDIO_SPEED`). + Returns: + argparse.ArgumentParser: The argument parser with the `--audio_speed` argument configured. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "--audio_speed", + type=lambda a: max(0.01, float(a)), + default=cfg.AUDIO_SPEED, + help="Speed factor for audio playback. Values < 1.0 will slow down the audio, values > 1.0 will speed it up.", + ) + + return p + + +def threads_args(): + """ + Creates an argument parser for specifying the number of CPU threads to use. + The parser adds an argument `--threads` (or `-t`) which accepts an integer value. + The value is constrained to be at least 1. If not specified, the default value is + set to half the number of available CPU cores, but not exceeding 8. + Returns: + argparse.ArgumentParser: The argument parser with the `--threads` argument. + """ + import multiprocessing + + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "-t", + "--threads", + type=lambda a: max(1, int(a)), + default=min(8, max(1, multiprocessing.cpu_count() // 2)), + help="Number of CPU threads.", + ) + + return p + + +def min_conf_args(): + """ + Creates an argument parser for the minimum confidence threshold. + + Returns: + argparse.ArgumentParser: An argument parser with the --min_conf argument. + + The --min_conf argument: + - Sets the minimum confidence threshold for predictions. + - Accepts float values in the range [0.01, 0.99]. + - Defaults to the value specified in cfg.MIN_CONFIDENCE. + - Ensures that the provided value is clamped between 0.01 and 0.99. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "--min_conf", + default=cfg.MIN_CONFIDENCE, + type=lambda a: max(0.01, min(0.99, float(a))), + help="Minimum confidence threshold. Values in [0.01, 0.99].", + ) + + return p + + +def locale_args(): + """ + Creates an argument parser for locale settings. + This function creates an argument parser with a single argument `--locale` + (or `-l`) which specifies the locale for translated species common names. + The default value is 'en' (US English). The available locale values include + 'af', 'en_UK', 'de', 'it', and others. + Returns: + argparse.ArgumentParser: An argument parser with the locale argument. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "-l", + "--locale", + default="en", + help="Locale for translated species common names. Values in ['af', 'en_UK', 'de', 'it', ...].", + ) + + return p + + +def bs_args(): + """ + Creates an argument parser for batch size configuration. + Returns: + argparse.ArgumentParser: An argument parser with a batch size argument. + The parser includes the following argument: + -b, --batchsize: An integer specifying the number of samples to process at the same time. + The value must be at least 1. Defaults to the value of cfg.BATCH_SIZE. + """ + p = argparse.ArgumentParser(add_help=False) + p.add_argument( + "-b", + "--batchsize", + type=lambda a: max(1, int(a)), + default=cfg.BATCH_SIZE, + help="Number of samples to process at the same time.", + ) + + return p + + +def analyzer_parser(): + """ + Creates and returns an argument parser for the BirdNET Analyzer CLI. + The parser includes various argument groups for different functionalities such as + I/O operations, bandpass filtering, species selection, sigmoid function parameters, + overlap settings, audio speed adjustments, threading, minimum confidence levels, + locale settings, and batch size. + If the environment variable "IS_GITHUB_RUNNER" is set to "true", a simplified parser + description is used. Otherwise, a detailed ASCII logo and usage instructions are included. + The parser also defines a custom action `UniqueSetAction` to ensure that the `--rtype` + argument values are stored as a set of unique, lowercase strings. + Arguments: + --rtype: Specifies output format. Accepts multiple values from ['table', 'audacity', 'kaleidoscope', 'csv']. + --combine_results: Outputs a combined file for all selected result types if set. + -c, --classifier: Path to a custom trained classifier. Overrides --lat, --lon, and --locale if set. + --skip_existing_results: Skips files that have already been analyzed if set. + Returns: + argparse.ArgumentParser: Configured argument parser for the BirdNET Analyzer CLI. + """ + parents = [ + io_args(), + bandpass_args(), + species_args(), + sigmoid_args(), + overlap_args(), + audio_speed_args(), + threads_args(), + min_conf_args(), + locale_args(), + bs_args(), + ] + + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=parents, + ) + + class UniqueSetAction(argparse.Action): + def __call__(self, parser, args, values, option_string=None): + setattr(args, self.dest, {v.lower() for v in values}) + + parser.add_argument( + "--rtype", + default={"table"}, + choices=["table", "audacity", "kaleidoscope", "csv"], + nargs="+", + help="Specifies output format. Values in `['table', 'audacity', 'kaleidoscope', 'csv']`.", + action=UniqueSetAction, + ) + parser.add_argument( + "--combine_results", + help="Also outputs a combined file for all the selected result types. If not set combined tables will be generated.", + action="store_true", + ) + + parser.add_argument( + "-c", + "--classifier", + default=cfg.CUSTOM_CLASSIFIER, + help="Path to custom trained classifier. If set, --lat, --lon and --locale are ignored.", + ) + + parser.add_argument( + "--skip_existing_results", + action="store_true", + help="Skip files that have already been analyzed.", + ) + + return parser + + +def embeddings_parser(): + """ + Creates and returns an argument parser for extracting feature embeddings with BirdNET. + + The parser includes arguments from the following parent parsers: + - io_args(): Handles input/output arguments. + - bandpass_args(): Handles bandpass filter arguments. + - overlap_args(): Handles overlap arguments. + - threads_args(): Handles threading arguments. + - bs_args(): Handles batch size arguments. + + Returns: + argparse.ArgumentParser: Configured argument parser for extracting feature embeddings. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[io_args(), bandpass_args(), overlap_args(), threads_args(), bs_args()], + ) + return parser + + +def client_parser(): + """ + Creates and returns an argument parser for the client that queries an analyzer API endpoint server. + The parser includes the following arguments: + - --host: Host name or IP address of the API endpoint server (default: "localhost"). + - -p, --port: Port of the API endpoint server (default: 8080). + - --pmode: Score pooling mode, with possible values 'avg' or 'max' (default: "avg"). + - --num_results: Number of results per request (default: 5). + - --save: Flag to define if files should be stored on the server. + The parser also includes arguments from the following parent parsers: + - io_args() + - species_args() + - sigmoid_args() + - overlap_args() + Returns: + argparse.ArgumentParser: Configured argument parser for the client. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[io_args(), species_args(), sigmoid_args(), overlap_args()], + ) + parser.add_argument("--host", default="localhost", help="Host name or IP address of API endpoint server.") + parser.add_argument("-p", "--port", type=int, default=8080, help="Port of API endpoint server.") + parser.add_argument("--pmode", default="avg", help="Score pooling mode. Values in ['avg', 'max'].") + parser.add_argument("--num_results", type=int, default=5, help="Number of results per request.") + parser.add_argument( + "--save", + action="store_true", + help="Define if files should be stored on server.", + ) + + return parser + + +def segments_parser(): + """ + Creates an argument parser for extracting segments from audio files based on BirdNET detections. + Returns: + argparse.ArgumentParser: Configured argument parser with the following arguments: + - input (str): Path to folder containing audio files. + - results (str, optional): Path to folder containing result files. Defaults to the `input` path. + - output (str, optional): Output folder path for extracted segments. Defaults to the `input` path. + - max_segments (int, optional): Number of randomly extracted segments per species. Defaults to 100. + - seg_length (float, optional): Length of extracted segments in seconds. Defaults to cfg.SIG_LENGTH. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[audio_speed_args(), threads_args(), min_conf_args()], + ) + parser.add_argument("input", metavar="INPUT", help="Path to folder containing audio files.") + parser.add_argument("-r", "--results", help="Path to folder containing result files. Defaults to the `input` path.") + parser.add_argument( + "-o", "--output", help="Output folder path for extracted segments. Defaults to the `input` path." + ) + parser.add_argument( + "--max_segments", + type=lambda a: max(1, int(a)), + default=100, + help="Number of randomly extracted segments per species.", + ) + + parser.add_argument( + "--seg_length", + type=lambda a: max(3.0, float(a)), + default=cfg.SIG_LENGTH, + help="Length of extracted segments in seconds.", + ) + + return parser + + +def server_parser(): + """ + Creates and configures an argument parser for the API endpoint server. + The parser includes arguments for specifying the host, port, and storage path for uploaded files. + It also inherits arguments from `threads_args` and `locale_args`. + Returns: + argparse.ArgumentParser: Configured argument parser with server-specific options. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[threads_args(), locale_args()], + ) + + parser.add_argument("--host", default="0.0.0.0", help="Host name or IP address of API endpoint server.") + parser.add_argument("-p", "--port", type=int, default=8080, help="Port of API endpoint server.") + parser.add_argument( + "--spath", + default="uploads/" + if os.environ.get("IS_GITHUB_RUNNER", "false").lower() == "true" + else os.path.join(SCRIPT_DIR, "uploads"), + help="Path to folder where uploaded files should be stored.", + ) + + return parser + + +def species_parser(): + """ + Creates an argument parser for retrieving a list of species for a given location using BirdNET. + The parser includes the following arguments: + - output: Path to the output file or folder. If a folder is provided, the file will be named 'species_list.txt'. + - --sortby: Optional argument to sort species by occurrence frequency ('freq') or alphabetically ('alpha'). Defaults to 'freq'. + Returns: + argparse.ArgumentParser: Configured argument parser for species retrieval. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[species_args()], + ) + parser.add_argument( + "output", + metavar="OUTPUT", + help="Path to output file or folder. If this is a folder, file will be named 'species_list.txt'.", + ) + + parser.add_argument( + "--sortby", + default="freq", + choices=["freq", "alpha"], + help="Sort species by occurrence frequency or alphabetically. Values in ['freq', 'alpha'].", + ) + + return parser + + +def train_parser(): + """ + Creates an argument parser for training a custom classifier with BirdNET. + The parser includes arguments for various training parameters such as input data path, crop mode, + output path, number of epochs, batch size, validation split ratio, learning rate, hidden units, + dropout rate, mixup, upsampling ratio and mode, model format, model save mode, cache mode and file, + and hyperparameter tuning options. + Returns: + argparse.ArgumentParser: Configured argument parser for training a custom classifier. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + parents=[ + bandpass_args(), + audio_speed_args(), + threads_args(), + overlap_args(help_string="Overlap of training data segments in seconds if crop_mode is 'segments'."), + ], + ) + c = ( + "checkpoints/custom/Custom_Classifier" + if os.environ.get("IS_GITHUB_RUNNER", "false").lower() == "true" + else os.path.join(SCRIPT_DIR, "checkpoints/custom/Custom_Classifier") + ) + parser.add_argument( + "input", + metavar="INPUT", + help="Path to training data folder. Subfolder names are used as labels.", + ) + parser.add_argument( + "--crop_mode", + default=cfg.SAMPLE_CROP_MODE, + help="Crop mode for training data. Can be 'center', 'first' or 'segments'.", + ) + parser.add_argument("-o", "--output", default=c, help="Path to trained classifier model output.") + parser.add_argument( + "--epochs", + type=int, + default=cfg.TRAIN_EPOCHS, + help="Number of training epochs.", + ) + parser.add_argument("--batch_size", type=int, default=cfg.TRAIN_BATCH_SIZE, help="Batch size.") + parser.add_argument( + "--val_split", + type=float, + default=cfg.TRAIN_VAL_SPLIT, + help="Validation split ratio.", + ) + parser.add_argument( + "--learning_rate", + type=float, + default=cfg.TRAIN_LEARNING_RATE, + help="Learning rate.", + ) + parser.add_argument( + "--hidden_units", + type=int, + default=cfg.TRAIN_HIDDEN_UNITS, + help="Number of hidden units. If set to >0, a two-layer classifier is used.", + ) + parser.add_argument( + "--dropout", + type=lambda a: min(max(0, float(a)), 0.9), + default=cfg.TRAIN_DROPOUT, + help="Dropout rate.", + ) + parser.add_argument("--mixup", action="store_true", help="Whether to use mixup for training.") + parser.add_argument( + "--upsampling_ratio", + type=lambda a: min(max(0, float(a)), 1), + default=cfg.UPSAMPLING_RATIO, + help="Balance train data and upsample minority classes. Values between 0 and 1.", + ) + parser.add_argument( + "--upsampling_mode", + default=cfg.UPSAMPLING_MODE, + choices=["repeat", "mean", "smote"], + help="Upsampling mode.", + ) + parser.add_argument( + "--model_format", + default=cfg.TRAINED_MODEL_OUTPUT_FORMAT, + choices=["tflite", "raven", "both"], + help="Model output format.", + ) + parser.add_argument( + "--model_save_mode", + default=cfg.TRAINED_MODEL_SAVE_MODE, + choices=["replace", "append"], + help="Model save mode. 'replace' will overwrite the original classification layer and 'append' will combine the original classification layer with the new one.", + ) + parser.add_argument("--cache_mode", choices=["load", "save"], help="Cache mode. Can be 'load' or 'save'.") + parser.add_argument("--cache_file", default=cfg.TRAIN_CACHE_FILE, help="Path to cache file.") + parser.add_argument( + "--autotune", + action="store_true", + help="Whether to use automatic hyperparameter tuning (this will execute multiple training runs to search for optimal hyperparameters).", + ) + parser.add_argument( + "--autotune_trials", + type=int, + default=cfg.AUTOTUNE_TRIALS, + help="Number of training runs for hyperparameter tuning.", + ) + parser.add_argument( + "--autotune_executions_per_trial", + type=int, + default=cfg.AUTOTUNE_EXECUTIONS_PER_TRIAL, + help="The number of times a training run with a set of hyperparameters is repeated during hyperparameter tuning (this reduces the variance).", + ) + + return parser diff --git a/birdnet_analyzer/client.py b/birdnet_analyzer/client.py deleted file mode 100644 index f68b2066..00000000 --- a/birdnet_analyzer/client.py +++ /dev/null @@ -1,137 +0,0 @@ -"""Client to send requests to the server.""" - -import argparse -import json -import os -import time -from multiprocessing import freeze_support - -import requests - -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) - - -def sendRequest(host: str, port: int, fpath: str, mdata: str): - """Sends a classification request to the server. - - Args: - host: Host address of the server. - port: Port for the request. - fpath: File path of the file to be analyzed. - mdata: Additional json metadata. - - Returns: - The json decoded response. - """ - url = f"http://{host}:{port}/analyze" - - print(f"Requesting analysis for {fpath}") - - # Make payload - multipart_form_data = {"audio": (fpath.rsplit(os.sep, 1)[-1], open(fpath, "rb")), "meta": (None, mdata)} - - # Send request - start_time = time.time() - response = requests.post(url, files=multipart_form_data) - end_time = time.time() - - print("Response: {}, Time: {:.4f}s".format(response.text, end_time - start_time), flush=True) - - # Convert to dict - data = json.loads(response.text) - - return data - - -def saveResult(data, fpath): - """Saves the server response. - - Args: - data: The response data. - fpath: The path to save the data at. - """ - # Make directory - dir_path = os.path.dirname(fpath) - os.makedirs(dir_path, exist_ok=True) - - # Save result - with open(fpath, "w") as f: - json.dump(data, f, indent=4) - - -if __name__ == "__main__": - # Freeze support for executable - freeze_support() - - # Parse arguments - parser = argparse.ArgumentParser(description="Client that queries an analyzer API endpoint server.") - parser.add_argument("--host", default="localhost", help="Host name or IP address of API endpoint server.") - parser.add_argument("--port", type=int, default=8080, help="Port of API endpoint server.") - parser.add_argument( - "--i", default=os.path.join(SCRIPT_DIR, "example/soundscape.wav"), help="Path to file that should be analyzed." - ) - parser.add_argument("--o", default="", help="Path to result file. Leave blank to store with audio file.") - parser.add_argument("--lat", type=float, default=-1, help="Recording location latitude. Set -1 to ignore.") - parser.add_argument("--lon", type=float, default=-1, help="Recording location longitude. Set -1 to ignore.") - parser.add_argument( - "--week", - type=int, - default=-1, - help="Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list.", - ) - parser.add_argument( - "--overlap", - type=float, - default=0.0, - help="Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0.", - ) - parser.add_argument( - "--sensitivity", - type=float, - default=1.0, - help="Detection sensitivity; Higher values result in higher sensitivity. Values in [0.5, 1.5]. Defaults to 1.0.", - ) - parser.add_argument( - "--pmode", default="avg", help="Score pooling mode. Values in ['avg', 'max']. Defaults to 'avg'." - ) - parser.add_argument("--num_results", type=int, default=5, help="Number of results per request. Defaults to 5.") - parser.add_argument( - "--sf_thresh", - type=float, - default=0.03, - help="Minimum species occurrence frequency threshold for location filter. Values in [0.01, 0.99]. Defaults to 0.03.", - ) - parser.add_argument( - "--save", - action="store_true", - help="Define if files should be stored on server.", - ) - - args = parser.parse_args() - - # Make metadata - mdata = { - "lat": args.lat, - "lon": args.lon, - "week": args.week, - "overlap": args.overlap, - "sensitivity": args.sensitivity, - "sf_thresh": args.sf_thresh, - "pmode": args.pmode, - "num_results": args.num_results, - "save": args.save, - } - - # Send request - data = sendRequest(args.host, args.port, args.i, json.dumps(mdata)) - - # Save result - fpath = args.o if args.o else args.i.rsplit(".", 1)[0] + ".BirdNET.results.json" - - saveResult(data, fpath) - - # A few examples to test - # python3 client.py --host localhost --port 8080 --i example/soundscape.wav - # python3 client.py --host localhost --port 8080 --i example/soundscape.wav --save --lat 42.5 --lon -76.45 --week 4 - # python3 client.py --host localhost --port 8080 --i example/soundscape.wav --save --lat 42.5 --lon -76.45 --week 4 --overlap 2.5 --sensitivity 1.25 - # python3 client.py --host localhost --port 8080 --i example/soundscape.wav --save --lat 42.5 --lon -76.45 --week 4 --pmode max diff --git a/birdnet_analyzer/config.py b/birdnet_analyzer/config.py index 1a443210..a920304f 100644 --- a/birdnet_analyzer/config.py +++ b/birdnet_analyzer/config.py @@ -1,3 +1,7 @@ +import os + +SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) + ################# # Misc settings # ################# @@ -10,17 +14,12 @@ ########################## MODEL_VERSION: str = "V2.4" -PB_MODEL: str = "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Model" +PB_MODEL: str = os.path.join(SCRIPT_DIR, "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Model") # MODEL_PATH = PB_MODEL # This will load the protobuf model -MODEL_PATH: str = "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Model_FP32.tflite" -MDATA_MODEL_PATH: str = "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_MData_Model_V2_FP16.tflite" -LABELS_FILE: str = "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels.txt" -TRANSLATED_LABELS_PATH: str = "labels/V2.4" - -# Path to custom trained classifier -# If None, no custom classifier will be used -# Make sure to set the LABELS_FILE above accordingly -CUSTOM_CLASSIFIER = None +MODEL_PATH: str = os.path.join(SCRIPT_DIR, "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Model_FP32.tflite") +MDATA_MODEL_PATH: str = os.path.join(SCRIPT_DIR, "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_MData_Model_V2_FP16.tflite") +LABELS_FILE: str = os.path.join(SCRIPT_DIR, "checkpoints/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels.txt") +TRANSLATED_LABELS_PATH: str = os.path.join(SCRIPT_DIR, "labels/V2.4") ################## # Audio settings # @@ -68,12 +67,8 @@ # If None or empty file, no custom species list will be used # Note: Entries in this list have to match entries from the LABELS_FILE # We use the 2021 eBird taxonomy for species names (Clements list) -CODES_FILE: str = "eBird_taxonomy_codes_2021E.json" -SPECIES_LIST_FILE: str = "example/species_list.txt" - -# File input path and output path for selection tables -INPUT_PATH: str = "example/" -OUTPUT_PATH: str = "example/" +CODES_FILE: str = os.path.join(SCRIPT_DIR, "eBird_taxonomy_codes_2021E.json") +SPECIES_LIST_FILE: str = os.path.join(SCRIPT_DIR, "example/species_list.txt") # Supported file types ALLOWED_FILETYPES: list[str] = ["wav", "flac", "mp3", "ogg", "m4a", "wma", "aiff", "aif"] @@ -128,9 +123,6 @@ # Training settings # ##################### -# Training data path -TRAIN_DATA_PATH: str = "train_data/" - # Sample crop mode SAMPLE_CROP_MODE: str = "center" @@ -173,7 +165,7 @@ TRAINED_MODEL_SAVE_MODE: str = "replace" # Cache settings -TRAIN_CACHE_MODE: str = "none" +TRAIN_CACHE_MODE: str | None = None TRAIN_CACHE_FILE: str = "train_cache.npz" # Use automatic Hyperparameter tuning @@ -194,206 +186,39 @@ # This value will automatically be set, if subfolders in the input direcotry are named with multiple classes separated by commas. MULTI_LABEL: bool = False -##################### -# Misc runtime vars # -##################### +################ +# Runtime vars # +################ + +# File input path and output path for selection tables +INPUT_PATH: str = "" +OUTPUT_PATH: str = "" + +# Training data path +TRAIN_DATA_PATH: str = "" + CODES = {} LABELS: list[str] = [] TRANSLATED_LABELS: list[str] = [] SPECIES_LIST: list[str] = [] -ERROR_LOG_FILE: str = "error_log.txt" +ERROR_LOG_FILE: str = os.path.join(SCRIPT_DIR, "error_log.txt") FILE_LIST = [] FILE_STORAGE_PATH: str = "" +# Path to custom trained classifier +# If None, no custom classifier will be used +# Make sure to set the LABELS_FILE above accordingly +CUSTOM_CLASSIFIER = None + ###################### # Get and set config # ###################### -def getConfig(): - return { - "RANDOM_SEED": RANDOM_SEED, - "MODEL_VERSION": MODEL_VERSION, - "PB_MODEL": PB_MODEL, - "MODEL_PATH": MODEL_PATH, - "MDATA_MODEL_PATH": MDATA_MODEL_PATH, - "LABELS_FILE": LABELS_FILE, - "TRANSLATED_LABELS_PATH": TRANSLATED_LABELS_PATH, - "CUSTOM_CLASSIFIER": CUSTOM_CLASSIFIER, - "SAMPLE_RATE": SAMPLE_RATE, - "SIG_LENGTH": SIG_LENGTH, - "SIG_OVERLAP": SIG_OVERLAP, - "SIG_MINLEN": SIG_MINLEN, - "SIG_FMIN": SIG_FMIN, - "SIG_FMAX": SIG_FMAX, - "BANDPASS_FMIN": BANDPASS_FMIN, - "BANDPASS_FMAX": BANDPASS_FMAX, - "AUDIO_SPEED": AUDIO_SPEED, - "LATITUDE": LATITUDE, - "LONGITUDE": LONGITUDE, - "WEEK": WEEK, - "LOCATION_FILTER_THRESHOLD": LOCATION_FILTER_THRESHOLD, - "CODES_FILE": CODES_FILE, - "SPECIES_LIST_FILE": SPECIES_LIST_FILE, - "ALLOWED_FILETYPES": ALLOWED_FILETYPES, - "INPUT_PATH": INPUT_PATH, - "OUTPUT_PATH": OUTPUT_PATH, - "CPU_THREADS": CPU_THREADS, - "TFLITE_THREADS": TFLITE_THREADS, - "APPLY_SIGMOID": APPLY_SIGMOID, - "SIGMOID_SENSITIVITY": SIGMOID_SENSITIVITY, - "MIN_CONFIDENCE": MIN_CONFIDENCE, - "BATCH_SIZE": BATCH_SIZE, - "RESULT_TYPES": RESULT_TYPES, - "OUTPUT_FILENAME": OUTPUT_RAVEN_FILENAME, - "TRAIN_DATA_PATH": TRAIN_DATA_PATH, - "SAMPLE_CROP_MODE": SAMPLE_CROP_MODE, - "NON_EVENT_CLASSES": NON_EVENT_CLASSES, - "UPSAMPLING_RATIO": UPSAMPLING_RATIO, - "UPSAMPLING_MODE": UPSAMPLING_MODE, - "TRAIN_EPOCHS": TRAIN_EPOCHS, - "TRAIN_VAL_SPLIT": TRAIN_VAL_SPLIT, - "TRAIN_BATCH_SIZE": TRAIN_BATCH_SIZE, - "TRAIN_LEARNING_RATE": TRAIN_LEARNING_RATE, - "TRAIN_HIDDEN_UNITS": TRAIN_HIDDEN_UNITS, - "TRAIN_DROPOUT": TRAIN_DROPOUT, - "TRAIN_WITH_MIXUP": TRAIN_WITH_MIXUP, - "TRAIN_WITH_LABEL_SMOOTHING": TRAIN_WITH_LABEL_SMOOTHING, - "TRAINED_MODEL_OUTPUT_FORMAT": TRAINED_MODEL_OUTPUT_FORMAT, - "TRAINED_MODEL_SAVE_MODE": TRAINED_MODEL_SAVE_MODE, - "TRAIN_CACHE_MODE": TRAIN_CACHE_MODE, - "TRAIN_CACHE_FILE": TRAIN_CACHE_FILE, - "CODES": CODES, - "LABELS": LABELS, - "TRANSLATED_LABELS": TRANSLATED_LABELS, - "SPECIES_LIST": SPECIES_LIST, - "ERROR_LOG_FILE": ERROR_LOG_FILE, - "FILE_LIST": FILE_LIST, - "FILE_STORAGE_PATH": FILE_STORAGE_PATH, - "SKIP_EXISTING_RESULTS": SKIP_EXISTING_RESULTS, - "USE_NOISE": USE_NOISE, - } - - -def setConfig(c): - global RANDOM_SEED - global MODEL_VERSION - global PB_MODEL - global MODEL_PATH - global MDATA_MODEL_PATH - global LABELS_FILE - global TRANSLATED_LABELS_PATH - global CUSTOM_CLASSIFIER - global SAMPLE_RATE - global SIG_LENGTH - global SIG_OVERLAP - global SIG_MINLEN - global SIG_FMIN - global SIG_FMAX - global BANDPASS_FMIN - global BANDPASS_FMAX - global AUDIO_SPEED - global LATITUDE - global LONGITUDE - global WEEK - global LOCATION_FILTER_THRESHOLD - global CODES_FILE - global SPECIES_LIST_FILE - global ALLOWED_FILETYPES - global INPUT_PATH - global OUTPUT_PATH - global CPU_THREADS - global TFLITE_THREADS - global APPLY_SIGMOID - global SIGMOID_SENSITIVITY - global MIN_CONFIDENCE - global BATCH_SIZE - global RESULT_TYPES - global OUTPUT_RAVEN_FILENAME - global TRAIN_DATA_PATH - global SAMPLE_CROP_MODE - global NON_EVENT_CLASSES - global UPSAMPLING_RATIO - global UPSAMPLING_MODE - global TRAIN_EPOCHS - global TRAIN_VAL_SPLIT - global TRAIN_BATCH_SIZE - global TRAIN_LEARNING_RATE - global TRAIN_HIDDEN_UNITS - global TRAIN_DROPOUT - global TRAIN_WITH_MIXUP - global TRAIN_WITH_LABEL_SMOOTHING - global TRAINED_MODEL_OUTPUT_FORMAT - global TRAINED_MODEL_SAVE_MODE - global TRAIN_CACHE_MODE - global TRAIN_CACHE_FILE - global CODES - global LABELS - global TRANSLATED_LABELS - global SPECIES_LIST - global ERROR_LOG_FILE - global FILE_LIST - global FILE_STORAGE_PATH - global SKIP_EXISTING_RESULTS - global USE_NOISE - - RANDOM_SEED = c["RANDOM_SEED"] - MODEL_VERSION = c["MODEL_VERSION"] - PB_MODEL = c["PB_MODEL"] - MODEL_PATH = c["MODEL_PATH"] - MDATA_MODEL_PATH = c["MDATA_MODEL_PATH"] - LABELS_FILE = c["LABELS_FILE"] - TRANSLATED_LABELS_PATH = c["TRANSLATED_LABELS_PATH"] - CUSTOM_CLASSIFIER = c["CUSTOM_CLASSIFIER"] - SAMPLE_RATE = c["SAMPLE_RATE"] - SIG_LENGTH = c["SIG_LENGTH"] - SIG_OVERLAP = c["SIG_OVERLAP"] - SIG_MINLEN = c["SIG_MINLEN"] - SIG_FMIN = c["SIG_FMIN"] - SIG_FMAX = c["SIG_FMAX"] - BANDPASS_FMIN = c["BANDPASS_FMIN"] - BANDPASS_FMAX = c["BANDPASS_FMAX"] - AUDIO_SPEED = c["AUDIO_SPEED"] - LATITUDE = c["LATITUDE"] - LONGITUDE = c["LONGITUDE"] - WEEK = c["WEEK"] - LOCATION_FILTER_THRESHOLD = c["LOCATION_FILTER_THRESHOLD"] - CODES_FILE = c["CODES_FILE"] - SPECIES_LIST_FILE = c["SPECIES_LIST_FILE"] - ALLOWED_FILETYPES = c["ALLOWED_FILETYPES"] - INPUT_PATH = c["INPUT_PATH"] - OUTPUT_PATH = c["OUTPUT_PATH"] - CPU_THREADS = c["CPU_THREADS"] - TFLITE_THREADS = c["TFLITE_THREADS"] - APPLY_SIGMOID = c["APPLY_SIGMOID"] - SIGMOID_SENSITIVITY = c["SIGMOID_SENSITIVITY"] - MIN_CONFIDENCE = c["MIN_CONFIDENCE"] - BATCH_SIZE = c["BATCH_SIZE"] - RESULT_TYPES = c["RESULT_TYPES"] - OUTPUT_RAVEN_FILENAME = c["OUTPUT_FILENAME"] - TRAIN_DATA_PATH = c["TRAIN_DATA_PATH"] - SAMPLE_CROP_MODE = c["SAMPLE_CROP_MODE"] - NON_EVENT_CLASSES = c["NON_EVENT_CLASSES"] - UPSAMPLING_RATIO = c["UPSAMPLING_RATIO"] - UPSAMPLING_MODE = c["UPSAMPLING_MODE"] - TRAIN_EPOCHS = c["TRAIN_EPOCHS"] - TRAIN_VAL_SPLIT = c["TRAIN_VAL_SPLIT"] - TRAIN_BATCH_SIZE = c["TRAIN_BATCH_SIZE"] - TRAIN_LEARNING_RATE = c["TRAIN_LEARNING_RATE"] - TRAIN_HIDDEN_UNITS = c["TRAIN_HIDDEN_UNITS"] - TRAIN_DROPOUT = c["TRAIN_DROPOUT"] - TRAIN_WITH_MIXUP = c["TRAIN_WITH_MIXUP"] - TRAIN_WITH_LABEL_SMOOTHING = c["TRAIN_WITH_LABEL_SMOOTHING"] - TRAINED_MODEL_OUTPUT_FORMAT = c["TRAINED_MODEL_OUTPUT_FORMAT"] - TRAINED_MODEL_SAVE_MODE = c["TRAINED_MODEL_SAVE_MODE"] - TRAIN_CACHE_MODE = c["TRAIN_CACHE_MODE"] - TRAIN_CACHE_FILE = c["TRAIN_CACHE_FILE"] - CODES = c["CODES"] - LABELS = c["LABELS"] - TRANSLATED_LABELS = c["TRANSLATED_LABELS"] - SPECIES_LIST = c["SPECIES_LIST"] - ERROR_LOG_FILE = c["ERROR_LOG_FILE"] - FILE_LIST = c["FILE_LIST"] - FILE_STORAGE_PATH = c["FILE_STORAGE_PATH"] - SKIP_EXISTING_RESULTS = c["SKIP_EXISTING_RESULTS"] - USE_NOISE = c["USE_NOISE"] +def get_config(): + return {k: v for k, v in globals().items() if k.isupper()} + + +def set_config(c: dict): + for k, v in c.items(): + globals()[k] = v diff --git a/birdnet_analyzer/embeddings.py b/birdnet_analyzer/embeddings.py deleted file mode 100644 index ae0a4813..00000000 --- a/birdnet_analyzer/embeddings.py +++ /dev/null @@ -1,228 +0,0 @@ -"""Module used to extract embeddings for samples.""" - -import argparse -import datetime -import os -from multiprocessing import Pool - -import numpy as np - -import birdnet_analyzer.analyze as analyze -import birdnet_analyzer.audio as audio -import birdnet_analyzer.config as cfg -import birdnet_analyzer.model as model -import birdnet_analyzer.utils as utils - -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) - - -def writeErrorLog(msg): - """ - Appends an error message to the error log file. - - Args: - msg (str): The error message to be logged. - """ - with open(cfg.ERROR_LOG_FILE, "a") as elog: - elog.write(msg + "\n") - - -def saveAsEmbeddingsFile(results: dict[str], fpath: str): - """Write embeddings to file - - Args: - results: A dictionary containing the embeddings at timestamp. - fpath: The path for the embeddings file. - """ - with open(fpath, "w") as f: - for timestamp in results: - f.write(timestamp.replace("-", "\t") + "\t" + ",".join(map(str, results[timestamp])) + "\n") - - -def analyzeFile(item): - """Extracts the embeddings for a file. - - Args: - item: (filepath, config) - """ - # Get file path and restore cfg - fpath: str = item[0] - cfg.setConfig(item[1]) - - offset = 0 - duration = cfg.FILE_SPLITTING_DURATION - fileLengthSeconds = int(audio.getAudioFileLength(fpath, cfg.SAMPLE_RATE)) - results = {} - - # Start time - start_time = datetime.datetime.now() - - # Status - print(f"Analyzing {fpath}", flush=True) - - # Process each chunk - try: - while offset < fileLengthSeconds: - chunks = analyze.getRawAudioFromFile(fpath, offset, duration) - start, end = offset, cfg.SIG_LENGTH + offset - samples = [] - timestamps = [] - - for c in range(len(chunks)): - # Add to batch - samples.append(chunks[c]) - timestamps.append([start, end]) - - # Advance start and end - start += cfg.SIG_LENGTH - cfg.SIG_OVERLAP - end = start + cfg.SIG_LENGTH - - # Check if batch is full or last chunk - if len(samples) < cfg.BATCH_SIZE and c < len(chunks) - 1: - continue - - # Prepare sample and pass through model - data = np.array(samples, dtype="float32") - e = model.embeddings(data) - - # Add to results - for i in range(len(samples)): - # Get timestamp - s_start, s_end = timestamps[i] - - # Get prediction - embeddings = e[i] - - # Store embeddings - results[f"{s_start}-{s_end}"] = embeddings - - # Reset batch - samples = [] - timestamps = [] - - offset = offset + duration - - except Exception as ex: - # Write error log - print(f"Error: Cannot analyze audio file {fpath}.", flush=True) - utils.writeErrorLog(ex) - - return - - # Save as embeddings file - try: - # We have to check if output path is a file or directory - if cfg.OUTPUT_PATH.rsplit(".", 1)[-1].lower() not in ["txt", "csv"]: - fpath = fpath.replace(cfg.INPUT_PATH, "") - fpath = fpath[1:] if fpath[0] in ["/", "\\"] else fpath - - # Make target directory if it doesn't exist - fdir = os.path.join(cfg.OUTPUT_PATH, os.path.dirname(fpath)) - os.makedirs(fdir, exist_ok=True) - - saveAsEmbeddingsFile( - results, os.path.join(cfg.OUTPUT_PATH, fpath.rsplit(".", 1)[0] + ".birdnet.embeddings.txt") - ) - else: - saveAsEmbeddingsFile(results, cfg.OUTPUT_PATH) - - except Exception as ex: - # Write error log - print(f"Error: Cannot save embeddings for {fpath}.", flush=True) - utils.writeErrorLog(ex) - - return - - delta_time = (datetime.datetime.now() - start_time).total_seconds() - print("Finished {} in {:.2f} seconds".format(fpath, delta_time), flush=True) - - -if __name__ == "__main__": - # Parse arguments - parser = argparse.ArgumentParser(description="Extract feature embeddings with BirdNET") - parser.add_argument( - "--i", - default=os.path.join(SCRIPT_DIR, "example/"), - help="Path to input file or folder. If this is a file, --o needs to be a file too.", - ) - parser.add_argument( - "--o", - default=os.path.join(SCRIPT_DIR, "example/"), - help="Path to output file or folder. If this is a file, --i needs to be a file too.", - ) - parser.add_argument( - "--overlap", - type=float, - default=0.0, - help="Overlap of prediction segments. Values in [0.0, 2.9]. Defaults to 0.0.", - ) - parser.add_argument("--threads", type=int, default=4, help="Number of CPU threads.") - parser.add_argument( - "--batchsize", type=int, default=1, help="Number of samples to process at the same time. Defaults to 1." - ) - parser.add_argument( - "--fmin", - type=int, - default=cfg.SIG_FMIN, - help="Minimum frequency for bandpass filter in Hz. Defaults to {} Hz.".format(cfg.SIG_FMIN), - ) - parser.add_argument( - "--fmax", - type=int, - default=cfg.SIG_FMAX, - help="Maximum frequency for bandpass filter in Hz. Defaults to {} Hz.".format(cfg.SIG_FMAX), - ) - - args = parser.parse_args() - - # Set paths relative to script path (requested in #3) - cfg.MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MODEL_PATH) - cfg.ERROR_LOG_FILE = os.path.join(SCRIPT_DIR, cfg.ERROR_LOG_FILE) - - ### Make sure to comment out appropriately if you are not using args. ### - - # Set input and output path - cfg.INPUT_PATH = args.i - cfg.OUTPUT_PATH = args.o - - # Parse input files - if os.path.isdir(cfg.INPUT_PATH): - cfg.FILE_LIST = utils.collect_audio_files(cfg.INPUT_PATH) - else: - cfg.FILE_LIST = [cfg.INPUT_PATH] - - # Set overlap - cfg.SIG_OVERLAP = max(0.0, min(2.9, float(args.overlap))) - - # Set bandpass frequency range - cfg.BANDPASS_FMIN = max(0, min(cfg.SIG_FMAX, int(args.fmin))) - cfg.BANDPASS_FMAX = max(cfg.SIG_FMIN, min(cfg.SIG_FMAX, int(args.fmax))) - - # Set number of threads - if os.path.isdir(cfg.INPUT_PATH): - cfg.CPU_THREADS = max(1, int(args.threads)) - cfg.TFLITE_THREADS = 1 - else: - cfg.CPU_THREADS = 1 - cfg.TFLITE_THREADS = max(1, int(args.threads)) - - # Set batch size - cfg.BATCH_SIZE = max(1, int(args.batchsize)) - - # Add config items to each file list entry. - # We have to do this for Windows which does not - # support fork() and thus each process has to - # have its own config. USE LINUX! - flist = [(f, cfg.getConfig()) for f in cfg.FILE_LIST] - - # Analyze files - if cfg.CPU_THREADS < 2: - for entry in flist: - analyzeFile(entry) - else: - with Pool(cfg.CPU_THREADS) as p: - p.map(analyzeFile, flist) - - # A few examples to test - # python3 embeddings.py --i example/ --o example/ --threads 4 - # python3 embeddings.py --i example/soundscape.wav --o example/soundscape.birdnet.embeddings.txt --threads 4 diff --git a/birdnet_analyzer/embeddings/__init__.py b/birdnet_analyzer/embeddings/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/embeddings/__main__.py b/birdnet_analyzer/embeddings/__main__.py new file mode 100644 index 00000000..2f12513c --- /dev/null +++ b/birdnet_analyzer/embeddings/__main__.py @@ -0,0 +1,63 @@ +import os +from multiprocessing import Pool + +import birdnet_analyzer.config as cfg +import birdnet_analyzer.utils as utils +import birdnet_analyzer.cli as cli + +parser = cli.embeddings_parser() + +args = parser.parse_args() + +from birdnet_analyzer.embeddings.utils import analyze_file # noqa: E402 + +### Make sure to comment out appropriately if you are not using args. ### + +# Set input and output path +cfg.INPUT_PATH = args.input + +if not args.output: + if os.path.isfile(cfg.INPUT_PATH): + cfg.OUTPUT_PATH = os.path.dirname(cfg.INPUT_PATH) + else: + cfg.OUTPUT_PATH = cfg.INPUT_PATH +else: + cfg.OUTPUT_PATH = args.output + +# Parse input files +if os.path.isdir(cfg.INPUT_PATH): + cfg.FILE_LIST = utils.collect_audio_files(cfg.INPUT_PATH) +else: + cfg.FILE_LIST = [cfg.INPUT_PATH] + +# Set overlap +cfg.SIG_OVERLAP = args.overlap + +# Set bandpass frequency range +cfg.BANDPASS_FMIN = args.fmin +cfg.BANDPASS_FMAX = args.fmax + +# Set number of threads +if os.path.isdir(cfg.INPUT_PATH): + cfg.CPU_THREADS = args.threads + cfg.TFLITE_THREADS = 1 +else: + cfg.CPU_THREADS = 1 + cfg.TFLITE_THREADS = args.threads + +# Set batch size +cfg.BATCH_SIZE = args.batchsize + +# Add config items to each file list entry. +# We have to do this for Windows which does not +# support fork() and thus each process has to +# have its own config. USE LINUX! +flist = [(f, cfg.get_config()) for f in cfg.FILE_LIST] + +# Analyze files +if cfg.CPU_THREADS < 2: + for entry in flist: + analyze_file(entry) +else: + with Pool(cfg.CPU_THREADS) as p: + p.map(analyze_file, flist) diff --git a/birdnet_analyzer/embeddings/utils.py b/birdnet_analyzer/embeddings/utils.py new file mode 100644 index 00000000..5d6da129 --- /dev/null +++ b/birdnet_analyzer/embeddings/utils.py @@ -0,0 +1,133 @@ +"""Module used to extract embeddings for samples.""" + +import datetime +import os + +import numpy as np + +import birdnet_analyzer.analyze as analyze +import birdnet_analyzer.audio as audio +import birdnet_analyzer.config as cfg +import birdnet_analyzer.model as model +import birdnet_analyzer.utils as utils + + +def write_error_log(msg): + """ + Appends an error message to the error log file. + + Args: + msg (str): The error message to be logged. + """ + with open(cfg.ERROR_LOG_FILE, "a") as elog: + elog.write(msg + "\n") + + +def save_as_embeddingsfile(results: dict[str], fpath: str): + """Write embeddings to file + + Args: + results: A dictionary containing the embeddings at timestamp. + fpath: The path for the embeddings file. + """ + with open(fpath, "w") as f: + for timestamp in results: + f.write(timestamp.replace("-", "\t") + "\t" + ",".join(map(str, results[timestamp])) + "\n") + + +def analyze_file(item): + """Extracts the embeddings for a file. + + Args: + item: (filepath, config) + """ + # Get file path and restore cfg + fpath: str = item[0] + cfg.set_config(item[1]) + + offset = 0 + duration = cfg.FILE_SPLITTING_DURATION + fileLengthSeconds = int(audio.get_audio_file_Length(fpath)) + results = {} + + # Start time + start_time = datetime.datetime.now() + + # Status + print(f"Analyzing {fpath}", flush=True) + + # Process each chunk + try: + while offset < fileLengthSeconds: + chunks = analyze.get_raw_audio_from_file(fpath, offset, duration) + start, end = offset, cfg.SIG_LENGTH + offset + samples = [] + timestamps = [] + + for c in range(len(chunks)): + # Add to batch + samples.append(chunks[c]) + timestamps.append([start, end]) + + # Advance start and end + start += cfg.SIG_LENGTH - cfg.SIG_OVERLAP + end = start + cfg.SIG_LENGTH + + # Check if batch is full or last chunk + if len(samples) < cfg.BATCH_SIZE and c < len(chunks) - 1: + continue + + # Prepare sample and pass through model + data = np.array(samples, dtype="float32") + e = model.embeddings(data) + + # Add to results + for i in range(len(samples)): + # Get timestamp + s_start, s_end = timestamps[i] + + # Get prediction + embeddings = e[i] + + # Store embeddings + results[f"{s_start}-{s_end}"] = embeddings + + # Reset batch + samples = [] + timestamps = [] + + offset = offset + duration + + except Exception as ex: + # Write error log + print(f"Error: Cannot analyze audio file {fpath}.", flush=True) + utils.write_error_log(ex) + + return + + # Save as embeddings file + try: + # We have to check if output path is a file or directory + if cfg.OUTPUT_PATH.rsplit(".", 1)[-1].lower() not in ["txt", "csv"]: + fpath = fpath.replace(cfg.INPUT_PATH, "") + fpath = fpath[1:] if fpath[0] in ["/", "\\"] else fpath + + # Make target directory if it doesn't exist + fdir = os.path.join(cfg.OUTPUT_PATH, os.path.dirname(fpath)) + os.makedirs(fdir, exist_ok=True) + + save_as_embeddingsfile( + results, os.path.join(cfg.OUTPUT_PATH, fpath.rsplit(".", 1)[0] + ".birdnet.embeddings.txt") + ) + else: + save_as_embeddingsfile(results, cfg.OUTPUT_PATH) + + except Exception as ex: + # Write error log + print(f"Error: Cannot save embeddings for {fpath}.", flush=True) + utils.write_error_log(ex) + + return + + delta_time = (datetime.datetime.now() - start_time).total_seconds() + print("Finished {} in {:.2f} seconds".format(fpath, delta_time), flush=True) diff --git a/birdnet_analyzer/gui/__main__.py b/birdnet_analyzer/gui/__main__.py index b32472aa..341a9811 100644 --- a/birdnet_analyzer/gui/__main__.py +++ b/birdnet_analyzer/gui/__main__.py @@ -1,19 +1,18 @@ -if __name__ == "__main__": - import birdnet_analyzer.gui.utils as gu - import birdnet_analyzer.gui.single_file as sfa - import birdnet_analyzer.gui.multi_file as mfa - import birdnet_analyzer.gui.train as train - import birdnet_analyzer.gui.segments as gs - import birdnet_analyzer.gui.review as review - import birdnet_analyzer.gui.species as species +import birdnet_analyzer.gui.multi_file as mfa +import birdnet_analyzer.gui.review as review +import birdnet_analyzer.gui.segments as gs +import birdnet_analyzer.gui.single_file as sfa +import birdnet_analyzer.gui.species as species +import birdnet_analyzer.gui.train as train +import birdnet_analyzer.gui.utils as gu - gu.open_window( - [ - sfa.build_single_analysis_tab, - mfa.build_multi_analysis_tab, - train.build_train_tab, - gs.build_segments_tab, - review.build_review_tab, - species.build_species_tab, - ] - ) +gu.open_window( + [ + sfa.build_single_analysis_tab, + mfa.build_multi_analysis_tab, + train.build_train_tab, + gs.build_segments_tab, + review.build_review_tab, + species.build_species_tab, + ] +) diff --git a/birdnet_analyzer/gui/analysis.py b/birdnet_analyzer/gui/analysis.py index e8d66702..ad53ba14 100644 --- a/birdnet_analyzer/gui/analysis.py +++ b/birdnet_analyzer/gui/analysis.py @@ -4,35 +4,35 @@ import gradio as gr -import birdnet_analyzer.analyze as analyze +import birdnet_analyzer.analyze.utils as analyze import birdnet_analyzer.config as cfg import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc import birdnet_analyzer.model as model -import birdnet_analyzer.species as species +import birdnet_analyzer.species.utils as species import birdnet_analyzer.utils as utils SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) ORIGINAL_LABELS_FILE = str(Path(SCRIPT_DIR).parent / cfg.LABELS_FILE) -def analyzeFile_wrapper(entry): +def analyze_file_wrapper(entry): """ Wrapper function for analyzing a file. Args: - entry (tuple): A tuple where the first element is the file path and the - remaining elements are arguments to be passed to the + entry (tuple): A tuple where the first element is the file path and the + remaining elements are arguments to be passed to the analyze.analyzeFile function. Returns: - tuple: A tuple where the first element is the file path and the second + tuple: A tuple where the first element is the file path and the second element is the result of the analyze.analyzeFile function. """ - return (entry[0], analyze.analyzeFile(entry)) + return (entry[0], analyze.analyze_file(entry)) -def runAnalysis( +def run_analysis( input_path: str, output_path: str | None, confidence: float, @@ -91,8 +91,8 @@ def runAnalysis( locale = locale.lower() # Load eBird codes, labels - cfg.CODES = analyze.loadCodes() - cfg.LABELS = utils.readLines(ORIGINAL_LABELS_FILE) + cfg.CODES = analyze.load_codes() + cfg.LABELS = utils.read_lines(ORIGINAL_LABELS_FILE) cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK = lat, lon, -1 if use_yearlong else week cfg.LOCATION_FILTER_THRESHOLD = sf_thresh cfg.SKIP_EXISTING_RESULTS = skip_existing @@ -106,17 +106,19 @@ def runAnalysis( if os.path.isdir(cfg.SPECIES_LIST_FILE): cfg.SPECIES_LIST_FILE = os.path.join(cfg.SPECIES_LIST_FILE, "species_list.txt") - cfg.SPECIES_LIST = utils.readLines(cfg.SPECIES_LIST_FILE) + cfg.SPECIES_LIST = utils.read_lines(cfg.SPECIES_LIST_FILE) cfg.CUSTOM_CLASSIFIER = None elif species_list_choice == gu._PREDICT_SPECIES: cfg.SPECIES_LIST_FILE = None cfg.CUSTOM_CLASSIFIER = None - cfg.SPECIES_LIST = species.getSpeciesList(cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD) + cfg.SPECIES_LIST = species.get_species_list( + cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD + ) elif species_list_choice == gu._CUSTOM_CLASSIFIER: if custom_classifier_file is None: raise gr.Error(loc.localize("validation-no-custom-classifier-selected")) - model.resetCustomClassifier() + model.reset_custom_classifier() # Set custom classifier? cfg.CUSTOM_CLASSIFIER = ( @@ -127,7 +129,7 @@ def runAnalysis( if not os.path.isfile(cfg.LABELS_FILE): cfg.LABELS_FILE = custom_classifier_file.replace("Model_FP32.tflite", "Labels.txt") - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) + cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) cfg.LATITUDE = -1 cfg.LONGITUDE = -1 cfg.SPECIES_LIST_FILE = None @@ -143,7 +145,7 @@ def runAnalysis( gu.ORIGINAL_TRANSLATED_LABELS_PATH, os.path.basename(cfg.LABELS_FILE).replace(".txt", f"_{locale}.txt") ) if locale not in ["en"] and os.path.isfile(lfile): - cfg.TRANSLATED_LABELS = utils.readLines(lfile) + cfg.TRANSLATED_LABELS = utils.read_lines(lfile) else: cfg.TRANSLATED_LABELS = cfg.LABELS @@ -179,7 +181,7 @@ def runAnalysis( # Set overlap cfg.SIG_OVERLAP = max(0.0, min(2.9, float(overlap))) - + # Audio speed cfg.AUDIO_SPEED = max(0.1, 1.0 / (audio_speed * -1)) if audio_speed < 0 else max(1.0, float(audio_speed)) @@ -205,7 +207,7 @@ def runAnalysis( flist = [] for f in cfg.FILE_LIST: - flist.append((f, cfg.getConfig())) + flist.append((f, cfg.get_config())) result_list = [] @@ -215,10 +217,10 @@ def runAnalysis( # Analyze files if cfg.CPU_THREADS < 2: for entry in flist: - result_list.append(analyzeFile_wrapper(entry)) + result_list.append(analyze_file_wrapper(entry)) else: with concurrent.futures.ProcessPoolExecutor(max_workers=cfg.CPU_THREADS) as executor: - futures = (executor.submit(analyzeFile_wrapper, arg) for arg in flist) + futures = (executor.submit(analyze_file_wrapper, arg) for arg in flist) for i, f in enumerate(concurrent.futures.as_completed(futures), start=1): if progress is not None: progress((i, len(flist)), total=len(flist), unit="files") @@ -230,7 +232,7 @@ def runAnalysis( if cfg.COMBINE_RESULTS: combine_list = [[r[1] for r in result_list if r[0] == i[0]][0] for i in flist] print(f"Combining results, writing to {cfg.OUTPUT_PATH}...", end="", flush=True) - analyze.combineResults(combine_list) + analyze.combine_results(combine_list) print("done!", flush=True) if save_params: diff --git a/birdnet_analyzer/gui/multi_file.py b/birdnet_analyzer/gui/multi_file.py index a669d9c3..f2ce1435 100644 --- a/birdnet_analyzer/gui/multi_file.py +++ b/birdnet_analyzer/gui/multi_file.py @@ -1,20 +1,18 @@ import gradio as gr import birdnet_analyzer.config as cfg -import birdnet_analyzer.gui.analysis as ga import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc OUTPUT_TYPE_MAP = { "Raven selection table": "table", "Audacity": "audacity", - # "R": "r", "CSV": "csv", "Kaleidoscope": "kaleidoscope", } -def runBatchAnalysis( +def run_batch_analysis( output_path, confidence, sensitivity, @@ -39,6 +37,8 @@ def runBatchAnalysis( skip_existing, progress=gr.Progress(), ): + from birdnet_analyzer.gui.analysis import run_analysis + gu.validate(input_dir, loc.localize("validation-no-directory-selected")) batch_size = int(batch_size) threads = int(threads) @@ -49,7 +49,7 @@ def runBatchAnalysis( if fmin is None or fmax is None or fmin < cfg.SIG_FMIN or fmax > cfg.SIG_FMAX or fmin > fmax: raise gr.Error(f"{loc.localize('validation-no-valid-frequency')} [{cfg.SIG_FMIN}, {cfg.SIG_FMAX}]") - return ga.runAnalysis( + return run_analysis( None, output_path, confidence, @@ -128,7 +128,9 @@ def select_directory_wrapper(): # Nishant - Function modified for For Folder se show_progress=False, ) - confidence_slider, sensitivity_slider, overlap_slider, audio_speed_slider, fmin_number, fmax_number = gu.sample_sliders() + confidence_slider, sensitivity_slider, overlap_slider, audio_speed_slider, fmin_number, fmax_number = ( + gu.sample_sliders() + ) ( species_list_radio, @@ -218,7 +220,7 @@ def select_directory_wrapper(): # Nishant - Function modified for For Folder se skip_existing_checkbox, ] - start_batch_analysis_btn.click(runBatchAnalysis, inputs=inputs, outputs=result_grid) + start_batch_analysis_btn.click(run_batch_analysis, inputs=inputs, outputs=result_grid) if __name__ == "__main__": diff --git a/birdnet_analyzer/gui/segments.py b/birdnet_analyzer/gui/segments.py index ede47061..1fb6c20f 100644 --- a/birdnet_analyzer/gui/segments.py +++ b/birdnet_analyzer/gui/segments.py @@ -7,14 +7,13 @@ import birdnet_analyzer.config as cfg import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc -import birdnet_analyzer.segments as segments -def extractSegments_wrapper(entry): - return (entry[0][0], segments.extractSegments(entry)) +def extract_segments( + audio_dir, result_dir, output_dir, min_conf, num_seq, audio_speed, seq_length, threads, progress=gr.Progress() +): + from birdnet_analyzer.segments.utils import parse_folders, parse_files, extract_segments - -def extract_segments(audio_dir, result_dir, output_dir, min_conf, num_seq, audio_speed, seq_length, threads, progress=gr.Progress()): gu.validate(audio_dir, loc.localize("validation-no-audio-directory-selected")) if not result_dir: @@ -27,7 +26,7 @@ def extract_segments(audio_dir, result_dir, output_dir, min_conf, num_seq, audio progress(0, desc=f"{loc.localize('progress-search')} ...") # Parse audio and result folders - cfg.FILE_LIST = segments.parseFolders(audio_dir, result_dir) + cfg.FILE_LIST = parse_folders(audio_dir, result_dir) # Set output folder cfg.OUTPUT_PATH = output_dir @@ -39,8 +38,8 @@ def extract_segments(audio_dir, result_dir, output_dir, min_conf, num_seq, audio cfg.MIN_CONFIDENCE = max(0.01, min(0.99, min_conf)) # Parse file list and make list of segments - cfg.FILE_LIST = segments.parseFiles(cfg.FILE_LIST, max(1, int(num_seq))) - + cfg.FILE_LIST = parse_files(cfg.FILE_LIST, max(1, int(num_seq))) + # Audio speed cfg.AUDIO_SPEED = max(0.1, 1.0 / (audio_speed * -1)) if audio_speed < 0 else max(1.0, float(audio_speed)) @@ -48,22 +47,25 @@ def extract_segments(audio_dir, result_dir, output_dir, min_conf, num_seq, audio # We have to do this for Windows which does not # support fork() and thus each process has to # have its own config. USE LINUX! - #flist = [(entry, max(cfg.SIG_LENGTH, float(seq_length)), cfg.getConfig()) for entry in cfg.FILE_LIST] - flist = [(entry, float(seq_length), cfg.getConfig()) for entry in cfg.FILE_LIST] + # flist = [(entry, max(cfg.SIG_LENGTH, float(seq_length)), cfg.getConfig()) for entry in cfg.FILE_LIST] + flist = [(entry, float(seq_length), cfg.get_config()) for entry in cfg.FILE_LIST] result_list = [] + def extract_segments_wrapper(entry): + return (entry[0][0], extract_segments(entry)) + # Extract segments if cfg.CPU_THREADS < 2: for i, entry in enumerate(flist): - result = extractSegments_wrapper(entry) + result = extract_segments_wrapper(entry) result_list.append(result) if progress is not None: progress((i, len(flist)), total=len(flist), unit="files") else: with concurrent.futures.ProcessPoolExecutor(max_workers=cfg.CPU_THREADS) as executor: - futures = (executor.submit(extractSegments_wrapper, arg) for arg in flist) + futures = (executor.submit(extract_segments_wrapper, arg) for arg in flist) for i, f in enumerate(concurrent.futures.as_completed(futures), start=1): if progress is not None: progress((i, len(flist)), total=len(flist), unit="files") diff --git a/birdnet_analyzer/gui/single_file.py b/birdnet_analyzer/gui/single_file.py index f261f579..49888e1d 100644 --- a/birdnet_analyzer/gui/single_file.py +++ b/birdnet_analyzer/gui/single_file.py @@ -4,13 +4,12 @@ import birdnet_analyzer.audio as audio import birdnet_analyzer.config as cfg -import birdnet_analyzer.gui.analysis as ga import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc import birdnet_analyzer.utils as utils -def runSingleFileAnalysis( +def run_single_file_analysis( input_path, confidence, sensitivity, @@ -30,6 +29,7 @@ def runSingleFileAnalysis( ): import csv from datetime import timedelta + from birdnet_analyzer.gui.analysis import run_analysis if species_list_choice == gu._CUSTOM_SPECIES: gu.validate(species_list_file, loc.localize("validation-no-species-list-selected")) @@ -39,7 +39,7 @@ def runSingleFileAnalysis( if fmin is None or fmax is None or fmin < cfg.SIG_FMIN or fmax > cfg.SIG_FMAX or fmin > fmax: raise gr.Error(f"{loc.localize('validation-no-valid-frequency')} [{cfg.SIG_FMIN}, {cfg.SIG_FMAX}]") - result_filepath = ga.runAnalysis( + result_filepath = run_analysis( input_path, None, confidence, @@ -97,7 +97,9 @@ def build_single_analysis_tab(): ) audio_path_state = gr.State() - confidence_slider, sensitivity_slider, overlap_slider, audio_speed_slider, fmin_number, fmax_number = gu.sample_sliders(False) + confidence_slider, sensitivity_slider, overlap_slider, audio_speed_slider, fmin_number, fmax_number = ( + gu.sample_sliders(False) + ) ( species_list_radio, @@ -180,10 +182,10 @@ def try_generate_spectrogram(audio_path, generate_spectrogram): def time_to_seconds(time_str): try: - hours, minutes, seconds = time_str.split(":") - total_seconds = int(hours) * 3600 + int(minutes) * 60 + float(seconds) + hours, minutes, seconds = time_str.split(":") + total_seconds = int(hours) * 3600 + int(minutes) * 60 + float(seconds) return total_seconds - + except ValueError: raise ValueError("Input must be in the format hh:mm:ss or hh:mm:ss.ssssss with numeric values.") @@ -191,14 +193,14 @@ def play_selected_audio(evt: gr.SelectData, audio_path): if evt.row_value[1] and evt.row_value[2]: start = time_to_seconds(evt.row_value[1]) end = time_to_seconds(evt.row_value[2]) - arr, sr = audio.openAudioFile(audio_path, offset=start, duration=end - start) + arr, sr = audio.open_audio_file(audio_path, offset=start, duration=end - start) return sr, arr return None output_dataframe.select(play_selected_audio, inputs=audio_path_state, outputs=hidden_segment_audio) - single_file_analyze.click(runSingleFileAnalysis, inputs=inputs, outputs=output_dataframe) + single_file_analyze.click(run_single_file_analysis, inputs=inputs, outputs=output_dataframe) if __name__ == "__main__": diff --git a/birdnet_analyzer/gui/species.py b/birdnet_analyzer/gui/species.py index 14663f8b..fc5d8551 100644 --- a/birdnet_analyzer/gui/species.py +++ b/birdnet_analyzer/gui/species.py @@ -5,13 +5,14 @@ import birdnet_analyzer.config as cfg import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc -import birdnet_analyzer.species as species def run_species_list(out_path, filename, lat, lon, week, use_yearlong, sf_thresh, sortby): + from birdnet_analyzer.species.utils import run + gu.validate(out_path, loc.localize("validation-no-directory-selected")) - species.run( + run( os.path.join(out_path, filename if filename else "species_list.txt"), lat, lon, diff --git a/birdnet_analyzer/gui/train.py b/birdnet_analyzer/gui/train.py index 307befce..007868be 100644 --- a/birdnet_analyzer/gui/train.py +++ b/birdnet_analyzer/gui/train.py @@ -10,7 +10,6 @@ import birdnet_analyzer.gui.utils as gu import birdnet_analyzer.localization as loc import birdnet_analyzer.utils as utils -from birdnet_analyzer.train import trainModel def select_subdirectories(state_key=None): @@ -78,6 +77,8 @@ def start_training( Returns: Returns a matplotlib.pyplot figure. """ + from birdnet_analyzer.train.utils import train_model + gu.validate(data_dir, loc.localize("validation-no-training-data-selected")) gu.validate(output_dir, loc.localize("validation-no-directory-for-classifier-selected")) gu.validate(classifier_name, loc.localize("validation-no-valid-classifier-name")) @@ -128,7 +129,7 @@ def start_training( cfg.AUDIO_SPEED = max(0.1, 1.0 / (audio_speed * -1)) if audio_speed < 0 else max(1.0, float(audio_speed)) - def dataLoadProgression(num_files, num_total_files, label): + def data_load_progression(num_files, num_total_files, label): if progress is not None: progress( (num_files, num_total_files), @@ -137,7 +138,7 @@ def dataLoadProgression(num_files, num_total_files, label): desc=f"{loc.localize('progress-loading-data')} '{label}'", ) - def epochProgression(epoch, logs=None): + def epoch_progression(epoch, logs=None): if progress is not None: if epoch + 1 == epochs: progress( @@ -149,17 +150,17 @@ def epochProgression(epoch, logs=None): else: progress((epoch + 1, epochs), total=epochs, unit="epochs", desc=loc.localize("progress-training")) - def trialProgression(trial): + def trial_progression(trial): if progress is not None: progress( (trial, autotune_trials), total=autotune_trials, unit="trials", desc=loc.localize("progress-autotune") ) try: - history = trainModel( - on_epoch_end=epochProgression, - on_trial_result=trialProgression, - on_data_load_end=dataLoadProgression, + history = train_model( + on_epoch_end=epoch_progression, + on_trial_result=trial_progression, + on_data_load_end=data_load_progression, autotune_directory=gu.APPDIR if gu.FROZEN else "autotune", ) except Exception as e: diff --git a/birdnet_analyzer/gui/utils.py b/birdnet_analyzer/gui/utils.py index 93b96280..2f7bb439 100644 --- a/birdnet_analyzer/gui/utils.py +++ b/birdnet_analyzer/gui/utils.py @@ -372,10 +372,10 @@ def species_list_coordinates(): info=loc.localize("species-list-coordinates-threshold-slider-info"), ) - def onChange(use_yearlong): + def on_change(use_yearlong): return gr.Slider(interactive=(not use_yearlong)) - yearlong_checkbox.change(onChange, inputs=yearlong_checkbox, outputs=week_number, show_progress=False) + yearlong_checkbox.change(on_change, inputs=yearlong_checkbox, outputs=week_number, show_progress=False) return lat_number, lon_number, week_number, sf_thresh_number, yearlong_checkbox diff --git a/birdnet_analyzer/localization.py b/birdnet_analyzer/localization.py index 2e890457..23456896 100644 --- a/birdnet_analyzer/localization.py +++ b/birdnet_analyzer/localization.py @@ -25,7 +25,7 @@ def ensure_settings_file(): settings = {"language-id": FALLBACK_LANGUAGE} f.write(json.dumps(settings, indent=4)) except Exception as e: - utils.writeErrorLog(e) + utils.write_error_log(e) def get_state_dict() -> dict: @@ -47,7 +47,7 @@ def get_state_dict() -> dict: json.dump({}, f) return {} except Exception as e: - utils.writeErrorLog(e) + utils.write_error_log(e) return {} @@ -79,7 +79,7 @@ def set_state(key: str, value: str): with open(STATE_SETTINGS_PATH, "w") as f: json.dump(state, f, indent=4) except Exception as e: - utils.writeErrorLog(e) + utils.write_error_log(e) def load_local_state(): diff --git a/birdnet_analyzer/model.py b/birdnet_analyzer/model.py index 0209ab41..07993077 100644 --- a/birdnet_analyzer/model.py +++ b/birdnet_analyzer/model.py @@ -5,6 +5,7 @@ import warnings import numpy as np +import keras_tuner.errors import birdnet_analyzer.config as cfg import birdnet_analyzer.utils as utils @@ -34,6 +35,168 @@ C_PBMODEL = None +class EmptyClassException(keras_tuner.errors.FatalError): + """ + Exception raised when a class is found to be empty. + + Attributes: + index (int): The index of the empty class. + message (str): The error message indicating which class is empty. + """ + + def __init__(self, *args, index): + super().__init__(*args) + self.index = index + self.message = f"Class {index} is empty." + + +def upsample_core(x: np.ndarray, y: np.ndarray, min_samples: int, apply: callable, size=2): + """ + Upsamples the minority class in the dataset using the specified apply function. + Parameters: + x (np.ndarray): The feature matrix. + y (np.ndarray): The target labels. + min_samples (int): The minimum number of samples required for the minority class. + apply (callable): A function that applies the SMOTE or any other algorithm to the data. + size (int, optional): The number of samples to generate in each iteration. Default is 2. + Returns: + tuple: A tuple containing the upsampled feature matrix and target labels. + """ + y_temp = [] + x_temp = [] + + if cfg.BINARY_CLASSIFICATION: + # Determine if 1 or 0 is the minority class + if y.sum(axis=0) < len(y) - y.sum(axis=0): + minority_label = 1 + else: + minority_label = 0 + + while np.where(y == minority_label)[0].shape[0] + len(y_temp) < min_samples: + # Randomly choose a sample from the minority class + random_index = np.random.choice(np.where(y == minority_label)[0], size=size) + + # Apply SMOTE + x_app, y_app = apply(x, y, random_index) + y_temp.append(y_app) + x_temp.append(x_app) + else: + for i in range(y.shape[1]): + while y[:, i].sum() + len(y_temp) < min_samples: + try: + # Randomly choose a sample from the minority class + random_index = np.random.choice(np.where(y[:, i] == 1)[0], size=size) + except ValueError as e: + raise EmptyClassException(index=i) from e + + # Apply SMOTE + x_app, y_app = apply(x, y, random_index) + y_temp.append(y_app) + x_temp.append(x_app) + + return x_temp, y_temp + + +def upsampling(x: np.ndarray, y: np.ndarray, ratio=0.5, mode="repeat"): + """Balance data through upsampling. + + We upsample minority classes to have at least 10% (ratio=0.1) of the samples of the majority class. + + Args: + x: Samples. + y: One-hot labels. + ratio: The minimum ratio of minority to majority samples. + mode: The upsampling mode. Either 'repeat', 'mean', 'linear' or 'smote'. + + Returns: + Upsampled data. + """ + + # Set numpy random seed + np.random.seed(cfg.RANDOM_SEED) + + # Determine min number of samples + if cfg.BINARY_CLASSIFICATION: + min_samples = int(max(y.sum(axis=0), len(y) - y.sum(axis=0)) * ratio) + else: + min_samples = int(np.max(y.sum(axis=0)) * ratio) + + x_temp = [] + y_temp = [] + + if mode == "repeat": + + def applyRepeat(x, y, random_index): + return x[random_index[0]], y[random_index[0]] + + x_temp, y_temp = upsample_core(x, y, min_samples, applyRepeat, size=1) + + elif mode == "mean": + # For each class with less than min_samples + # select two random samples and calculate the mean + def applyMean(x, y, random_indices): + # Calculate the mean of the two samples + mean = np.mean(x[random_indices], axis=0) + + # Append the mean and label to a temp list + return mean, y[random_indices[0]] + + x_temp, y_temp = upsample_core(x, y, min_samples, applyMean) + + elif mode == "linear": + # For each class with less than min_samples + # select two random samples and calculate the linear combination + def applyLinearCombination(x, y, random_indices): + # Calculate the linear combination of the two samples + alpha = np.random.uniform(0, 1) + new_sample = alpha * x[random_indices[0]] + (1 - alpha) * x[random_indices[1]] + + # Append the new sample and label to a temp list + return new_sample, y[random_indices[0]] + + x_temp, y_temp = upsample_core(x, y, min_samples, applyLinearCombination) + + elif mode == "smote": + # For each class with less than min_samples apply SMOTE + def applySmote(x, y, random_index, k=5): + # Get the k nearest neighbors + distances = np.sqrt(np.sum((x - x[random_index[0]]) ** 2, axis=1)) + indices = np.argsort(distances)[1 : k + 1] + + # Randomly choose one of the neighbors + random_neighbor = np.random.choice(indices) + + # Calculate the difference vector + diff = x[random_neighbor] - x[random_index[0]] + + # Randomly choose a weight between 0 and 1 + weight = np.random.uniform(0, 1) + + # Calculate the new sample + new_sample = x[random_index[0]] + weight * diff + + # Append the new sample and label to a temp list + return new_sample, y[random_index[0]] + + x_temp, y_temp = upsample_core(x, y, min_samples, applySmote, size=1) + + # Append the temp list to the original data + if len(x_temp) > 0: + x = np.vstack((x, np.array(x_temp))) + y = np.vstack((y, np.array(y_temp))) + + # Shuffle data + indices = np.arange(len(x)) + np.random.shuffle(indices) + x = x[indices] + y = y[indices] + + del x_temp + del y_temp + + return x, y + + def save_model_params(path): """Saves the model parameters to a file. @@ -73,7 +236,7 @@ def save_model_params(path): ) -def resetCustomClassifier(): +def reset_custom_classifier(): """ Resets the custom classifier by setting the global variables C_INTERPRETER and C_PBMODEL to None. This function is used to clear any existing custom classifier models and interpreters, effectively @@ -86,7 +249,7 @@ def resetCustomClassifier(): C_PBMODEL = None -def loadModel(class_output=True): +def load_model(class_output=True): """ Loads the machine learning model based on the configuration provided. This function loads either a TensorFlow Lite (TFLite) model or a protobuf model @@ -130,7 +293,7 @@ def loadModel(class_output=True): PBMODEL = keras.models.load_model(os.path.join(SCRIPT_DIR, cfg.MODEL_PATH), compile=False) -def loadCustomClassifier(): +def load_custom_classifier(): """ Loads a custom classifier model based on the file extension of the provided model path. If the model file ends with ".tflite", it loads a TensorFlow Lite model and sets up the interpreter, @@ -167,7 +330,7 @@ def loadCustomClassifier(): C_PBMODEL = tf.saved_model.load(cfg.CUSTOM_CLASSIFIER) -def loadMetaModel(): +def load_meta_model(): """Loads the model for species prediction. Initializes the model used to predict species list, based on coordinates and week of year. @@ -191,7 +354,7 @@ def loadMetaModel(): M_OUTPUT_LAYER_INDEX = output_details[0]["index"] -def buildLinearClassifier(num_labels, input_size, hidden_units=0, dropout=0.0): +def build_linear_classifier(num_labels, input_size, hidden_units=0, dropout=0.0): """Builds a classifier. Args: @@ -232,7 +395,7 @@ def buildLinearClassifier(num_labels, input_size, hidden_units=0, dropout=0.0): return model -def trainLinearClassifier( +def train_linear_classifier( classifier, x_train, y_train, @@ -301,7 +464,7 @@ def on_epoch_end(self, epoch, logs=None): # Upsample training data if upsampling_ratio > 0: - x_train, y_train = utils.upsampling(x_train, y_train, upsampling_ratio, upsampling_mode) + x_train, y_train = upsampling(x_train, y_train, upsampling_ratio, upsampling_mode) print(f"Upsampled training data to {x_train.shape[0]} samples.", flush=True) # Apply mixup to training data @@ -359,7 +522,7 @@ def on_epoch_end(self, epoch, logs=None): return classifier, history -def saveLinearClassifier(classifier, model_path: str, labels: list[str], mode="replace"): +def save_linear_classifier(classifier, model_path: str, labels: list[str], mode="replace"): """Saves the classifier as a tflite model, as well as the used labels in a .txt. Args: @@ -405,7 +568,7 @@ def saveLinearClassifier(classifier, model_path: str, labels: list[str], mode="r open(model_path, "wb").write(tflite_model) if mode == "append": - labels = [*utils.readLines(os.path.join(SCRIPT_DIR, cfg.LABELS_FILE)), *labels] + labels = [*utils.read_lines(os.path.join(SCRIPT_DIR, cfg.LABELS_FILE)), *labels] # Save labels with open(model_path.replace(".tflite", "_Labels.txt"), "w", encoding="utf-8") as f: @@ -480,7 +643,7 @@ def basic(self, inputs): tf.saved_model.save(smodel, model_path, signatures=signatures) if mode == "append": - labels = [*utils.readLines(os.path.join(SCRIPT_DIR, cfg.LABELS_FILE)), *labels] + labels = [*utils.read_lines(os.path.join(SCRIPT_DIR, cfg.LABELS_FILE)), *labels] # Save label file labelIds = [label[:4].replace(" ", "") + str(i) for i, label in enumerate(labels, 1)] @@ -537,7 +700,7 @@ def basic(self, inputs): save_model_params(model_params) -def predictFilter(lat, lon, week): +def predict_filter(lat, lon, week): """Predicts the probability for each species. Args: @@ -552,7 +715,7 @@ def predictFilter(lat, lon, week): # Does interpreter exist? if M_INTERPRETER is None: - loadMetaModel() + load_meta_model() # Prepare mdata as sample sample = np.expand_dims(np.array([lat, lon, week], dtype="float32"), 0) @@ -578,7 +741,7 @@ def explore(lat: float, lon: float, week: int): A sorted list of tuples with the score and the species. """ # Make filter prediction - l_filter = predictFilter(lat, lon, week) + l_filter = predict_filter(lat, lon, week) # Apply threshold l_filter = np.where(l_filter >= cfg.LOCATION_FILTER_THRESHOLD, l_filter, 0) @@ -646,13 +809,13 @@ def predict(sample): """ # Has custom classifier? if cfg.CUSTOM_CLASSIFIER is not None: - return predictWithCustomClassifier(sample) + return predict_with_custom_classifier(sample) global INTERPRETER # Does interpreter or keras model exist? if INTERPRETER is None and PBMODEL is None: - loadModel() + load_model() if PBMODEL is None: # Reshape input tensor @@ -673,7 +836,7 @@ def predict(sample): return prediction -def predictWithCustomClassifier(sample): +def predict_with_custom_classifier(sample): """Uses the custom classifier to make a prediction. Args: @@ -688,7 +851,7 @@ def predictWithCustomClassifier(sample): # Does interpreter exist? if C_INTERPRETER is None and C_PBMODEL is None: - loadCustomClassifier() + load_custom_classifier() if C_PBMODEL is None: vector = embeddings(sample) if C_INPUT_SIZE != 144000 else sample @@ -722,7 +885,7 @@ def embeddings(sample): # Does interpreter exist? if INTERPRETER is None: - loadModel(False) + load_model(False) # Reshape input tensor INTERPRETER.resize_tensor_input(INPUT_LAYER_INDEX, [len(sample), *sample[0].shape]) diff --git a/birdnet_analyzer/network/__init__.py b/birdnet_analyzer/network/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/network/client.py b/birdnet_analyzer/network/client.py new file mode 100644 index 00000000..aae693c0 --- /dev/null +++ b/birdnet_analyzer/network/client.py @@ -0,0 +1,91 @@ +"""Client to send requests to the server.""" + +import json +import os +import time +from multiprocessing import freeze_support + +import requests + + +def send_request(host: str, port: int, fpath: str, mdata: str): + """Sends a classification request to the server. + + Args: + host: Host address of the server. + port: Port for the request. + fpath: File path of the file to be analyzed. + mdata: Additional json metadata. + + Returns: + The json decoded response. + """ + url = f"http://{host}:{port}/analyze" + + print(f"Requesting analysis for {fpath}") + + # Make payload + multipart_form_data = {"audio": (fpath.rsplit(os.sep, 1)[-1], open(fpath, "rb")), "meta": (None, mdata)} + + # Send request + start_time = time.time() + response = requests.post(url, files=multipart_form_data) + end_time = time.time() + + print("Response: {}, Time: {:.4f}s".format(response.text, end_time - start_time), flush=True) + + # Convert to dict + data = json.loads(response.text) + + return data + + +def save_result(data, fpath): + """Saves the server response. + + Args: + data: The response data. + fpath: The path to save the data at. + """ + # Make directory + dir_path = os.path.dirname(fpath) + os.makedirs(dir_path, exist_ok=True) + + # Save result + with open(fpath, "w") as f: + json.dump(data, f, indent=4) + + +if __name__ == "__main__": + import birdnet_analyzer.cli as cli + + # Freeze support for executable + freeze_support() + + # Parse arguments + parser = cli.client_parser() + + args = parser.parse_args() + + # TODO: If specified, read and send species list + + # Make metadata + mdata = { + "lat": args.lat, + "lon": args.lon, + "week": args.week, + "overlap": args.overlap, + "sensitivity": args.sensitivity, + "sf_thresh": args.sf_thresh, + "pmode": args.pmode, + "num_results": args.num_results, + "save": args.save, + } + + # Send request + data = send_request(args.host, args.port, args.input, json.dumps(mdata)) + + # Save result + fpath = args.output if args.output else args.i.rsplit(".", 1)[0] + ".BirdNET.results.json" + + save_result(data, fpath) diff --git a/birdnet_analyzer/network/server.py b/birdnet_analyzer/network/server.py new file mode 100644 index 00000000..71b21783 --- /dev/null +++ b/birdnet_analyzer/network/server.py @@ -0,0 +1,57 @@ +import os +from multiprocessing import freeze_support +import shutil +import tempfile + +import birdnet_analyzer.config as cfg +import birdnet_analyzer.cli as cli +import birdnet_analyzer.utils as utils + +# Freeze support for executable +freeze_support() + +# Parse arguments +parser = cli.server_parser() + +args = parser.parse_args() + +import bottle # noqa: E402 + +import birdnet_analyzer.analyze.utils as analyze # noqa: E402 + +# Load eBird codes, labels +cfg.CODES = analyze.load_codes() +cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) + +# Load translated labels +lfile = os.path.join( + cfg.TRANSLATED_LABELS_PATH, os.path.basename(cfg.LABELS_FILE).replace(".txt", "_{}.txt".format(args.locale)) +) + +if args.locale not in ["en"] and os.path.isfile(lfile): + cfg.TRANSLATED_LABELS = utils.read_lines(lfile) +else: + cfg.TRANSLATED_LABELS = cfg.LABELS + +# Set storage file path +cfg.FILE_STORAGE_PATH = args.spath + +# Set min_conf to 0.0, because we want all results +cfg.MIN_CONFIDENCE = 0.0 + +# Set path for temporary result file +cfg.OUTPUT_PATH = tempfile.mkdtemp() + +# Set result types +cfg.RESULT_TYPES = ["audacity"] + +# Set number of TFLite threads +cfg.TFLITE_THREADS = args.threads + +# Run server +print(f"UP AND RUNNING! LISTENING ON {args.host}:{args.port}", flush=True) + +try: + bottle.run(host=args.host, port=args.port, quiet=True) +finally: + shutil.rmtree(cfg.OUTPUT_PATH) diff --git a/birdnet_analyzer/server.py b/birdnet_analyzer/network/utils.py similarity index 66% rename from birdnet_analyzer/server.py rename to birdnet_analyzer/network/utils.py index d448a249..35784213 100644 --- a/birdnet_analyzer/server.py +++ b/birdnet_analyzer/network/utils.py @@ -3,13 +3,10 @@ Can be used to start up a server and feed it classification requests. """ -import argparse import json import os import tempfile from datetime import date, datetime -from multiprocessing import freeze_support -import shutil import bottle @@ -18,10 +15,8 @@ import birdnet_analyzer.species as species import birdnet_analyzer.utils as utils -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) - -def resultPooling(lines: list[str], num_results=5, pmode="avg"): +def result_pooling(lines: list[str], num_results=5, pmode="avg"): """Parses the results into list of (species, score). Args: @@ -70,7 +65,7 @@ def healthcheck(): @bottle.route("/analyze", method="POST") -def handleRequest(): +def handle_request(): """Handles a classification request. Takes a POST request and tries to analyze it. @@ -121,7 +116,7 @@ def handleRequest(): # Write error log print(f"Error: Cannot save file {file_path}.", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) # Return error return json.dumps({"msg": "Error while saving file."}) @@ -144,7 +139,7 @@ def handleRequest(): # Set species list if not cfg.LATITUDE == -1 and not cfg.LONGITUDE == -1: cfg.SPECIES_LIST_FILE = None - cfg.SPECIES_LIST = species.getSpeciesList( + cfg.SPECIES_LIST = species.get_species_list( cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD ) else: @@ -152,13 +147,13 @@ def handleRequest(): cfg.SPECIES_LIST = [] # Analyze file - success = analyze.analyzeFile((file_path, cfg.getConfig())) + success = analyze.analyze_file((file_path, cfg.get_config())) # Parse results if success: # Open result file output_path = success["audacity"] - lines = utils.readLines(output_path) + lines = utils.read_lines(output_path) pmode = mdata.get("pmode", "avg").lower() # Pool results @@ -167,7 +162,7 @@ def handleRequest(): num_results = min(99, max(1, int(mdata.get("num_results", 5)))) - results = resultPooling(lines, num_results, pmode) + results = result_pooling(lines, num_results, pmode) # Prepare response data = {"msg": "success", "results": results, "meta": mdata} @@ -188,7 +183,7 @@ def handleRequest(): except Exception as e: # Write error log print(f"Error: Cannot analyze file {file_path}.", flush=True) - utils.writeErrorLog(e) + utils.write_error_log(e) data = {"msg": f"Error during analysis: {e}"} @@ -196,68 +191,3 @@ def handleRequest(): finally: if file_path_tmp: os.unlink(file_path_tmp.name) - - -if __name__ == "__main__": - # Freeze support for executable - freeze_support() - - # Parse arguments - parser = argparse.ArgumentParser(description="API endpoint server to analyze files remotely.") - parser.add_argument( - "--host", default="0.0.0.0", help="Host name or IP address of API endpoint server. Defaults to '0.0.0.0'" - ) - parser.add_argument("--port", type=int, default=8080, help="Port of API endpoint server. Defaults to 8080.") - parser.add_argument( - "--spath", - default=os.path.join(SCRIPT_DIR, "uploads/"), - help="Path to folder where uploaded files should be stored. Defaults to '/uploads'.", - ) - parser.add_argument("--threads", type=int, default=4, help="Number of CPU threads for analysis. Defaults to 4.") - parser.add_argument( - "--locale", - default="en", - help="Locale for translated species common names. Values in ['af', 'de', 'it', ...] Defaults to 'en'.", - ) - - args = parser.parse_args() - - cfg.CODES_FILE = os.path.join(SCRIPT_DIR, cfg.CODES_FILE) - cfg.LABELS_FILE = os.path.join(SCRIPT_DIR, cfg.LABELS_FILE) - - # Load eBird codes, labels - cfg.CODES = analyze.loadCodes() - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) - - # Load translated labels - lfile = os.path.join( - cfg.TRANSLATED_LABELS_PATH, os.path.basename(cfg.LABELS_FILE).replace(".txt", "_{}.txt".format(args.locale)) - ) - - if args.locale not in ["en"] and os.path.isfile(lfile): - cfg.TRANSLATED_LABELS = utils.readLines(lfile) - else: - cfg.TRANSLATED_LABELS = cfg.LABELS - - # Set storage file path - cfg.FILE_STORAGE_PATH = args.spath - - # Set min_conf to 0.0, because we want all results - cfg.MIN_CONFIDENCE = 0.0 - - # Set path for temporary result file - cfg.OUTPUT_PATH = tempfile.mkdtemp() - - # Set result types - cfg.RESULT_TYPES = ["audacity"] - - # Set number of TFLite threads - cfg.TFLITE_THREADS = max(1, int(args.threads)) - - # Run server - print(f"UP AND RUNNING! LISTENING ON {args.host}:{args.port}", flush=True) - - try: - bottle.run(host=args.host, port=args.port, quiet=True) - finally: - shutil.rmtree(cfg.OUTPUT_PATH) diff --git a/birdnet_analyzer/segments/__init__.py b/birdnet_analyzer/segments/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/segments/__main__.py b/birdnet_analyzer/segments/__main__.py new file mode 100644 index 00000000..eb7855a9 --- /dev/null +++ b/birdnet_analyzer/segments/__main__.py @@ -0,0 +1,47 @@ +from multiprocessing import Pool + +import birdnet_analyzer.config as cfg +import birdnet_analyzer.cli as cli + +# Parse arguments +parser = cli.segments_parser() + +args = parser.parse_args() + +from birdnet_analyzer.segments.utils import extract_segments, parse_folders, parse_files # noqa: E402 + +if not args.output: + cfg.OUTPUT_PATH = cfg.INPUT_PATH +else: + cfg.OUTPUT_PATH = args.output + +results = args.results if args.results else cfg.INPUT_PATH + +# Parse audio and result folders +cfg.FILE_LIST = parse_folders(args.input, results) + +# Set number of threads +cfg.CPU_THREADS = args.threads + +# Set confidence threshold +cfg.MIN_CONFIDENCE = args.min_conf + +# Parse file list and make list of segments +cfg.FILE_LIST = parse_files(cfg.FILE_LIST, args.max_segments) + +# Set audio speed +cfg.AUDIO_SPEED = args.audio_speed + +# Add config items to each file list entry. +# We have to do this for Windows which does not +# support fork() and thus each process has to +# have its own config. USE LINUX! +flist = [(entry, args.seg_length, cfg.get_config()) for entry in cfg.FILE_LIST] + +# Extract segments +if cfg.CPU_THREADS < 2: + for entry in flist: + extract_segments(entry) +else: + with Pool(cfg.CPU_THREADS) as p: + p.map(extract_segments, flist) \ No newline at end of file diff --git a/birdnet_analyzer/segments.py b/birdnet_analyzer/segments/utils.py similarity index 73% rename from birdnet_analyzer/segments.py rename to birdnet_analyzer/segments/utils.py index 20072eb3..c42d3214 100644 --- a/birdnet_analyzer/segments.py +++ b/birdnet_analyzer/segments/utils.py @@ -3,10 +3,7 @@ Can be used to save the segments of the audio files for each detection. """ -import argparse -import multiprocessing import os -from multiprocessing import Pool import numpy as np @@ -19,7 +16,7 @@ SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) -def detectRType(line: str): +def detect_rtype(line: str): """Detects the type of result file. Args: @@ -40,7 +37,7 @@ def detectRType(line: str): return "audacity" -def getHeaderMapping(line: str) -> dict: +def get_header_mapping(line: str) -> dict: """ Parses a header line and returns a mapping of column names to their indices. @@ -50,7 +47,8 @@ def getHeaderMapping(line: str) -> dict: Returns: dict: A dictionary where the keys are column names and the values are their respective indices. """ - rtype = detectRType(line) + rtype = detect_rtype(line) + if rtype == "table" or rtype == "audacity": sep = "\t" else: @@ -59,13 +57,14 @@ def getHeaderMapping(line: str) -> dict: cols = line.split(sep) mapping = {} + for i, col in enumerate(cols): mapping[col] = i return mapping -def parseFolders(apath: str, rpath: str, allowed_result_filetypes: list[str] = ["txt", "csv"]) -> list[dict]: +def parse_folders(apath: str, rpath: str, allowed_result_filetypes: list[str] = ["txt", "csv"]) -> list[dict]: """Read audio and result files. Reads all audio files and BirdNET output inside directory recursively. @@ -93,9 +92,6 @@ def parseFolders(apath: str, rpath: str, allowed_result_filetypes: list[str] = [ elif os.path.exists(os.path.join(rpath, cfg.OUTPUT_KALEIDOSCOPE_FILENAME)): rfile = os.path.join(rpath, cfg.OUTPUT_KALEIDOSCOPE_FILENAME) data["combined"] = {"isCombinedFile": True, "result": rfile} - # elif os.path.exists(os.path.join(rpath, cfg.OUTPUT_RTABLE_FILENAME)): - # rfile = os.path.join(rpath, cfg.OUTPUT_RTABLE_FILENAME) - # data["combined"] = {"isCombinedFile": True, "result": rfile} else: # Get all audio files for root, _, files in os.walk(apath): @@ -120,7 +116,7 @@ def parseFolders(apath: str, rpath: str, allowed_result_filetypes: list[str] = [ return flist -def parseFiles(flist: list[dict], max_segments=100): +def parse_files(flist: list[dict], max_segments=100): """ Parses a list of files to extract and organize bird call segments by species. @@ -147,7 +143,7 @@ def parseFiles(flist: list[dict], max_segments=100): if is_combined_rfile: rfile = flist[0]["result"] - segments = findSegmentsFromCombined(rfile) + segments = find_segments_from_combined(rfile) # Parse segments by species for s in segments: @@ -162,7 +158,7 @@ def parseFiles(flist: list[dict], max_segments=100): rfile = f["result"] # Get all segments for result file - segments = findSegments(afile, rfile) + segments = find_segments(afile, rfile) # Parse segments by species for s in segments: @@ -196,7 +192,7 @@ def parseFiles(flist: list[dict], max_segments=100): return flist -def findSegmentsFromCombined(rfile: str) -> list[dict]: +def find_segments_from_combined(rfile: str) -> list[dict]: """Extracts the segments from a combined results file Args: @@ -209,16 +205,16 @@ def findSegmentsFromCombined(rfile: str) -> list[dict]: segments: list[dict] = [] # Open and parse result file - lines = utils.readLines(rfile) + lines = utils.read_lines(rfile) # Auto-detect result type - rtype = detectRType(lines[0]) + rtype = detect_rtype(lines[0]) if rtype == "audacity": raise Exception("Audacity files are not supported for combined results.") # Get mapping from the header column - header_mapping = getHeaderMapping(lines[0]) + header_mapping = get_header_mapping(lines[0]) # Get start and end times based on rtype confidence = 0 @@ -236,14 +232,6 @@ def findSegmentsFromCombined(rfile: str) -> list[dict]: confidence = float(d[header_mapping["Confidence"]]) afile = d[header_mapping["Begin Path"]].replace("/", os.sep).replace("\\", os.sep) - # elif rtype == "r" and i > 0: - # d = line.split(",") - # start = float(d[header_mapping["start"]]) - # end = float(d[header_mapping["end"]]) - # species = d[header_mapping["common_name"]] - # confidence = float(d[header_mapping["confidence"]]) - # afile = d[header_mapping["filepath"]].replace("/", os.sep).replace("\\", os.sep) - elif rtype == "kaleidoscope" and i > 0: d = line.split(",") start = float(d[header_mapping["OFFSET"]]) @@ -270,7 +258,7 @@ def findSegmentsFromCombined(rfile: str) -> list[dict]: return segments -def findSegments(afile: str, rfile: str): +def find_segments(afile: str, rfile: str): """Extracts the segments for an audio file from the results file Args: @@ -284,13 +272,13 @@ def findSegments(afile: str, rfile: str): segments: list[dict] = [] # Open and parse result file - lines = utils.readLines(rfile) + lines = utils.read_lines(rfile) # Auto-detect result type - rtype = detectRType(lines[0]) + rtype = detect_rtype(lines[0]) # Get mapping from the header column - header_mapping = getHeaderMapping(lines[0]) + header_mapping = get_header_mapping(lines[0]) # Get start and end times based on rtype confidence = 0 @@ -312,13 +300,6 @@ def findSegments(afile: str, rfile: str): species = d[2].split(", ")[1] confidence = float(d[-1]) - # elif rtype == "r" and i > 0: - # d = line.split(",") - # start = float(d[header_mapping["start"]]) - # end = float(d[header_mapping["end"]]) - # species = d[header_mapping["common_name"]] - # confidence = float(d[header_mapping["confidence"]]) - elif rtype == "kaleidoscope" and i > 0: d = line.split(",") start = float(d[header_mapping["OFFSET"]]) @@ -340,7 +321,7 @@ def findSegments(afile: str, rfile: str): return segments -def extractSegments(item: tuple[tuple[str, list[dict]], float, dict[str]]): +def extract_segments(item: tuple[tuple[str, list[dict]], float, dict[str]]): """ Extracts audio segments from a given audio file based on provided segment information. Args: @@ -359,17 +340,17 @@ def extractSegments(item: tuple[tuple[str, list[dict]], float, dict[str]]): afile = item[0][0] segments = item[0][1] seg_length = item[1] - cfg.setConfig(item[2]) + cfg.set_config(item[2]) # Status print(f"Extracting segments from {afile}") try: # Open audio file - sig, rate = audio.openAudioFile(afile, cfg.SAMPLE_RATE, speed=cfg.AUDIO_SPEED) + sig, rate = audio.open_audio_file(afile, cfg.SAMPLE_RATE, speed=cfg.AUDIO_SPEED) except Exception as ex: print(f"Error: Cannot open audio file {afile}", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) return @@ -379,7 +360,7 @@ def extractSegments(item: tuple[tuple[str, list[dict]], float, dict[str]]): # Get start and end times start = int((seg["start"] * rate) / cfg.AUDIO_SPEED) end = int((seg["end"] * rate) / cfg.AUDIO_SPEED) - + offset = ((seg_length * rate) - (end - start)) // 2 start = max(0, start - offset) end = min(len(sig), end + offset) @@ -402,85 +383,12 @@ def extractSegments(item: tuple[tuple[str, list[dict]], float, dict[str]]): seg["end"], ) seg_path = os.path.join(outpath, seg_name) - audio.saveSignal(seg_sig, seg_path, rate) + audio.save_signal(seg_sig, seg_path, rate) except Exception as ex: # Write error log print(f"Error: Cannot extract segments from {afile}.", flush=True) - utils.writeErrorLog(ex) + utils.write_error_log(ex) return False return True - - -if __name__ == "__main__": - # Parse arguments - parser = argparse.ArgumentParser(description="Extract segments from audio files based on BirdNET detections.") - parser.add_argument( - "--audio", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to folder containing audio files." - ) - parser.add_argument( - "--results", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to folder containing result files." - ) - parser.add_argument( - "--o", default=os.path.join(SCRIPT_DIR, "example/"), help="Output folder path for extracted segments." - ) - parser.add_argument( - "--min_conf", - type=float, - default=0.1, - help="Minimum confidence threshold. Values in [0.01, 0.99]. Defaults to 0.1.", - ) - parser.add_argument( - "--max_segments", type=int, default=100, help="Number of randomly extracted segments per species." - ) - parser.add_argument( - "--audio_speed", - type=float, - default=1.0, - help="Speed factor for audio playback. Values < 1.0 will slow down the audio, values > 1.0 will speed it up. Defaults to 1.0.", - ) - parser.add_argument( - "--seg_length", type=float, default=3.0, help="Length of extracted segments in seconds. Defaults to 3.0." - ) - parser.add_argument( - "--threads", type=int, default=min(8, max(1, multiprocessing.cpu_count() // 2)), help="Number of CPU threads." - ) - - args = parser.parse_args() - - # Parse audio and result folders - cfg.FILE_LIST = parseFolders(args.audio, args.results) - - # Set output folder - cfg.OUTPUT_PATH = args.o - - # Set number of threads - cfg.CPU_THREADS = int(args.threads) - - # Set confidence threshold - cfg.MIN_CONFIDENCE = max(0.01, min(0.99, float(args.min_conf))) - - # Parse file list and make list of segments - cfg.FILE_LIST = parseFiles(cfg.FILE_LIST, max(1, int(args.max_segments))) - - # Set audio speed - cfg.AUDIO_SPEED = max(0.01, args.audio_speed) - - # Add config items to each file list entry. - # We have to do this for Windows which does not - # support fork() and thus each process has to - # have its own config. USE LINUX! - flist = [(entry, max(cfg.SIG_LENGTH, float(args.seg_length)), cfg.getConfig()) for entry in cfg.FILE_LIST] - - # Extract segments - if cfg.CPU_THREADS < 2: - for entry in flist: - extractSegments(entry) - else: - with Pool(cfg.CPU_THREADS) as p: - p.map(extractSegments, flist) - - # A few examples to test - # python3 segments.py --audio example/ --results example/ --o example/segments/ - # python3 segments.py --audio example/ --results example/ --o example/segments/ --seg_length 5.0 --min_conf 0.1 --max_segments 100 --threads 4 diff --git a/birdnet_analyzer/species/__init__.py b/birdnet_analyzer/species/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/species/__main__.py b/birdnet_analyzer/species/__main__.py new file mode 100644 index 00000000..bb0499fc --- /dev/null +++ b/birdnet_analyzer/species/__main__.py @@ -0,0 +1,10 @@ +import birdnet_analyzer.cli as cli + +# Parse arguments +parser = cli.species_parser() + +args = parser.parse_args() + +from birdnet_analyzer.species.utils import run # noqa: E402 + +run(args.output, args.lat, args.lon, args.week, args.sf_thresh, args.sortby) \ No newline at end of file diff --git a/birdnet_analyzer/species.py b/birdnet_analyzer/species/utils.py similarity index 55% rename from birdnet_analyzer/species.py rename to birdnet_analyzer/species/utils.py index f8ba04fc..b68320e3 100644 --- a/birdnet_analyzer/species.py +++ b/birdnet_analyzer/species/utils.py @@ -3,17 +3,14 @@ Can be used to predict a species list using coordinates and weeks. """ -import argparse import os import birdnet_analyzer.config as cfg import birdnet_analyzer.model as model import birdnet_analyzer.utils as utils -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) - -def getSpeciesList(lat: float, lon: float, week: int, threshold=0.05, sort=False) -> list[str]: +def get_species_list(lat: float, lon: float, week: int, threshold=0.05, sort=False) -> list[str]: """Predict a species list. Uses the model to predict the species list for the given coordinates and filters by threshold. @@ -50,12 +47,8 @@ def run(output_path, lat, lon, week, threshold, sortby): Returns: None """ - # Set paths relative to script path (requested in #3) - cfg.LABELS_FILE = os.path.join(SCRIPT_DIR, cfg.LABELS_FILE) - cfg.MDATA_MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MDATA_MODEL_PATH) - # Load eBird codes, labels - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) + cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) # Set output path cfg.OUTPUT_PATH = output_path @@ -70,7 +63,7 @@ def run(output_path, lat, lon, week, threshold, sortby): print(f"Getting species list for {cfg.LATITUDE}/{cfg.LONGITUDE}, Week {cfg.WEEK}...", end="", flush=True) # Get species list - species_list = getSpeciesList( + species_list = get_species_list( cfg.LATITUDE, cfg.LONGITUDE, cfg.WEEK, cfg.LOCATION_FILTER_THRESHOLD, False if sortby == "freq" else True ) @@ -80,39 +73,3 @@ def run(output_path, lat, lon, week, threshold, sortby): with open(cfg.OUTPUT_PATH, "w") as f: for s in species_list: f.write(s + "\n") - - -if __name__ == "__main__": - # Parse arguments - parser = argparse.ArgumentParser( - description="Get list of species for a given location with BirdNET. Sorted by occurrence frequency." - ) - parser.add_argument( - "--o", - default=os.path.join(SCRIPT_DIR, "example/"), - help="Path to output file or folder. If this is a folder, file will be named 'species_list.txt'.", - ) - parser.add_argument("--lat", type=float, help="Recording location latitude.") - parser.add_argument("--lon", type=float, help="Recording location longitude.") - parser.add_argument( - "--week", - type=int, - default=-1, - help="Week of the year when the recording was made. Values in [1, 48] (4 weeks per month). Set -1 for year-round species list.", - ) - parser.add_argument( - "--threshold", type=float, default=0.03, help="Occurrence frequency threshold. Defaults to 0.03." - ) - parser.add_argument( - "--sortby", - default="freq", - help="Sort species by occurrence frequency or alphabetically. Values in ['freq', 'alpha']. Defaults to 'freq'.", - ) - - args = parser.parse_args() - - run(args.o, args.lat, args.lon, args.week, args.threshold, args.sortby) - - # A few examples to test - # python3 species.py --o example/ --lat 42.5 --lon -76.45 --week -1 - # python3 species.py --o example/species_list.txt --lat 42.5 --lon -76.45 --week 4 --threshold 0.05 --sortby alpha diff --git a/birdnet_analyzer/train/__init__.py b/birdnet_analyzer/train/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/birdnet_analyzer/train/__main__.py b/birdnet_analyzer/train/__main__.py new file mode 100644 index 00000000..ef1e86a5 --- /dev/null +++ b/birdnet_analyzer/train/__main__.py @@ -0,0 +1,42 @@ +import birdnet_analyzer.cli as cli +import birdnet_analyzer.config as cfg + +# Parse arguments +parser = cli.train_parser() + +args = parser.parse_args() + +from birdnet_analyzer.train.utils import train_model # noqa: E402 + +# Config +cfg.TRAIN_DATA_PATH = args.input +cfg.SAMPLE_CROP_MODE = args.crop_mode +cfg.SIG_OVERLAP = args.overlap +cfg.CUSTOM_CLASSIFIER = args.output +cfg.TRAIN_EPOCHS = args.epochs +cfg.TRAIN_BATCH_SIZE = args.batch_size +cfg.TRAIN_VAL_SPLIT = args.val_split +cfg.TRAIN_LEARNING_RATE = args.learning_rate +cfg.TRAIN_HIDDEN_UNITS = args.hidden_units +cfg.TRAIN_DROPOUT = args.dropout +cfg.TRAIN_WITH_MIXUP = args.mixup if args.mixup is not None else cfg.TRAIN_WITH_MIXUP +cfg.UPSAMPLING_RATIO = args.upsampling_ratio +cfg.UPSAMPLING_MODE = args.upsampling_mode +cfg.TRAINED_MODEL_OUTPUT_FORMAT = args.model_format +cfg.TRAINED_MODEL_SAVE_MODE = args.model_save_mode +cfg.TRAIN_CACHE_MODE = args.cache_mode +cfg.TRAIN_CACHE_FILE = args.cache_file +cfg.TFLITE_THREADS = 1 +cfg.CPU_THREADS = args.threads + +cfg.BANDPASS_FMIN = args.fmin +cfg.BANDPASS_FMAX = args.fmax + +cfg.AUDIO_SPEED = args.audio_speed + +cfg.AUTOTUNE = args.autotune +cfg.AUTOTUNE_TRIALS = args.autotune_trials +cfg.AUTOTUNE_EXECUTIONS_PER_TRIAL = args.autotune_executions_per_trial + +# Train model +train_model() diff --git a/birdnet_analyzer/train.py b/birdnet_analyzer/train/utils.py similarity index 69% rename from birdnet_analyzer/train.py rename to birdnet_analyzer/train/utils.py index 1dbf903a..00cf6b5b 100644 --- a/birdnet_analyzer/train.py +++ b/birdnet_analyzer/train/utils.py @@ -3,9 +3,7 @@ Can be used to train a custom classifier with new training data. """ -import argparse import csv -import multiprocessing import os from functools import partial from multiprocessing.pool import Pool @@ -18,8 +16,6 @@ import birdnet_analyzer.model as model import birdnet_analyzer.utils as utils -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) - def save_sample_counts(labels, y_train): """ @@ -49,7 +45,7 @@ def save_sample_counts(labels, y_train): writer.writerow([label, count]) -def _loadAudioFile(f, label_vector, config): +def _load_audio_file(f, label_vector, config): """Load an audio file and extract features. Args: f: Path to the audio file. @@ -62,12 +58,12 @@ def _loadAudioFile(f, label_vector, config): y_train = [] # restore config in case we're on Windows to be thread save - cfg.setConfig(config) + cfg.set_config(config) # Try to load the audio file try: # Load audio - sig, rate = audio.openAudioFile( + sig, rate = audio.open_audio_file( f, duration=cfg.SIG_LENGTH if cfg.SAMPLE_CROP_MODE == "first" else None, fmin=cfg.BANDPASS_FMIN, @@ -84,11 +80,11 @@ def _loadAudioFile(f, label_vector, config): # Crop training samples if cfg.SAMPLE_CROP_MODE == "center": - sig_splits = [audio.cropCenter(sig, rate, cfg.SIG_LENGTH)] + sig_splits = [audio.crop_center(sig, rate, cfg.SIG_LENGTH)] elif cfg.SAMPLE_CROP_MODE == "first": - sig_splits = [audio.splitSignal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN)[0]] + sig_splits = [audio.split_signal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN)[0]] else: - sig_splits = audio.splitSignal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN) + sig_splits = audio.split_signal(sig, rate, cfg.SIG_LENGTH, cfg.SIG_OVERLAP, cfg.SIG_MINLEN) # Get feature embeddings batch_size = 1 # turns out that batch size 1 is the fastest, probably because of having to resize the model input when the number of samples in a batch changes @@ -104,7 +100,7 @@ def _loadAudioFile(f, label_vector, config): return x_train, y_train -def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): +def _load_training_data(cache_mode=None, cache_file="", progress_callback=None): """Loads the data for training. Reads all subdirectories of "config.TRAIN_DATA_PATH" and uses their names as new labels. @@ -114,7 +110,7 @@ def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): If a cache file is provided, the training data is loaded from there. Args: - cache_mode: Cache mode. Can be 'none', 'load' or 'save'. Defaults to 'none'. + cache_mode: Cache mode. Can be 'load' or 'save'. Defaults to None. cache_file: Path to cache file. Returns: @@ -124,7 +120,7 @@ def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): if cache_mode == "load": if os.path.isfile(cache_file): print(f"\t...loading from cache: {cache_file}", flush=True) - x_train, y_train, labels, cfg.BINARY_CLASSIFICATION, cfg.MULTI_LABEL = utils.loadFromCache(cache_file) + x_train, y_train, labels, cfg.BINARY_CLASSIFICATION, cfg.MULTI_LABEL = utils.load_from_cache(cache_file) return x_train, y_train, labels else: print(f"\t...cache file not found: {cache_file}", flush=True) @@ -209,7 +205,7 @@ def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): tasks = [] for f in files: - task = p.apply_async(partial(_loadAudioFile, f=f, label_vector=label_vector, config=cfg.getConfig())) + task = p.apply_async(partial(_load_audio_file, f=f, label_vector=label_vector, config=cfg.get_config())) tasks.append(task) # Wait for tasks to complete and monitor progress with tqdm @@ -240,7 +236,7 @@ def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): print(f"\t...saving training data to cache: {cache_file}", flush=True) try: # Only save the valid labels - utils.saveToCache(cache_file, x_train, y_train, valid_labels) + utils.save_to_cache(cache_file, x_train, y_train, valid_labels) except Exception as e: print(f"\t...error saving cache: {e}", flush=True) @@ -248,7 +244,7 @@ def _loadTrainingData(cache_mode="none", cache_file="", progress_callback=None): return x_train, y_train, valid_labels -def trainModel(on_epoch_end=None, on_trial_result=None, on_data_load_end=None, autotune_directory="autotune"): +def train_model(on_epoch_end=None, on_trial_result=None, on_data_load_end=None, autotune_directory="autotune"): """Trains a custom classifier. Args: @@ -260,7 +256,7 @@ def trainModel(on_epoch_end=None, on_trial_result=None, on_data_load_end=None, a # Load training data print("Loading training data...", flush=True) - x_train, y_train, labels = _loadTrainingData(cfg.TRAIN_CACHE_MODE, cfg.TRAIN_CACHE_FILE, on_data_load_end) + x_train, y_train, labels = _load_training_data(cfg.TRAIN_CACHE_MODE, cfg.TRAIN_CACHE_FILE, on_data_load_end) print(f"...Done. Loaded {x_train.shape[0]} training samples and {y_train.shape[1]} labels.", flush=True) if cfg.AUTOTUNE: @@ -296,7 +292,7 @@ def run_trial(self, trial, *args, **kwargs): # Build model print("Building model...", flush=True) - classifier = model.buildLinearClassifier( + classifier = model.build_linear_classifier( self.y_train.shape[1], self.x_train.shape[1], hidden_units=hp.Choice( @@ -314,7 +310,7 @@ def run_trial(self, trial, *args, **kwargs): # Train model print("Training model...", flush=True) - classifier, history = model.trainLinearClassifier( + classifier, history = model.train_linear_classifier( classifier, self.x_train, self.y_train, @@ -366,10 +362,10 @@ def run_trial(self, trial, *args, **kwargs): ) try: tuner.search() - except utils.EmptyClassException as e: + except model.EmptyClassException as e: e.message = f"Class with label {labels[e.index]} is empty. Please remove it from the training data." e.args = (e.message,) - utils.writeErrorLog(e) + utils.write_error_log(e) raise e best_params = tuner.get_best_hyperparameters()[0] @@ -393,7 +389,7 @@ def run_trial(self, trial, *args, **kwargs): # Build model print("Building model...", flush=True) - classifier = model.buildLinearClassifier( + classifier = model.build_linear_classifier( y_train.shape[1], x_train.shape[1], cfg.TRAIN_HIDDEN_UNITS, cfg.TRAIN_DROPOUT ) print("...Done.", flush=True) @@ -401,7 +397,7 @@ def run_trial(self, trial, *args, **kwargs): # Train model print("Training model...", flush=True) try: - classifier, history = model.trainLinearClassifier( + classifier, history = model.train_linear_classifier( classifier, x_train, y_train, @@ -418,10 +414,10 @@ def run_trial(self, trial, *args, **kwargs): except utils.EmptyClassException as e: e.message = f"Class with label {labels[e.index]} is empty. Please remove it from the training data." e.args = (e.message,) - utils.writeErrorLog(e) + utils.write_error_log(e) raise e except Exception as e: - utils.writeErrorLog(e) + utils.write_error_log(e) raise Exception("Error training model") print("...Done.", flush=True) @@ -435,15 +431,15 @@ def run_trial(self, trial, *args, **kwargs): try: if cfg.TRAINED_MODEL_OUTPUT_FORMAT == "both": model.save_raven_model(classifier, cfg.CUSTOM_CLASSIFIER, labels) - model.saveLinearClassifier(classifier, cfg.CUSTOM_CLASSIFIER, labels, mode=cfg.TRAINED_MODEL_SAVE_MODE) + model.save_linear_classifier(classifier, cfg.CUSTOM_CLASSIFIER, labels, mode=cfg.TRAINED_MODEL_SAVE_MODE) elif cfg.TRAINED_MODEL_OUTPUT_FORMAT == "tflite": - model.saveLinearClassifier(classifier, cfg.CUSTOM_CLASSIFIER, labels, mode=cfg.TRAINED_MODEL_SAVE_MODE) + model.save_linear_classifier(classifier, cfg.CUSTOM_CLASSIFIER, labels, mode=cfg.TRAINED_MODEL_SAVE_MODE) elif cfg.TRAINED_MODEL_OUTPUT_FORMAT == "raven": model.save_raven_model(classifier, cfg.CUSTOM_CLASSIFIER, labels) else: raise ValueError(f"Unknown model output format: {cfg.TRAINED_MODEL_OUTPUT_FORMAT}") except Exception as e: - utils.writeErrorLog(e) + utils.write_error_log(e) raise Exception("Error saving model") save_sample_counts(labels, y_train) @@ -452,141 +448,3 @@ def run_trial(self, trial, *args, **kwargs): return history - -if __name__ == "__main__": - # Parse arguments - parser = argparse.ArgumentParser(description="Train a custom classifier with BirdNET") - parser.add_argument( - "--i", - default=os.path.join(SCRIPT_DIR, "train_data/"), - help="Path to training data folder. Subfolder names are used as labels.", - ) - parser.add_argument( - "--crop_mode", - default="center", - help="Crop mode for training data. Can be 'center', 'first' or 'segments'. Defaults to 'center'.", - ) - parser.add_argument( - "--crop_overlap", - type=float, - default=0.0, - help="Overlap of training data segments in seconds if crop_mode is 'segments'. Defaults to 0.", - ) - parser.add_argument( - "--o", default="checkpoints/custom/Custom_Classifier", help="Path to trained classifier model output." - ) - parser.add_argument("--epochs", type=int, default=50, help="Number of training epochs. Defaults to 50.") - parser.add_argument("--batch_size", type=int, default=32, help="Batch size. Defaults to 32.") - parser.add_argument("--val_split", type=float, default=0.2, help="Validation split ratio. Defaults to 0.2.") - parser.add_argument("--learning_rate", type=float, default=0.001, help="Learning rate. Defaults to 0.001.") - parser.add_argument( - "--hidden_units", - type=int, - default=0, - help="Number of hidden units. Defaults to 0. If set to >0, a two-layer classifier is used.", - ) - parser.add_argument("--dropout", type=float, default=0.0, help="Dropout rate. Defaults to 0.") - parser.add_argument("--mixup", action=argparse.BooleanOptionalAction, help="Whether to use mixup for training.") - parser.add_argument( - "--upsampling_ratio", - type=float, - default=0.0, - help="Balance train data and upsample minority classes. Values between 0 and 1. Defaults to 0.", - ) - parser.add_argument( - "--upsampling_mode", - default="repeat", - help="Upsampling mode. Can be 'repeat', 'mean' or 'smote'. Defaults to 'repeat'.", - ) - parser.add_argument( - "--model_format", - default="tflite", - help="Model output format. Can be 'tflite', 'raven' or 'both'. Defaults to 'tflite'.", - ) - parser.add_argument( - "--model_save_mode", - default="replace", - help="Model save mode. Can be 'replace' or 'append', where 'replace' will overwrite the original classification layer and 'append' will combine the original classification layer with the new one. Defaults to 'replace'.", - ) - parser.add_argument( - "--cache_mode", default="none", help="Cache mode. Can be 'none', 'load' or 'save'. Defaults to 'none'." - ) - parser.add_argument( - "--cache_file", default="train_cache.npz", help="Path to cache file. Defaults to 'train_cache.npz'." - ) - parser.add_argument( - "--threads", type=int, default=min(8, max(1, multiprocessing.cpu_count() // 2)), help="Number of CPU threads." - ) - - parser.add_argument( - "--fmin", - type=int, - default=cfg.SIG_FMIN, - help="Minimum frequency for bandpass filter in Hz. Defaults to {} Hz.".format(cfg.SIG_FMIN), - ) - parser.add_argument( - "--fmax", - type=int, - default=cfg.SIG_FMAX, - help="Maximum frequency for bandpass filter in Hz. Defaults to {} Hz.".format(cfg.SIG_FMAX), - ) - - parser.add_argument( - "--audio_speed", - type=float, - default=1.0, - help="Speed factor for audio playback. Values < 1.0 will slow down the audio, values > 1.0 will speed it up. Defaults to 1.0.", - ) - - parser.add_argument( - "--autotune", - action=argparse.BooleanOptionalAction, - help="Whether to use automatic hyperparameter tuning (this will execute multiple training runs to search for optimal hyperparameters).", - ) - parser.add_argument( - "--autotune_trials", - type=int, - default=50, - help="Number of training runs for hyperparameter tuning. Defaults to 50.", - ) - parser.add_argument( - "--autotune_executions_per_trial", - type=int, - default=1, - help="The number of times a training run with a set of hyperparameters is repeated during hyperparameter tuning (this reduces the variance). Defaults to 1.", - ) - - args = parser.parse_args() - - # Config - cfg.TRAIN_DATA_PATH = args.i - cfg.SAMPLE_CROP_MODE = args.crop_mode - cfg.SIG_OVERLAP = max(0.0, min(2.9, float(args.crop_overlap))) - cfg.CUSTOM_CLASSIFIER = args.o - cfg.TRAIN_EPOCHS = args.epochs - cfg.TRAIN_BATCH_SIZE = args.batch_size - cfg.TRAIN_VAL_SPLIT = args.val_split - cfg.TRAIN_LEARNING_RATE = args.learning_rate - cfg.TRAIN_HIDDEN_UNITS = args.hidden_units - cfg.TRAIN_DROPOUT = min(max(0, args.dropout), 0.9) - cfg.TRAIN_WITH_MIXUP = args.mixup if args.mixup is not None else cfg.TRAIN_WITH_MIXUP - cfg.UPSAMPLING_RATIO = min(max(0, args.upsampling_ratio), 1) - cfg.UPSAMPLING_MODE = args.upsampling_mode - cfg.TRAINED_MODEL_OUTPUT_FORMAT = args.model_format - cfg.TRAINED_MODEL_SAVE_MODE = args.model_save_mode - cfg.TRAIN_CACHE_MODE = args.cache_mode.lower() - cfg.TRAIN_CACHE_FILE = args.cache_file - cfg.TFLITE_THREADS = 1 - cfg.CPU_THREADS = max(1, int(args.threads)) - - cfg.BANDPASS_FMIN = max(0, min(cfg.SIG_FMAX, int(args.fmin))) - cfg.BANDPASS_FMAX = max(cfg.SIG_FMIN, min(cfg.SIG_FMAX, int(args.fmax))) - - cfg.AUDIO_SPEED = max(0.01, args.audio_speed) - - cfg.AUTOTUNE = args.autotune - cfg.AUTOTUNE_TRIALS = args.autotune_trials - cfg.AUTOTUNE_EXECUTIONS_PER_TRIAL = args.autotune_executions_per_trial - - # Train model - trainModel() diff --git a/birdnet_analyzer/translate.py b/birdnet_analyzer/translate.py index c8aada3f..84b2a8ff 100644 --- a/birdnet_analyzer/translate.py +++ b/birdnet_analyzer/translate.py @@ -18,7 +18,7 @@ """ Sign up for your personal access token here: https://ebird.org/api/keygen """ -def getLocaleData(locale: str): +def get_locale_data(locale: str): """Download eBird locale species data. Requests the locale data through the eBird API. @@ -52,7 +52,7 @@ def translate(locale: str): print(f"Translating species names for {locale}...", end="", flush=True) # Get locale data - data = getLocaleData(locale) + data = get_locale_data(locale) # Create list of translated labels labels: list[str] = [] @@ -72,7 +72,7 @@ def translate(locale: str): return labels -def saveLabelsFile(labels: list[str], locale: str): +def save_labels_file(labels: list[str], locale: str): """Saves localized labels to a file. Saves the given labels into a file with the format: @@ -96,9 +96,9 @@ def saveLabelsFile(labels: list[str], locale: str): if __name__ == "__main__": # Load labels - cfg.LABELS = utils.readLines(cfg.LABELS_FILE) + cfg.LABELS = utils.read_lines(cfg.LABELS_FILE) # Translate labels for locale in LOCALES: labels = translate(locale) - saveLabelsFile(labels, locale) + save_labels_file(labels, locale) diff --git a/birdnet_analyzer/utils.py b/birdnet_analyzer/utils.py index d4278eb5..6260c32c 100644 --- a/birdnet_analyzer/utils.py +++ b/birdnet_analyzer/utils.py @@ -1,30 +1,14 @@ -"""Module containing common function. -""" +"""Module containing common function.""" import os import traceback from pathlib import Path import numpy as np -import keras_tuner.errors import birdnet_analyzer.config as cfg -class EmptyClassException(keras_tuner.errors.FatalError): - """ - Exception raised when a class is found to be empty. - - Attributes: - index (int): The index of the empty class. - message (str): The error message indicating which class is empty. - """ - def __init__(self, *args, index): - super().__init__(*args) - self.index = index - self.message = f"Class {index} is empty." - - def spectrogram_from_file(path, fig_num=None, fig_size=None): """ Generate a spectrogram from an audio file. @@ -47,7 +31,7 @@ def spectrogram_from_file(path, fig_num=None, fig_size=None): duration = librosa.get_duration(y=s, sr=sr) width = min(12, max(3, duration / 10)) f = plt.figure(fig_num, figsize=(width, 3)) - else: + else: f = plt.figure(fig_num) f.clf() @@ -56,7 +40,7 @@ def spectrogram_from_file(path, fig_num=None, fig_size=None): f.tight_layout() D = librosa.stft(s, n_fft=1024, hop_length=512) # STFT of y S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max) - + return librosa.display.specshow(S_db, ax=ax, n_fft=1024, hop_length=512).figure @@ -104,7 +88,7 @@ def collect_all_files(path: str, filetypes: list[str], pattern: str = ""): return sorted(files) -def readLines(path: str): +def read_lines(path: str): """Reads the lines into a list. Opens the file and reads its contents into a list. @@ -315,7 +299,6 @@ def mixup(x, y, augmentation_ratio=0.25, alpha=0.2): mixed_up_indices = [] for _ in range(num_samples_to_augment): - # Randomly choose one instance from the positive samples index = np.random.choice(positive_indices) @@ -373,154 +356,7 @@ def label_smoothing(y: np.ndarray, alpha=0.1): return y -def upsample_core(x: np.ndarray, y: np.ndarray, min_samples: int, apply: callable, size=2): - """ - Upsamples the minority class in the dataset using the specified apply function. - Parameters: - x (np.ndarray): The feature matrix. - y (np.ndarray): The target labels. - min_samples (int): The minimum number of samples required for the minority class. - apply (callable): A function that applies the SMOTE or any other algorithm to the data. - size (int, optional): The number of samples to generate in each iteration. Default is 2. - Returns: - tuple: A tuple containing the upsampled feature matrix and target labels. - """ - y_temp = [] - x_temp = [] - - if cfg.BINARY_CLASSIFICATION: - # Determine if 1 or 0 is the minority class - if y.sum(axis=0) < len(y) - y.sum(axis=0): - minority_label = 1 - else: - minority_label = 0 - - while np.where(y == minority_label)[0].shape[0] + len(y_temp) < min_samples: - # Randomly choose a sample from the minority class - random_index = np.random.choice(np.where(y == minority_label)[0], size=size) - - # Apply SMOTE - x_app, y_app = apply(x, y, random_index) - y_temp.append(y_app) - x_temp.append(x_app) - else: - for i in range(y.shape[1]): - while y[:, i].sum() + len(y_temp) < min_samples: - try: - # Randomly choose a sample from the minority class - random_index = np.random.choice(np.where(y[:, i] == 1)[0], size=size) - except ValueError as e: - raise EmptyClassException(index=i) from e - - # Apply SMOTE - x_app, y_app = apply(x, y, random_index) - y_temp.append(y_app) - x_temp.append(x_app) - - return x_temp, y_temp - - -def upsampling(x: np.ndarray, y: np.ndarray, ratio=0.5, mode="repeat"): - """Balance data through upsampling. - - We upsample minority classes to have at least 10% (ratio=0.1) of the samples of the majority class. - - Args: - x: Samples. - y: One-hot labels. - ratio: The minimum ratio of minority to majority samples. - mode: The upsampling mode. Either 'repeat', 'mean', 'linear' or 'smote'. - - Returns: - Upsampled data. - """ - - # Set numpy random seed - np.random.seed(cfg.RANDOM_SEED) - - # Determine min number of samples - if cfg.BINARY_CLASSIFICATION: - min_samples = int(max(y.sum(axis=0), len(y) - y.sum(axis=0)) * ratio) - else: - min_samples = int(np.max(y.sum(axis=0)) * ratio) - - x_temp = [] - y_temp = [] - - if mode == "repeat": - def applyRepeat(x, y, random_index): - return x[random_index[0]], y[random_index[0]] - - x_temp, y_temp = upsample_core(x, y, min_samples, applyRepeat, size=1) - - elif mode == "mean": - # For each class with less than min_samples - # select two random samples and calculate the mean - def applyMean(x, y, random_indices): - # Calculate the mean of the two samples - mean = np.mean(x[random_indices], axis=0) - - # Append the mean and label to a temp list - return mean, y[random_indices[0]] - - x_temp, y_temp = upsample_core(x, y, min_samples, applyMean) - - elif mode == "linear": - # For each class with less than min_samples - # select two random samples and calculate the linear combination - def applyLinearCombination(x, y, random_indices): - # Calculate the linear combination of the two samples - alpha = np.random.uniform(0, 1) - new_sample = alpha * x[random_indices[0]] + (1 - alpha) * x[random_indices[1]] - - # Append the new sample and label to a temp list - return new_sample, y[random_indices[0]] - - x_temp, y_temp = upsample_core(x, y, min_samples, applyLinearCombination) - - elif mode == "smote": - # For each class with less than min_samples apply SMOTE - def applySmote(x, y, random_index, k=5): - - # Get the k nearest neighbors - distances = np.sqrt(np.sum((x - x[random_index[0]]) ** 2, axis=1)) - indices = np.argsort(distances)[1 : k + 1] - - # Randomly choose one of the neighbors - random_neighbor = np.random.choice(indices) - - # Calculate the difference vector - diff = x[random_neighbor] - x[random_index[0]] - - # Randomly choose a weight between 0 and 1 - weight = np.random.uniform(0, 1) - - # Calculate the new sample - new_sample = x[random_index[0]] + weight * diff - - # Append the new sample and label to a temp list - return new_sample, y[random_index[0]] - - x_temp, y_temp = upsample_core(x, y, min_samples, applySmote, size=1) - - # Append the temp list to the original data - if len(x_temp) > 0: - x = np.vstack((x, np.array(x_temp))) - y = np.vstack((y, np.array(y_temp))) - - # Shuffle data - indices = np.arange(len(x)) - np.random.shuffle(indices) - x = x[indices] - y = y[indices] - - del x_temp - del y_temp - - return x, y - - -def saveToCache(cache_file: str, x_train: np.ndarray, y_train: np.ndarray, labels: list[str]): +def save_to_cache(cache_file: str, x_train: np.ndarray, y_train: np.ndarray, labels: list[str]): """Saves the training data to a cache file. Args: @@ -543,7 +379,7 @@ def saveToCache(cache_file: str, x_train: np.ndarray, y_train: np.ndarray, label ) -def loadFromCache(cache_file: str): +def load_from_cache(cache_file: str): """Loads the training data from a cache file. Args: @@ -566,7 +402,7 @@ def loadFromCache(cache_file: str): return x_train, y_train, labels, binary_classification, multi_label -def clearErrorLog(): +def clear_error_log(): """Clears the error log file. For debugging purposes. @@ -575,7 +411,7 @@ def clearErrorLog(): os.remove(cfg.ERROR_LOG_FILE) -def writeErrorLog(ex: Exception): +def write_error_log(ex: Exception): """Writes an exception to the error log. Formats the stacktrace and writes it in the error log file configured in the config. @@ -595,7 +431,6 @@ def writeErrorLog(ex: Exception): def img2base64(path): - import base64 with open(path, "rb") as img_file: @@ -619,15 +454,15 @@ def save_params(file_path, headers, values): paramswriter.writerow(headers) paramswriter.writerow(values) - + def save_result_file(result_path: str, out_string: str): """Saves the result to a file. - + Args: result_path: The path to the result file. out_string: The string to be written to the file. - """ - + """ + # Make directory if it doesn't exist os.makedirs(os.path.dirname(result_path), exist_ok=True) diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 6378c02b..00000000 --- a/docs/_config.yml +++ /dev/null @@ -1,6 +0,0 @@ -theme: jekyll-theme-cayman -title: BirdNET Analyzer -show_downloads: true -github: - zip_url: https://tuc.cloud/index.php/s/myHcJNsDsMrDqMM/download/BirdNET-Analyzer.zip -#description: BirdNET Analyzer documentation. diff --git a/docs/_includes/head-custom.html b/docs/_includes/head-custom.html deleted file mode 100644 index 4db20e04..00000000 --- a/docs/_includes/head-custom.html +++ /dev/null @@ -1,9 +0,0 @@ - - - -{% include head-custom-google-analytics.html %} - - - - - diff --git a/docs/_static/BirdNET-Go-logo.webp b/docs/_static/BirdNET-Go-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..3568a5ced5cbe3043ee7949fcddcb527a96224b1 GIT binary patch literal 117442 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

c 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�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 z01yC30000100IC=0000100KBdNlgSO0000001N;C00KYo00000001~bNlgSp00000 T01Z%LWmf?Z00jX600000EA9=F literal 0 HcmV?d00001 diff --git "a/docs/_static/Muuttolintujen-Kev\303\244t.png" "b/docs/_static/Muuttolintujen-Kev\303\244t.png" new file mode 100644 index 0000000000000000000000000000000000000000..737aa5c907bf822da03d7a6b6f7aeac5349c1810 GIT binary patch literal 260180 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%0A?>$gj%JPRne#5W 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

euHj7}3d6Nw&(-jxA)KWZmd3)e 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
    iG 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 BR9FB2 literal 0 HcmV?d00001 diff --git a/docs/favicon.ico b/docs/_static/birdnet-icon.ico similarity index 100% rename from docs/favicon.ico rename to docs/_static/birdnet-icon.ico diff --git a/docs/_static/birdnet-pi.png b/docs/_static/birdnet-pi.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc0d0aef4e0a8f23d0b4c63159c8b98d776d854 GIT binary patch literal 12666 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 literal 0 HcmV?d00001 diff --git a/docs/_static/birdnet_logo.png b/docs/_static/birdnet_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1f6dfa916fe4883e715f3638b4957b7e73a49c72 GIT binary patch literal 21410 zcmbSRV|OK7vplhFCnvUTW0FiVv2EMdiS1-!Pi)(^GqIhCb)WYy+z)&A{@82nTHRe; z6{(~sjRcPm4*&p=WMw3N{TIjncVMCayQ?*8eggn1R>4tYWjU~e}m?P&;aa8`W&U1tmpZs_)JNcpVK*`#_loz>8YAl^VC392P zEuY7G^l32bv%~J=z8(f;zOI#V(h-hlZa$lHzjJc-43SbyK}jnsEB7lY>Hqa~9f0ewt0;0p-;eUX?Nj~R#?s0gSA;2)Y01YX?>hOnCd zyMJ$Tpu75O81y8QfG&b8a#-jhYUHzn0#=?LFAGova|91OIP!r^6GQm)M+ig$tbl7G z?dkzKVI^YfpNQWT4H<)u040zK{%Ck+dh2IYYkXPJ1@N4 zNd%kKs+QOwvrfRe`f#J&HbE}7>TnD`Kj28Wg9^NH;7@WsLX*LK0e$bq;jo@xQ)&6P zZxkVnTbw0_{$60>+QmqHKLB5VU8E6B7Zmm>2C$MJa)87hNfbL)jJ`0y7eb$`VDGh- zFGMvNJXy<@1 zSIFE(KcYzlbei6q0yWH==>yB;0^fQRDBLNeX*u?DbpSU6&$5f+7@>0XkS)GUpQhl{ zpaS3vd3Q9X{;E5-u}C(KE--<80+;>hf^{LZ14bnG#HJK-WZu=@8$u4fuL$5jfve-w z^hR@O>C`7!x+DV^^K<+#mtMbj-!kp@2^rXK0N4kKiLK=9gI6&EzxD^>46j+0Fx+l0 zSPo6Ev8Z+ zS)5Fb1T!Xs5*Ahy2A5*#t~j2+HZ9`{PAY&WYTu}U0j*VR2!@VOCwHm^m~SNO(^Deh z6<;A>zgs5fVH4o1Xx{aj=-CxQvE{-W3$G__vi=U z9*ds_qr(>17{0gMZv|{k;`)5bEK*&Za+Zmb^Zgeo^=o^W0v_ z0ANmX-sp}Y+J5@0!mlI$=6dB1{K-DjLJXG`igXmE(;@COQ}MlD24JECE3yo1K<>+p zsmJLO#XuBQ4(H*ifxOLugn7lMbVRHvzvojbS`+3u@xWj)m2euX=0t2BULp^DhXV*F zA$!ug>gXDK)xhW#!I;gMj+yO7AXb(L(q|>|oTU7F&xC}@RHJmnOfUZpUDH`1ALgRZ zj>$QmFh^=HA@Ss&-0Kuw)@Cn5IH=4}+LhQXwi?UY5*bD8L!Lz=Wh74XOY)K=9xPwU z9*$7_2clM`m|ZW4VNCZ)^&cj4BXLN=LBNONQ%JHbXYrD&Y{x65DxYvVYl}BcXwW(; zOI7$}%N&ASmdRK&W9?t{N>{@eMtXOJUnw5OUKV7I5?}(r{yp{Gv_4i>$wcmUCjjwD z&d)TgRY@IqRoCcgBq-;ZLCjA8ODE=tpfS-i7NCay_zyq*FGV^&uU_!my`)*Ep(w`M z3v_@6`v`tC>(5^t2(y$1X;AhCNxLjjNJEsgZS9f@w!Mcr2tD=2lgXHiGv#c?lG6$X zDb(>CvT&r*HRS+jKn>Wf-cMkgWeqQVgCot%EVEA@6`1ozT9nl+B+l$E}zmc5D%0EICP_q^~-i(@7x{?Xti=#r?U(wnI zN+V%5tJu3J@*@t`-Mww<+}&Sn8d)^JLSt$YS0_#5TiX2eY*LU#79DCbT<>_t8d=i| z!CGE`u7GtaHYIafrlnU;j_R9VNE>SW){0-YdF~^*6}?j%1X2^>Ia&_n02vo{6!9UI zFiT9$v5+Z9j&i<3SfBO{RlkV20^8P=Uj+=DHL%Rk3adCz@fi)85tx~FLZ9L=#mMqN z`cC$PN|n2<*#P^XC}lM@QMODes%-JTo8&leI5H>ztXragtc&8b`c(vfq^G6=ftR6b zhrdq!Q&Q)yObL>}>m~lj)!(XlydQ%%tB^d0t%fd8ye07R$89n;Ll{xH8D|n%;fE43FmaB?7$ZEieSu%iP1ZV$kbK=EyK|4A z-r68Ldh1=m<8m7|z%o#RtJNpUo6oO{BIZ!i=C@shZq)SpwheYeT!)Ow)9@Y_0k)1Z z(fLo0Q#)^I;g^?^`WBi042D-T&Z$!M&8yh_qe6s6R25NU=(ERZNA<|2q%EHteqo+@ zC6B3JMNVgS=E-s8ruD=KlpP*uxn^Y3Z8t~x?d3$ocYycer%2`$(3kiZo5#64xR7#w zexB?rjqQq(HiHFkjx6F+Xok0boCI5;kf^lIUeKu-JKE|fnEdzHZkQxNz3mZGeg3D= zW8j1YtO0TYqGk)UPPLei4|upy-^nx5R}isQq0D4RhTTjm-V+$gJMzEWEj_!|v7pQl zYwh;F{LxazYESb$zRRucNJ9~vyvOj^-)TwjMBXh7aUv{;3eV!os%yTu#_PBYlkWCj z*b$X!hQACM#Zv#0oaFRMO{+ubg|p>r{FEY?pxAt_>!(O}pC%rxt2=$1_I#YKW?>`{ z+KyCe7s;p2BzFxrSYsQYEYjur%v%V752>M*q0&x}YXN4TOB6Q3<>pqmJwE9;PXBq> zec<(%AK#+${0nPZXHj7@U{Y>{ic-5Q4bvzxu6NlaLy*1i`Bd_#*;)@Lq=&KVs6aP~ zo*3#o&R2v8Q&h*CUlI6s6!jm3s4&=|lov&y(IDMzuEQ5(Hg}D<7e}z?A0o3V@vvu;SRFM$b=A%9U`IH46Z^63y;>_S+P5-?O=Iy zfWjzkI=15S8}XpR$}w|9*O7e|d5A@ly4a=5Pxrfd&Bo?U z9{6{n*%lEhuni3=N<#x#-FWU~v7k>v$EVY=hj9`6nb5h%N+Ib?LJVQ4>|%c%O3KHF zzhRxQR3SU)qNW#HrA!{H9m%`5xf-qGI^-{j7*(j!R*AGqhN=CB#tGkK#p=TM0ts zs=44IC@nQX#6%fPtRpOzaf44jYz-DfWJ&g7$VT zKxj)vCBC*cfsz5Y`bYQAXQQR^de8UjRa8Xj0xKcSm7UN8`#w@ac*DsS!Iz_=?*U4j zoNyQO-wg0XT)lM2fvie$*`c{_-~TtjLi(g@W$xbvgMDpRZ~R zIxUDl(ix>C&D!T^kk#UW#Ot=$NJvOD%*>-XyxhB$RTc%6mD-s2*Bg>H8gV{?Tg09+&uaNFUq} zIFDE@tgleBL}Y7~;Xlm^r#IINs;bEft2Y@1J-grRFt(Ig#jUJ6gr_C8mzd1{zT$D; zH;p0UM#~}ctcwf0PAOjVw7PS)UGIQdo#rDr7+G;!jH6sHo0H5Q=KUK8{-b}Ui@!a^ z<;#ywmKZeE-l;ie;py>+&*1IFn#QOXzFf6Rnmi8b6yn_~1{=F`Bf3@P3%TNVkG}3> zx0o4v#|}`W7LV$ zWT48i0*5$ar&$$6V6eay)4~16qF}mUb-7j#QON?htJg-#XcpHn{uq^9)yBv^? zZ1z961TFwI%SaYH9J>1MfCL?%H?+v7NK*gf=4F18>n1uvO(T0;>tEftr#N@COy_2) zUXJj0m4?dnw-vYTd8KM1swrETcH=e>=KZR{=? z*h(P2B$cL$OY%z%)n~eYwhAQT1Us9Y2;H1p_>3kp0T;CdRPAhD*o18gp2BVxiBuc3 zdlPbbc?dck1|?0*godrkO8;f&`CrOWWau2kkD_?t=w6|A+(=caz>v5CitV8zH>ydf zur5}cu*&YFZ^7{p^TGxar85KLSdqbexqKc;&?nC77q#Ksg~USN?{LHgD+IMv=!qi2 z(u!bqXkm6G^A@sFb)HFs_`nMzQcE#bHp5IvLvt{GX$jH51_y)`wtIXmMR3ov)T6cb zPRT?0I6Ud+{9in4qjCYLB*sp$;WD%R4~ejp@{kgoW<6MZTx$S{#q9IQa6@} zSdpPYcAE!lb+kdYD?=bY3@qiioIRd-)t50WEHeIZ)P`Vg1assqHYi*M14#EKVwzf* z0W~FGe-=dr8Yz^xd}2J$S3+c{dbfAtk2jC+k!WVdV}dLGXZW3P??c8-H9vC&5ZrGJ{Ifz|6l|>raEMB70vh?OI1uKRH05P_$gB+ag)CJYD zKgG5DH8{8w#jII6>;uKl=E0UU%&kg#qTkewl|B)qjQ$GsMyyDDKa1oei;~mDFSyFn z-#m#{$ic7~0jFejhEN%RALwJHM0_f5#7Ann39>M`B8u@xRoszuP zvF-P*MfFI5I94p|Rn!*#MD<{nHuz=@e|x4}ci6=k3?*MkY>X+HAhV>vR1B1vjt?x4 zZwMh0J`>rGJ7(r6#E&B!1#ysfu%Q2=`BL|Y+Ka)-%M$-u3Q%^J3Hx_Nj~h>-}a!`8@mhEVP#va`*Y<3Wya z_?hS$hY4(C+&e{Jfh;uqqRGf~>q}AyNp?Zes7e49avAE?$uM}EL2=pd#1hm9;b4p` z^SerTfnOI%slNImo(K%!{=f__Y$8?ca0NkEH@65ETGC-Et6%e+b-4B<(_-kf4A-0K zAdZKEuV29j6SzVS|F+7C!}IS$^~-J(Iyub&FF5Oyb0K z!r5onsS&A{!*_Kd)08DRg(2c$G)KWPb>LT=&c_QPRlhvm{2mw>o=jvf2Y)Sh+0FF* zO+)Y7eM8iQIe~dEyE0S=0kTO}$wRDB*7f~jv|wz&Icv<&== zuma7x`4?Ip``D{mQw1kT6OLvpTyCzw+EkMxdIs(pUPShGZd*72pGZLpU!2EB9&9xv zkQs59tG@vb4T`)@iH!|&uFiYfoP(?NzxGnP_fI9BUz_b#-o5r5o%GsAvOrV{>mgK| zyJK-9ZLpM)6;d2*&m;k5KWTs$PLil2OH7LfL6V-l6%ZwdM%kH%2HZepbXQ<-%q1A3 zBfDHUhlQ81!ir;`<>7$COx01cL*VNlr!tvBzp>)t)Z=~BFn)%#Bs}H|!YPHF9)Q4N zgHH=fQUI5N7ZsM4)`9W=J~;_<5ZefCxR(Z#(IsOP8;FJ?#ZVebB5~+bEnpqX0ea6d zVQk;wjS1Y>Ltn0Ah0Gd+H(2rp@3EEhJ%+CZj}Ki#&|LFpQDkEj2-p`WSBb@)!LHL9 zIgjUsz(MgYK+D5uWFB-nzClOG^&oKgZ1YI!rtcbECfpXTiEZ$Vs+D3mX20j`p zHrFRaCrh9V^?ghz-LGu>nl*k$n^46FEDZMl8TBS~4fMp|kfg66B1VRh@RIX5cJGi> z>5>ywvO|rbAmnQ}gKWqwJ|%~fq(h~n5BZ4#l1Zh^IqkkEps_5ZnbFJAqLP=C4$(*0 zrV=iA52gr_quf1yE|`quE~i&cDLjpf5F3vE2Pe5x{t?QHFGa2Cf{|qhPn!6ksI9F0 zVVFgtU5EH31C7L(`ycMV!hXzT2S+n!?Jz;1bL9ocWlP6BStubLKG@lsG(s+mKvG)ZjZAllW4^<}7;AOb0lW+?=;aHI=+FhoPh z#HR6j!{+-~9;+kuRRzD{Wfa_{9T=}kfG)T=zZ1C+xCjlxgGCOnBtOD60zS)ZNW5@u zg&NOukA)W9rvp+fF$Hpm4w!5DH?HhFztt=XT1r1;o)p5dto>yQ0Ka0%NF~zx1TxQ< zddZP`7of9kf+1(F#vS=^I30&8&}WL#WvItK;7L)VNOjeb14vI_;93~vF03wu%tJo@ zN%^%EAq>S%mEfI!B8x?D>0P!^=1I==d0kQL5tV~rGnxn_;U%Bi_=QCOY z?@C(7;%Z|NQ3-LT|KY8{kd{fX8`|Qhu&nhGd7N^I_OT>15$Scadl9rGqrY$>%NVj? zJuYq2B${gWgKE(L`|}}6S1D{z7<`TVBC0ke+Jy)yssxWVSyNQanWFm6SfONOA%qbN zdjtdZ?OaIo`uV?0M+@FK?rJ-*|2Q|j=_PL>yPlc^Co|)}z?!~Vx_#b#4YYq&uH`|HX3{fj^h{0^&)r`w)drx>zg(I-K&n94JdW~&rbQGr_{*#6uMRB=4b;7m!q{uw^E%vG!m zQdYi$Q9?s1U}%9?*A*4Ogrc)Cd>aHs9#d1j_``u9)w2{OYaP?k8$_M8GQYT%=Q51;gX#+iLk!KyxZg@eZjvd zK}@IH-wfVF*{!yt3f#J371Vhd!dzTUBKz02{aKIjP^e`wO=Dr!X=4JwS*~)f3F26$ zt3-oap!U+Y4k{xM{&T>*oPd?^O9XJ2LnhC{k0oxRqs#M@cn{xy^y6P~iWe&qISCks z+>b1|P;j(`)Qy;O&}sARNm(JAYWiz^kJ_+{!L>|7KgTzu#vLj%QFOyCXI`)MK~dmOMO4wn88_(?U&a zfKUk--9k$6CVe`^6s573FaYW5X?S&cnG6*cRtk#_o1!;#rp}Od+-z>84JJ1$T&9UI zu>l@(5bcf#m`KXfj`#lI4|;V#C5ma{K6Cxmm3MtOW`<|1jrT9{5trC;N??-3C=)wF zQp<}VN5uHo9r@$n=Dyz@K?+65-vfMA)q$z2a7m0-nQX`13LO2Bw^$vP=MF8NBZ{&i zdyr%Y{L1_U{E&GAcpojqxalvDyfcor0&)C7E4=t8h*3jOR(aYomZ@qbKf~Vp7XiYYmZf?A{KYlsb8DQr<~=H;;nr zlcIq%wKV@Rd&#_A(la(SOiNQbC;XjcQNC0$3mpXT0+tCnIyCrn(Z%u5<2bmLY?8h} z3B~@%RINW&>ItlYfaY+}d?&HX{KM44G1g;pxgp0d`b!v;h`mwG(|UDH1s%idbx8Vk zm>Ktd;~^Z zw!!Ni7!32_p3?k<%baa*mCt(TF)bF4SQ@?v(xF;$6Wy5G+m{*#V zYLwLfl$akpp92APlCW#FycF&MIwTSs#YRQl5@lyd*62lVbu5p`FHkI@xyLKTyd?m| z8&*pG@u`K+z{HT{76i-9Ao)S;Vtfzdh57@h3uz(H9mWWMRz=%A6_W_a@>O$0vr-dq zj|1SwbSRudd#;h@`s)39_4uRLJpmRunga}^P^l0g_q{=*KY8cKQ(CqXD$uIqx6&XZ zQy2!GKg!C zgG7AwH}E3fD{9MEQ)LOjm0#`$c~R~Jzr?x0mi@PE3bWX6a48$afyYttsqOsQArB|Q zk6>970{NuLmSAG@4HQ2TA?=lEvtO{@5l%ojp}8T~73)Wpbn9q?d;c#UPN+X&DX6n*yNtiaHUMBu5rY z-JIljc=lq4uYZpD>sMs2Y=O~&_5cZ+q*8KbMs=4hH_Py6UBsY$0Fq z!Ol9n<5Q%`R^?~E?TwqlN5G;|uGsAZHeJ**O!C`$-2?U?-xE7DXSdHp z{a0xk<5W%w8jZjZpgM$W6BEle3nQZ?8${<*eDvR+oLA8J9tF(|QT5~(PM5dZe=Mi- z#b!lkU89K6ChBoZ7eSOC1iU?2Vm+#iqyS*xNoX)sjD(wGI`;I0A@r+cD0k(BTydnp zY{ao9Jj&-arSHeYBI`-c`0zmaf-24Zxfs|`rVu;i(ZCPp(HWxuy7xR2+lqam<4rpe zZ%S%vK}V@}7n5eW%2Prcz8uAeJo{gpBp8ISyoyVSRWw9MG`eU|f+Gti`uo*$#mlaQ zaNJ+4(de7Yp_Ua$->l&K{7W0B2a1JaXMKJJ{ghmfySYs?T4O$(gvP*`6xz3cSj)86 z|Ewz4X7fIJDJ?C3?8a$XfPj;tbl$Evc1U3xr1W#Dn`eNXAyf>HL|1Ty30dSy5kfRC|)}3TbdTy;F9V3xCCZf{QZg-pD{(0OA)_B^7)4 zWm3*tKKk=d>B;O!iTe{g4W4qSz#yO%e2%;JD;tjg}?$SoZCMSv@^%m=)zI zaIM<6!6g+#Nb4=zRba5Hi}tM8t`x@Qh~Z64N2;ybv}UyjLmo#(N{R|A^Fs+K1@~0k zFu%d0KrLseNMqBpWR?)giU%J_Iz&bdN)3%<-wNYLYtz1P6~Ww6rc+i8_>vx6MpNK+ zZ|ba-j;Lm1q8!D%d1xr!kwkMj>0-6>_2=_AB837v(yP<3D3kvw1W_6^=wZB zm{Qh}G%O4e4qor8tpaFNW*K+e&2XrIm)w_Lop{bJ|F&B}8sj6PEpqJo^;E$!b-f5p z?f;|^5s*Ca4g|{ri>jnnb1uJu)k`m3&6`+poz_>tKm`sbS=WFWy^k&Ck2IejCowXR zO`u(8c}2|OVU9MZCJ~aQ*=G+)XZD{YD?jz8q0Y(!1KZA8)XYv$Gap>(Q<1W+T$jqi z;A2C-_oq45W3>|JEMvOja0CYl8?vxkV=zg86p){6$CIi%2n;YaP zf>WyZlcZE+zos+Y4AfeLdbk|XRYoj)r~>e3Fqs!eCv{DvWq2DMCGIa(AYk?X@T_n9 z0P8J}F8m!ynkn5+>U+rl@(Iq+#3HdYUMSyUV%**noa}$9Ef7)VE}J1CFBE=?C5z@&rHTMDYHFUMO9 zQ3_F}38JG3Dlbxlr5WfdPQtQ4kst*V5y%~`z&O7R%bpoN%_<-3RpK@a3L7C&8oO?d zsoy+}H3kFe*gK;I;zU$JlR4d-$08wldMvX+1{*<=n~CWtMUbqoHi?Wi0ZF~U<{s!U z#nDKDhE!EERJ$+M#g!k1E2#A`M6Bd-*V?PWd|GTpeSk3A(&mLfUsSNjg!MPu5a?UD z3xK$&+<=L)KCYbGI^t0DKY{3#&Q0*2Np|ovhN4Z=gd^_~8-1r6G(tWHT0C~fpCX|_ z6)9O0`MpE9?;ZSUA4=TXGJ#4K(-%p71?AD$&x~xgS(AoG4cut)ZUZ=oqRX;6s7g84 zLW#HuvA>`yt#MJ&{wuPPI8(9P&nij?>r0X4a4vLd+`lSfEVpA}l^j1l zuO7!TsXjUgv#%tm4^0^?7$6>`^QA8e(w4zHNTdqIr%a3MIC2~1XGGR+2Fq%Ghifgu z^ZgqYWa+^Drlj7+MiSA*hz`6%0i2+iG46L;R!9)ir*{X%wU~>>iIhUBEnD{lo}T6V zJA=moVl-_f!gsO3JKS)ZhWi((jEVkR+N})luN^#eogEczMaP-4#WH5Q8^1qo%TO$q z*Vgov9wRgOIuI24_d0$M8Drsp$+VMW#W=I8P9(*VZ?3=w&_uCX=!G1&1J-fI8oe7VssDN(M=<*7_gc>))uR4Z1XuNNr!oSX*7Q=nI2 zBtxT2L%2SuyG(68jtQjL{+9G8vJDC}*uv!FKd}5yaGG4T9}ZsCC}O}A`OnK>J85s4 z)k?Oy4$q&B-cBI-ApQswx-#L~V)V4!$nsrfFiKp7h>+eB(YkswuyLgTY?8lZqK+pC zhj9=fz&NKz8D@6k94m^c*FiAT$3iEqAz{PlQ%SONf_*2`Po%I*3v;v4Fx)&w8nAj! zE9qqH7E?L&@`lRIrqNpU^FRGckio809i(WllTh#0+17Yg<_p72Bq%7y&J_F15isj4 z#c}dP`%X97bC~UpYt`2aMT*V~le`-AC-F6PMyCl4Q8Y!3i>$B|YU1EBJYS-Hxo+(V zmo3YQYw?69@MzsDN!`5N*dQwOx6w4ieb(p3z{%zNQo5&1V_$~9Iy&JzBtt1rmiM(F;FDSLQ0wi zipx^c!P^pa{EgRS2=CY%yiKk3$HLKbt>2=OcCkRO?QKPvW!wfmc4|9KXC^ytnyG}s zxdZmSy@>#&Y$Gk$z^)6qS$5``>`6}d1oM?yFyD`{c~YOrxN3rW`{}3$d8um;(QfyfXZ@oA>=3WIuH-JoavC zd#L4Gzk7V?DvMORT}1$1$*f$B3A?DHS6(}RrPjN=9)_Mt{9lX;e2yIJew$-A?+7vF z{v*?HUof!RYQ(sy@zmkKd6fF9V|GG77~W4;6;O1m*=M1P;&+nCVEh-bhuGO9>VwR0*lyGDy@{EM6Y9qyOm+I9wm-W4o6$09-Y9VuXkN%>*}&h^i&)= z0A`*m;+C4y9mQYwyxaTUtK?1C;76IZH+b8yPYephR7M_i-ut7BX_@@jk`3@^0(X5L z?5id!HY{T|g?gv=o$`7)(``;66**33^ZwchPUi5sEd5}rP<6klIZ3Aed3@9J&eVHR z(+ON&UcLx7-ZKsurc}1EvmffDPltUYW~CB+av@1@rT4sCz&w0ev?$igsdMgQo%O|3 zPh(#UGe2V+y*F!l*HQyEO{!)DA6WmjiA;RFe2x0?MHD|gyp_!1%TgtEFm)hZG;zb= zS{b_2ZUUq4`Q;_>J%F&*;MF)s3h4|kPnSBNz`Y$B(eq(;7cehG3V~OX><>T~{XEBu zsV{+mPVjm-egT@>3Hq87X?Wt{R;k*mvOyhjai(Tkh8ovs?ESz4D{1W7vh6;IGq}d0 z&EQ6v!0FBK(p772SA_k2J{-prbEps+*Mi;EX$+S%9!kT{+tlg9EEIDJ>H2}|M2&4^ zmIq2Y!=x+{h*>h6frUAFSIlT_On4-fgpT+uJ|LE7;2;qOQU#kjjSG9 zG5WJ_d@y8NUZOHkzrhslxBoe9*W-$grLC=mg+-YqU$)=pKM?3lT zTf4C?yFYE1$M*Uu1bD*EA@zfhR{FBbL0k3GdJKw1&QDXNxIGb2kVQtJZG&A;HiQrE zD3!T1m!J99vkuQm*?8{L7HrOaxV^Bzm~4|+SP(|N;vfCHv{Sj_x>J!EY7bhuVIUCP zHWjw^KT{FPLBb5}j0n-$3&QmA-V*vZdWPz-Ea}q-i>%B3J1RV#DZ5rNIxSk_11(4M z>OiJnb8;C5@&_tuF6h zAyz8Nay`cD-s;OMDlD+n1|ge|zlOR^ygjNDlyibosHA`@W`Z&gyJNKlQ;DwnW;()4Ya{@QY-mHoxxR6POH^U2$kXg_&Ki;tO&ag3?B ziXp~QmJcQ{B8r60XI(6KUDP_TzmKQ0@2)#<_G<$^>D6ns!(fD;dAB?dV!aHiNKR(- z81Mk;>?8WLrk>mZf8Mtske_Y`AJz`XZPq$(evci`=G`PrJSC7!y~~7EoTauD#w_;D zv@%`@j4UM=9;G&O#6~JoWx_0TKH};NBQG~UmRHt@OPa;1)QH*!EYw^pbe!jI@&9s~ zt{J1obm6tt>czjZiW*GB{H*Y|KuxwF0S2|=C9}xZwdlEc2X>&LGNC0>@RvjbRjt?`_V* z0|Wc>z4XNqS38m^(y610tt2j= zxFnA)lV9#?I7A?MSDcRAq?u`&8x|j7> z^Yc3l#CFp@a~mBn)&I5{VC)!uB(^bvq+;0UYq39?IH>af{6RM@ja;3V3nj@ghq5RlPviL)rDowdrq8MO&&QRT8fJBKasSt|s}-2^ z`vM1jnSTs^&qv`yVt8V>WsfmW)E^`GG?_xR5=H4nj!+1u5q3{|sfHKD4|BHPm{|)x zzD>^J@KD&e*dF0%)qh4}sZqrBI1*|hX9ll!t(SC9a@JhUSw`Hktt+oY=Dv79V=V+!uROn3?pq5BpxlKtSNb zTS@vCd4|YuKdX8c5_3Igunm4bpU=)7|5^(Yz9S*nz!YElXo>rII&zCbc5Iwp1w%5J zTx`K@(;WZjK+8*Xznj901?rh1KqL(ZMPQ`;UCrMaYIZZ2VoP9SC>6yns*`?NTMObz z$6Bz*5C2(5`(4${>;|=$%&=&B49%q7m*s3|bA`&0v!Yz5G<&Cg(cdo5@%n@^j-CPK z`C|MGvz*gE1CRh%>q<0|XN9>1l9EWAJ~!Zc`SNs;X~%lt6tS`V^ILWQZPBS0IHGt{ zLyeTKgBs>kl}*O>9t3O9h7Lg(@5;tPVA^pm$gQccu}BSZcFO#hv1ohrB%=#yV`v~+q&oZq zgSLKHgJtTR5M;4oIpUsUCLj$1c=f31eOdIf`jBZd@v(RJ_uy{y8&o+Vx8-qD=Ja;9 zIOKuvanrZ4JeeT3z@a-jHD7+Nu{unYdui|ebL;g?@n>pZ$Kr$H&HO;ov(W2!JOV~s zV1hiwZ9mH27@zANZiDZpyo>qfZ#|g$@7|CThd0y(3e1-6`YN!a)MeN(@WQVNGfUG2 z=5;gZTk|eN6Z()g_j{I@a#$jHuTq_a4?>emKU_mRnZUMK)gp>b_fwI8#*0F}jnXnx zHrXNm&9K40TWuKCjGaVzrOl$2_-xG*LVcW75(Cp$;Gu|+GRKLAkcpO16XT}zwPIfF z5cv(3VSu%-;_hyw=YXe0OKaG%5S^adIT@XJFaBIFr3${<77rKDF3>K*_Un+n+fhBM$2b#rd zz4IsDddow$G4q810rEMH>vg6nj;I`7Ulpm}3^VPH&Y|ITosm^5^+$S*vGP1HEY0PA zh^YXoT58djP1-3zbGLYG)c=80>tpu0CxTz-32v(0$bARWiO2?AA|S4IGl6iEb#h0m z1@qw~Kr4fZ1LAI`^Lls~#~=wM6B~l34U*QX<(t75j)2R)zj&Owu*M&9|1M+AW1>!) z0~rE-M?S4+c+T;-9F~c{KoNE0(RKHEP}dnNR+9j9n6Cl-Z_0b^Z+v=7AweUfjB}sO z&ZSKaH{&n4T~6*RF_%TfCaxr=Eq5-uu<|w?Kg&RqU+aH5fyH1+7#p zVVKW#H_2k@EDfDw+y1gCeH!zq%1>eX@k1LWA-XQ-O4VQ&4E{U4c z(V=%tZ2=&(v04auGKqT~WxU4)9{MpWn?42cWjz&{f7}D$yOF$$S59)-VDnt>N#ne- zvl9CBMAgK}4g2t?v0JMvUEXzKLR*?2gk~lfFyg*8KL{4Cz>mJRY`wd0RTR2H=8gid zphDBp)g>jdIsnvFFuIU~6j!{rHQ3Lxh!?oG`S>Uk9vLrF9JUaCAf?K66jT10bM(8; z?mt~E80zP4?h(D?TN56S)4l1umCP3$?~N#uW_tAgwkbdvsqLlBdJ5Oz;!y5MKj*(v z1-UB+40N^rgjVzc9rOXBN44@0cfEe5-WYWc2#S{p;^1borwqwcnw(lXh^Z8r6ef;D zdNlF5a=#uHtH6|~q!Ve>+3SE~NQa@`vQjLneqGB~Vl^%fZ;3`|M03DX3V-(hXE+(x ztrGQ8tM;s+sYMfa>S{0^hTrmA&HXRM@s|Odp1}DcY2K{CT>XpcYC52T*gn*qjzdqR z@TXT$+kB4S&MPjzJ>kOoACRh4Mi`MhB>gXCQ5;uiJ>2v>&3L)2qBS$;b~DN}Q^wax zk(5-#QWT&n*~y1a$}2;-c_q`sR6Bh4b|M@{X{NY^G(pyrt&4Bg2vP7+=oH)LOkwkO zg>+>N>_8nX$96kim+9h+E8PTMg4YqntHff8oHC;VAhhq-j}o3{H_zMXzx|*NYu^I` z18KKu7G-lqWIu-m&cjB}38yycY$d20lX!t}N{8Oq14SM%_89?$RL*7@6|AO2iAJKK z30uk}UWB4a4qYKHNUD_yHmnI09-BukfCf)CAll=IjMGhH0vEka0nth1wG_uQ+!tl_?qPF z!UzC5-0SU5DKaD4N_N0-Iu%r?&8sF#{L9y@Bt?c@@F!>Vj{Sjbk<1n1TYT`6; zw#Z_&@5!<`lx;`XVh%CaW)(}IUZCB6+3k_Te;3gdI|!FF=neDCb6GZS8A<@dIFleB zP@)r*zsa@nUQt3S^5emtBbqc&#X+jT9G*8itH~7q$c!vetJN-xr{wsZwqyHDuxN8@ z_#(Wxd(UdVk#w-X<_SK$urMkA7obe)(4DT*I*h6?Mi2^v24yK56G(f;+0JFV2I~F1 zy76?l(sm*=86gQdTP!pBDChfgu3FzE9%f9?#ei!VZua?yaph|c<@on9m&2Zz-B%b6 zvLy&7#Ax4Bgf0GsB)k%v7q!tg&t15T!MBK}sKD08=YpxJnJaoVQj@-+-F7G4X^bEz z?5JkG##%4_Qtj#bGfw6GNFB574=pAQDSIq&v0HgzM=-odks44!p_I^XW%tJ5=8H*uF36=UFWgg0FrZs9EOELaN(Pp9(Q|s@Sm=FDjk@<3 zQ4^B@FDr7u?@%&B9{*S4LlGCl)Fb?YhKaw;V{YcV=eVMlw3Rckq-rJcP9U+yVa zwo(jtQ4W$FH3{Nrft`0E6XRS_mWcc~+e3)Fn}Ntuu(DRyfNBh00O3sct+#Ti3as7! z_6Yw?R|s{UFFe1;b$*&YKQ8j#p9<=`j`778?Gk;fGnw1_z*2242lklDbdrvJipse@ zftl1-@rtZx0O1p!v#HpvCAiGbJN1{2W2M;1ju-~U7qX!IBx(tp zbq}zQeW*-_-{odOu;^x`jyEgZTfAJ)W1(0@S&tu_I@cT7Iy{~US0*PrELq}X(%{Ry z_j$)hjw)HwM>>MDqeYk3|D1!K_lvLzAKqlWxU$Na;<4y1t`w$+_qpphzWcM~YjW{t z8SF^DJ0`LO-h>~ZC!onH(NC5eKhH09E)ZccCJ;zG-6;u&qz0}umKhAGSdFVNv;45c z_c_m^uZ*eoB26w8J6g_)kpS}ezW^W;-|UL*ojmn?j2VAIp?wpf8vpsvCtrQ~>8IJrGI$W$K11T;m zyevEU3xKN!ybNW?%f7?SB(#t_J6jNIZ$*o&Zl)f23OQ4NKsf5MC*0eQ)3XlD`x~Zd z3Xn{iJjEe^Gad3eGRY=Qo`K^hQ(1q%$rkn{(jT=q0?M?TZn~*{=H>j2t~4>2xZe!x5&R zX=2=j$vEZo^TppC0!Um`68XY4jIo9EpS$k5D+=g$F=jpF4}|=QSj;k$G3Dy(ud_#; zb`BP;Yv#LCP@|C$Q_R%ABewPNduE-wa}MX~0ubTKAdg@xU{vc;*~3oF7k$S`OL9nn zafN&eN@6xO?L}#&X`IlV6 z-r3e_t!y!QT#NebOlnhDS3dUn%O_C)2=nG~W&Zqw*Cs`=2t6RV3&4*`{>b4q%UsE1 zNXw8p)+qd$_SQXUY1sq6&yV^MqXp|oUs-ob{FRke;Ix^Sp|WcDfrf$I>-`(X*zIo1 zw!Hhh8{zlecVCrZSP$vC?_LU1H|}Y$F1+Mo<%a97WX-MZ_WIVWy&)Uanv<4oS@yTC zEDwM6!VAY|<}6sCJ~4N$HDm$O10-Ze-di%Y4u^PIPxkI(w=GMUVV&(QSh;KwOfxHb z`bmrQ6#84L5Fnz6Q_r{%BSuZk|Hginnag-XmEN;u89RZl+g*R&ym^XCF?Hvich1pu z|Nkh8GH&;-U3}V^XBo3^n5|psBuk`H){cx1n~bo!vo-N-D$DQu+1!&hx|JLUYH}45 zK-_&%Bs=^Z&*ajQ9QF!lCwk=y@c=A+{dvUW)HdvxQEuz97bMiNNsj!a$!Fr2%{WtlnT!vYx zIA@w}ZOsL>)lKO=dy=^Shu5D(YYGb%EFja(8gc;X;j|9}@HYTwmo!PSR0A-H^km3% zZ+guD<}$`!ItcOwg)+@#GTn2}XQrqs`%Y(P$0c=jb@qpD`zSRIXdUex)az~sRL-(W zh&34MOIupfci(Zr39I@GlA>F55*&20HUqd3z*@PV174U`lD>s`#?75HuYMN=55`wCHL5`eyy2?VOCdF@>I@LIt_(cnS^=9=&}oSpTeGsi5Cu;QH>^DO){^zUUp?}#ZT009=l$RR&ELL1O;WS~>Cvi71&x0KK%tS6xm8q* z_F25MWFgkAS>{w6GwMmv;PcZ&Uw2+SMDL64_w!Sxo}U>x=C~UfV^0;buiP7@`tgq+ ztA1tCzrQ@JuI|nc-*%f)Ra0X(HZ&;pb+vfy&DG}bA77|dR)m+EcJ{I-9{EPgym=3^ zzCcpc3r&K9%q<$mbCryC&^{lwj zuTWo$Mm`B!_SSRkufPBP8S=VX6jee2gn%)3?p%em$z6ASr1j5#S#Zy;9oyzU^2=Xt zYiejvYHNpa%Q9_+DVk~KELGK}C|rHwLm&D~X#V{9WU47cPJ{HKNyu^kJ%BT1{9GF< z$8a=glct6pc=MH~1syDb#kQRC6<>fjk!cvILe+#U910I&6>VK9pWEPhPBoqSvr5u_?OJ#hPEzplp~`ufj_@g1a5T+rNd+Z}g)`qOuPp*3dLf8*P~v8yV|1SP+w>8g>- zJr;}B-Z7)9&6q#`VJe}{gJei8EKdkHAWP&wAwMelB}E}zEGZ+GBumTGV{m zbj84#ZE>zB;69&^`vX3N!yz@B&8^R6?2lf1(aZQMQUx=;MUnbamgkOzR{AH1Z@pT8(?hJEM$`@@+) z{6@~$O$_WzzfUVynSxX%^R%h8&z(R2iEa~bDIDyK5F8tL|3^P`9&F`ifX`Mn&7qiA z7`Jlf7ykU%SHI=`yCDYN4IQoeOw+eMPY_N7|=fD1o|MZsQpmpQ*O-SaNra9=ei3>65~^i*0KgZdspUo`hWs%O5nzz~pPX5~-MudEBBe-G z#)$b0VbsF@Q<(Cu&oXfwJEeqWefCQ3i?@l50efr9H$n@-SoUb@%+zcMkM!?d=S_?9AgP z&A#cTr-s*$7@tfgxI?JTSzokWoO4s7S$R&*z3&v~Rwxuy4Z~-i5Lz-}3o%#kTBZCYO1THEw%9fn(vqd1O8h{UM&kDm_OC%ToF~W#7rMp0ASa ztsY@F6We1#xocpDoIg%x%My=CsvV4<(bJ^*xo7P5dbwk7`uhh|QZuzB;q=Ff+H*B#fK$TacK9!^#c5slC0J0yABF&7R6`@tq{35L~ z8Ne9%=m{9NOaeW?!uoj~yo;i1hFaHar4Qd|hkUFD@CunwjInKf9N!^pjGiXdCvU%e zvIhNUx=%YVmlIXDU4@A>r!ke{)6P7b*9;q>q>>3+RaF-7`&l-dU2ZALXFmMldtW@< zzD8eC0?2_kY3&tOlu5`F0UR%xSB{l5MdJ>`Io<<+e1{FP{DYp?0C=~DZ?(^3I24&P z2h4HK1REmY=GErCJ}UG)Hn`n*P(Xl1gPGAPGBxc-bG zNu0?yh)WZRnAaL5Rp(9s+vIC9mD(9&ZN2QL?nbNz!hWAeO-F0iF!DFYM~b3Mw=LVC zneA?mMz{U5ISkXV&OZMVUwK7kCKiu9nl-Hl$k(9ytcM?V%1=;4QmR8bM3IZoUC073 z9?;~&srepfN823IBIvRGyeV?1421`{54iW^*NrnR>!VQELqWd}6vEYXRnH%`ca)o= zAel&D%-C^iq^x39XDs&Rn{WNhKfJ|@C_*U#q`>02YxBbZ%0Uyx7{BZGtFC06UuE0; ziDW866}Cca$cPioV+-;;`GG|W#ODiy-;GvPe)syhckFV_sbU2ONy)@2$wA9!KYC4B zlhtXA8wV3>hAC@gq=KZaF3z%9O$~>G0w6T|e9V}M%J;ta`(!ct8YL-7u?Xvn=Cc^3 zq(Mq@xYrLKfc+>*NlH?Zl9Z$*B`HZsN>Y-Nl%ymjDM?96Qj(ICq$DLNNl8jll9H69 lBqb?HNlH?ZlAw6y{|9v}8Eo9Kz;^%u002ovPDHLkV1hPH_uBvf literal 0 HcmV?d00001 diff --git a/docs/_static/birdnetlib.png b/docs/_static/birdnetlib.png new file mode 100644 index 0000000000000000000000000000000000000000..c368d31067941633352ffc70d55433724a391c01 GIT binary patch literal 2683 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 literal 0 HcmV?d00001 diff --git a/docs/_static/birdweather.png b/docs/_static/birdweather.png new file mode 100644 index 0000000000000000000000000000000000000000..b9cc53cf457fd5b485efc2a0e53f7180c4ba6cfb GIT binary patch literal 23973 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 F>K~G#0D}Mk literal 0 HcmV?d00001 diff --git a/docs/_static/chirpity.png b/docs/_static/chirpity.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e861273e2afae26f033e9966a0ac0267d302fd GIT binary patch literal 125512 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 literal 0 HcmV?d00001 diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 00000000..1ad5ffee --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,4 @@ +.wy-table-responsive table td, +.wy-table-responsive table th { + white-space: normal; +} \ No newline at end of file diff --git a/docs/_static/dawnchorus.png b/docs/_static/dawnchorus.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e8ccfe6586db522a546d8b01e577ae74376d8c GIT binary patch literal 39700 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 I!vs?Q1tGYnF#rGn literal 0 HcmV?d00001 diff --git a/docs/_static/ecosound-web_logo_large_white_on_black.png b/docs/_static/ecosound-web_logo_large_white_on_black.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6485163e680da72d83232026b32b75b01a8e10 GIT binary patch literal 22293 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

    m{F|`)VA<$`(v-l%|#%R89muEbX(U# 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 literal 0 HcmV?d00001 diff --git a/docs/_static/faunanet_logo.png b/docs/_static/faunanet_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fc43638ebda2c68e5fc4baf65911453ad12cbfba GIT binary patch literal 38659 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 literal 0 HcmV?d00001 diff --git a/docs/_static/gui.png b/docs/_static/gui.png new file mode 100644 index 0000000000000000000000000000000000000000..8099298169fc3b95c550feb47d0946dfa2cb59fe GIT binary patch literal 62308 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

    Q$@Xwh)f+2%X;76MHojFRQ)h>3&NWyD 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

    Q>|6@mwM4VT{UM|>}LzwVc{)}Cw17-P;Y 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

    e{_sA+r{hu6Wrx5AS$Hl1->4~uB!yJIwPQ8 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%0Ai8A~5i8x9Q%Ug~rZd{{!(kga-fs literal 0 HcmV?d00001 diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss deleted file mode 100644 index 2f8bb67e..00000000 --- a/docs/assets/css/style.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -$section-headings-color: #335978; -$header-bg-color-secondary: #335978; -$header-bg-color: #5894cf; - -@import "{{ site.theme }}"; diff --git a/docs/assets/img/birdnet_logo.png b/docs/assets/img/birdnet_logo.png deleted file mode 100644 index 0a59bdfe77d1c03bc9c9020d15a1afe33d16fe82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26773 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

    RY0PegE)6t0{@+)2 zW#;j{$Fu->ptw+u-a;I?ZkY0=8j{fBjMTib_xqSr6Yi4d<@4`64Zu)*4NQaewbJp?*yV6{hnliIAw5oT?5eW0 zn=Md9WCCUJLS7n3L^%Z`#+|G`a>F6udJ+2OEgT+RoLbzT`^a|W$tH4fHl8q!A0^k{ znl_I_IfQ8<&aJxz)#0ly?upMZpCm-kWE6b4pRU13+-fFvG{WysEmg=74UlKT{|`7n zkN;?1oA>bzSTRi2yl57S`9-y_Z=>2(ewI!ZyBKkdy~)S}Cacro48VDu*w8z&HbC(J z4%F0oN68zSh+Y*C@GM4As4>=0V3pA)_mdhWv=_2a2+!$w#qqciE)WJ&8|a^G_n!e5 z&Z;oN&p6YAmvY$4$Li%A!s_PHm!)6L=YVqJjc zb4!4!*)Ep!2wv7wY+pgMSCB)K1S>%voQk$TYM|6_9^K6u9Tb=VI6+_f^?d<;59gcs zd=i1D$aYu^I!0o7v*MH@5i~e88?s3}k<~nA7%U(pAKB}%2DADwuHA$_J39)*jS}8R zu+OLhhp{1ANXj|s@~w9BLxd557FjkgznjXR-W)4^?gt}~znKKbmcupa0TtSW{iIP; zohB?$eo*G4a0L-LZ@70ASLSa`!N#j>BFFbgGU0won_naS55NOh0*WKl7Xo@1F0=jB zL_TxNzPWGx$N%*>XXfw@j9Ec!podpMY@3B4wd1?*ejhF$%md)-ZR)fh8>dm%c^ z_0Uo%KK?NcjVETIn1XS}*AUn^U+={1n) zd`w2=K?%r3by`?3AeCQV2n$FFNSk?G=e+{^ttzLW1H0*A?pb+{tO4Dq9)c)6Pd!}o z`)ZE056Bf3cash?Iq3I3^9c?8kxswyFL$@nn-f(Q1=RH238nbUg_36D9-j z5lOpadP_SnFz@|oY*HachLwD63Z&7sLJ4>0utt|ZU2G@(7jTXHL2 zgw-{BE{JjLE}omap`(}Pw)u2e{}{FM+3njvQ7M`__EJd+1hOd(17|c0B2dPT9&p}B zRHvZu-t*yiwA&F)&r|dMDF|J&9t3vh?RYQI8w|1MA9#=l^zD|S%H6sJf; z<%SVR71)s|F@+^a2c~OLm!buni_@o%&#tX0`uN~q_#ZN}w>?T7OlB+V>l0R2tLo@W zQ=7y%9s(un3`)wH;yzPHpSHC?RCzT+zRK0|JgXtB)^~#aA8HQ?H2rqU7v*15$+IYmX}i>?H`0uDndQzuGQ z)ky`WS@+z$JWrMWK2BD$as~GE;O}h% zHUd();K|i^_`ACxQV(KzKe-}3E~12g@NUb8IxUD04s-l42uoo8>cg7z{3<&lE5Vwx5`jiz@eoy1aO*}D?7)r64OJZ&8u$Xrn) zq?y7Y*?TvJZN94&RX_V(94xK`e|y~R-3T#P{)(nka?Y*OC-!_OdFrk9a+}IzaP9r1 zj#0tS=c3sY|CY%LxB!&N3dBC$9GVj$G+ACO?NHFVe`uxEC=XZNXiApQxaX5z2RsuU zTXl6yTx^Of<~3$A5Urm!_q>;zhBny>3G}lvKfI?uW}uE5*~sSQ>yC7M=g2|zq>;<9 zp-xI9u#X7=wFOR`%XSE*2Y-J5Ysd9iB@)P)+)3u$5GfcdWOLKR*Y8>IV7a*Uu_)HS z=YV*?LUVO>m671AumH;FfW$jlP~HqX-*~ys{pHJ-=;7TXJ-qqvT8v}{z?CNQYX7r? zE$5YAsW}~BG%PhPBe7)o0zC0kyRn@?Lerg5hP<6jo4nGxxg7zsA1)w)s@9nRb&e9=10A{;jE}H{=It$+?*lPnV4)nA_Os zZ*pA2jCyR33c8jpsOgTB;_B~{m9OV(4NeROpn z$^?*N@~90f!&M-UVfnJg&(U>>6EF6U=;ILV>@04sElD|Q8yfoY>6nrT+Tpe}22W@_ zQa4Pd8W<=p+SwVvYL=rtaqsaeI$c}@mX+2fB{zt_evY7-@hU1h5aI>g(B>SHk#y)bQ?r1sBrmP~JFzW06una}V;<{+#4tb9@T4dOR0L-%t90Y0u^nt&2*S?u zN(oc=zj*azDh~IKVT$_EucxLh5`gzrQJ(lzv7&7m)n}J;Y)_TGj8IrEqDbVSV3#Zv!;mZzY#1WB(93R*;sv2MCu~_ge&}&Haxv*h^0c7mN_9J zTmz$}>3tctheo|)!YlAmeziXn4iR-WNPwpgUeK{@Jr!0pL(>oRmge}%%WE}ajjxNJ z^p6CQ2~1|wJV3L(U4(t}FDeG+{1Vq_8h&ZW%@{n{7n{0UdQwnAfXyL$;tQo--u1*L z$y$B-H`%?Pd1#7x?BneGA0vQg1ZIX;(p_LjfX{{z53C|xUT>tS`E{2meD~ah6)x-Y z8La>hxrQ)U>dfW#XOEl4S8R2k7Hc#PlW2V{L^{4GTV$yimtoWtt(UiRhL+dnKpIoV z2)tZihY(S;gj1FfOhJ6?V+1=Bf#|BRtNR1q$N?FeaRK7Aex9r10J)Jq)W?D&EmQ&} zoF2ZZ(()H8vXDeKv*a*EbTw3%Q34rR4+mTE{5v6@o7tfzMD)PBm!-zh{PbRry?ak3 z&IrsDr-0!_#g3&)K^+A5VGQ&z!9BsZ)qtOSEY&+t zmT--H3HWraKvoO{<3W+-ZfIsJDs7~puTS#S0Rz`-0hn@kq}e>nP4WYCGkp0)aWqkK zcz;s)+s@5Jil>=oBCj#=Fc7f$B)(5TfW5PRw~`$_@gm-OWE`6NhlD9Q&*vdn0niz@ zWqs|ih%$_>tL|>AJGWD*F*TmIqmMkM7l!i=TlKZ*Y<4rVys}+_-=^3;DXR4BB&j{* zGmet-3n0re_SLbry%mTe#ELvBouu&%?=zgfox=LnH_p-*n!!SEN#s6eNx^WcQ_gti z1C7m*CwQe^;|K8Q(4?x-+f=Gdv7W+~20+l$x)m@)QT9f4^-X(AF4=-`C-egxWKy&n z1Esnp$+BFerQ;uRuEw_xQ&r>-`LG9&`zq38qBKNh6T(r~gQG0q$V+ z+10$_@)`y9i;6!0%fX)NQWEe|8&B|Il`@ zW*rvo7BLY{-pn{Bj!EmIq=;a+Anm{h;lND5jVV!6%Z4ROjTDWAyQhC2z)YMyj z;<;$OW&Kh)E-f5St_zIko}YygB=B~m-}sT27Z7k6DxNU9Y`ePY^&;8FSV|KnZKxRG z%^jnK0NI85oVS>oCdar-GH55fMFY%!Q5&-L+9z6GVj*>axb3B$1_)7(eYzOE*-6+V zTod~TB(*n}*&>7f!n}A(a*^sV5xm^*_wT@8ba=y;=eF^d+%DJQ8HkXx1wHYcsb!P} zJF>9aZz=Mipohs#*cLZ8q;}=OMSqS_V2v|3VC?a57^3Ow=aUD`q$;PIC`x7wbWT7% z>%LjWD5NAXqNOwmxHxlNCeZwcK@$awvfuW$#RrSc0-Gw;BH2-pfvJ>+AK12piPd$O z#1lP84XT!p51-cs5KJ_Rm>bg9Whk=iFUPk+aC!V@iF)o-{`LW${sJQKKf-w|)fBAg z0W7V!NoJ(=pk9b&ME$58m++mIithTU8kr8lGDdvC7KXxnJa4Kuv~^u zBi9XU?|sMR>{fr)rjU+10~bCjs^M7CM9<3w9wnDiU&zJEOXA8-Tf$+akV+O3$`F(i z$4f@hZ!rzw>tvAiXk!vcAg9pQ^Qe+koRl+jF15@oC(3=d!M8TV~qPjGm33*>8x^l9sK%(cWDNL(Eer`GImTS&Lc~HHA7`Fn)slpHTn0zTVp%{Oe#hU{YmX$!r2ZSgy2+^$YZS>K^Nl_p!zGy22 ziwL=a%V;t_T1_6R-{-i(Bv@+;bZP8SCvRJ&SQ%|S3$#)}c1N~#ROBsY4ZrKMe{=9& z4yAeWJ6)7?+5k$a5~Hx{#thnB(BJQ$I9%`iYIY{(`|d6KHN=eJ&E)vg<7KKgjxKCQ zWN+1aB+W61CwEn!iD#Lk=oIL2GqTjO`7zg6>5j{0_o$xW(&#y9#p+bIFQy_cqpO}j z$0N|j6Zc|3F7SY=|E4W%T^ZM$omsQWJ^w@5{K_5_D`hL3W(6uKsAlNDU;4D%QXQ(g zwz@LAAgyjnAibnOPn}Y>BVvpS;;Q;`ee4<7{y4KR78%=n78-UtZ=$)kp1%_rtM``SzvUQ{7Z%YNwdfJ|8>U}D6zR$+i__1V}8XSN}u9#Q?+Z@Wff$s;Bl7IV%n>%a?k z5lsn4a}2>m-g+tdN2$grjzWso0(u)cCLNsAW4LgH9VkrZ3rQM2khTqCNkky^Q6d_i z@d#VM>U%dqt^W~m@uK8YfERa)%?Dp06Be>Nw>mqmT*FuE@(D4!*=uHDRi51mH$IDY zhakG;ck(R_Q;e$w{mcYPj)j0(()j*IzTAC~y0m!n#=;Jwh^2tQn5pUmqb5{XH zu(_ya?-kU#5GkPIQV~jk@xA9+Vy1~Pc+=odRe-uaN zGywEO$%d!});k-^Ep@>n=Z~a$bJ3)ZM@5wChJLRtT1qIg*$(_}64KJCS}k$Px~ljU zIx!Y5(-ApwyI%18Y_YZ-Vcyh=tcfxLD&XnCIxqga%ZpaZEB&z>`4sr}j_VgKsAMk| z46mv@!k++LI{ImTrSkwGWv%9DQW7p@c_9ofCZo0Yc{j2!Eyks0vWPT8tnXy5@e#-+ z3q^Q5r?qaXNNi2RHsI4n?Wf3x4%m6Yzh(H*qrN-NoG%9Z%iJ!h!KHT=QMY*k@8^4W z7+}TWCP!u#7R6Gn<@?R-pp!OWTktjbpP%sY#W6KbEVg~Bu2`#KGGg|j85qGwTf5@}2Jtshm(ENo z4yS=(C8kkAls(s0mrsBuM{O-FDGyaX$mxzxG3E8PFb3q*jEH`=CEt-qnU;$c6&%hJ z7eZTF06wWJo8K!uBPdO4mWR4NkO$Oy8^Vm;Bm`Sgfid^nke0;R@nsQJzwG&%7B08K zhs$Jeg_*-=L#G~m-&V?RHoa;{VzfVSwFTUu7Zo%(47AU!`yyMC$wD2kf8Vr}Vw$A+ zvx#q{@TD|Z38IHA7M7Ntz6Obi*-J5nTdoE5#mIaVhoTsiq6T(tv&3leiup-P^Z$5F zr!iK;CY4mk)!a+{ebJ8Td4I4+vl@_5rgct@U27#TZ@{i;M=tM1Ed__+%O8oTo1c97 z_1NRbvHOz_)rR}&<}o>>EEjOgE$s%(^WOvIee=Bwpkyc=xC0{~APlJltTl0=h5j?V zv(1WdT*Iwj^MS9=Bs_$r~Vt9Tp+9xwL0H3wuF51$N8YUkl3cNpV7(O`ZAEyKjmznE~G(-C)Xd z0gYUvXWudCzIN{W-MV{S=mWshG`XYS15o0ZiLYw%b=7Hc3JqA*S}INv30}26kH_Gs z(nd2VM-AfIwsFzo(MaNA&Eh{e{-~=qP2%pH{REUAXvT6u#pim}hFv1J)_5vZFqgs7 zo48O&IUhQ+>pOE8IQud{esmAtAHx;c3nS+Ir`

    a0s2*&IX4ChCv(91k2OJ@>$(W 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 bivxP+-WVCho%t8=eFtf%={~7>Y#Z}G`%rs} diff --git a/docs/assets/img/dummy_birds_image.png b/docs/assets/img/dummy_birds_image.png deleted file mode 100644 index fafaacce5350981f25c963a0b1e035c55dc05365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1824531 zcmV)wK$O3UP)00001b5ch_0Itp) z=>PyA07*naRCr$0z1gp2S90dJ&UEJ~=ZQITO0tS`ku0%9mTHhnDmBpU7aMRJ4cLHR z+J5j~;0MEy4G-uS!-fGr_@Nti%YYiT0ku`ts^U5z1k(QR0(pJBpx}8qqRZIO;PqkF9 z)l$3LOPjq~>erik*FN9UcX-w7_0*`>^EOWwx;B4rx7+&N?Ce|`8EK_% zr<+z*R?^7Gi2mzzI%#}jJk@ITbo0iI)aiE8?4DU&yWj7pmF1`y++UyXW0@ADtyjQ@IDy@Bs>uiaj? zx{WPfTu*CO<9_^h@b~dK-{GEIo()}U(HwYAXOxtYUw-}!u0ubF>V%wO!8n#%@)?60^_alak*S9MPe-y`Mz zsy-00}4H+L?-|Z`#%}Jq$3TaL(GjoaTaX$1ok1E6CeO{ezTi@IEg`pBvna2>FRUx!Z}c)4m-(rG1plj0;nKvGbAbHVZ2NussZk4=WRC5O*y`~)=S)NUh4ZOiXLJ&5eTKckUgON+ zbAHP@jE&b=-dB;wY zyl(Z=NVAnXn{Ay*VL!y2q6}FZvz>aWrU}~R`MF=LSLJ-y9vNcan7vY-m)IX+lhoLY zTedI5=FDdp+qcst{nTnSQ?uSoqs>;@SX)nif~HoZmPSV! zsoU91^%@6iFSQztwB`09_RZ+%SZX#}sjImgNu72(^}5|OIWZ|Y+1SM9MuyM@DK(nS zw7#*CY7MiwH#Rp@x8LL7megT;kG5KAtIIq}ptPSGY!bIIMq4AY%NLiI(#YtD?ACn! z>ujN|ei|Pg)BeF8*O}#dEw^8pL)nv=T?D?LZGw5fxPx-U6+0pv(%GbBk>1rLv$HwI^Am_{} zvJo~U_ug3F)Nhd=bP2Y;^!e13bj$>P#@Ki|fBsyWot@SG*jQhekHB^K&f&v{b&uth zW$hDQGcz-3adA=qojG$REibR8jr9%5$H9Y#z>FKF-@#~9ebYv_Y zJaACgx^nq)nwy{OdCBJK*s)`}-nHvD(&W^1nqOE*eHIwM zvsOzJ6O)=hysx=q^~YqNM}x;NuPi5d3yZu z$I_c`zESu#tjXz9r_zfrzL+K_$I}x}Jdr;5;DfZbwwfMz@B#h3)f`E8+;K;G{`u$A zU3cA;jvqgsKK=Al>6)|m+>@?dyPiJ!@T2tDhHqn%dP+o>(b*0yUcoI5$m zbz5-#$M1S}07_XTO*o6shC&(Pe4r${-7PuHIP^O3G0>V#IgU$9%jw9GL)ttTdODz+ ztwI1%L^6hV#nWMekV5+;rJ?OB90~rQ<4gfIT!2`Q$EbM-`ngMHa!l4-B zHHQO3$P5NPW6hC=kOjMwIgiW>zh&(iZyX?OY7V|o$ZUSD8~^5-T%Y&C$d1GQn*ade zC^Hi7RVs2@H(e`phQoLp1_;FZu=jx4#0)KkMWV~ zi+rEvV;H=z88CwYff?AYq;~}P0st@vtvsB!J;N>lqm9d)hGFu$eLk@E2HnpRW^fP* z;8f>{Jx3MX$oHuI-Nx{3Ua{5&+-?UkFiZfsWT0eVTYisWawQ-!8L-0nf({xT8<8%N zGdXHTyY!}m=CL7?OSX1d zpIjUY!_sAL8vtMmqgV!pdusrouCp}&fB+>NeM_}^L;8y|9lZyLFGrx;HYcxTYc@7M znlOYpw{rj>00ga*Z)UsSAZWR5{|ETyK#kS~a3TXznYlrSXggSH`runHT()0}otpsw zLUco+4y>NZy?wSb08l<{2>_TQW&wgN**==5+@bIG8g)Fl!H~=^}vMD%^ zv^VVehXKSP>wKkO1RQc8-T(kz5yXj+N5CS0oNyNF4*W2-s?Ia8sVm2c{crlIuCoMw|-1#rZ9Vetkp1ES?>E zkw6`{;wR?tx3y9@gq?0z^3`MfDWx{^+iXckv4e2TYv`aWyX&)hvP;- z0$YYXioRtIY(M!T_ql#|m;$w}CkICu&>Z`Bh$8a6i*v4)^@AUMv1wU6-^lt?w$Hue< z+z%)B#*Le<&zf?$H#aurB#w=Zrd|*KqOR-neH__+`}U=S2M(p1H*U&5I&|=$blvr9 zSJR%odnBK0tE*}6-o5%eznhz#krNK!L6DQ+>EzU;>}3AK&oSR^R^#P)87t!i>_Ap} z0&MDuxHO+U5jfl57SfA>FU+1IyV6TSPQ<#Ugr5mnj@N5 z)_iWyoOH_a@=6+?oRI%mZ#Gk7gdlS}&CJZE>({Sqo^gH`=I8YcVstfjP7OOs=hX>oojt*x%7Ub~k@Tcc@lelaa9F8W-JNO$qOW5O`9FH(r~nPt1poBici%~e4jt0io_z9m(_3%6m9AaAlAe6(Nd?hA z`SjCt|NZx+`Gt9{Zx?$!i7}(&;F-B>*Gixz&Kz+!(^O* znA-u!1TU?wrbYf4X_-PBEJTMT8cVb6BfsqNk>&bq`)6 zATFDmLT(NoJg5cT+}zLtfxxind>#%X8zZ9eT#w(aEH6tK5E{m~3>wv_Yr;U^P;5l_ z8PC+zq&6~(jWaXSYDuA%QTm=HmCa%sx+~?&3t`0hM{xK)@3X;UBlBMAcsXFe{QALR z&Lx|~kYRo=!?(fQ+uw7iJ?>j7(?O#vlum94R{tJ~)|7Gl-lHcK$BB(=&RH3usv0q7 zotS}FbvDCLu;(Zvy}($zY24HXT8g1`S&0D#kqiz^uFL)iwgs|CB*VR|0-+AZjSP=2##qT*(BFqdu3~Ie z$GPfARb^}^2doNw#N1RJ`QpB=k8(p#JD_4y2au)TIRHA$K-{($c6!4BfGVJ&ec?CR z%>h>gaUg=04cH?X!vKO(ci4mEz(z4A+5LyfTONEJ_IPrpG6!ZSeN+C{orf%b z=K=H32YmyjvKxo|8nY;j_JI)6uFDd8q0qs|e+B&D9(>OLYC9M6*RVZm&+Seh&Sa;n zv&$R-7;Z$DE!xRhi_yXQ@IKcc86|R+3Im#Z+h?NL6zj)WIcEo0GwAZnOB`SVWKL;* zTKv`B#lh(neByJsqxcU*lPkaf21{3f0Pb*BK{;a``escy2ss15BG7W86kLD-0He&o z7#NCK#IR&e^`s*wC&p8IlL(Lj+&Fy$0HL3L1FRfp3$niXnV3KMpyNEqpa^$GJ4Mmb zM(S^EU$H{oz9m3fU8lmK#}U_F?#n67!KRXhkb#SSA#=jZtCphZ*K&}}zTp72!2X8z zw?$H6T@aq_Yi|(M1PEXaP}?~F*kJrVBGA|rrW>~dAm#aLc1PGd!}e|!0H^{9Ijctd z4>|H+Oz4wB7da!600rlw&PN4{aQ^#pdT^?d*zRUG^}AaFJ4RadRM$Q>8yZ_cM9M-HdinYr}! zS6^#hxCY}{UR+XiT5RX`rhF^0oI4%;eQ9w)fC6*K^Uuso3joFWpO}~sAhLJQp0u>Q zEIAM7KLUJh_OMvlFcMl~E;2@*Pd;S_z3RYKr;}!9_QuYPq za&NcOp~Hu?W{i!w!igUnA5XnrKdrB>r9HEIQ)i=-u3x=jFh44*(@$TWzmTS;r{&A= zx^exwBJ*7H(&dX{Sjcbbbkf}HT)J@ne0u!x$J48?y{b88tsZ^!F+JZ~Z@!rxeDJ|^ z^2G7<^wYmiciweZnwy(V@4feKy8nR((v{0s74d)g;fJ*j@4WMloc)t0Pl^=)WBsQ; z`DuFQnP)U7PyX(c=~ut{Rl4u~`!t@HUV170{EvPv8GGfGS5oai{b&DIKUaDYePLs< z8KA(i0Z}MK!#5S_c62)^{mn*d)WGHp!NmC=8yS%?#|!0UbT4!A8OZ9|nrJDLlamq> z7LG}}dhJ@;fAD~ubx^S7l_d!pNEH+Yert5*y2gjojX*EVFGwgsU3eZqgNVAYd022z zEH*xyhw*?!A^ee|z_XJQUOg`rsPeCxgX!*;Nn>s4`b&u?#cJU00*Qn1JP)2 z`Da08t41L6gDRK+IYVH;n7D-jP&HtyOn?H&aSAertyH8(@k3cwQwj7PDN{pc;~B%z z#HmNYve^n}*{N8fvnm<@TFt>=4!p^p0W4)2fziHr5p~YTkvk7MB#0OmQJ8O*0+7#T zIR5#2!~QHP#0RY1sjyNPE%^~JG{w$yz2X=DS0&*NcKrjG; zrGjz?rNvC;>BFg||cCgw3tM%Lg0NBZy&*vD>Ctf=_ zTOps-eNg?rMT$%=hQ2I>XpY$sDzl}y40o4eop$;>?iVbW;@`f{%%CY#0IHvhwpd94 z2uCC241=i3fFIna#t^8^XZB8!LNIiGvgaQLAee|$oP|7HsN&#h&qG1YUO5ARw~2fO z02mbca&GKl23a|79Nucv`sdQ^awa&JIOt1x%kLBWIlpWvUpv#@aqzW=a5S|?ECLq* zB2?Kh9x-AtjzZ^R*s(XmK!I{Aoq-|jjJpCh3dV|wZvp6rJmz~)5m0}S0cnmPZ}yPk zoPLw(%mJ*OzF(D(fj#Tv9tL0)G8<_C;TBXF06K3988inC8zew40olH{(OpCg$Hzxy zTZmHH?WWCkM}|BvF#yB>YzYh%7*FI>X#o+`C>cYb+eLbe>ly>`13=%t|8fu`r~gZ~ zJzi-50B0oEDX(Fvd&TVdn0C-_-(V3703et^4gw5}t5~1_0Lm2`l$ShMV0yt)lw!Y_ zp2ac1`4^}{P$&UBcVq*mo&jX*YwJqMWIeQQ?gZk5U{{#!MReVm0K;A}D{(f74qo}< z0JvJKS=x~YZ!GFu&MgkI>|(7g&Qe#lqx6)g%knI;4V@_h0LWanV5+)IktWpL?1(x% zj(y#2%jt&&fIcE!fO}z^avffJ)-4>}Dd`UZha;oXm9k^I-GtNCYK_ZAH}*(hbBZG) z9pLGgmWpaAfY{(l`z5+g>Wb1T`eMprL*r1e77<{H<1qA0FxQwT#*Xenhw*+m-J;?< z2p0fA04v+pE(dhVP=9eP0RV1$1|X`vD#i$4fZ3E0&@jNrUO4~|j(-jSu!f3mI|vZ6 zfK4h!B)YvhA|L=eC0GDB|NHjumqW^$@ICA$99<&RM38YT`5q29(PHKqW&qE^8sSr5 zcj1_c2{1LSd-59`dcJe%;w44l0R?W}ToCXAKrw&wrsS50^7z<@X#D_BM~@zpY@R=V zUh91Pw&RLE^E!O!aGIaLDW)3^Du9GBP4K5Slp2D(FfQ)5zOm+kBD4SOdzS7%AeC_n zz;Mu9=@F#7xxQk(`8UtVJ(*Kvcy(Oz5UKx(nI&& zdvAL0z4y|gLkH85qes$T{+nMZ1?2GIBLb7yyAM40pd5ST2f8mH0o4BwKm17g z;@*4jNx%5TFVjO0J(TwD+nb(y_E|9nYX9WF`#<{1M+^$8=SzqdRIe!)0b$@q?M^q% zFD|7{57&kqJ<9`T!zk*nT?SHFOXFiW^d%+UHsqEz1{8gqYbFYTQ53jVOP8-)(MCd$ zq0_Jk;}c`51HghKq)coWX8{^~dG4Hq25JkNZh2`@%9G79F*%_q430hMB%ce-bjuh) zmJoC-f1hhIR%j_(poUw0Q?AOl>iL1x)MgNkZL6z|fZ~8IW7IK2|KqR@1T;T;%-J*w zzMOnVDC5~IT4C1;<;9=Ml@s-Tc<%IWXMP~zp^W8Z7kT<6rHyMS_g<0q@=(tmsc=w& z0gyYugD85LGZ+qHC00x&*Dq!>=-|p0NpeQ9kM#zNZV{L82X=)QjyX&;Y7RX3<1F{=q z%-68$K<`u&U?;iW25?mz_HeGMzn83JH2`usD8}dVC42AzG!B21wpxrdBF&#B~E1-r*{XVK&Ot>-Td z1N7p#t3W{LZTtNo4VX3NJYl?|5Q^miW67c+yf8MnMiD7-s;Z6GSWq&c8|d9|B2JuZeaXDr^U%4 zf~nYfqoFfB3^dO0sY$5RZ5hY{U*yC!H0Mf%BC6*#gDls(q@xGpEOaFItU4G2^Ew1P zEM(2WG5dGMVZi4s02^eWL~r=&pne<#-@e7t6<;myT-E>>1a15quJX1WF}sxfu=+re zGj3;O=urb@%xRQtmzPBk$0-FEz&SKJKGE%I*<9DIK#?C+WSjZAdE=VSQ1Zla z1g~7VB4=^$o_&f`BSXiJ-KH7@te+g^`J2*}1V)KM^K4-^5M|~WRm)7lpH9Js;28+O z8kkC?+`txq>E)MR60pPmA=m%aS6`8w{P3x##7f}z4?g%nTDUo%E?v5m9)9GZ^u`-+2#mY$zWdYa z>S{W7{+y`%06awVzw@2%D)pTd0a68!iD#dEHa+#!Q|Y6RKa&6a!yi7Ce*N^*@>Re0 zz3-*kfB4@50GRSCj9gGn{->NJ6je(ReU!)b8}n%c1INgddXMk5i1^CiF$FEE6VVS4 zQ>VToRdA)#YLBMZf00gK| zrWhCy5!W2NpDAO0ljpdbBj59U%-wT5BXU(JaL)rQjc!W`DLxk%W6=RNy*6kD4%oq9 za~5=0Hn1rkih5bi0LuaMdJS0?<8H?OH<`aUj0H}3p~HNBigokPA`PH?zQJ7YNCU{z z8FF--`3nQxoR6}mfc~8gx-@upE)p2eZ|iBOHUJlg8mybBtr6GOxH7|y+o2$NiH62u z>%}=iW*Nh+0Dx~Y&)@Vr)kCHFyB(wd5+p>pXF#SK>!AY;Y_Yl~0hTC|u|v_bf;Hg- zC;=;S+Ra%EV6cz{kDwPut5`x#R}LVt;_&dip{q@|>^4(_3;=)R><1B{E8nUDD!auN zO*>>xNaf2hw5Zi$RM^UR1$>$gWuD6dlVuG6QA@q{%J!%ANTcUahI1XP7Yv&K6fBxM zSafeUR!X_oO}|8K01O;n5y`Nkac0o5eky+Jj359W8KQFhEp}m=LI40D07*naR9Z`xz)sQX?U$Z9%R6c$4d>Lq6}wg~IG*|umFa)?oh z%n3}|Z0k=0%`J*0;Li7Fv3I#|HnAZ)+xC<3`u!zOa$pw;5cYaVTElG{aM*_bt1$p# z?E?hRS~&wC=Zxr#3Lq)BM=Y$IRVo~${9p@`&mJs8p2vU|E9R_}3Z=z#t#~t!LBOTm zwgPxtL|m=r3}-z1!a!tT0HV6Xp1qdLA7gpe%C}0TTr- zJnx+St>1{Xgo9wYzvl5kWH1{B-49SC+CR~HzO&U&GgFgt`ddVnJMAu9hJPGyWY+36}2OCT@`=^Cp+ z&ykY!2(*73=m?^=0I_Nwxu2a)D@!Z7KXuM`z~Q`K3NTeddfnErO&+4j)NV z6O-xd3t#Ep$QSwP_&vdRVr@Vo)6htGpE&bXN)fngL;$AJb6=~?YB zSqYg?M0zxU$c^ha^t+jvDaqW;n^xd&ZVz?Yddlfn&}ni~<7J)%JQUZrItgqviY7wE zhqW5poPvS`lo>lIHS$+scx-IyTn_NcK*%Uw4lrq{@5~)3Slv!9tt_r6@1H_|*RNY) zKgOc;iLEU;@ZbH;cjS=c&r+{}{fq8`!G7+`bLp|i9!(#-_r7G4p!5?z_#FWn@4owP zy8X;yM>3*(Ya4jUkCrLmD#nx3#?6f0}%X>oZawVeeZMd7(aC~e|@2#gte zRu}@IP+mO>qS27DmlN3oZJbac0~9^c|JAjXB7Xy91to*B0}Ke-6~f3SXOgJ|X@w{@ zR2>qE2-Osc2C(R(iJaxUO{axtAR{WdT4LzD~jBkPC&CQ`)Q1?Whwl#Ae#{t#De+;diQ} zr*cG{f&2m-C;>WzoJ5@hk=#}6X6G@1Z&fA!+pW%S06>*hlV4eDXCcMH0EoHD82~ykJPHs%DZj|0OR?qy^Avkt&c7G% z6u4!^uU?fd06DM~zu_dy4XQ}RFxexgGBjvbN zk^PtgMeu#U#vUrz2w`kyg;%Q%RqkAH&8Q!M-Uv`3KpTwkoV`&6Cx=O%oRH``pw2MX zIl%5^#R4>yYOShnDwSb~51k0HQHK0#L%~QBhp4ClihY&O|ty#W~)HLRN{_i7*0H z*&qGoX=lu}ItyX2ViOR>a`u2CMq);JT8E#PnoD=+1?~)Clxzb4D(WxJKRK-eB#l#7 zINZAw;oQ#c*}jUmzy}N657^i^7xtD8R;>tMS)7u)QtrI0Eq7a&0IBsU^4fN z9T5c*83%I=tC`|+oC`RtSFc}7m80Z_ z-xT;mlwNf4u`$o@hq}L&W@l!UqD|y^Wpz~*`(z)|rDrk4|;Z(e_2r2B zDPeV_yt9fN{JFVw{l;~zqX8QIw79q+8-Zeg$RD5vvQBUpkby`zay&aXrwBN9=O|qn zbiSG{mkt#e(NLN>k$UF9{5z{d7ff#zz@&bGm^nQg8(?&FI$LRZaV53a zH`7R+&O}@3@?`?gBMubXT%0^{QefsMpL~)I>_4cv;hByeJtC(YzZC!U(@#GUYvACa z17di*{`zYQY(MnCgL29h<^S$?t?GZPneM*puJru#ztNl#<^SM=4|Q*7{m(r6oSyv$ zKlp*}OO1ek_z(Y4di$NX^_;h#xjp@>fAweSM?dMh%(@mO{O*#YX5yM#nVq2r!N}3O9fO1kh?1j94U~(=Cbzg1}gt4MUBhz5(Ac zrwH1RF)EZlBxEe8y#{=k(+EOlMPdq{AllL?x6Dwu{FOVMyGA#6u;^r{6nTp_hO$74 zjU&)JWmh`FA8iWlFbSt4ii-_*6?EWKz>$b_>)FZo8#4tGj)EDf<}d-efGlfFl^lN^ z36Tez=Vr3`y@;3`Bt_23@l_q|-RR4?@esgHe&50%2>>l)H%K-V4G*Bjjpl0VhPR=L z<=W=pWW^d|?!}03XUd+<9D`x6-5g}2LR<0Aptj4XaIlWwqIg9k^!7*G1NlXsTP=&C zsiH8z9*h9;IWd4_AQ|m3H&kym&fzHmgYq>DEQx2&Y1t-AnY-(ASvXemz>P&wy>G0u zA^v5DhyZ}{YsWo?T_ZYewAutnz}+Z(*1xVECTIzvOocVGbY z2ic&~rCEIs)l$I6U``ZxGcYCsYA_*ij8%NjyD;$Fg8)FLFf+-BcNuwf3{$Jh7OXB? zL$#phEZQ)z1AirCgJ;CApa7#q)~|_<4cmg^b5Oz2<@gyyj0qyLK19HyU>rs700t~_ zZoyJO0UUMgFjxf8<;5P@YZ3e}zxYA{*ORACDc}73h0m2QzJLFL^!3-5RD0m$$R(-HfqUt}-Opqs7%aL}0JgR_aw22mr zMEOev_(64i9Mt`L_sRAII6+TSY>*f11@<$3AfE#kuon1U(C)c66o2*t;E&S&NCA=k zPs)a;fV3$(Xtgo~=umIN*+-G4r$X?O9qVSnSdd{-5=gP3KEe9xdTP}Ho>IE>)kVp& zb#h1=4=DgJG2VOU9j(iW6DJjIhmFB~01O_u|NivaYp)6fV1ND2@BB`B;f3clw~svX zi01XZciv5pJp8ayJ^+m#d-T!t#pj=k0l@cZ>3H#?{T*8Wr=NY6e)z*5YA^ie`RCIQ zp7?=$DvAL9=tn8GDIKkMK7FaP%e27nw@PX|y=6!d-^ z_a@Z&QK1;hPgz|}n;?vkqT-Myk4tnXi+Wi{ zx-5CYJ`fVp0YG!0cR(*$SXxk}M>YY@KS&YdqHxK=&6`rbY#0@xqgBe-m==Z2D^$>X zd|JMyRgYv$qWXCrrsz=KH6R3DJv_(9tdFfIRUl0k)kAm?JoOs(9HB6#bzc=-F-IbI zX2akWSl}H1q_F+qkLYo=O`u&TujcR3;%yw;;m&VKS+>vfJi2gp%~>-l?l#9PitXJh zqPs%`!<^^R6bS$z4EO*6*vJSpFVSgKd=aO>3jURcycG^Kip+?Iyq_V0-* z9P3cwS%<-IQRE@_h{GpNm4V+|N<{(W6pR385qPd1hd`t@L>h^XPrnw1tF4n6YO#Jf zgGJ-?ISv|Q)Tqekspxa8LX0>f){c=q2Lk{@Sv4=buoc&h{UW5D8X3L^)W6*6V4~!y zMN`>RJqG}Ca3a_oB^BQfBHIjBG%^RujA>cqCx+oyf>R#tsZjf6RJhS#du$LOio>s1 zx~PX3^X{$TN@`)$^4Q)vBJRaO9xS79NNv6Rw+^sG@hQF&g&L!q%7ENPJ%Y-g*>3WE zkY^WbB1>B+YHL(#8kEI=QZB#xyy5EHyOD_idf}*sJgP`P)FNWMy;rBA_3KlYeu5Ft^NKr(>)Q#rw#v*d?MI zyCNDkQA5_HdK?Y{v<3jgy4`B-<7^%V092VdAq4|l)B(9N6=3^XNzV-oB%}G;0a+QQ z=~UA-rW3=)QOh-oLiq^7TG_&97imD8oBXo!D#kf~_Pn_NyWGU(#6~z<{ z04ReI_FL6nAqUut)v>07V6oY-ysRVAmUWZB{_y%Zb{^Xta4lW}qP!(G5p~!mO8@Eg z(@4FMrpLw=^=~RLK!tj*@4EMB&V^dCd-R=?H3mMrRrX%Su*>fe{oeguM&(-&hOA9xKmXJ+HQK$rF+dRpd~{ zsa5`|eXeTsSqB6k8+y3xmgL`4AwVnKs?;_W12n+U>LRq{q!Y!)iKB}Gk$?WqcW@dF zP^_n$^YiJ{$&)Hj$8V@503Dq5=6k#dbmCYVsBm2}fRhZnnL={=_UzI1VGi85el49o zeO&tT+SMD9pQFcalhcTvJ97B29Dkmb>*M@$9;pSq1Du)}XENa*p(mANKVe-AitY#F z6Vky1QLVVN?JNE?$J$d*TsyE2*hhRnIv@}L76anyRq0+FRpym~f2;{90_bX-Uw{Yb z?#vI7Y_mbF?gdN(#wJ^oBJHq>#>Uh78Vn2cw6)RYd|(`;f5GU&5hwT@AR)43X(V*O znAEzELa@5LCOM-J;8*9rO6?5;`-ImLRbC2S&ey%;y@|Z*>ieeSKPt`}YsaRf?VB>`FZ{Uu z8d>g_sF_~m>)V>Hd5wcG3i60jK7Tr}{HzcPTtpPgwthG;Lv252fCOF7QfufhZK)@@ z9P#^b&`W2(deuQ7$BZa*lne|pV}*#R(OTWUut>ih>sr zaLbqH1&}HuggF6;pBVRUD?}1Xz$_ePJ-W*hb1o*8SAQ-k`VqA?x#1p>zvD2=G zHt7qNLlk^dV9SeLn~gHazziq0>coipUlcC1fL63dqYD_#vGT0`0)NP!bEYKU zZ+kk@fVBDeDdY$BUn#O9qh>3}2Jy;X-WH9y5lH3^zs`82WI~%B6GK-~c~$@4l-;4$ zd(YyDsa8ML^^1t`&-KXE-Xj4=@Y(wo!7){PL;Ow#Xi3Dy<-*J{w zsL()AlTj-~?ln@poi~np(CDL66!%drE()5vzQut@hr-^*PQ%aR+JGGVp84ax1cd>= z88bQj*!y%lfCa(zR7l+Fr7Dp?{EfYRXY70T4y?uR6g{MOj;k zS->#P8pcWo00qSw+fvd+t7)UVHV`bm-s#IrcdJbP>4g&O6gvZ@-mh zr)MN9&pz{vQs(cv`>yob>#yrMe)hAUrI%iMS+xgPpI2UfIsN3PKhYk6X+ZY@bjSPe zzpt7BbRMYv)BpJ|`Z(FqT4c~jHX{z_-wFb@RJ>$t)Tq5yHQXwuT5CRc{uKo$qG6G8 zQSH2~1d9$;pUGm7pgtEaT+jvq*+FT}FU)J>piq{USBmP7v_0TnJUBwa203}^q>#w< z^;J{4P@$Yw4=VrxfO=ze^D!A@JR`pkA!1YW{F^AcQ5L@^>I@rpYHC8%tf=H)Q2gD( z4k{Jj<(V-&5DX#T6rocM0q+WsMfgME@qMl-hCuZ_ z(|3W$`@f3fRCcZEtLiYt0a>Lo+Q3RozFMp>RQR_60D@T|5J^>OJ;I$){gJ1jeCiO% z9NAl&tAkZ##Z;++BUzNWh`M@iv77=2P0D>T2w;TrP%%9meTvL^`a(nsnM<_~Qb9`V z91%`VHD_Lx^?eE+gEHhuvlo_;F`2P2 z!Wk~su1HrIl#W}00gC>VmSbVGA@yg0!7w8j7bTZ8uI! zDUgGX0Z1=xmtoEytBqkaQ31|PSO{CnZ6@sjhm^4uEdc9us4e|!2eqS05LDpO%WMaQNd{2Y0+}S0?O3EX5AP(oDr-e>qfdM1@Um2Rd`SAui;RC z6#$6BZ+;hZ|Ks_T{us``sdqWO-c>0;dHx+NqAE*`U>HDvf=ZqXj{QiRY?wXueosa| zzlXhKx$>KG)Ow_$;A}&`S45JU0mxFP2mml{Y+%mfNIk^?#2!_x9u@qvXn$1wSE?a; zPr!!-8UPG=j(C3QU=CDIS&cM>D4ZO*`eIy&THjC8s+^8)Gy9!rC+kEIfbsBMf^C}~ zkP$ocuK)lHwJk$8tGkw^+E{V%hU$XxUKE(K)}2-dpjIPkIY0mz4;gc0;Plo%c%CS9 zr