birdnet-analyzer 2.0.1__py3-none-any.whl → 2.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. birdnet_analyzer/analyze/__init__.py +14 -0
  2. birdnet_analyzer/analyze/cli.py +5 -0
  3. birdnet_analyzer/analyze/core.py +6 -1
  4. birdnet_analyzer/analyze/utils.py +42 -40
  5. birdnet_analyzer/audio.py +2 -2
  6. birdnet_analyzer/cli.py +41 -18
  7. birdnet_analyzer/config.py +4 -3
  8. birdnet_analyzer/eBird_taxonomy_codes_2024E.json +13046 -0
  9. birdnet_analyzer/embeddings/core.py +2 -1
  10. birdnet_analyzer/embeddings/utils.py +42 -1
  11. birdnet_analyzer/evaluation/__init__.py +6 -13
  12. birdnet_analyzer/evaluation/assessment/performance_assessor.py +12 -57
  13. birdnet_analyzer/evaluation/assessment/plotting.py +61 -62
  14. birdnet_analyzer/evaluation/preprocessing/data_processor.py +1 -1
  15. birdnet_analyzer/gui/analysis.py +5 -1
  16. birdnet_analyzer/gui/assets/gui.css +8 -0
  17. birdnet_analyzer/gui/embeddings.py +37 -18
  18. birdnet_analyzer/gui/evaluation.py +14 -8
  19. birdnet_analyzer/gui/multi_file.py +25 -5
  20. birdnet_analyzer/gui/review.py +16 -63
  21. birdnet_analyzer/gui/settings.py +25 -4
  22. birdnet_analyzer/gui/single_file.py +14 -17
  23. birdnet_analyzer/gui/train.py +7 -16
  24. birdnet_analyzer/gui/utils.py +42 -55
  25. birdnet_analyzer/labels/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels_ca.txt +1 -1
  26. birdnet_analyzer/labels/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels_pl.txt +1 -1
  27. birdnet_analyzer/labels/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels_sr.txt +108 -108
  28. birdnet_analyzer/labels/V2.4/BirdNET_GLOBAL_6K_V2.4_Labels_zh.txt +1 -1
  29. birdnet_analyzer/lang/de.json +7 -0
  30. birdnet_analyzer/lang/en.json +7 -0
  31. birdnet_analyzer/lang/fi.json +7 -0
  32. birdnet_analyzer/lang/fr.json +7 -0
  33. birdnet_analyzer/lang/id.json +7 -0
  34. birdnet_analyzer/lang/pt-br.json +7 -0
  35. birdnet_analyzer/lang/ru.json +36 -29
  36. birdnet_analyzer/lang/se.json +7 -0
  37. birdnet_analyzer/lang/tlh.json +7 -0
  38. birdnet_analyzer/lang/zh_TW.json +7 -0
  39. birdnet_analyzer/model.py +21 -21
  40. birdnet_analyzer/search/core.py +1 -1
  41. birdnet_analyzer/utils.py +3 -4
  42. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/METADATA +18 -9
  43. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/RECORD +47 -47
  44. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/WHEEL +1 -1
  45. birdnet_analyzer/eBird_taxonomy_codes_2021E.json +0 -25280
  46. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/entry_points.txt +0 -0
  47. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/licenses/LICENSE +0 -0
  48. {birdnet_analyzer-2.0.1.dist-info → birdnet_analyzer-2.1.0.dist-info}/top_level.txt +0 -0
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "Valitse syötehakemisto (rekursiivinen)",
50
50
  "embeddings-tab-start-button-label": "Poimi upotukset",
51
51
  "embeddings-tab-title": "Upotukset",
52
+ "embedding-file-output-accordion-label": "Tiedostotulosteen asetukset",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Jos ei valittu, tiedostotulostetta ei luoda.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Tiedostotulosteen hakemisto",
55
+ "embeddings-select-file-output-directory-button-label": "Valitse tiedostotulosteen hakemisto",
52
56
  "eval-tab-accuracy-checkbox-info": "Tarkkuus mittaa mallin oikeiden ennusteiden prosenttiosuutta.",
53
57
  "eval-tab-annotation-col-accordion-label": "Merkintäsarakkeet",
54
58
  "eval-tab-annotation-selection-button-label": "Valitse merkintäkansio",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Lataa kartoitustiedosto",
114
118
  "eval-tab-warning-error-reading-file": "Virhe luettaessa tiedostoa",
115
119
  "footer-help": "Dokumentaatio ja tuki osoitteessa",
120
+ "footer-support": "Tue työtämme",
116
121
  "inference-settings-accordion-label": "Päättelyasetukset",
117
122
  "inference-settings-audio-speed-slider-info": "Negatiiviset arvot hidastavat, positiiviset nopeuttavat. Huomaa, että äänen nopeuden muokkaus tulisi käyttää myös koulutuksen aikana ollakseen tehokas tässä.",
118
123
  "inference-settings-audio-speed-slider-label": "Äänen nopeuden muutos",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "N parasta lajia",
133
138
  "inference-settings-use-top-n-checkbox-info": "Valitsee N parasta lajia luotettavuuden perusteella.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Käytä N parasta lajia",
140
+ "multi-tab-additional-columns-checkbox-info": "Lisää tulosteeseen lisäsarakkeita. \"Aloitus (s)\", \"Lopetus (s)\", \"Tieteellinen nimi\", \"Yleisnimi\", \"Luottamus\", \"Tiedosto\" sisältyvät jo.",
141
+ "multi-tab-additional-columns-checkbox-label": "Lisäsarakkeet CSV:lle",
135
142
  "multi-tab-batchsize-number-info": "Kerralla käsiteltävien näytteiden määrä.",
136
143
  "multi-tab-batchsize-number-label": "Eräkoko",
137
144
  "multi-tab-input-selection-button-label": "Valitse syötehakemisto (rekursiivinen)",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "Sélectionner le répertoire d'entrée (récursif)",
50
50
  "embeddings-tab-start-button-label": "Extraire les incorporations",
51
51
  "embeddings-tab-title": "Incorporations",
52
+ "embedding-file-output-accordion-label": "Paramètres de sortie de fichier",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Si non sélectionné, la sortie de fichier sera omise.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Répertoire de sortie de fichier",
55
+ "embeddings-select-file-output-directory-button-label": "Sélectionner le répertoire de sortie de fichier",
52
56
  "eval-tab-accuracy-checkbox-info": "La précision mesure le pourcentage de prédictions correctes faites par le modèle.",
53
57
  "eval-tab-annotation-col-accordion-label": "Colonnes d'annotation",
54
58
  "eval-tab-annotation-selection-button-label": "Sélectionner le répertoire d'annotations",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Téléverser le fichier de correspondance",
114
118
  "eval-tab-warning-error-reading-file": "Erreur lors de la lecture du fichier",
115
119
  "footer-help": "Pour de la documentation, visiter",
120
+ "footer-support": "Soutenez notre travail",
116
121
  "inference-settings-accordion-label": "Paramètres d'inférence",
117
122
  "inference-settings-audio-speed-slider-info": "Les valeurs négatives ralentissent, les valeurs positives accélèrent. Notez que la modification de la vitesse audio doit également être utilisée pendant l'entraînement pour être efficace ici.",
118
123
  "inference-settings-audio-speed-slider-label": "Modification de la vitesse audio",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "N premières espèces",
133
138
  "inference-settings-use-top-n-checkbox-info": "Sélectionne les N premières espèces triées par score de confiance.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Utiliser les N premières espèces",
140
+ "multi-tab-additional-columns-checkbox-info": "Ajoute des colonnes supplémentaires à la sortie. \"Début (s)\", \"Fin (s)\", \"Nom scientifique\", \"Nom commun\", \"Confiance\", \"Fichier\" sont déjà inclus.",
141
+ "multi-tab-additional-columns-checkbox-label": "Colonnes supplémentaires pour CSV",
135
142
  "multi-tab-batchsize-number-info": "Nombre d'échantillons à traiter en même temps.",
136
143
  "multi-tab-batchsize-number-label": "Taille du lot",
137
144
  "multi-tab-input-selection-button-label": "Sélection du répertoire d'entrée (récursif)",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "Pilih direktori input (rekursif)",
50
50
  "embeddings-tab-start-button-label": "Ekstrak embedding",
51
51
  "embeddings-tab-title": "Embedding",
52
+ "embedding-file-output-accordion-label": "Pengaturan file output",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Jika tidak dipilih, file output akan diabaikan.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Direktori file output",
55
+ "embeddings-select-file-output-directory-button-label": "Pilih direktori file output",
52
56
  "eval-tab-accuracy-checkbox-info": "Akurasi mengukur persentase prediksi benar yang dibuat oleh model.",
53
57
  "eval-tab-annotation-col-accordion-label": "Kolom anotasi",
54
58
  "eval-tab-annotation-selection-button-label": "Pilih direktori anotasi",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Unggah file pemetaan",
114
118
  "eval-tab-warning-error-reading-file": "Error saat membaca file",
115
119
  "footer-help": "Untuk dokumen dan dukungan kunjungi",
120
+ "footer-support": "Dukung Pekerjaan Kami",
116
121
  "inference-settings-accordion-label": "Pengaturan inferensi",
117
122
  "inference-settings-audio-speed-slider-info": "Nilai negatif memperlambat, nilai positif mempercepat. Perhatikan bahwa modifikasi kecepatan audio juga harus digunakan selama pelatihan agar efektif di sini.",
118
123
  "inference-settings-audio-speed-slider-label": "Modifikasi kecepatan audio",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "Top N spesies",
133
138
  "inference-settings-use-top-n-checkbox-info": "Memilih N spesies teratas yang diurutkan berdasarkan skor kepercayaan.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Gunakan top N spesies",
140
+ "multi-tab-additional-columns-checkbox-info": "Menambahkan kolom tambahan ke output. \"Mulai (d)\", \"Akhir (d)\", \"Nama ilmiah\", \"Nama umum\", \"Keyakinan\", \"Berkas\" sudah termasuk.",
141
+ "multi-tab-additional-columns-checkbox-label": "Kolom tambahan untuk CSV",
135
142
  "multi-tab-batchsize-number-info": "Jumlah sampel yang diproses sekaligus.",
136
143
  "multi-tab-batchsize-number-label": "Ukuran batch",
137
144
  "multi-tab-input-selection-button-label": "Pilih direktori input (rekursif)",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "Selecionar diretório de entrada (recursivo)",
50
50
  "embeddings-tab-start-button-label": "Extrair embeddings",
51
51
  "embeddings-tab-title": "Embeddings",
52
+ "embedding-file-output-accordion-label": "Configurações de saída de arquivo",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Se não selecionado, a saída de arquivo será omitida.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Diretório de saída de arquivo",
55
+ "embeddings-select-file-output-directory-button-label": "Selecionar diretório de saída de arquivo",
52
56
  "eval-tab-accuracy-checkbox-info": "A precisão mede a porcentagem de previsões corretas feitas pelo modelo.",
53
57
  "eval-tab-annotation-col-accordion-label": "Colunas de anotação",
54
58
  "eval-tab-annotation-selection-button-label": "Selecionar diretório de anotações",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Carregar arquivo de mapeamento",
114
118
  "eval-tab-warning-error-reading-file": "Erro ao ler arquivo",
115
119
  "footer-help": "Para documentos e suporte visite",
120
+ "footer-support": "Apoie nosso trabalho",
116
121
  "inference-settings-accordion-label": "Configurações de inferência",
117
122
  "inference-settings-audio-speed-slider-info": "Valores negativos desaceleram, valores positivos aceleram. Observe que a modificação da velocidade do áudio também deve ser usada durante o treinamento para ser eficaz aqui.",
118
123
  "inference-settings-audio-speed-slider-label": "Modificação da velocidade do áudio",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "Top N espécies",
133
138
  "inference-settings-use-top-n-checkbox-info": "Seleciona as N espécies principais classificadas por pontuação de confiança.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Usar as N espécies principais",
140
+ "multi-tab-additional-columns-checkbox-info": "Adiciona colunas adicionais à saída. \"Início (s)\", \"Fim (s)\", \"Nome científico\", \"Nome comum\", \"Confiança\", \"Arquivo\" já estão incluídos.",
141
+ "multi-tab-additional-columns-checkbox-label": "Colunas adicionais para CSV",
135
142
  "multi-tab-batchsize-number-info": "Número de amostras a serem processadas ao mesmo tempo.",
136
143
  "multi-tab-batchsize-number-label": "Tamanho do lote (Batch size)",
137
144
  "multi-tab-input-selection-button-label": "Selecione o diretório de entrada (recursivo)",
@@ -3,52 +3,56 @@
3
3
  "analyze-locale-dropdown-label": "Локация",
4
4
  "analyze-start-button-label": "Анализировать",
5
5
  "embedding-settings-accordion-label": "Настройки",
6
- "embedding-settings-audio-speed-slider-info": "Отрицательные значения замедляют, положительные значения ускоряют. Изменение скорости аудио будет сохранено в базе данных.",
6
+ "embedding-settings-audio-speed-slider-info": "Отрицательные значения замедляют, положительные ускоряют. Изменение скорости аудио будет сохранено в базе данных.",
7
7
  "embedding-settings-audio-speed-slider-label": "Изменение скорости аудио",
8
- "embedding-settings-batchsize-number-info": "Количество образцов для одновременной обработки.",
8
+ "embedding-settings-batchsize-number-info": "Количество выборок, обрабатываемых одновременно.",
9
9
  "embedding-settings-batchsize-number-label": "Размер пакета",
10
- "embedding-settings-fmax-number-info": "Обратите внимание, что частотные ограничения, используемые здесь, также должны применяться при поиске эмбеддингов.",
10
+ "embedding-settings-fmax-number-info": "Обратите внимание, что здесь используемые частоты должны совпадать с частотами при поиске по embeddings.",
11
11
  "embedding-settings-fmax-number-label": "Максимальная частота полосы пропускания (Гц)",
12
- "embedding-settings-fmin-number-info": "Обратите внимание, что частотные ограничения, используемые здесь, также должны применяться при поиске эмбеддингов.",
12
+ "embedding-settings-fmin-number-info": "Обратите внимание, что здесь используемые частоты должны совпадать с частотами при поиске по embeddings.",
13
13
  "embedding-settings-fmin-number-label": "Минимальная частота полосы пропускания (Гц)",
14
- "embedding-settings-overlap-slider-info": "Настройте перекрытие между образцами для извлечения эмбеддингов.",
15
- "embedding-settings-overlap-slider-label": "Перекрытие (сек)",
16
- "embedding-settings-threads-number-info": "Количество потоков процессора для использования.",
14
+ "embedding-settings-overlap-slider-info": "Настройте перекрытие между выборками для извлечения embeddings.",
15
+ "embedding-settings-overlap-slider-label": "Перекрытие (с)",
16
+ "embedding-settings-threads-number-info": "Количество используемых потоков CPU.",
17
17
  "embedding-settings-threads-number-label": "Потоки",
18
18
  "embeddings-db-already-exists-info": "База данных уже существует, используйте параметры скорости звука и полосового фильтра из настроек базы данных.",
19
- "embeddings-db-dir-validation-message": "Пожалуйста, выберите каталог для базы данных",
19
+ "embeddings-db-dir-validation-message": "Пожалуйста, выберите папку для базы данных",
20
20
  "embeddings-db-name-validation-message": "Пожалуйста, укажите имя для базы данных",
21
- "embeddings-extract-tab-title": "Извлечь",
22
- "embeddings-input-dir-validation-message": "Пожалуйста, выберите входной каталог",
23
- "embeddings-search-crop-mode-radio-info": "Настройте способ обрезки образца запроса, если он длиннее входных данных модели.",
24
- "embeddings-search-crop-overlap-number-info": "Настройте перекрытие образца запроса.",
25
- "embeddings-search-crop-overlap-number-label": "Перекрытие сегментов обрезки (сек)",
21
+ "embeddings-extract-tab-title": "Извлечение",
22
+ "embeddings-input-dir-validation-message": "Пожалуйста, выберите входную папку",
23
+ "embeddings-search-crop-mode-radio-info": "Настройте способ обрезки выборки-запроса, если она длиннее допустимого входа модели.",
24
+ "embeddings-search-crop-overlap-number-info": "Настройте перекрытие выборки-запроса.",
25
+ "embeddings-search-crop-overlap-number-label": "Перекрытие сегментов (с)",
26
26
  "embeddings-search-db-audio-speed-number-label": "Коэффициент скорости аудио",
27
- "embeddings-search-db-bandpass-frequencies-label": "Частоты полосы пропускания",
28
- "embeddings-search-db-embedding-count-number-label": "Эмбеддинги в базе данных",
27
+ "embeddings-search-db-bandpass-frequencies-label": "Полоса пропускания",
28
+ "embeddings-search-db-embedding-count-number-label": "Количество embeddings в базе",
29
29
  "embeddings-search-db-selection-button-label": "Выбрать базу данных",
30
30
  "embeddings-search-db-selection-error": "Не удалось найти базу данных, убедитесь, что выбран каталог, содержащий базу данных.",
31
31
  "embeddings-search-db-selection-textbox-label": "База данных",
32
32
  "embeddings-search-db-validation-message": "Пожалуйста, выберите базу данных для поиска",
33
- "embeddings-search-export-button-label": "Экспорт выбранных образцов",
34
- "embeddings-search-export-finish-info": "Экспорт выбранных образцов завершен в:",
35
- "embeddings-search-export-no-results-info": "Нет образцов для экспорта",
36
- "embeddings-search-max-samples-number-label": "Максимальное количество образцов для поиска",
37
- "embeddings-search-max-samples-validation-message": "Пожалуйста, укажите максимальное количество образцов для поиска",
38
- "embeddings-search-query-sample-textbox-label": "Образец запроса",
39
- "embeddings-search-query-validation-message": "Пожалуйста, выберите образец запроса",
33
+ "embeddings-search-export-button-label": "Экспортировать выбранные выборки",
34
+ "embeddings-search-export-finish-info": "Экспорт выбранных выборок завершён. Сохранено в:",
35
+ "embeddings-search-export-no-results-info": "Нет выборок для экспорта",
36
+ "embeddings-search-max-samples-number-label": "Максимальное количество выборок для поиска",
37
+ "embeddings-search-max-samples-validation-message": "Пожалуйста, укажите максимальное количество выборок для поиска",
38
+ "embeddings-search-query-sample-textbox-label": "Выборка-запрос",
39
+ "embeddings-search-query-validation-message": "Пожалуйста, выберите выборку-запрос",
40
40
  "embeddings-search-score-fn-select-label": "Функция оценки",
41
- "embeddings-search-select-query-button-label": "Выбрать образец запроса",
41
+ "embeddings-search-select-query-button-label": "Выбрать выборку-запрос",
42
42
  "embeddings-search-start-button-label": "Начать поиск",
43
43
  "embeddings-search-tab-title": "Поиск",
44
44
  "embeddings-tab-dataset-info": "Укажите имя набора данных",
45
45
  "embeddings-tab-dataset-label": "Набор данных",
46
46
  "embeddings-tab-db-info": "Имя базы данных",
47
- "embeddings-tab-finish-info": "Извлечение эмбеддингов завершено в:",
48
- "embeddings-tab-select-db-directory-button-label": "Выбрать каталог базы данных",
49
- "embeddings-tab-select-input-directory-button-label": "Выбрать входной каталог (рекурсивно)",
47
+ "embeddings-tab-finish-info": "Извлечение embeddings завершено. Сохранено в:",
48
+ "embeddings-tab-select-db-directory-button-label": "Выбрать папку базы данных",
49
+ "embeddings-tab-select-input-directory-button-label": "Выбрать входную папку (рекурсивно)",
50
50
  "embeddings-tab-start-button-label": "Извлечь эмбеддинги",
51
51
  "embeddings-tab-title": "Эмбеддинги",
52
+ "embedding-file-output-accordion-label": "Настройки вывода файлов",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Если не выбрано, вывод файлов будет пропущен.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Каталог вывода файлов",
55
+ "embeddings-select-file-output-directory-button-label": "Выбрать каталог вывода файлов",
52
56
  "eval-tab-accuracy-checkbox-info": "Точность измеряет процент правильных прогнозов, сделанных моделью.",
53
57
  "eval-tab-annotation-col-accordion-label": "Колонки аннотаций",
54
58
  "eval-tab-annotation-selection-button-label": "Выбрать каталог аннотаций",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Загрузить файл сопоставления",
114
118
  "eval-tab-warning-error-reading-file": "Ошибка чтения файла",
115
119
  "footer-help": "Для получения документации и поддержки посетите",
120
+ "footer-support": "Поддержите нашу работу",
116
121
  "inference-settings-accordion-label": "Настройки вывода",
117
122
  "inference-settings-audio-speed-slider-info": "Отрицательные значения замедляют, положительные значения ускоряют. Обратите внимание, что изменение скорости аудио также должно использоваться во время обучения, чтобы быть эффективным здесь.",
118
123
  "inference-settings-audio-speed-slider-label": "Изменение скорости аудио",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "Топ N видов",
133
138
  "inference-settings-use-top-n-checkbox-info": "Выбирает N лучших видов, отсортированных по степени достоверности.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Использовать N лучших видов",
140
+ "multi-tab-additional-columns-checkbox-info": "Добавляет дополнительные столбцы в вывод. \"Начало (с)\", \"Конец (с)\", \"Научное название\", \"Общее название\", \"Уверенность\", \"Файл\" уже включены.",
141
+ "multi-tab-additional-columns-checkbox-label": "Дополнительные столбцы для CSV",
135
142
  "multi-tab-batchsize-number-info": "Количество образцов для одновременной обработки.",
136
143
  "multi-tab-batchsize-number-label": "Размер пакета",
137
144
  "multi-tab-input-selection-button-label": "Выберите входной каталог (рекурсивный)",
@@ -212,15 +219,15 @@
212
219
  "settings-tab-theme-dropdown-light-option": "Светлая",
213
220
  "settings-tab-title": "Настройки",
214
221
  "single-audio-label": "файл",
215
- "single-tab-analyze-file-error": "Не удалось проанализировать файл",
222
+ "single-tab-analyze-file-error": "Невозможно проанализировать файл",
216
223
  "single-tab-download-button-label": "Результаты загрузки",
217
- "single-tab-generate-spectrogram-error": "Не удалось сгенерировать спектрограмму",
224
+ "single-tab-generate-spectrogram-error": "Невозможно создать спектрограмму",
218
225
  "single-tab-output-header-common-name": "Общее название",
219
226
  "single-tab-output-header-confidence": "Достоверность",
220
227
  "single-tab-output-header-end": "Конец (сек)",
221
228
  "single-tab-output-header-sci-name": "Научное название",
222
229
  "single-tab-output-header-start": "Старт (сек)",
223
- "single-tab-spectrogram-checkbox-info": "Может быть медленно для длинных аудиофайлов.",
230
+ "single-tab-spectrogram-checkbox-info": "Потенциально медленная операция для длинных аудиофайлов.",
224
231
  "single-tab-spectrogram-checkbox-label": "Генерирование спектрограммы",
225
232
  "single-tab-title": "Одиночный анализ",
226
233
  "species-list-accordion-label": "Выбор вида",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "Välj indatakatalog (rekursiv)",
50
50
  "embeddings-tab-start-button-label": "Extrahera inbäddningar",
51
51
  "embeddings-tab-title": "Inbäddningar",
52
+ "embedding-file-output-accordion-label": "Filutdata-inställningar",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "Om inte vald, kommer filutdata att utelämnas.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "Filutdatakatalog",
55
+ "embeddings-select-file-output-directory-button-label": "Välj filutdatakatalog",
52
56
  "eval-tab-accuracy-checkbox-info": "Noggrannhet mäter procentandelen korrekta förutsägelser som modellen gör.",
53
57
  "eval-tab-annotation-col-accordion-label": "Anteckningskolumner",
54
58
  "eval-tab-annotation-selection-button-label": "Välj anteckningskatalog",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "Ladda upp mappningsfil",
114
118
  "eval-tab-warning-error-reading-file": "Fel vid läsning av fil",
115
119
  "footer-help": "För dokumentation och support besök",
120
+ "footer-support": "Stöd vårt arbete",
116
121
  "inference-settings-accordion-label": "Inferensinställningar",
117
122
  "inference-settings-audio-speed-slider-info": "Negativa värden saktar ner, positiva värden ökar hastigheten. Observera att ljudhastighetsmodifiering också bör användas under träning för att vara effektiv här.",
118
123
  "inference-settings-audio-speed-slider-label": "Ljudhastighetsmodifiering",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "De N bästa arterna",
133
138
  "inference-settings-use-top-n-checkbox-info": "Väljer de N bästa arterna sorterade efter konfidensvärde.",
134
139
  "inference-settings-use-top-n-checkbox-label": "Använd de N bästa arterna",
140
+ "multi-tab-additional-columns-checkbox-info": "Lägger till ytterligare kolumner i utdata. \"Start (s)\", \"Slut (s)\", \"Vetenskapligt namn\", \"Allmänt namn\", \"Förtroende\", \"Fil\" ingår redan.",
141
+ "multi-tab-additional-columns-checkbox-label": "Ytterligare kolumner för CSV",
135
142
  "multi-tab-batchsize-number-info": "Antal prover att bearbeta samtidigt.",
136
143
  "multi-tab-batchsize-number-label": "Batchstorlek",
137
144
  "multi-tab-input-selection-button-label": "Välj indatakatalog (rekursiv)",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "wav Daq yIwIv (rap)",
50
50
  "embeddings-tab-start-button-label": "qelmey yInob",
51
51
  "embeddings-tab-title": "qelmey",
52
+ "embedding-file-output-accordion-label": "wavmey chu' chut mutlh",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "wIvHa'chugh, wavmey chu'Ha'.",
54
+ "embeddings-tab-file-output-directory-textbox-label": "wavmey chu' Daq",
55
+ "embeddings-select-file-output-directory-button-label": "wavmey chu' Daq yIwIv",
52
56
  "eval-tab-accuracy-checkbox-info": "qel patlh vIt.",
53
57
  "eval-tab-annotation-col-accordion-label": "QInmey",
54
58
  "eval-tab-annotation-selection-button-label": "QIn Daq yIwIv",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "map wav yIchel",
114
118
  "eval-tab-warning-error-reading-file": "wav qelHa'",
115
119
  "footer-help": "qaSmo' chutmey chu' yIchoH 'e' QaH",
120
+ "footer-support": "Qapma' yIQan",
116
121
  "inference-settings-accordion-label": "poj chut mutlh",
117
122
  "inference-settings-audio-speed-slider-info": "mI' motlhHa' veb, mI' motlh veb. yIvoqQo' Qo' veb lo' 'e' DaHutlh 'ej Qapla' 'e' Datu' 'e' yIlo'.",
118
123
  "inference-settings-audio-speed-slider-label": "Qo' veb",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "N top Segh",
133
138
  "inference-settings-use-top-n-checkbox-info": "povmeH mI' lISbogh N top Segh wIv.",
134
139
  "inference-settings-use-top-n-checkbox-label": "N top Segh yIlo'",
140
+ "multi-tab-additional-columns-checkbox-info": "De' chu' mIwDaq chel. \"tagh (s)\", \"Dor (s)\", \"Sarmaq pong\", \"pop pong\", \"voQSIp\", \"chovnatlh\" already tu'.",
141
+ "multi-tab-additional-columns-checkbox-label": "CSV mey chu'",
135
142
  "multi-tab-batchsize-number-info": "wavmey chu'law'.",
136
143
  "multi-tab-batchsize-number-label": "batch qechmey",
137
144
  "multi-tab-input-selection-button-label": "wav Segh lo'",
@@ -49,6 +49,10 @@
49
49
  "embeddings-tab-select-input-directory-button-label": "選擇輸入目錄(遞歸)",
50
50
  "embeddings-tab-start-button-label": "提取嵌入",
51
51
  "embeddings-tab-title": "嵌入",
52
+ "embedding-file-output-accordion-label": "檔案輸出設定",
53
+ "embeddings-tab-file-output-directory-textbox-placeholder": "若無選擇,將不進行檔案輸出。",
54
+ "embeddings-tab-file-output-directory-textbox-label": "檔案輸出資料夾",
55
+ "embeddings-select-file-output-directory-button-label": "選擇檔案輸出資料夾",
52
56
  "eval-tab-accuracy-checkbox-info": "準確度測量模型做出正確預測的百分比。",
53
57
  "eval-tab-annotation-col-accordion-label": "註釋欄位",
54
58
  "eval-tab-annotation-selection-button-label": "選擇註釋目錄",
@@ -113,6 +117,7 @@
113
117
  "eval-tab-upload-mapping-file-label": "上傳映射文件",
114
118
  "eval-tab-warning-error-reading-file": "讀取文件出錯",
115
119
  "footer-help": "參考檔案以及尋求協助",
120
+ "footer-support": "支持我們的工作",
116
121
  "inference-settings-accordion-label": "參數設定",
117
122
  "inference-settings-audio-speed-slider-info": "負值減慢,正值加快。請注意,音頻速度修改也應在訓練期間使用,以便在此處有效。",
118
123
  "inference-settings-audio-speed-slider-label": "音頻速度修改",
@@ -132,6 +137,8 @@
132
137
  "inference-settings-top-n-number-label": "前 N 個物種",
133
138
  "inference-settings-use-top-n-checkbox-info": "挑選依信賴分數排序的前 N 個物種",
134
139
  "inference-settings-use-top-n-checkbox-label": "使用前 N 個物種",
140
+ "multi-tab-additional-columns-checkbox-info": "將額外欄位加入輸出中。「開始(秒)」、「結束(秒)」、「學名」、「常見名稱」、「信心度」、「檔案」已包含在內。",
141
+ "multi-tab-additional-columns-checkbox-label": "CSV 額外欄位",
135
142
  "multi-tab-batchsize-number-info": "在同一時間分析的音檔數量",
136
143
  "multi-tab-batchsize-number-label": "批次量",
137
144
  "multi-tab-input-selection-button-label": "選擇音檔資料夾(遞迴)",
birdnet_analyzer/model.py CHANGED
@@ -32,6 +32,7 @@ if not cfg.MODEL_PATH.endswith(".tflite"):
32
32
  INTERPRETER: tflite.Interpreter = None
33
33
  C_INTERPRETER: tflite.Interpreter = None
34
34
  M_INTERPRETER: tflite.Interpreter = None
35
+ OUTPUT_DETAILS = None
35
36
  PBMODEL = None
36
37
  C_PBMODEL = None
37
38
  EMPTY_CLASS_EXCEPTION_REF = None
@@ -141,8 +142,8 @@ def mixup(x, y, augmentation_ratio=0.25, alpha=0.2):
141
142
  # Mark the sample as already mixed up
142
143
  mixed_up_indices.append(index)
143
144
 
144
- del mixed_x
145
- del mixed_y
145
+ del mixed_x
146
+ del mixed_y
146
147
 
147
148
  return x, y
148
149
 
@@ -296,7 +297,7 @@ def random_multilabel_split(x, y, val_ratio=0.2):
296
297
  return x_train, y_train, x_val, y_val
297
298
 
298
299
 
299
- def upsample_core(x: np.ndarray, y: np.ndarray, min_samples: int, apply: callable, size=2):
300
+ def upsample_core(x: np.ndarray, y: np.ndarray, min_samples: int, apply, size=2):
300
301
  """
301
302
  Upsamples the minority class in the dataset using the specified apply function.
302
303
  Parameters:
@@ -509,26 +510,28 @@ def load_model(class_output=True):
509
510
  global INTERPRETER
510
511
  global INPUT_LAYER_INDEX
511
512
  global OUTPUT_LAYER_INDEX
513
+ global OUTPUT_DETAILS
512
514
 
513
515
  # Do we have to load the tflite or protobuf model?
514
516
  if cfg.MODEL_PATH.endswith(".tflite"):
515
- # Load TFLite model and allocate tensors.
516
- INTERPRETER = tflite.Interpreter(
517
- model_path=os.path.join(SCRIPT_DIR, cfg.MODEL_PATH), num_threads=cfg.TFLITE_THREADS
518
- )
519
- INTERPRETER.allocate_tensors()
517
+ if not INTERPRETER:
518
+ # Load TFLite model and allocate tensors.
519
+ INTERPRETER = tflite.Interpreter(
520
+ model_path=os.path.join(SCRIPT_DIR, cfg.MODEL_PATH), num_threads=cfg.TFLITE_THREADS
521
+ )
522
+ INTERPRETER.allocate_tensors()
520
523
 
521
- # Get input and output tensors.
522
- input_details = INTERPRETER.get_input_details()
523
- output_details = INTERPRETER.get_output_details()
524
+ # Get input and output tensors.
525
+ input_details = INTERPRETER.get_input_details()
526
+ OUTPUT_DETAILS = INTERPRETER.get_output_details()
524
527
 
525
- # Get input tensor index
526
- INPUT_LAYER_INDEX = input_details[0]["index"]
528
+ # Get input tensor index
529
+ INPUT_LAYER_INDEX = input_details[0]["index"]
527
530
 
528
531
  # Get classification output or feature embeddings
529
- OUTPUT_LAYER_INDEX = output_details[0]["index"] if class_output else output_details[0]["index"] - 1
532
+ OUTPUT_LAYER_INDEX = OUTPUT_DETAILS[0]["index"] if class_output else OUTPUT_DETAILS[0]["index"] - 1
530
533
 
531
- else:
534
+ elif not PBMODEL:
532
535
  # Load protobuf model
533
536
  # Note: This will throw a bunch of warnings about custom gradients
534
537
  # which we will ignore until TF lets us block them
@@ -1141,9 +1144,7 @@ def predict(sample):
1141
1144
  if cfg.CUSTOM_CLASSIFIER is not None:
1142
1145
  return predict_with_custom_classifier(sample)
1143
1146
 
1144
- # Does interpreter or keras model exist?
1145
- if INTERPRETER is None and PBMODEL is None:
1146
- load_model()
1147
+ load_model()
1147
1148
 
1148
1149
  if PBMODEL is None:
1149
1150
  # Reshape input tensor
@@ -1197,9 +1198,8 @@ def embeddings(sample):
1197
1198
  Returns:
1198
1199
  The embeddings.
1199
1200
  """
1200
- # Does interpreter exist?
1201
- if INTERPRETER is None:
1202
- load_model(False)
1201
+
1202
+ load_model(False)
1203
1203
 
1204
1204
  # Reshape input tensor
1205
1205
  INTERPRETER.resize_tensor_input(INPUT_LAYER_INDEX, [len(sample), *sample[0].shape])
@@ -68,7 +68,7 @@ def search(
68
68
  offset = embedding_source.offsets[0] * audio_speed
69
69
  duration = cfg.SIG_LENGTH * audio_speed
70
70
  sig, rate = audio.open_audio_file(file, offset=offset, duration=duration, sample_rate=None)
71
- result_path = os.path.join(output, f"{file[4]:.5f}_{filebasename}_{offset}_{offset + duration}.wav")
71
+ result_path = os.path.join(output, f"{r.sort_score:.5f}_{filebasename}_{offset}_{offset + duration}.wav")
72
72
  audio.save_signal(sig, result_path, rate)
73
73
 
74
74
 
birdnet_analyzer/utils.py CHANGED
@@ -12,7 +12,7 @@ SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
12
12
  FROZEN = getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS")
13
13
 
14
14
 
15
- def runtime_error_handler(f: callable):
15
+ def runtime_error_handler(f):
16
16
  """Decorator to catch runtime errors and write them to the error log.
17
17
 
18
18
  Args:
@@ -56,10 +56,9 @@ def spectrogram_from_file(path, fig_num=None, fig_size=None, offset=0, duration=
56
56
  """
57
57
  from birdnet_analyzer import audio
58
58
 
59
- # s, sr = librosa.load(path, offset=offset, duration=duration)
60
59
  s, sr = audio.open_audio_file(path, offset=offset, duration=duration, fmin=fmin, fmax=fmax, speed=speed)
61
60
 
62
- return spectrogram_from_audio(s, sr, fig_num, fig_size)
61
+ return spectrogram_from_audio(s, sr, fig_num=fig_num, fig_size=fig_size)
63
62
 
64
63
 
65
64
  def spectrogram_from_audio(s, sr, fig_num=None, fig_size=None):
@@ -149,7 +148,7 @@ def collect_all_files(path: str, filetypes: list[str], pattern: str = ""):
149
148
  return sorted(files)
150
149
 
151
150
 
152
- def read_lines(path: str):
151
+ def read_lines(path: str | Path):
153
152
  """Reads the lines into a list.
154
153
 
155
154
  Opens the file and reads its contents into a list.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: birdnet_analyzer
3
- Version: 2.0.1
3
+ Version: 2.1.0
4
4
  Summary: BirdNET analyzer for scientific audio data processing and bird classification.
5
5
  Author: Stefan Kahl
6
6
  Maintainer: Josef Haupt, Max Mauermann
@@ -25,6 +25,8 @@ Requires-Dist: resampy
25
25
  Requires-Dist: tensorflow==2.15.1
26
26
  Requires-Dist: scikit-learn==1.6.1
27
27
  Requires-Dist: tqdm
28
+ Requires-Dist: pandas
29
+ Requires-Dist: matplotlib
28
30
  Provides-Extra: train
29
31
  Requires-Dist: keras-tuner; extra == "train"
30
32
  Provides-Extra: server
@@ -32,21 +34,25 @@ Requires-Dist: bottle; extra == "server"
32
34
  Requires-Dist: requests; extra == "server"
33
35
  Provides-Extra: gui
34
36
  Requires-Dist: birdnet-analyzer[embeddings,train]; extra == "gui"
35
- Requires-Dist: gradio==5.25.2; extra == "gui"
37
+ Requires-Dist: gradio==5.32.1; extra == "gui"
36
38
  Requires-Dist: pywebview; extra == "gui"
37
- Requires-Dist: matplotlib; extra == "gui"
38
39
  Requires-Dist: plotly[express]; extra == "gui"
39
- Requires-Dist: seaborn; extra == "gui"
40
40
  Requires-Dist: pywin32; platform_system == "Windows" and extra == "gui"
41
+ Requires-Dist: qtpy; platform_system == "Linux" and extra == "gui"
42
+ Requires-Dist: PyGObject; platform_system == "Linux" and extra == "gui"
41
43
  Provides-Extra: embeddings
42
44
  Requires-Dist: perch-hoplite; extra == "embeddings"
43
45
  Provides-Extra: all
44
46
  Requires-Dist: birdnet-analyzer[gui,server]; extra == "all"
47
+ Provides-Extra: docs
48
+ Requires-Dist: sphinx; extra == "docs"
49
+ Requires-Dist: sphinx-rtd-theme; extra == "docs"
50
+ Requires-Dist: sphinx-argparse; extra == "docs"
51
+ Provides-Extra: tests
52
+ Requires-Dist: pytest; extra == "tests"
45
53
  Provides-Extra: dev
46
- Requires-Dist: sphinx; extra == "dev"
47
- Requires-Dist: sphinx-rtd-theme; extra == "dev"
48
- Requires-Dist: sphinx-argparse; extra == "dev"
49
- Requires-Dist: pytest; extra == "dev"
54
+ Requires-Dist: birdnet_analyzer[tests]; extra == "dev"
55
+ Requires-Dist: birdnet_analyzer[docs]; extra == "dev"
50
56
  Requires-Dist: ruff; extra == "dev"
51
57
  Dynamic: license-file
52
58
 
@@ -72,9 +78,11 @@ Dynamic: license-file
72
78
  [![GitHub release](https://img.shields.io/github/v/release/birdnet-team/BirdNET-Analyzer)](https://github.com/birdnet-team/BirdNET-Analyzer/releases/latest)
73
79
  [![PyPI - Version](https://img.shields.io/pypi/v/birdnet_analyzer?logo=pypi)](https://pypi.org/project/birdnet-analyzer/)
74
80
 
81
+ [![Sponsor](https://img.shields.io/badge/Support%20our%20work-8A2BE2?logo=data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBkYXRhLXZpZXctY29tcG9uZW50PSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICAgIDxwYXRoIGQ9Im04IDE0LjI1LjM0NS42NjZhLjc1Ljc1IDAgMCAxLS42OSAwbC0uMDA4LS4wMDQtLjAxOC0uMDFhNy4xNTIgNy4xNTIgMCAwIDEtLjMxLS4xNyAyMi4wNTUgMjIuMDU1IDAgMCAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDY2IDIyLjA2NiAwIDAgMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMlpNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTggMjAuNTggMCAwIDAgOCAxMy4zOTNhMjAuNTggMjAuNTggMCAwIDAgMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc0OS43NDkgMCAwIDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjVaIj48L3BhdGg+DQo8L3N2Zz4=)](https://give.birds.cornell.edu/page/132162/donate/1)
82
+
75
83
  </div>
76
84
 
77
- This repo contains BirdNET models and scripts for processing large amounts of audio data or single audio files.
85
+ This repo contains BirdNET scripts for processing large amounts of audio data or single audio files.
78
86
  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.
79
87
 
80
88
  Feel free to use BirdNET for your acoustic analyses and research.
@@ -99,6 +107,7 @@ You can access documentation for this project [here](https://birdnet-team.github
99
107
  ## Download
100
108
 
101
109
  You can download installers for Windows and macOS from the [releases page](https://github.com/birdnet-team/BirdNET-Analyzer/releases/latest).
110
+ Models can be found on [Zenodo](https://zenodo.org/records/15050749).
102
111
 
103
112
  ## About
104
113