{"id":316881,"name":"BatDetect2","description":"Code for detecting and classifying bat echolocation calls in high frequency audio recordings.","url":"https://github.com/macaodha/batdetect2","last_synced_at":"2026-05-31T16:30:23.093Z","repository":{"id":93600290,"uuid":"575387849","full_name":"macaodha/batdetect2","owner":"macaodha","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-07T09:06:51.000Z","size":36110,"stargazers_count":98,"open_issues_count":20,"forks_count":17,"subscribers_count":17,"default_branch":"main","last_synced_at":"2026-05-28T15:03:44.963Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macaodha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-07T11:59:12.000Z","updated_at":"2026-05-25T06:38:14.000Z","dependencies_parsed_at":"2025-03-12T19:19:34.811Z","dependency_job_id":null,"html_url":"https://github.com/macaodha/batdetect2","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/macaodha/batdetect2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macaodha","download_url":"https://codeload.github.com/macaodha/batdetect2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33698654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"macaodha","name":"Oisin Mac Aodha","uuid":"6660523","kind":"user","description":"","email":"","website":"https://homepages.inf.ed.ac.uk/omacaod/","location":null,"twitter":null,"company":"University of Edinburgh","icon_url":"https://avatars.githubusercontent.com/u/6660523?u=0b8c583ab03a28311bcc9664e805d4b7f62817af\u0026v=4","repositories_count":4,"last_synced_at":"2023-03-01T06:10:27.905Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/macaodha","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-12T05:13:56.651Z","updated_at":"2023-03-01T06:10:27.915Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macaodha","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macaodha/repositories"},"packages":[],"commits":{"id":10018800,"full_name":"macaodha/batdetect2","default_branch":"main","total_commits":649,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":108.16666666666667,"dds":0.055469953775038494,"past_year_total_commits":375,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":187.5,"past_year_dds":0.005333333333333301,"last_synced_at":"2026-05-28T15:02:12.128Z","last_synced_commit":"0adb1bbea7d1f908db65a1b036385ecc286f187e","created_at":"2025-05-21T00:11:27.655Z","updated_at":"2026-05-28T15:02:03.338Z","committers":[{"name":"mbsantiago","email":"santiago.mbal@gmail.com","login":"mbsantiago","count":613},{"name":"macaodha","email":"macaodha@gmail.com","login":"macaodha","count":14},{"name":"Kavi","email":"kavi@ecos.au.dk","login":"kaviecos","count":13},{"name":"Oisin Mac Aodha","email":"omacaod@ed.ac.uk","login":null,"count":5},{"name":"ccarrizosa","email":"c.carrizosa@gmx.com","login":"ccarrizosa","count":3},{"name":"Arky","email":"hitmanarky@gmail.com","login":"arky","count":1}],"past_year_committers":[{"name":"mbsantiago","email":"santiago.mbal@gmail.com","login":"mbsantiago","count":373},{"name":"Kavi Askholm Mellerup","email":"111115633+kaviecos","login":"kaviecos","count":2}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-30T00:00:22.241Z","repositories_count":6248997,"commits_count":883835434,"contributors_count":34995979,"owners_count":1160661,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"macaodha/batdetect2","html_url":"https://github.com/macaodha/batdetect2","last_synced_at":"2026-05-12T07:03:00.766Z","status":"active","issues_count":41,"pull_requests_count":25,"avg_time_to_close_issue":3025252.1578947366,"avg_time_to_close_pull_request":670038.0,"issues_closed_count":19,"pull_requests_closed_count":24,"pull_request_authors_count":5,"issue_authors_count":27,"avg_comments_per_issue":3.0,"avg_comments_per_pull_request":1.0,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":13,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":13877.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":2.769230769230769,"past_year_avg_comments_per_pull_request":0.3333333333333333,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2025-05-21T00:11:29.635Z","updated_at":"2026-05-12T07:03:00.766Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaodha%2Fbatdetect2/issues","issue_labels_count":{"bug":5,"documentation":1,"enhancement":1},"pull_request_labels_count":{"enhancement":1,"bug":1},"issue_author_associations_count":{"NONE":39,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"COLLABORATOR":18,"CONTRIBUTOR":4,"NONE":3},"issue_authors":{"markgloverswaybtinternetcom":7,"Jeff37":5,"kdarras":3,"d-singer":2,"chrmue44":2,"jenstangchristensen":1,"kaviecos":1,"arky":1,"MatisPatel":1,"NoxTheXelor":1,"tdelattre":1,"sergewich":1,"niallel":1,"fhaefele":1,"RanelelSapo":1,"terpsiphone":1,"scanjack":1,"ccharp":1,"revilodarnoc":1,"vogelbam":1,"mark-pob":1,"batthiloreng":1,"BEDOET":1,"lollogiro":1,"ibrila":1,"AlicedeSampaioKalkuhl":1,"EvansMike":1},"pull_request_authors":{"mbsantiago":18,"kaviecos":3,"ccarrizosa":2,"arky":1,"EvansMike":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-30T00:00:22.129Z","repositories_count":14731250,"issues_count":33628088,"pull_requests_count":110638787,"authors_count":11283449,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":11},"past_year_pull_request_author_associations_count":{"COLLABORATOR":2,"CONTRIBUTOR":1},"past_year_issue_authors":{"d-singer":2,"markgloverswaybtinternetcom":2,"AlicedeSampaioKalkuhl":1,"batthiloreng":1,"ibrila":1,"niallel":1,"scanjack":1,"tdelattre":1,"terpsiphone":1},"past_year_pull_request_authors":{"mbsantiago":2,"kaviecos":1},"maintainers":[{"login":"mbsantiago","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mbsantiago"}],"active_maintainers":[{"login":"mbsantiago","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mbsantiago"}]},"events":{"total":{"ReleaseEvent":4,"PullRequestEvent":18,"ForkEvent":6,"IssuesEvent":21,"WatchEvent":24,"IssueCommentEvent":51,"PushEvent":82,"PullRequestReviewCommentEvent":20,"PullRequestReviewEvent":8,"CreateEvent":12},"last_year":{"IssuesEvent":6,"WatchEvent":12,"IssueCommentEvent":14,"PushEvent":64,"PullRequestReviewEvent":1,"CreateEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/python-package.yml","sha":null,"kind":"manifest","created_at":"2023-04-05T20:04:14.724Z","updated_at":"2023-04-05T20:04:14.724Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/.github/workflows/python-package.yml","dependencies":[{"id":8832522109,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":8832522110,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-04-05T20:04:15.173Z","updated_at":"2023-04-05T20:04:15.173Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/requirements.txt","dependencies":[{"id":8832522668,"package_name":"librosa","ecosystem":"pypi","requirements":"==0.9.2","direct":true,"kind":"runtime","optional":false},{"id":8832522690,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.6.2","direct":true,"kind":"runtime","optional":false},{"id":8832522691,"package_name":"numpy","ecosystem":"pypi","requirements":"==1.23.4","direct":true,"kind":"runtime","optional":false},{"id":8832522692,"package_name":"pandas","ecosystem":"pypi","requirements":"==1.5.2","direct":true,"kind":"runtime","optional":false},{"id":8832522694,"package_name":"scikit_learn","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":8832522713,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.9.3","direct":true,"kind":"runtime","optional":false},{"id":8832522715,"package_name":"torch","ecosystem":"pypi","requirements":"==1.13.0","direct":true,"kind":"runtime","optional":false},{"id":8832522717,"package_name":"torchaudio","ecosystem":"pypi","requirements":"==0.13.0","direct":true,"kind":"runtime","optional":false},{"id":8832522729,"package_name":"torchvision","ecosystem":"pypi","requirements":"==0.14.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-publish.yml","sha":null,"kind":"manifest","created_at":"2023-11-24T16:46:18.880Z","updated_at":"2023-11-24T16:46:18.880Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/.github/workflows/python-publish.yml","dependencies":[{"id":14703637970,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14703637971,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14703637972,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"27b31702a0e7fc50959f5ad993c78deac1bdfc29","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-11-24T16:46:19.390Z","updated_at":"2023-11-24T16:46:19.390Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/pyproject.toml","dependencies":[{"id":14703637995,"package_name":"librosa","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703637996,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703637997,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703637998,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703637999,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703638000,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703638001,"package_name":"torch","ecosystem":"pypi","requirements":"\u003e=1.13.1,\u003c2","direct":true,"kind":"runtime","optional":false},{"id":14703638002,"package_name":"torchaudio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703638003,"package_name":"torchvision","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":14703638004,"package_name":"click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-03-12T19:19:32.844Z","updated_at":"2025-03-12T19:19:32.844Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/environment.yml","dependencies":[{"id":22240694072,"package_name":"librosa","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694238,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694239,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694240,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694241,"package_name":"python","ecosystem":"conda","requirements":"3.10","direct":true,"kind":"runtime","optional":false},{"id":22240694242,"package_name":"pytorch","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694243,"package_name":"scikit-learn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694244,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694245,"package_name":"torchaudio","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22240694246,"package_name":"torchvision","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2025-03-12T19:19:33.512Z","updated_at":"2025-03-12T19:19:33.512Z","repository_link":"https://github.com/macaodha/batdetect2/blob/main/uv.lock","dependencies":[{"id":22240694247,"package_name":"attrs","ecosystem":"pypi","requirements":"24.2.0","direct":false,"kind":"runtime","optional":false},{"id":22240694248,"package_name":"audioread","ecosystem":"pypi","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":22240694249,"package_name":"batdetect2","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":22240694255,"package_name":"certifi","ecosystem":"pypi","requirements":"2024.8.30","direct":false,"kind":"runtime","optional":false},{"id":22240694256,"package_name":"cffi","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":22240694257,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":22240694258,"package_name":"click","ecosystem":"pypi","requirements":"8.1.7","direct":false,"kind":"runtime","optional":false},{"id":22240694259,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":22240694260,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":22240694261,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":22240694262,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.8","direct":false,"kind":"runtime","optional":false},{"id":22240694263,"package_name":"decorator","ecosystem":"pypi","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":22240694264,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":22240694265,"package_name":"filelock","ecosystem":"pypi","requirements":"3.16.1","direct":false,"kind":"runtime","optional":false},{"id":22240694266,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.54.1","direct":false,"kind":"runtime","optional":false},{"id":22240694267,"package_name":"fsspec","ecosystem":"pypi","requirements":"2024.10.0","direct":false,"kind":"runtime","optional":false},{"id":22240694268,"package_name":"hypothesis","ecosystem":"pypi","requirements":"6.118.7","direct":false,"kind":"runtime","optional":false},{"id":22240694269,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":22240694270,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"6.4.5","direct":false,"kind":"runtime","optional":false},{"id":22240694271,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":22240694272,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":22240694273,"package_name":"joblib","ecosystem":"pypi","requirements":"1.4.2","direct":false,"kind":"runtime","optional":false},{"id":22240694274,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.7","direct":false,"kind":"runtime","optional":false},{"id":22240694275,"package_name":"lazy-loader","ecosystem":"pypi","requirements":"0.4","direct":false,"kind":"runtime","optional":false},{"id":22240694291,"package_name":"librosa","ecosystem":"pypi","requirements":"0.10.2.post1","direct":false,"kind":"runtime","optional":false},{"id":22240694292,"package_name":"llvmlite","ecosystem":"pypi","requirements":"0.43.0","direct":false,"kind":"runtime","optional":false},{"id":22240694293,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":22240694294,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.9.2","direct":false,"kind":"runtime","optional":false},{"id":22240694295,"package_name":"mpmath","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":22240694296,"package_name":"msgpack","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":22240694297,"package_name":"networkx","ecosystem":"pypi","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":22240694298,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":22240694299,"package_name":"numba","ecosystem":"pypi","requirements":"0.60.0","direct":false,"kind":"runtime","optional":false},{"id":22240694300,"package_name":"numpy","ecosystem":"pypi","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":22240694301,"package_name":"nvidia-cublas-cu12","ecosystem":"pypi","requirements":"12.1.3.1","direct":false,"kind":"runtime","optional":false},{"id":22240694302,"package_name":"nvidia-cuda-cupti-cu12","ecosystem":"pypi","requirements":"12.1.105","direct":false,"kind":"runtime","optional":false},{"id":22240694303,"package_name":"nvidia-cuda-nvrtc-cu12","ecosystem":"pypi","requirements":"12.1.105","direct":false,"kind":"runtime","optional":false},{"id":22240694304,"package_name":"nvidia-cuda-runtime-cu12","ecosystem":"pypi","requirements":"12.1.105","direct":false,"kind":"runtime","optional":false},{"id":22240694305,"package_name":"nvidia-cudnn-cu12","ecosystem":"pypi","requirements":"9.1.0.70","direct":false,"kind":"runtime","optional":false},{"id":22240694306,"package_name":"nvidia-cufft-cu12","ecosystem":"pypi","requirements":"11.0.2.54","direct":false,"kind":"runtime","optional":false},{"id":22240694307,"package_name":"nvidia-curand-cu12","ecosystem":"pypi","requirements":"10.3.2.106","direct":false,"kind":"runtime","optional":false},{"id":22240694308,"package_name":"nvidia-cusolver-cu12","ecosystem":"pypi","requirements":"11.4.5.107","direct":false,"kind":"runtime","optional":false},{"id":22240694309,"package_name":"nvidia-cusparse-cu12","ecosystem":"pypi","requirements":"12.1.0.106","direct":false,"kind":"runtime","optional":false},{"id":22240694310,"package_name":"nvidia-nccl-cu12","ecosystem":"pypi","requirements":"2.20.5","direct":false,"kind":"runtime","optional":false},{"id":22240694311,"package_name":"nvidia-nvjitlink-cu12","ecosystem":"pypi","requirements":"12.6.77","direct":false,"kind":"runtime","optional":false},{"id":22240694312,"package_name":"nvidia-nvtx-cu12","ecosystem":"pypi","requirements":"12.1.105","direct":false,"kind":"runtime","optional":false},{"id":22240694313,"package_name":"packaging","ecosystem":"pypi","requirements":"24.2","direct":false,"kind":"runtime","optional":false},{"id":22240694314,"package_name":"pandas","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":22240694315,"package_name":"pillow","ecosystem":"pypi","requirements":"11.0.0","direct":false,"kind":"runtime","optional":false},{"id":22240694316,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.3.6","direct":false,"kind":"runtime","optional":false},{"id":22240694317,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":22240694318,"package_name":"pooch","ecosystem":"pypi","requirements":"1.8.2","direct":false,"kind":"runtime","optional":false},{"id":22240694319,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.22","direct":false,"kind":"runtime","optional":false},{"id":22240694320,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":22240694321,"package_name":"pyright","ecosystem":"pypi","requirements":"1.1.388","direct":false,"kind":"runtime","optional":false},{"id":22240694322,"package_name":"pytest","ecosystem":"pypi","requirements":"8.3.3","direct":false,"kind":"runtime","optional":false},{"id":22240694323,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":22240694324,"package_name":"pytz","ecosystem":"pypi","requirements":"2024.2","direct":false,"kind":"runtime","optional":false},{"id":22240694325,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.3","direct":false,"kind":"runtime","optional":false},{"id":22240694326,"package_name":"ruff","ecosystem":"pypi","requirements":"0.7.3","direct":false,"kind":"runtime","optional":false},{"id":22240694327,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"1.5.2","direct":false,"kind":"runtime","optional":false},{"id":22240694328,"package_name":"scipy","ecosystem":"pypi","requirements":"1.13.1","direct":false,"kind":"runtime","optional":false},{"id":22240694329,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":22240694330,"package_name":"sortedcontainers","ecosystem":"pypi","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":22240694331,"package_name":"soundfile","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":22240694332,"package_name":"soxr","ecosystem":"pypi","requirements":"0.5.0.post1","direct":false,"kind":"runtime","optional":false},{"id":22240694333,"package_name":"sympy","ecosystem":"pypi","requirements":"1.13.3","direct":false,"kind":"runtime","optional":false},{"id":22240694334,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"3.5.0","direct":false,"kind":"runtime","optional":false},{"id":22240694335,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":22240694336,"package_name":"torch","ecosystem":"pypi","requirements":"2.4.1","direct":false,"kind":"runtime","optional":false},{"id":22240694337,"package_name":"torchaudio","ecosystem":"pypi","requirements":"2.4.1","direct":false,"kind":"runtime","optional":false},{"id":22240694338,"package_name":"torchvision","ecosystem":"pypi","requirements":"0.19.1","direct":false,"kind":"runtime","optional":false},{"id":22240694339,"package_name":"triton","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":22240694340,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.12.2","direct":false,"kind":"runtime","optional":false},{"id":22240694341,"package_name":"tzdata","ecosystem":"pypi","requirements":"2024.2","direct":false,"kind":"runtime","optional":false},{"id":22240694342,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":22240694343,"package_name":"zipp","ecosystem":"pypi","requirements":"3.21.0","direct":false,"kind":"runtime","optional":false}]}],"score":6.5624440936937205,"created_at":"2025-05-21T00:11:01.801Z","updated_at":"2026-05-31T16:30:23.096Z","avatar_url":"https://github.com/macaodha.png","language":"Python","category":"Biosphere","sub_category":"Bioacoustics and Acoustic Data Analysis","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# BatDetect2\n\n\u003cimg style=\"display:block-inline;\" width=\"64\" height=\"64\" src=\"assets/bat_icon.png\"\u003e\n\nCode for detecting and classifying bat echolocation calls in high-frequency\naudio recordings.\n\n\u003e [!WARNING]\n\u003e `batdetect2` 2.0.0b1 is out.\n\u003e This is a beta release and we are gathering user feedback.\n\u003e If you run into issues or have feedback on the new workflows, please use the\n\u003e GitHub issues page to let us know.\n\u003e\n\u003e There are many changes and new recommended workflows.\n\u003e We have left the previous `batdetect2.api` module intact, but if you run\n\u003e into issues or want to upgrade, see the\n\u003e [migration guide](docs/source/legacy/migration-guide.md) in the docs site.\n\u003e\n\u003e This update also ships with a refreshed default model.\n\u003e It was trained in the same way and on the same data as before, but you should\n\u003e still expect small output differences in some cases.\n\n## What is BatDetect2\n\nBatDetect2 is a deep learning model for detecting and classifying bat\necholocation calls.\nThe model generates multiple predictions for each input recording by providing a\nbounding box and predicted class for each individual call within it.\n\nThis repository also holds `batdetect2`, a Python-based tool to run, train,\nfinetune and evaluate BatDetect2-type models, including the built-in model for\ndetecting UK bat species.\nYou can use the tool from the command line (terminal) or from Python as needed.\n\n## Getting Started\n\nWe have [extensive documentation](docs/source/index.md) on how to use\n`batdetect2`.\n\nThe docs site is still being built and will be live soon.\nIf you want a quick peek for now, see the `docs/` folder in this repository.\n\nSee our [getting started](docs/source/getting_started.md) guide and then jump\ninto any of our tutorials:\n\n- Run the model on a folder of recordings:\n  `docs/source/tutorials/run-inference-on-folder.md`\n- Train your own model:\n  `docs/source/tutorials/train-a-custom-model.md`\n- Evaluate your model:\n  `docs/source/tutorials/evaluate-on-a-test-set.md`\n- Fine-tune a model:\n  `docs/source/tutorials/integrate-with-a-python-pipeline.md`\n\n### Try the model\n\nIf you want to try the model for UK bat species without installing anything, you\ncan try the following:\n\n1. Demo of the model (for UK species) on\n   [huggingface](https://huggingface.co/spaces/macaodha/batdetect2).\n\n2. Alternatively, click\n   [here](https://colab.research.google.com/github/macaodha/batdetect2/blob/master/batdetect2_notebook.ipynb)\n   to run the model using Google Colab.\n   You can also run this notebook locally.\n\n### Installing BatDetect2\n\n\u003e [!NOTE]\n\u003e `2.0.0b1` is a pre-release on PyPI.\n\u003e You may need to request it explicitly by version, for example:\n\u003e\n\u003e ```bash\n\u003e uvx --from batdetect2==2.0.0b1 batdetect2\n\u003e uv tool install batdetect2==2.0.0b1\n\u003e pip install batdetect2==2.0.0b1\n\u003e ```\n\nIf you have `uv` installed (if not, we recommend it; follow the instructions\n[here](https://docs.astral.sh/uv/getting-started/installation/)), then you can\nrun `batdetect2` one-off with\n\n```bash\nuvx batdetect2\n```\n\nor if you want to install it permanently:\n\n```bash\nuv tool install batdetect2\n```\n\nand test it with\n\n```bash\nbatdetect2\n```\n\n### Run BatDetect2 on a folder of recordings\n\nOnce installed, you can run BatDetect2 on a folder of `.wav` files.\nBy default it will use the model trained on UK data.\n\nExample command:\n\n```bash\nbatdetect2 process directory example_data/audio outputs\n```\n\nThis will scan the audio files in `example_data/audio` and save model outputs to\n`outputs`.\nIf you have your own model checkpoint, you can use it:\n\n```bash\nbatdetect2 process directory --model path/to/checkpoint.ckpt example_data/audio outputs\n```\n\nFor the full walkthrough, use\n`docs/source/tutorials/run-inference-on-folder.md`.\n\n## Data and annotations\n\nThe raw audio data and annotations used to train the models in the paper will be\nadded soon.\n`batdetect2` supports annotations in various formats and is compatible with the\noutputs of [`whombat`](https://github.com/mbsantiago/whombat/) and this\n[earlier version](https://github.com/macaodha/batdetect2_GUI).\nIf you're interested in supporting another format, please reach out or submit a\nPR.\n\n## Warning\n\nThe models developed and shared as part of this repository should be used with\ncaution.\nWhile they have been evaluated on held-out audio data, great care should be\ntaken when using the model outputs for any form of biodiversity assessment.\nYour data may differ, and as a result it is very strongly recommended that you\nvalidate the model first using data with known species to ensure that the\noutputs can be trusted.\nIf you train a model, make the best effort to be transparent about its training\nand evaluation data, and inform downstream users about its limitations.\n\n## FAQ\n\nFor more information please consult our [FAQ](docs/source/faq.md).\n\n## Reference\n\nIf you find our work useful in your research, please consider citing our paper,\nwhich you can find\n[here](https://www.biorxiv.org/content/10.1101/2022.12.14.520490v1):\n\n```\n@article{batdetect2_2022,\n    title     = {Towards a General Approach for Bat Echolocation Detection and Classification},\n    author    = {Mac Aodha, Oisin and  Mart\\'{i}nez Balvanera, Santiago and  Damstra, Elise and  Cooke, Martyn and  Eichinski, Philip and  Browning, Ella and  Barataud, Michel and  Boughey, Katherine and  Coles, Roger and  Giacomini, Giada and MacSwiney G., M. Cristina and  K. Obrist, Martin and Parsons, Stuart and  Sattler, Thomas and  Jones, Kate E.},\n    journal   = {bioRxiv},\n    year      = {2022}\n}\n```\n\n## Acknowledgements\n\nThanks to all the contributors who spent time collecting and annotating audio\ndata.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/316881","html_url":"https://ost.ecosyste.ms/projects/316881"}