imglsadf#
- diffsptk.IMLSA#
alias of
PseudoInverseMGLSADigitalFilter
- class diffsptk.PseudoInverseMGLSADigitalFilter(filter_order, **kwargs)[source]#
See this page for details.
- Parameters:
- filter_orderint >= 0 [scalar]
Order of filter coefficients, \(M\).
- alphafloat [-1 < alpha < 1]
Frequency warping factor, \(\alpha\).
- gammafloat [-1 <= gamma <= 1]
Gamma, \(\gamma\).
- cint >= 1 [scalar]
Number of stages.
- frame_periodint >= 1 [scalar]
Frame period, \(P\).
- ignore_gainbool [scalar]
If True, perform filtering without gain.
- phase[‘minimum’, ‘maximum’, ‘zero’]
Filter type.
- cascadebool [scalar]
If True, use multi-stage FIR filter.
- cep_orderint >= 0 [scalar]
Order of linear cepstrum (valid only if cascade is True).
- taylor_orderint >= 0 [scalar]
Order of Taylor series expansion (valid only if cascade is True).
- impulse_response_lengthint >= 1 [scalar]
Length of impulse response (valid only if cascade is False).
- n_fftint >= 1 [scalar]
Number of FFT bins for conversion (valid only if cascade is False).
- forward(y, mc)[source]#
Apply an inverse MGLSA digital filter.
- Parameters:
- yTensor [shape=(…, T)]
Audio signal.
- mcTensor [shape=(…, T/P, M+1)]
Mel-generalized cepstrum, not MLSA digital filter coefficients.
- Returns:
- xTensor [shape=(…, T)]
Residual signal.
Examples
>>> M = 4 >>> y = diffsptk.step(3) >>> mc = torch.randn(2, M + 1) >>> mc tensor([[ 0.8457, 1.5812, 0.1379, 1.6558, 1.4591], [-1.3714, -0.9669, -1.2025, -1.3683, -0.2352]]) >>> imglsadf = diffsptk.PseudoInverseMGLSADigitalFilter(M, frame_period=2) >>> x = imglsadf(y.view(1, -1), mc.view(1, 2, M + 1)) >>> x tensor([[ 0.4293, 1.0592, 7.9349, 14.9794]])