vick-wuwei / python-audio-effects

Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pysndfx

GitHub Workflow Status PyPI PyPI license

Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.

This is a lightweight Python wrapper for SoX - Sound eXchange. Supported effects range from EQ and compression to phasers, reverb and pitch shifters.

Install

Command:

pip install pysndfx

The system must also have SoX installed.

For Debian-based operating systems: apt install sox

For Anaconda: conda install -c conda-forge sox

Usage

First create an audio effects chain.

# Import the package and create an audio effects chain function.
from pysndfx import AudioEffectsChain

fx = (
    AudioEffectsChain()
    .highshelf()
    .reverb()
    .phaser()
    .delay()
    .lowshelf()
)

Then we can call the effects chain object with paths to audio files, or directly with NumPy ndarrays.

infile = 'my_audio_file.wav'
outfile = 'my_processed_audio_file.ogg'

# Apply phaser and reverb directly to an audio file.
fx(infile, outfile)

# Or, apply the effects directly to a ndarray.
from librosa import load
y, sr = load(infile, sr=None)
y = fx(y)

# Apply the effects and return the results as a ndarray.
y = fx(infile)

# Apply the effects to a ndarray but store the resulting audio to disk.
fx(x, outfile)

There's also experimental streaming support. Try applying reverb to a microphone input and listening to the results live like this:

python -c "from pysndfx import AudioEffectsChain; AudioEffectsChain().reverb()(None, None)"

About

Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.

License:MIT License


Languages

Language:Python 100.0%