LPC Utility for Pytorch Library.
LPCTorch is a small pytorch utility for Linear Predictive Coding. It provides a simple way to compute windowed Linear Predictive Coding Coefficients on a input audio signal. The repo uses the Burg's methods [1] and is heavily inspired from the librosa audio library implementation [2].
Install the module using the pip utility ( may require to run as sudo )
pip3 install lpctorch
from lpctorch import LPCCoefficients
# Parameters
# * sr : sample rate of the signal ( 16 kHz )
# * frame_duration: duration of the window in seconds ( 16 ms )
# * frame_overlap : frame overlapping factor
# * K : number of linear predictive coding coefficients
sr = 16000
frame_duration = .016
frame_overlap = .5
K = 32
# Initialize the module given all the parameters
lpc_prep = LPCCoefficients(
sr,
frame_duration,
frame_overlap,
order = ( K - 1 )
)
# Get the coefficients given a signal
# torch.Tensor of size ( Batch, Samples )
alphas = lpc_prep( X )
The repository provides an example application with a 'sample.wav' file. The output is the same as the one provided by librosa (bottom).
Here are some benchmarks comparing cpu vs gpu inference times in seconds of the utility from 1 to 32 batch size.