Skip to main content

ProcessAudio

Libreria python para hacer data augmentation en audios y/o extraer caracteristicas a audios


Installation

pip install ProcessAudio

Description

A ProcessAudio object should be created and use its attributes.

This library have tree main functions:

  • Features: Extract features from audio
  • AudioAugmentation: Augment audio in different ways
  • AllDataAugmentation: Augment audio in different ways and extract features
  • Util: Read audio and denoise audio
  • Split: Split audio in n seconds or at desired cut points
  • Graph: Graph spectrogram or log_mel_spectrogram for an audio

Back To Top ↥

Features methods

  • set_data(data_audio:str="<path_audio_file>): Set data to extract features
  • get_croma(): Extract croma features
  • get_mfcc(): Extract mfcc features
  • get_rmse(): Extract rmse features
  • get_centroide_espectral(): Extract spectral centroid features
  • get_rolloff(): Extract spectral rolloff features
  • get_cruce_por_cero(): Extract zero crossing rate features
  • get_ancho_banda_espectral(): Extract spectral bandwidth features
  • get_tonnetz(): Extract tonnetz features
  • build_basic(): Extract a basic features in a list

Back To Top ↥

AudioAugmentation methods

  • loudness(): Apply loudness to audio file creating a new data
  • add_mask(): Apply mask to audio file creating a new data
  • pitch(): Apply pitch to audio file creating a new data
  • get_original(): Get original audio file
  • add_crop(): Apply crop to audio file creating a new data
  • add_noise(): Apply noise to audio file creating a new data
  • add_noise2(): Apply noise to audio file creating a new data
  • shift(): Apply shift to audio file creating a new data
  • stretch(): Apply stretch to audio file creating a new data
  • speed(): Apply speed to audio file creating a new data
  • normalizer(): Apply normalizer to audio file creating a new data
  • polarizer(): Apply polarizer to audio file creating a new data
  • write_audio_file(): Write audio file
  • plot_time_series(): Plot time series

Back To Top ↥

AllDataAugmentation methods

  • build_all(extract_features: bool): Augment audio and extract features if extract_features is True

Back To Top ↥

Util methods

  • read_audio(file_path: str, force_convert_wav: bool): Read Read audio, if the format isn't wav, the method convert that before to read
  • audio_convert_wav(audio_path: str, output_path: str): Convert audio to wav format
  • denoise_audio(data: np.array, sr: int): remove the noise of audio data

Back To Top ↥

Split methods

  • split(self, start: int, end: int, save: bool): Split audio in start to end, if you need seconds, start and end have to multiples of 1000
  • split_by_seconds(self, seconds: int, save: bool): Cut audio en segments of parameter and save each one

Back To Top ↥

Graph methods

  • spectrogram(data: np.array, sr: int, output_path: str, title: str): Create the spectrogram for audio data
  • log_mel_spectrogram(data: np.array, sr: int, output_path: str, title: str): Create log mel spectrogram for audio data

Back To Top ↥

Usage

Example Features

import os
from ProcessAudio.Features import Features

filepath = os.path.dirname(os.path.abspath(__file__)) + os.sep
path_file = filepath + "demo" + os.sep + "dat_92.wav"

features = Features()
features.set_data(path_file)
DATA = features.build_basic() # Extract all features
print(DATA)
print(len(DATA))  

Back To Top ↥

Example AudioAugmentation

import os
from ProcessAudio.AudioAugmentation import AudioAugmentation

filepath = os.path.dirname(os.path.abspath(__file__)) + os.sep
path_file = filepath + "demo" + os.sep + "dat_92.wav"
folder_save = filepath + "new_audios" + os.sep

aumentation = AudioAugmentation(audio_file=path_file, save=folder_save)
audio_con_ruido = aumentation.add_noise(factor_ruido=0.05)
audio_normalizer = aumentation.normalizer()
audio_loudness = aumentation.loudness()

Back To Top ↥

Example AllDataAugmentation

import os
from ProcessAudio.AllDataAugmentation import AllDataAugmentation

filepath = os.path.dirname(os.path.abspath(__file__)) + os.sep
path_file = filepath + "demo" + os.sep + "dat_92.wav"
folder_save = filepath + "new_audios" + os.sep

aumentation = AllDataAugmentation(path_file, path_save=folder_save, label=["cero", "uno"])
data, label = aumentation.build_all(extract_features=True)
print(len(data), len(label))
print(len(data[0]), label[0])

Back To Top ↥

Citing

If you want to cite ProcessAudio in an academic paper, there are two ways to do it.

  • APA:

    WISROVI, W.S.R.V. (2022). Python library to augment audio data and/or extract audio features (Version 0.22.11) [Computer Software]. https://github.com/wisrovi/ProcessAudio

  • BibTex:

    @software{WISROVI_Instrument_Classifier_2022, author = {WISROVI, William Steve Rodríguez Villamizar}, month = {10}, title = {{Python library to augment audio data and/or extract audio features}}, URL = {https://github.com/wisrovi/ProcessAudio}, version = {0.22.11}, year = {2022} }


Back To Top ↥

License

GPLv3 License


Back To Top ↥

Support:

wisrovirod8

Metadata

Release files for ProcessAudio 0.24.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ProcessAudio 0.24.5
File Size Uploaded Provenance
ProcessAudio-0.24.5.tar.gz 21.4 kB Without provenance Details

Release files / ProcessAudio-0.24.5.tar.gz

Download URL ProcessAudio-0.24.5.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f8e6c2861bc267dd94185b54dd796cb9b6ebd89a85659a62e7b6552f37f84476
BLAKE2b-256 checksum
How to use checksums
327cd7bc693c3445c34b5b48a6f4ae4792eb6a972b9846a8ebfc674402ca2ed9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.14

Security for ProcessAudio 0.24.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page