<p><a href="https://sourceforge.net/projects/pamguide/" rel="noreferrer">PAMGuide</a> is a great place to start. It is only looking at the soundscape, not biological diversity.  But PAMGuide is widely used by researchers and regulatory bodies. Output formats include R, Python, and Matlab.</p>
<p>Recently, as part of the JOMOPANS project, <a href="https://northsearegion.eu/media/17742/jomopans_wp3-standard-data-processing_final.pdf" rel="noreferrer">Ward et al., 2021</a> put out a set of standards. These standards are being applied to other soundscape measurements in the EU. You can apply these standards to your own soundscape analysis code.</p>
<p><strong>References</strong></p>
<p>Ward, J., Wang, L., Robinson, S., &amp; Harris, P. (2021). Standard for Data Processing of Measured Data. Report of the EU INTERREG Joint Monitoring Programme for Ambient Noise North Sea (Jomopans).</p>

CC BY-SA 4.0
2022-07-03T17:03:51.647Z
2022-07-05T06:51:12.583Z
2022-07-05T06:51:12.583Z
etgriffiths
<p>I use R (tuneR/seewave/soundecology packages) and yes, <a href="https://www.wildlifeacoustics.com/products/kaleidoscope-pro" rel="nofollow noreferrer">Kaleidoscope</a> (that is not open source) is way faster. However it does give you access to the common indices only. I can say that depending on how you code in R, the process can be largely sped up. I recommend using parallel calculation, for example using the <code>parallel</code> package. Here is an example in R:</p>
<pre><code>library(parallel)

ListPathToWave&lt;-list.files(&quot;MydirectoryWhereMyWavesArePath&quot;)
RepTemporary&lt;-&quot;MyTemporaryDirectoryPath&quot;

no_cores&lt;-detectCores()-1
cl&lt;-makeCluster(no_cores)

parLapply(cl, ListPathToWave, function(x) {
    library(tuneR)
    library(seewave)
    ObjectWave&lt;-readWave(x)
    Index&lt;-ACI(ObjectWave)
    save(Index,file=paste(RepTemporary,&quot;/&quot;,basename(x),&quot;.Rdata&quot;,sep=&quot;&quot;))
})
stopCluster(cl)
</code></pre>

CC BY-SA 4.0
2022-07-04T14:59:36.600Z
can you please provide a link to the Kaleidoscope software?
Chloe
CC BY-SA 4.0
2022-07-04T18:27:06.190Z
@chloe it's here: https://www.wildlifeacoustics.com/products/kaleidoscope-pro. Unfortunately, it is a paid piece of software.
dtsavage
CC BY-SA 4.0
2022-07-04T08:31:56.640Z
2023-04-12T19:48:22.370Z
2023-04-12T19:48:22.370Z
Amandine Gasc
<p>I've used both R-based tools (built around Seewave / tuneR / soundecology) and Wildlife Acoustics' Kaleidoscope Pro software to calculate indices, and as much as it disappoints me to say it, Kaleidoscope is faster by an order of magnitude or more (I don't have exact numbers at this point but I can try to run some benchmarks some time next week). It's certainly possible that a better R developer than me could make some efficiency improvements, possibly significant improvements, to the code I'm using right now but the results I've seen suggest that any hypothetical open-source tool that's fast to calculate these indices would want to be written in a lower-level compiled language compared to R or Python.</p>

CC BY-SA 4.0
2022-07-05T06:54:16.350Z
The power of Java. :)  R will never be as fast as software developed in Java or a similar OOB language. Python *might*. However, what you lose in speed you make up for in the ability to customize.
etgriffiths
CC BY-SA 4.0
2022-07-05T14:10:38.570Z
I'd definitely agree with that sentiment. I think this might also be an opening for some friendly developer to build an open-source tool for index calculation in Java, C, etc. Potentially even one that could be called from a CLI so that you can wrap calls to it in your R or Python scripts.
dtsavage
CC BY-SA 4.0
2022-07-03T17:53:35.883Z
2022-09-17T17:01:55.223Z
2022-09-17T17:01:55.223Z
dtsavage
<p>I've been using the relevant R packages, Soundecology and Seewave for the last couple of years to quantify acoustic data, primarily over time-series domains. Typically, I usually examine one acoustic index as a variable (against time), but some acoustic indices perform well in correlation with each other - such as ACI (acoustic complexity) and BI (bioacoustic index) and can be modelled in given instances. However, as with anything in bioacoustics, context is critical.</p>
<p>Something that I would also strongly suggest is taking the time to design a good exploratory data science workflow. Something that I had to reckon with early on was the process of importing lots of data and subsequently tidying up the structure of the outputted dataframe, fixing dates and so forth. This might seem slightly rote, but setting up a smooth process in R makes a huge difference!</p>
<p>As user971889 mentioned, the Python <a href="https://scikit-maad.github.io/" rel="noreferrer">skikit-maad</a> looks very impressive, with a much larger suite of acoustic index algorithms for the user to implement. I've been meaning to explore this package, but I haven't yet found the time at present.</p>

CC BY-SA 4.0
2022-07-05T03:28:06.307Z
2022-07-05T03:28:28.337Z
2022-07-05T03:28:28.337Z
Tristan Louth-Robins
<p>For MATLAB users, <a href="https://github.com/MarineBioAcousticsRC/Triton/wiki" rel="noreferrer">Triton software</a> can be useful for soundscape metric analyses. There is an add-on package called the <a href="https://github.com/MarineBioAcousticsRC/Triton/wiki/Soundscape-Metrics" rel="noreferrer">Soundscape Metrics Remora</a> that can be used to calculate various parameters. The links provided will take you to the Github Wiki pages for these tools, which have great step-through guides about installing/using Triton and the associated soundscape package. Hope this helps!</p>

CC BY-SA 4.0
2022-07-05T22:39:08.717Z
2022-07-05T22:39:08.717Z
MZiegenhorn
<p>For Python there is: <a href="http://opensoundscape.org/en/latest/" rel="nofollow noreferrer">OpenSoundscape</a>, <a href="https://scikit-maad.github.io/" rel="nofollow noreferrer">scikit-maad</a>, and <a href="https://github.com/patriceguyot/Acoustic_Indices" rel="nofollow noreferrer">Acoustic_Indices</a>.</p>
<p>For R there is: <a href="https://ljvillanueva.github.io/soundecology/" rel="nofollow noreferrer">soundecology</a> (plus see this <a href="https://github.com/agasc/Soundscape-analysis-with-R" rel="nofollow noreferrer">tutorial</a>), <a href="https://rug.mnhn.fr/seewave/" rel="nofollow noreferrer">seewave</a></p>
<p>I agree with previous comments that Kaleidoscope Pro's soundscape calculations are fast &amp; the interface is very easy to work with, but it is obviously expensive as others have pointed out. They do have short-term free trials for the software if you wanted to try it out and see if it would be worth it for you to invest in buying a subscription.</p>
<p>I believe <a href="https://arbimon.rfcx.org/" rel="nofollow noreferrer">ARBIMON</a> is also building in soundscape index calculations into their platform now.</p>

CC BY-SA 4.0
2022-07-06T16:47:16.320Z
2022-07-06T16:47:16.320Z
Carly Batist
<p>If you're using Python scikit-maad is a pretty good option! <a href="https://scikit-maad.github.io/" rel="nofollow noreferrer">https://scikit-maad.github.io/</a></p>

CC BY-SA 4.0
2022-07-04T15:00:13.440Z
Do you know how this compares to the PAM2Py option (PAMGuide adaptation for Python)? siplab.fct.ualg.pt/proj/jonas/pam2py.shtml
Chloe
CC BY-SA 4.0
2022-07-06T16:35:53.203Z
scikit-maad has AMAZING documentation too. Even a Python newbie like myself got it going without too much pain
Carly Batist
CC BY-SA 4.0
2022-07-04T09:42:42.970Z
2022-07-04T09:42:42.970Z
user971889
<p>I have used Kaleidoscope Pro to calculate acoustic indices and this is a very user friendly software. I have also use packages within R that work well too.</p>

CC BY-SA 4.0
2022-07-04T17:03:49.290Z
Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer).
selene
CC BY-SA 4.0
2022-07-04T16:47:54.870Z
2022-07-04T16:47:54.870Z
Helen W
<p>Soundscape indices are being used to summarize, present, and compare patterns of biological diversity.  With ever-larger datasets, we need more and more efficient tools for calculating these indices.  Has anyone performed benchmarks for script-based tools to extract soundscape indices?</p>

<soundscape><benchmarks>
What are the fastest opensource tools to calculate soundscape indices?
# What are the fastest opensource tools to calculate soundscape indices?

(Asked by: username_0 on 2022-07-03)

Soundscape indices are being used to summarize, present, and compare patterns of biological diversity. With ever-larger datasets, we need more and more efficient tools for calculating these indices. Has anyone performed benchmarks for script-based tools to extract soundscape indices?

**Tags:** soundscape, benchmarks


---

## 8 answers

### Answer by username_1 on 2022-07-03. Score: 15

[PAMGuide](https://sourceforge.net/projects/pamguide/) is a great place to start. It is only looking at the soundscape, not biological diversity. But PAMGuide is widely used by researchers and regulatory bodies. Output formats include R, Python, and Matlab.

Recently, as part of the JOMOPANS project, [Ward et al., 2021](https://northsearegion.eu/media/17742/jomopans_wp3-standard-data-processing_final.pdf) put out a set of standards. These standards are being applied to other soundscape measurements in the EU. You can apply these standards to your own soundscape analysis code.

**References**

Ward, J., Wang, L., Robinson, S., & Harris, P. (2021). Standard for Data Processing of Measured Data. Report of the EU INTERREG Joint Monitoring Programme for Ambient Noise North Sea (Jomopans).


---

### Answer by username_2 on 2022-07-04. Score: 14

I use R (tuneR/seewave/soundecology packages) and yes, [Kaleidoscope](https://www.wildlifeacoustics.com/products/kaleidoscope-pro) (that is not open source) is way faster. However it does give you access to the common indices only. I can say that depending on how you code in R, the process can be largely sped up. I recommend using parallel calculation, for example using the `parallel` package. Here is an example in R:

```
library(parallel)

ListPathToWave<-list.files("MydirectoryWhereMyWavesArePath")
RepTemporary<-"MyTemporaryDirectoryPath"

no_cores<-detectCores()-1
cl<-makeCluster(no_cores)

parLapply(cl, ListPathToWave, function(x) {
    library(tuneR)
    library(seewave)
    ObjectWave<-readWave(x)
    Index<-ACI(ObjectWave)
    save(Index,file=paste(RepTemporary,"/",basename(x),".Rdata",sep=""))
})
stopCluster(cl)

```

> **Comments:**
> **username_3**: can you please provide a link to the Kaleidoscope software?  
> **username_4**: @username_3 it's here: https://www.wildlifeacoustics.com/products/kaleidoscope-pro. Unfortunately, it is a paid piece of software.  

---

### Answer by username_4 on 2022-07-03. Score: 11

I've used both R-based tools (built around Seewave / tuneR / soundecology) and Wildlife Acoustics' Kaleidoscope Pro software to calculate indices, and as much as it disappoints me to say it, Kaleidoscope is faster by an order of magnitude or more (I don't have exact numbers at this point but I can try to run some benchmarks some time next week). It's certainly possible that a better R developer than me could make some efficiency improvements, possibly significant improvements, to the code I'm using right now but the results I've seen suggest that any hypothetical open-source tool that's fast to calculate these indices would want to be written in a lower-level compiled language compared to R or Python.

> **Comments:**
> **username_1**: The power of Java. :)  R will never be as fast as software developed in Java or a similar OOB language. Python *might*. However, what you lose in speed you make up for in the ability to customize.  
> **username_4**: I'd definitely agree with that sentiment. I think this might also be an opening for some friendly developer to build an open-source tool for index calculation in Java, C, etc. Potentially even one that could be called from a CLI so that you can wrap calls to it in your R or Python scripts.  

---

### Answer by username_5 on 2022-07-05. Score: 6

I've been using the relevant R packages, Soundecology and Seewave for the last couple of years to quantify acoustic data, primarily over time-series domains. Typically, I usually examine one acoustic index as a variable (against time), but some acoustic indices perform well in correlation with each other - such as ACI (acoustic complexity) and BI (bioacoustic index) and can be modelled in given instances. However, as with anything in bioacoustics, context is critical.

Something that I would also strongly suggest is taking the time to design a good exploratory data science workflow. Something that I had to reckon with early on was the process of importing lots of data and subsequently tidying up the structure of the outputted dataframe, fixing dates and so forth. This might seem slightly rote, but setting up a smooth process in R makes a huge difference!

As username_8 mentioned, the Python [skikit-maad](https://scikit-maad.github.io/) looks very impressive, with a much larger suite of acoustic index algorithms for the user to implement. I've been meaning to explore this package, but I haven't yet found the time at present.


---

### Answer by username_6 on 2022-07-05. Score: 6

For MATLAB users, [Triton software](https://github.com/MarineBioAcousticsRC/Triton/wiki) can be useful for soundscape metric analyses. There is an add-on package called the [Soundscape Metrics Remora](https://github.com/MarineBioAcousticsRC/Triton/wiki/Soundscape-Metrics) that can be used to calculate various parameters. The links provided will take you to the Github Wiki pages for these tools, which have great step-through guides about installing/using Triton and the associated soundscape package. Hope this helps!


---

### Answer by username_7 on 2022-07-06. Score: 4

For Python there is: [OpenSoundscape](http://opensoundscape.org/en/latest/), [scikit-maad](https://scikit-maad.github.io/), and [Acoustic\_Indices](https://github.com/patriceguyot/Acoustic_Indices).

For R there is: [soundecology](https://ljvillanueva.github.io/soundecology/) (plus see this [tutorial](https://github.com/agasc/Soundscape-analysis-with-R)), [seewave](https://rug.mnhn.fr/seewave/)

I agree with previous comments that Kaleidoscope Pro's soundscape calculations are fast & the interface is very easy to work with, but it is obviously expensive as others have pointed out. They do have short-term free trials for the software if you wanted to try it out and see if it would be worth it for you to invest in buying a subscription.

I believe [ARBIMON](https://arbimon.rfcx.org/) is also building in soundscape index calculations into their platform now.


---

### Answer by username_8 on 2022-07-04. Score: 4

If you're using Python scikit-maad is a pretty good option! <https://scikit-maad.github.io/>

> **Comments:**
> **username_3**: Do you know how this compares to the PAM2Py option (PAMGuide adaptation for Python)? siplab.fct.ualg.pt/proj/jonas/pam2py.shtml  
> **username_7**: scikit-maad has AMAZING documentation too. Even a Python newbie like myself got it going without too much pain  

---

### Answer by username_9 on 2022-07-04. Score: 1

I have used Kaleidoscope Pro to calculate acoustic indices and this is a very user friendly software. I have also use packages within R that work well too.

> **Comments:**
> **username_10**: Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer).  

---

