audiomate

audiomate: A Python package for working with audio datasets - Published in JOSS (2020)

https://github.com/ynop/audiomate

Science Score: 95.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: arxiv.org, joss.theoj.org
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

audio audio-datasets corpus-tools data-loader dataset-creation dataset-filtering dataset-manager music noise speech speech-recognition

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

Python library for handling audio datasets.

Basic Info
Statistics
  • Stars: 138
  • Watchers: 12
  • Forks: 28
  • Open Issues: 31
  • Releases: 1
Topics
audio audio-datasets corpus-tools data-loader dataset-creation dataset-filtering dataset-manager music noise speech speech-recognition
Created about 8 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License

README.md

AUDIOMATE

PyPI Build Status Documentation Status DeepSource DOI

Audiomate is a library for easy access to audio datasets. It provides the datastructures for accessing/loading different datasets in a generic way. This should ease the use of audio datasets for example for machine learning tasks.

```python import audiomate from audiomate.corpus import io

Download a dataset

escdownloader = io.ESC50Downloader() escdownloader.download('/local/path')

Load and work with the dataset

esc50 = audiomate.Corpus.load('/local/path', reader='esc-50')

e.g. Read the audio signal and the label of specific sample/utterance

utterance = esc50.utterances['1-100032-A-0'] samples = utterance.readsamples() labellist = utterance.labellists[audiomate.corpus.LLSOUND_CLASS]

for label in label_list: print(label.start, label.value) ```

Furthermore it provides tools for interacting with datasets (validation, splitting, subsets, merge, filter), extracting features, feeding samples for training ML models and more.

Currently supported datasets: * Acoustic Event Dataset * AudioMNIST * Mozilla Common Voice * ESC-50 * Fluent Speech Commands * Free Spoken Digit Dataset * German Distant Speech Corpus * Google Speech Commands * GTZAN * LibriSpeech * M-AILABS Speech Dataset * MUSAN * LITIS Rouen Audio scene dataset * Spoken Wikipedia Corpora * Tatoeba * TIMIT * Urbansound8k * Voxforge

Currently supported formats: * Kaldi * Mozilla DeepSpeech * Wav2Letter * NVIDIA Jasper * Custom Formats

Installation

sh pip install audiomate

Install the latest development version:

sh pip install git+https://github.com/ynop/audiomate.git

Dependencies

sox

For parts of the functionality (e.g. audio format conversion) sox is used. In order to use it, you have to install sox.

```sh

macos

brew install sox

with support for specific formats

brew install sox --with-lame --with-flac --with-libvorbis

linux

apt-get install sox

anaconda for macOS/windows/linux:

conda install -c conda-forge sox ```

Development

Prerequisites

It's recommended to use a virtual environment when developing audiomate. To create one, execute the following command in the project's root directory:

python -m venv .

To install audiomate and all it's dependencies, execute:

pip install -e .

Running the test suite

pip install -e .[dev] pytest

With PyCharm you might have to change the default test runner. Otherwise, it might only suggest to use nose. To do so, go to File > Settings > Tools > Python Integrated Tools (on the Mac it's PyCharm > Preferences > Settings > Tools > Python Integrated Tools) and change the test runner to py.test.

Benchmarks

In order to check the runtime of specific parts, pytest-benchmark is used. Benchmarks are normal test functions, but call the benchmark fixture for the code under test.

To run benchmarks:

```

Run all

pytest bench

Specific benchmark

pytest bench/corpus/testmergecorpus.py ```

To compare between different runs:

pytest-benchmark compare

Editing the Documentation

The documentation is written in reStructuredText and transformed into various output formats with the help of Sphinx.

To generate the documentation, execute:

pip install -e .[dev] cd docs make html

The generated files are written to docs/_build/html.

Versions

Versions is handled using bump2version. To bump the version:

bump2version [major,minor,patch,release,num]

In order to directly go to a final relase version (skip .dev/.rc/...):

bump2version [major,minor,patch] --new-version x.x.x

Release

Commands to create a new release on pypi.

``` rm -rf build rm -rf dist

python setup.py sdist python setup.py bdist_wheel twine upload dist/* ```

Owner

  • Name: Matthias
  • Login: ynop
  • Kind: user
  • Location: Switzerland

JOSS Publication

audiomate: A Python package for working with audio datasets
Published
August 05, 2020
Volume 5, Issue 52, Page 2135
Authors
Matthias Büchi ORCID
ZHAW Zurich University of Applied Sciences, Winterthur, Switzerland
Andreas Ahlenstorf
ZHAW Zurich University of Applied Sciences, Winterthur, Switzerland
Editor
Yuan Tang ORCID
Tags
audio speech music corpus dataset

GitHub Events

Total
  • Watch event: 6
  • Fork event: 2
Last Year
  • Watch event: 6
  • Fork event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 487
  • Total Committers: 12
  • Avg Commits per committer: 40.583
  • Development Distribution Score (DDS): 0.142
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
buec m****i@o****m 418
Andreas Ahlenstorf a****s@a****h 46
Daniel d****l@m****e 8
DanBmh D****h 4
Vojtěch Drábek v****k@g****m 2
Todd t****8@g****m 2
Chetan Kini c****3@g****m 2
zaniyar z****y@g****m 1
Fabian-Robert Stöter f****t 1
Daniel S. Katz d****z@i****g 1
Fabian-Robert Stöter f****r@i****r 1
Armin a****n@k****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 67
  • Total pull requests: 36
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 15
  • Total pull request authors: 15
  • Average comments per issue: 1.37
  • Average comments per pull request: 1.42
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ynop (38)
  • aahlenst (6)
  • faroit (4)
  • toddrme2178 (4)
  • mulhod (3)
  • Abhipray (2)
  • Tortoise17 (2)
  • JoshuaStorm (1)
  • davidavdav (1)
  • emzee831 (1)
  • DanBmh (1)
  • fbenites (1)
  • olafthiele (1)
  • AASHISHAG (1)
  • julianmorenomotta (1)
Pull Request Authors
  • aahlenst (7)
  • ynop (6)
  • DanBmh (6)
  • dependabot[bot] (3)
  • cdkini (2)
  • Mastercuber (2)
  • kaoh (2)
  • SuperKogito (1)
  • CostanzoPablo (1)
  • comodoro (1)
  • toddrme2178 (1)
  • abdallah1989203 (1)
  • TrellixVulnTeam (1)
  • faroit (1)
  • danielskatz (1)
Top Labels
Issue Labels
enhancement (25) bug (7) good first issue (4) help wanted (2) need-more-info (2) waiting-for-triage (2)
Pull Request Labels
dependencies (3)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 170 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 20
  • Total maintainers: 1
proxy.golang.org: github.com/ynop/audiomate
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 6.9%
Last synced: 4 months ago
pypi.org: audiomate

Audiomate is a library for working with audio datasets.

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 170 Last month
Rankings
Stargazers count: 6.4%
Forks count: 7.6%
Dependent repos count: 9.1%
Dependent packages count: 9.7%
Average: 10.5%
Downloads: 19.9%
Maintainers (1)
Last synced: 4 months ago

Dependencies

setup.py pypi