Package julius
Julius contains different Digital Signal Processing algorithms implemented with PyTorch, so that they are differentiable and available on CUDA. Note that all the modules implemented here can be used with TorchScript.
For now, I have implemented:
julius.resample
: fast sinc resampling.julius.fftconv
: FFT based convolutions.julius.lowpass
: FIR low pass filter banks.julius.filters
: FIR high pass and band pass filters.julius.bands
: Decomposition of a waveform signal over mel-scale frequency bands.
Along that, you might found useful utilities in:
julius.core
: DSP related functions.julius.utils
: Generic utilities.
Please checkout the Github repository for other informations.
For a verification of the speed and correctness of Julius, check the benchmark module bench
.
This package is named in this honor of Julius O. Smith, whose books and website were a gold mine of information for me to learn about DSP. Go checkout his website if you want to learn more about DSP.
Sub-modules
julius.bands
-
Decomposition of a signal over frequency bands in the waveform domain.
julius.core
-
Signal processing or PyTorch related utilities.
julius.fftconv
-
Implementation of a FFT based 1D convolution in PyTorch. While FFT is used in CUDNN for small kernel sizes, it is not the case for long ones, e.g …
julius.filters
-
FIR windowed sinc highpass and bandpass filters. Those are convenience wrappers around the filters defined in
julius.lowpass
. julius.lowpass
-
FIR windowed sinc lowpass filters.
julius.resample
-
Differentiable, Pytorch based resampling. Implementation of Julius O. Smith algorithm for resampling. See https://ccrma.stanford.edu/~jos/resample/ …
julius.utils
-
Non signal processing related utilities.