Skip to main content

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

Project description

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 at ffmpeg.org.

Some ways to use this package

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

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 ...")

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

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.

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

Use whatMeasurements command line tool to list available measurements

(.venv) C:\apps\analyzeAudio>whatMeasurements
['Abs_Peak_count', 'Bit_depth', 'Chromagram', 'Chromagram mean', 'Crest factor', 'DC offset', 'Duration-samples', 'Dynamic range', 'Flat_factor', 'LUFS high', 'LUFS integrated', 'LUFS loudness range', 'LUFS low', 'Max_difference', 'Max_level', 'Mean_difference', 'Min_difference', 'Min_level', 'Noise_floor', 'Noise_floor_count', 'Peak dB', 'Peak_count', 'Power spectral density', 'Power spectral density mean', 'RMS from waveform', 'RMS from waveform mean', 'RMS peak', 'RMS total', 'RMS_difference', 'RMS_trough', 'SI-SDR mean', 'SRMR', 'SRMR mean', 'Signal entropy', 'Spectral Bandwidth', 'Spectral Bandwidth mean', 'Spectral Centroid', 'Spectral Centroid mean', 'Spectral Contrast', 'Spectral Contrast mean', 'Spectral Flatness', 'Spectral Flatness mean', 'Spectral centroid', 'Spectral centroid mean', 'Spectral crest', 'Spectral crest mean', 'Spectral decrease', 'Spectral decrease mean', 'Spectral entropy', 'Spectral entropy mean', 'Spectral flatness', 'Spectral flatness mean', 'Spectral flux', 'Spectral flux mean', 'Spectral kurtosis', 'Spectral kurtosis mean', 'Spectral rolloff', 'Spectral rolloff mean', 'Spectral skewness', 'Spectral skewness mean', 'Spectral slope', 'Spectral slope mean', 'Spectral spread', 'Spectral spread mean', 'Spectral variance', 'Spectral variance mean', 'Tempo', 'Tempo mean', 'Tempogram', 'Tempogram mean', 'Zero-crossing rate', 'Zero-crossing rate mean', 'Zero-crossings rate']

Some clues about the aspects

'Abs_Peak_count': float
'Bit_depth': float
'Chromagram': NDArray[float64] # shape(..., 12, frames)
'Chromagram mean': float
'Crest factor': float
'DC offset': float
'Duration-samples': float
'Dynamic range': float
'Flat_factor': float
'LUFS high': float
'LUFS integrated': float
'LUFS loudness range': float
'LUFS low': float
'Max_difference': float
'Max_level': float
'Mean_difference': float
'Min_difference': float
'Min_level': float
'Noise_floor_count': float
'Noise_floor': float
'Peak dB': float
'Peak_count': float
'Power spectral density': NDArray[float64] # shape(channels, frames)
'Power spectral density mean': float
'RMS from waveform': NDArray[float64] # shape(..., 1, frames)
'RMS from waveform mean': float
'RMS peak': float
'RMS total': float
'RMS_difference': float
'RMS_trough': float
'SI-SDR mean': float
'Signal entropy': float
'Spectral Bandwidth': NDArray[float64] # shape(..., 1, frames)
'Spectral Bandwidth mean': float
'Spectral centroid': NDArray[float64] # shape(channels, frames)
'Spectral centroid mean': float
'Spectral Centroid': NDArray[float64] # shape(..., 1, frames)
'Spectral Centroid mean': float
'Spectral Contrast': NDArray[float64] # shape(..., 7, frames)
'Spectral Contrast mean': float
'Spectral crest': NDArray[float64] # shape(channels, frames)
'Spectral crest mean': float
'Spectral decrease': NDArray[float64] # shape(channels, frames)
'Spectral decrease mean': float
'Spectral entropy': NDArray[float64] # shape(channels, frames)
'Spectral entropy mean': float
'Spectral flatness': NDArray[float64] # shape(channels, frames)
'Spectral flatness mean': float
'Spectral Flatness': NDArray[float64] # shape(..., 1, frames)
'Spectral Flatness mean': float
'Spectral flux': NDArray[float64] # shape(channels, frames)
'Spectral flux mean': float
'Spectral kurtosis': NDArray[float64] # shape(channels, frames)
'Spectral kurtosis mean': float
'Spectral rolloff': NDArray[float64] # shape(channels, frames)
'Spectral rolloff mean': float
'Spectral skewness': NDArray[float64] # shape(channels, frames)
'Spectral skewness mean': float
'Spectral slope': NDArray[float64] # shape(channels, frames)
'Spectral slope mean': float
'Spectral spread': NDArray[float64] # shape(channels, frames)
'Spectral spread mean': float
'Spectral variance': NDArray[float64] # shape(channels, frames)
'Spectral variance mean': float
'SRMR': NDArray[float64] # shape(...)
'SRMR mean': float
'Tempo': NDArray[float64] # shape(...)
'Tempo mean': float
'Tempogram': NDArray[float64] # shape(..., 384, samples)
'Tempogram mean': float
'Zero-crossing rate': NDArray[float64] # shape(..., 1, frames)
'Zero-crossing rate mean': float
'Zero-crossings rate': float

Installation

pip install analyzeAudio

My recovery

Static Badge YouTube Channel Subscribers

CC-BY-NC-4.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

analyzeaudio-0.0.13.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

analyzeaudio-0.0.13-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file analyzeaudio-0.0.13.tar.gz.

File metadata

  • Download URL: analyzeaudio-0.0.13.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for analyzeaudio-0.0.13.tar.gz
Algorithm Hash digest
SHA256 cd3dacc3eb4449954b22d7b19a88e86b6ca0898d2cc44958fcf7bc3e05b7818f
MD5 3f4b4e45c081f03a2d3288010b0267a2
BLAKE2b-256 9a75290fe96cd0cd60597d2e4fb5af8944db2fcda6a665c7852d05e136486165

See more details on using hashes here.

Provenance

The following attestation bundles were made for analyzeaudio-0.0.13.tar.gz:

Publisher: pypiRelease.yml on hunterhogan/analyzeAudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file analyzeaudio-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: analyzeaudio-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for analyzeaudio-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 4ab885885b3cce4fb85e5d413c46342c9e62fcac972d4197a454ec5a91afa9db
MD5 634bdb228c98e02c64b463ed3b86f150
BLAKE2b-256 f0f68c7f3b2884eace82e5819153e7d37d5e222ede389011962a1228759327ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for analyzeaudio-0.0.13-py3-none-any.whl:

Publisher: pypiRelease.yml on hunterhogan/analyzeAudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page