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.
pip install pysndfx
The system must also have SoX installed.
For Debian-based operating systems:
apt install sox
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)"