Metadata-Version: 2.2
Name: analyzeAudio
Version: 0.0.11
Summary: Measure one or more aspects of one or more audio files.
Author-email: Hunter Hogan <HunterHogan@pm.me>
License: CC-BY-NC-4.0
Project-URL: Homepage, https://github.com/hunterhogan/analyzeAudio
Project-URL: Donate, https://www.patreon.com/integrated
Keywords: audio,analysis,measurement,metrics,torch
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Other Audience
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: cachetools
Requires-Dist: librosa
Requires-Dist: numpy
Requires-Dist: torch
Requires-Dist: torchmetrics[audio]
Requires-Dist: tqdm
Requires-Dist: Z0Z-tools
Provides-Extra: testing
Requires-Dist: pytest; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Requires-Dist: pytest-env; extra == "testing"

# analyzeAudio

Measure one or more aspects of one or more audio files.

## Note well: FFmpeg & FFprobe binaries must be in PATH

Some options to [download FFmpeg and FFprobe](https://www.ffmpeg.org/download.html) at ffmpeg.org.

## Some ways to use this package

### Use `analyzeAudioFile` to measure one or more aspects of a single audio file

```python
from analyzeAudio import analyzeAudioFile
listAspectNames = ['LUFS integrated', 
                   'RMS peak', 
                   'SRMR mean', 
                   'Spectral Flatness mean']
listMeasurements = analyzeAudioFile(pathFilename, listAspectNames)
```

### Use `getListAvailableAudioAspects` to get a crude list of aspects this package can measure

The aspect names are accurate, but the lack of additional documentation can make things challenging. 'Zero-crossing rate', 'Zero-crossing rate mean', and 'Zero-crossings rate', for example, are different from each other. ("... lack of additional documentation ...")

```python
import analyzeAudio
analyzeAudio.getListAvailableAudioAspects()
```

### Use `analyzeAudioListPathFilenames` to measure one or more aspects of individual file in a list of audio files

### Use `audioAspects` to call an analyzer function by using the name of the aspect you wish to measure

```python
from analyzeAudio import audioAspects
SI_SDR_channelsMean = audioAspects['SI-SDR mean']['analyzer'](pathFilenameAudioFile, pathFilenameDifferentAudioFile)
```

Retrieve the names of the parameters for an analyzer function with the `['analyzerParameters']` key-name.

```python
from analyzeAudio import audioAspects
print(audioAspects['Chromagram']['analyzerParameters'])
```

## Install this package

### From Github

```sh
pip install analyzeAudio@git+https://github.com/hunterhogan/analyzeAudio.git
```

### From a local directory

#### Windows

```powershell
git clone https://github.com/hunterhogan/analyzeAudio.git \path\to\analyzeAudio
pip install analyzeAudio@file:\path\to\analyzeAudio
```

#### POSIX

```bash
git clone https://github.com/hunterhogan/analyzeAudio.git /path/to/analyzeAudio
pip install analyzeAudio@file:/path/to/analyzeAudio
```

## Install updates

```sh
pip install --upgrade analyzeAudio@git+https://github.com/hunterhogan/analyzeAudio.git
```
