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.
- Audio Related Packages
- Read/Write
- Transformations - General DSP
- Feature extraction
- Speech Processing
- Perceptial Models - Auditory Models
- Source Separation
- Music Information Retrieval
- Deep Learning
- Symbolic Music - MIDI - Musicology
- Realtime applications
- Web - Audio
- Audio related APIs and Datasets
- Wrappers for Audio Plugins
- Tutorials
- Books
- Scientific Paper
- Other Resources
- Related lists
- Contributing
- License
- audiolazy
๐ฆ - Expressive Digital Signal Processing (DSP) package for Python.
- audioread
๐ฆ - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- mutagen
๐ฆ - Reads and writes all kind of audio metadata for various formats.
- pyAV
- PyAV is a Pythonic binding for FFmpeg or Libav.
- (Py)Soundfile
๐ฆ - Library based on libsndfile, CFFI, and NumPy.
- pySox
๐ฆ - Wrapper for sox.
- PySynth
- simple midi-to-wav synthesizer.
- stempeg
๐ฆ - read/write of STEMS multistream audio.
- tinytag
๐ฆ - reading music meta data of MP3, OGG, FLAC and Wave files.
- audiomateยณ
๐ฆ - Loading different types of audio datasets.
- acoustics
๐ฆ - useful tools for acousticians.
- AudioTK
- DSP filter toolbox (lots of filters).
- AudioTSM
๐ฆ - real-time audio time-scale modification procedures.
- Gammatone
- Gammatone filterbank implementation.
- pyFFTW
๐ฆ - Wrapper for 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.
- pyroomacoustics
๐ฆ - Room Acoustics Simulation (RIR generator)
- PyRubberband
๐ฆ - Wrapper for rubberband to do pitch-shifting and time-stretching.
- PyWavelets
๐ฆ - Discrete Wavelet Transform in Python.
- Resampy
๐ฆ - Sample rate conversion.
- SFS-Python
๐ฆ - Sound Field Synthesis Toolbox.
- 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 feature extractor.
- speechpy
๐ฆ - Library for Speech Processing and Recognition, mostly feature extraction for now.
- aeneas
๐ฆ - Forced aligner, based on MFCC+DTW, 35+ languages.
- pyAudioAnalysisยฒ
๐ฆ - Feature Extraction, Classification, Diarization.
- py-webrtcvad
๐ฆ - Interface to the WebRTC Voice Activity Detector.
- PyWorldVocoder
- Wrapper for Morise's World Vocoder.
- 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.
- msaf
๐ฆ - Music Structure Analysis Framework.
- librosa
๐ฆ - General audio and music analysis.
- rp_extractยฒ
- Rhythm Pattern music feature extractor.
- Kapre
๐ฆ - Keras Audio Preprocessors
- TorchAudio
- PyTorch Audio Loaders
- 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 dsp engine.
- python-sounddevice
๐ฆ - PortAudio wrapper providing realtime audio I/O with NumPy.
- TimeSideยฒ
- high level audio analysis, imaging, transcoding, streaming and labelling.
- beets
๐ฆ - Music library manager and MusicBrainz tagger.
- dsdtools
๐ฆ - Parse and process the demixing secrets dataset.
- medleydb
- Parse medleydb audio + annotations.
- Soundcloud API
๐ฆ - Wrapper for Soundcloud API.
- Youtube-Downloader
๐ฆ - Download youtube videos (and the audio).
- VamPy Host ๐ฆ - Interface compiled vamp plugins.
- Whirlwind Tour Of Python
- fast-paced introduction to Python essentials, aimed at researchers and developers.
- Introduction to Numpy and Scipy
- Highly recommended tutorial, covers large parts of the scientific Python ecosystem.
- Numpy for MATLABยฎ Users - Short overview of equivalent python functions for switchers.
- MIR Notebooks
- collection of instructional iPython Notebooks for music information retrieval (MIR).
- Selected Topics in Audio Signal Processing - Exercises as iPython notebooks.
- Python Data Science Handbook - Jake Vanderplas, Excellent Book and accompanying tutorial notebooks.
- Fundamentals of Music Processing - Meinard Mรผller, comes with Python exercises.
- Python for audio signal processing - John C. Glover, Victor Lazzarini and Joseph Timoney, Linux Audio Conference 2011.
- librosa: Audio and Music Signal Analysis in Python, Video - Brian McFee, Colin Raffel, Dawen Liang, Daniel P.W. Ellis, Matt McVicar, Eric Battenberg, Oriol Nieto, Scipy 2015.
- Coursera Course - Audio Signal Processing, Python based course from UPF of Barcelona and Stanford University.
- Digital Signal Processing Course - Masters Course Material (University of Rostock) with many Python examples.
- Slack Channel - Music Information Retrieval Community.
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.
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.