gibbonNetR
gibbonNetR: an R Package for the Use of Convolutional Neural Networks for Automated Detection of Acoustic Data - Published in JOSS (2025)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Engineering
Computer Science -
40% confidence
Last synced: 6 months ago
·
JSON representation
Repository
R package to use 'torch for R' for automated detection using convolutional neural nets in passive acoustic monitoring (PAM) data
Basic Info
- Host: GitHub
- Owner: DenaJGibbon
- License: other
- Language: HTML
- Default Branch: main
- Homepage: https://denajgibbon.github.io/gibbonNetR/
- Size: 643 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 3
Created over 2 years ago
· Last pushed 8 months ago
Metadata Files
Readme
Contributing
License
Codemeta
README.Rmd
---
title: "gibbonNetR R Package"
author: "Dena J. Clink and Abdul Hamid Ahmad"
date: "`r Sys.Date()`"
output: github_document
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
out.width = "400px", dpi = 120
)
knitr::opts_knit$set(root.dir = "/Users/denaclink/Desktop/RStudioProjects/gibbonNetR_notgithub/")
```
# Overview
This README provides code for training, testing, and deploying, different convolutional neural network model architectures for automated detection and classification of acoustic data.
Users can train both binary and multi-class classification models on spectrogram images, and evaluate their performance on test datasets. The package includes tools for performance evaluation, allowing easy identification of the best-performing model. Once the best-performing model is identified, it can be deployed for large-scale inference on multiple sound files. In addition to classification, trained CNNs can be used as feature extractors. Combined with unsupervised clustering, this enables visualization of differences in acoustic signals.
# Usage
A detailed usage guide can be found at:
Link to paper in the Journal of Open Source Software:
[](https://doi.org/10.21105/joss.07250)
# Prerequisites
This package assumes a basic understanding of machine learning, deep learning, and convolutional neural networks (CNNs). Users should be familiar with training and evaluating models, as well as handling spectrogram image data. For those new to these concepts, we recommend reviewing foundational machine learning and deep learning resources before using this package. a good starting point would be:
Stowell, Dan. "Computational bioacoustics with deep learning: a review and roadmap." PeerJ 10 (2022): e13152. https://peerj.com/articles/13152/
Some practical information on improving model performance can be found here: https://kahst.github.io/BirdNET-Analyzer/best-practices/training.html#
# Installation
You can install the `gibbonNetR` package from its repository using `devtools`:
```{r eval = FALSE}
# If you don't have devtools installed
install.packages("devtools")
# Install gibbonNetR
devtools::install_github("https://github.com/DenaJGibbon/gibbonNetR")
# The first time you use the package 'torch' will need to install additional packages. You can start the process using the following:
library(torch)
```
```{r, message=FALSE, echo=FALSE, warning=FALSE}
devtools::load_all("/Users/denaclink/Desktop/RStudioProjects/gibbonNetR")
# library(gibbonNetR)
# Load other required libraries
library(dplyr)
library(torch)
library(torchvision)
library(purrr)
```
# Quickstart guide
```{r eval = FALSE}
library(gibbonNetR)
# Set file path to spectrogram images
filepath <- system.file("extdata", "multiclass/", package = "gibbonNetR")
# Train simple CNN model
train_CNN_multi(
input.data.path = filepath,
test.data = paste(filepath, "/test/", sep = ""),
architecture = "alexnet", # Choose 'alexnet', 'vgg16', 'vgg19', 'resnet18', 'resnet50', or 'resnet152'
unfreeze.param = TRUE,
batch_size = 6,
class_weights = rep((1 / 5), 5),
learning_rate = 0.001,
epoch.iterations = 1, # Or any other list of integer epochs
early.stop = "yes",
save.model = FALSE,
output.base.path = file.path(tempdir(), "/MultiDir/", sep = ""),
trainingfolder = "test_multi",
noise.category = "noise"
)
```
Owner
- Name: Dena J. Clink
- Login: DenaJGibbon
- Kind: user
- Company: K. Lisa Yang Center for Conservation Bioacoustics
- Website: www.denaclink.com
- Twitter: BorneanGibbons
- Repositories: 4
- Profile: https://github.com/DenaJGibbon
I am a biological anthropologist, bioacoustician, and avid R user. I use innovative bioacoustics techniques to answer evolutionary questions.
JOSS Publication
gibbonNetR: an R Package for the Use of Convolutional Neural Networks for Automated Detection of Acoustic Data
Published
June 07, 2025
Volume 10, Issue 110, Page 7250
Authors
Tags
deep learning passive acoustic monitoring gibbon automated detectionCodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"identifier": "gibbonNetR",
"description": "R Package for the Use of CNNs on Acoustic Data.",
"name": "gibbonNetR: gibbonNetR: R Package for the Use of CNNs and Transfer Learning on\n Acoustic Data",
"codeRepository": "https://github.com/DenaJGibbon/gibbonNetR",
"issueTracker": "https://github.com/DenaJGibbon/gibbonNetR/issues",
"license": "https://spdx.org/licenses/MIT",
"version": "1.0.0",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "R",
"url": "https://r-project.org"
},
"runtimePlatform": "R version 4.4.0 (2024-04-24)",
"author": [
{
"@type": "Person",
"givenName": "Dena J.",
"familyName": "Clink",
"email": "dena.clink@cornell.edu",
"@id": "https://orcid.org/0000-0003-0363-5581"
}
],
"maintainer": [
{
"@type": "Person",
"givenName": "Dena J.",
"familyName": "Clink",
"email": "dena.clink@cornell.edu",
"@id": "https://orcid.org/0000-0003-0363-5581"
}
],
"softwareSuggestions": [
{
"@type": "SoftwareApplication",
"identifier": "devtools",
"name": "devtools",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=devtools"
},
{
"@type": "SoftwareApplication",
"identifier": "knitr",
"name": "knitr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=knitr"
},
{
"@type": "SoftwareApplication",
"identifier": "rmarkdown",
"name": "rmarkdown",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=rmarkdown"
},
{
"@type": "SoftwareApplication",
"identifier": "testthat",
"name": "testthat",
"version": ">= 3.0.0",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=testthat"
}
],
"softwareRequirements": {
"1": {
"@type": "SoftwareApplication",
"identifier": "luz",
"name": "luz",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=luz"
},
"2": {
"@type": "SoftwareApplication",
"identifier": "R",
"name": "R",
"version": ">= 2.10"
},
"3": {
"@type": "SoftwareApplication",
"identifier": "torch",
"name": "torch",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=torch"
},
"4": {
"@type": "SoftwareApplication",
"identifier": "torchvision",
"name": "torchvision",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=torchvision"
},
"5": {
"@type": "SoftwareApplication",
"identifier": "tuneR",
"name": "tuneR",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=tuneR"
},
"6": {
"@type": "SoftwareApplication",
"identifier": "aricode",
"name": "aricode",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=aricode"
},
"7": {
"@type": "SoftwareApplication",
"identifier": "caret",
"name": "caret",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=caret"
},
"8": {
"@type": "SoftwareApplication",
"identifier": "coro",
"name": "coro",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=coro"
},
"9": {
"@type": "SoftwareApplication",
"identifier": "cowplot",
"name": "cowplot",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=cowplot"
},
"10": {
"@type": "SoftwareApplication",
"identifier": "data.table",
"name": "data.table",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=data.table"
},
"11": {
"@type": "SoftwareApplication",
"identifier": "dbscan",
"name": "dbscan",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=dbscan"
},
"12": {
"@type": "SoftwareApplication",
"identifier": "dplyr",
"name": "dplyr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=dplyr"
},
"13": {
"@type": "SoftwareApplication",
"identifier": "ggplot2",
"name": "ggplot2",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=ggplot2"
},
"14": {
"@type": "SoftwareApplication",
"identifier": "ggpubr",
"name": "ggpubr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=ggpubr"
},
"15": {
"@type": "SoftwareApplication",
"identifier": "grDevices",
"name": "grDevices"
},
"16": {
"@type": "SoftwareApplication",
"identifier": "magrittr",
"name": "magrittr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=magrittr"
},
"17": {
"@type": "SoftwareApplication",
"identifier": "purrr",
"name": "purrr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=purrr"
},
"18": {
"@type": "SoftwareApplication",
"identifier": "readr",
"name": "readr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=readr"
},
"19": {
"@type": "SoftwareApplication",
"identifier": "ROCR",
"name": "ROCR",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=ROCR"
},
"20": {
"@type": "SoftwareApplication",
"identifier": "seewave",
"name": "seewave",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=seewave"
},
"21": {
"@type": "SoftwareApplication",
"identifier": "stats",
"name": "stats"
},
"22": {
"@type": "SoftwareApplication",
"identifier": "stringr",
"name": "stringr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=stringr"
},
"23": {
"@type": "SoftwareApplication",
"identifier": "tibble",
"name": "tibble",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=tibble"
},
"24": {
"@type": "SoftwareApplication",
"identifier": "tidyr",
"name": "tidyr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=tidyr"
},
"25": {
"@type": "SoftwareApplication",
"identifier": "torchdatasets",
"name": "torchdatasets",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=torchdatasets"
},
"26": {
"@type": "SoftwareApplication",
"identifier": "umap",
"name": "umap",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=umap"
},
"27": {
"@type": "SoftwareApplication",
"identifier": "utils",
"name": "utils"
},
"28": {
"@type": "SoftwareApplication",
"identifier": "viridis",
"name": "viridis",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=viridis"
},
"SystemRequirements": null
},
"fileSize": "126647.829KB",
"citation": [
{
"@type": "SoftwareSourceCode",
"datePublished": "2025",
"author": [
{
"@type": "Person",
"givenName": [
"Dena",
"J."
],
"familyName": "Clink"
},
{
"@type": "Person",
"givenName": [
"Abdul",
"Hamid"
],
"familyName": "Ahmad"
}
],
"name": "gibbonNetR: R Package for the Use of CNNs and Transfer Learning on Acoustic Data",
"url": "https://github.com/DenaJGibbon/gibbonNetR",
"isPartOf": {
"@type": "PublicationIssue",
"datePublished": "2025",
"isPartOf": {
"@type": [
"PublicationVolume",
"Periodical"
],
"name": "GitHub"
}
}
}
],
"relatedLink": "https://denajgibbon.github.io/gibbonNetR/",
"readme": "https://github.com/DenaJGibbon/gibbonNetR/blob/main/README.md"
}
GitHub Events
Total
- Create event: 1
- Release event: 1
- Issues event: 16
- Issue comment event: 17
- Push event: 178
- Pull request review event: 1
- Pull request event: 2
- Fork event: 1
Last Year
- Create event: 1
- Release event: 1
- Issues event: 16
- Issue comment event: 17
- Push event: 178
- Pull request review event: 1
- Pull request event: 2
- Fork event: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 8
- Total pull requests: 2
- Average time to close issues: 4 months
- Average time to close pull requests: about 2 months
- Total issue authors: 3
- Total pull request authors: 2
- Average comments per issue: 1.25
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 7
- Pull requests: 2
- Average time to close issues: 3 months
- Average time to close pull requests: about 2 months
- Issue authors: 3
- Pull request authors: 2
- Average comments per issue: 1.43
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- steffilazerte (4)
- DenaJGibbon (3)
- faroit (2)
Pull Request Authors
- steffilazerte (1)
- faroit (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
.github/workflows/draft-pdf.yml
actions
- actions/checkout v4 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
DESCRIPTION
cran
- R >= 2.10 depends
- aricode * depends
- caret * depends
- dbscan * depends
- ggpubr * depends
- luz * depends
- pROC * depends
- seewave * depends
- stringr * depends
- torch * depends
- torchvision * depends
- tuneR * depends
- tibble * imports
- knitr * suggests
- rmarkdown * suggests
- testthat >= 3.0.0 suggests
