The aim of this repository is to create a comprehensive, curated list of python software/tools related and used for scientific research in audio/music applications.
- Awesome Criteria
- Related lists
- Audio Related Packages
- Read/Write
- Transformations - General DSP
- Feature extraction
- Speech Processing
- Perceptial Models - Auditory Models
- Source Separation
- Music Information Retrieval
- Symbolic Music - MIDI - Musicology
- Realtime applications
- Web - Audio
- Packages to access audio APIs - parsing audio datasets
- Wrappers for Audio Plugins
- Tutorials - Books
- Contributing
- the software is audio/music related
- the software is released under an open source license that allow contributions
- the software is useful for several (not just one) fields of research
- (optional) the software is listed on pypi (add a π¦ link to pypi)
- (optional) the software is version controlled on an open platform like

- (optional) the software runs on python 2 and python 3 (See
Β²python 2 only,Β³for python 3 only)
There is already PythonInMusic but it is not up to date and includes too many packages of special interest that are mostly not relevant for scientific applications. Awesome-Python is large curated list of python packages. However, the audio section is very small.
- audiolazy
π¦ - Expressive Digital Signal Processing (DSP) package for Python - audioread
π¦ - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding - pyAV
- PyAV is a Pythonic binding for FFmpeg or Libav - (Py)Soundfile
π¦ - Library based on libsndfile, CFFI, and NumPy - pySox
π¦ - Wrapper around sox - tinytag
π¦ - reading music meta data of MP3, OGG, FLAC and Wave files
- acoustics
π¦ - useful tools for acousticians. - AudioTK
- DSP filter toolbox (lots of filters) - Gammatone
- Gammatone filterbank implementation - pyFFTW
π¦ - Wrapper around FFTW(3) - NSGTΒ²
π¦ - Non-stationary gabor transform, constant-q - MDCT
π¦ - MDCT transform - pydub
π¦ - Manipulate audio with a simple and easy high level interface - pytftb
- Implementation of the MATLAB Time-Frequency Toolbox - PyRubberband
π¦ - Wrapper for rubberband to do pitch-shifting and time-stretching - PyWaveletsΒ²
π¦ - Discrete Wavelet Transform in Python - Resampy
π¦ - Sample rate conversion - STFT
π¦ - Standalone package for Short-Time Fourier Transform
- aubio
π¦ - Feature extractor, written in C, python interface - audiolazy
π¦ - Realtime Audio Processing lib, general purpose - essentiaΒ²
- Music related low level and high level feature extractor, C++ based, includes Python bindings. - muda
π¦ - Musical Data Augmentation. - python_speech_features
π¦ - Common speech features for ASR - pyYAAFE
- Python bindings for YAAFE
- aeneas
π¦ - Forced aligner, based on MFCC+DTW, 35+ languages - pyAudioAnalysisΒ²
π¦ - Feature Extraction, Classification, Diarization - py-webrtcvad
π¦ - Interface to the WebRTC Voice Activity Detector - Montreal Forced Aligner
- Forced aligner, based on Kaldi (HMM), English (others can be trained). - SIDEKITΒ³ π¦ - Speaker and Language recognition
- SpeechRecognition
π¦ - Wrapper for several ASR engines and APIs, online and
offline
- cochleaΒ²
π¦ - Inner ear models - Brian2
π¦ - Spiking neural networks simulator, includes cochlea model. - LoudnessΒ²
- Perceived loudness, includes Zwicker, Moore/Glasberg model - Sound Field Synthesis Toolbox
π¦ - Sound Field Synthesis Toolbox
- beta_ntfΒ²
- Non-Negative Tensor factorisation using PARAFAC. - commonfate
π¦ - Common Fate Model and Transform. - NUSSLΒ²
π¦ - Various source separation algorithms + framework. - NTFLib
- Sparse Beta-Divergence Tensor Factorization. - NIMFA
π¦ - Several NMF flavors. - pyFASSTΒ²
π¦ - Wrapper for Flexible Audio Source Separation Toolbox.
- Catchy
- Corpus Analysis Tools for Computational Hook Discovery - dejavuΒ²
π¦ - Audio fingerprinting and recognition - Madmom
π¦ - MIR packages with strong focus on beat detection, onset detection and chord recognition - mir_eval
π¦ - Common scores for various MIR tasks. Also includes bss_eval implementation - librosa
π¦ - General audio and music analysis. - rp_extractΒ²
- Rhythm Pattern music feature extractor
- Music21
π¦ - Toolkit for Computer-Aided Musicology. - Mido
π¦ - Realtime MIDI wrapper. - mingusΒ²
π¦ - Advanced music theory and notation package with MIDI file and playback support. - Pretty-MIDI
π¦ - Utility functions for handling MIDI data in a nice/intuitive way.
- PYO - Realtime audio engine similar supercollider
- python-sounddevice - another PortAudio wrapper
- (Py)Soundcard - PortAudio based realtime audio processing
- TimeSideΒ² - Open web audio processing framework.
- beets - Music library manager and MusicBrainz tagger
- dsdtools - Parse and process the demixing secrets dataset
- medleydb - Parse medleydb audio + annotations
- Soundcloud API - Wrapper around the Soundcloud API
- Youtube-Downloader - Download youtube videos (and the audio)
- VamPy Host - Interface compiled vamp plugins
- CFFI - Easily interface c libraries
- Matlab_Wrapper - Runs code in matlab and returns results to python
- pybind11 - Interface c++ code
- rpy2 - Call R from python
- Introduction to Numpy and Scipy - Highly recommended π
- Python Data Science Handbook - Excellent Book, look for the Tutorial notebooks
- MIR Notebooks
- From Python to Numpy
- https://github.com/spatialaudio/selected-topics-in-audio-signal-processing-exercises
- https://github.com/unpingco/Python-for-Signal-Processing
- http://dsp-nbsphinx.readthedocs.io/en/nbsphinx-experiment/index.html
Your contributions are always welcome! Please take a look at the contribution guidelines first.
I will keep some pull requests open if I'm not sure whether those libraries are awesome, you could vote for them by adding π to them.