Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.
This is a lightweight Python wrapper for SoX, the Swiss Army knife of sound processing programs. Supported effects range from EQ and compression to phasers, reverb and pitch shifters.
Install with pip as:
pip install pysndfx
The system must also have SoX installed (for Debian-based operating systems: apt install sox
, or with Anaconda as conda install -c conda-forge sox
)
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)"