pyaca

Python scripts accompanying the book "An Introduction to Audio Content Analysis" (www.AudioContentAnalysis.org)

https://github.com/alexanderlerch/pyaca

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.8%) to scientific vocabulary

Keywords

audio-content-analysis audio-features audio-processing music-informatics music-information-retrieval signal-processing
Last synced: 6 months ago · JSON representation ·

Repository

Python scripts accompanying the book "An Introduction to Audio Content Analysis" (www.AudioContentAnalysis.org)

Basic Info
  • Host: GitHub
  • Owner: alexanderlerch
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 3.74 MB
Statistics
  • Stars: 171
  • Watchers: 8
  • Forks: 40
  • Open Issues: 2
  • Releases: 0
Topics
audio-content-analysis audio-features audio-processing music-informatics music-information-retrieval signal-processing
Created over 6 years ago · Last pushed 9 months ago
Metadata Files
Readme Funding License Citation

README.md

GitHub top language PyPI - Python Version GitHub release (latest SemVer) DOI GitHub issues GitHub last commit GitHub

pyACA

Python scripts accompanying the book "An Introduction to Audio Content Analysis". The source code shows example implementations of basic approaches, features, and algorithms for music audio content analysis.

All implementations are also available in: * Matlab: ACA-Code * C++: libACA

functionality

The top-level functions are (alphabetical):

The names of the additional functions follow the following conventions:

documentation

The latest full documentation of this package can be found at https://alexanderlerch.github.io/pyACA.

design principles

Please note that the provided code examples are only intended to showcase algorithmic principles – they are not entirely suitable for practical usage without parameter optimization and additional algorithmic tuning. Rather, they intend to show how to implement audio analysis solutions and to facilitate algorithmic understanding to enable the reader to design and implement their own analysis approaches.

minimal dependencies

The required dependencies are reduced to a minimum, more specifically to only numpy and scipy, for the following reasons: * accessibility, i.e., clear algorithmic implementation from scratch without obfuscation by using 3rd party implementations, * maintainability through independence of 3rd party code. This design choice brings, however, some limitations; for instance, reading of non-RIFF audio files is not supported and the machine learning models are very simple.

readability

Consistent variable naming and formatting, as well as the choice for simple implementations allow for easier parsing. The readability of the source code will sometimes come at the cost of lower performance.

cross-language comparability

All code is matched exactly with Matlab implementations and the equations in the book. This also means that the python code might violate typical python style conventions in order to be consistent.

related repositories and links

The python source code in this repository is matched with corresponding source code in the Matlab repository. A C++ implementation with identical functionality can be found in the C++ repository.

Other, related repositories are * ACA-Slides: slide decks for teaching and learning audio content analysis * ACA-Plots: Matlab scripts for generating all plots in the book and slides

The main entry point to all book-related information is AudioContentAnalysis.org

getting started

installation

console pip install pyACA

code examples

example 1: computation and plot of the Spectral Centroid

```python import pyACA import matplotlib.pyplot as plt

file to analyze

cPath = "c:/temp/test.wav"

extract feature

[v, t] = pyACA.computeFeatureCl(cPath, "SpectralCentroid")

plot feature output

plt.plot(t,np.squeeze(v)) ``` example 2: Computation of two features (here: Spectral Centroid and Spectral Flux)

```python import pyACA

read audio file

cPath = "c:/temp/test.wav" [f_s, afAudioData] = pyACA.ToolReadAudio(cPath)

compute feature

[vsc, t] = pyACA.computeFeature("SpectralCentroid", afAudioData, fs) [vsf, t] = pyACA.computeFeature("SpectralFlux", afAudioData, fs) ```

Owner

  • Name: Alexander Lerch
  • Login: alexanderlerch
  • Kind: user
  • Location: Atlanta
  • Company: Georgia Institute of Technology

Music Information Retrieval and Audio Content Analysis

Citation (citation.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Lerch"
  given-names: "Alexander"
  orcid: "0000-0001-6319-578X"
title: "pyACA for Audio Content Analysis"
version: v0.3.1
doi: 10.5281/zenodo.6310329
date-released: 2022-02-28
url: "https://github.com/alexanderlerch/pyACA"
preferred-citation:
  type: article
  authors:
  - family-names: "Lerch"
    given-names: "Alexander"
    orcid: "0000-0001-6319-578X"
  doi: "10.1016/j.simpa.2022.100349"
  journal: "Software Impacts"
  start: 100349
  title: "libACA, pyACA, and ACA-Code: Audio content analysis in 3 languages"
  year: 2022

GitHub Events

Total
  • Issues event: 1
  • Watch event: 16
  • Push event: 2
  • Fork event: 2
Last Year
  • Issues event: 1
  • Watch event: 16
  • Push event: 2
  • Fork event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 192
  • Total Committers: 3
  • Avg Commits per committer: 64.0
  • Development Distribution Score (DDS): 0.234
Top Committers
Name Email Commits
alexanderlerch a****h@g****u 147
Kaushal Sali s****l@g****m 44
Richard Yang R****g@b****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 26
  • Total pull requests: 10
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 0.46
  • Average comments per pull request: 0.1
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: about 15 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • alexanderlerch (24)
  • desothier1 (1)
  • paranoid2droid (1)
  • zseramnay (1)
Pull Request Authors
  • kaushalsali (6)
  • alexanderlerch (3)
  • dependabot[bot] (2)
  • RichardYang40148 (1)
Top Labels
Issue Labels
enhancement (16) bug (4) documentation (1) annoyance (1)
Pull Request Labels
bug (2) dependencies (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 285 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 11
  • Total maintainers: 1
pypi.org: pyaca

scripts accompanying the book An Introduction to Audio Content Analysis by Alexander Lerch

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 285 Last month
Rankings
Stargazers count: 6.0%
Forks count: 6.8%
Downloads: 8.4%
Dependent packages count: 10.0%
Average: 10.6%
Dependent repos count: 21.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • matplotlib *
  • numpy *
  • scipy *
  • setuptools-scm *
setup.py pypi
  • matplotlib *
  • numpy *
  • scipy *
.github/workflows/build_documentation.yml actions
  • EndBug/add-and-commit v8 composite
  • actions/checkout v2 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • mattnotmitt/doxygen-action edge composite
.github/workflows/build_test_publish.yml actions
  • actions/checkout master composite
  • actions/setup-python v5 composite
  • ncipollo/release-action v1 composite
  • pypa/gh-action-pypi-publish master composite
pyproject.toml pypi