mgc2mgc#

class diffsptk.MelGeneralizedCepstrumToMelGeneralizedCepstrum(in_order, out_order, in_alpha=0, out_alpha=0, in_gamma=0, out_gamma=0, in_norm=False, out_norm=False, in_mul=False, out_mul=False, n_fft=512)[source]#

See this page for details. The conversion uses FFT instead of recursive formula.

Parameters:
in_orderint >= 0

Order of input cepstrum, \(M_1\).

out_orderint >= 0

Order of output cepstrum, \(M_2\).

in_alphafloat in (-1, 1)

Input alpha, \(\alpha_1\).

out_alphafloat in (-1, 1)

Output alpha, \(\alpha_2\).

in_gammafloat in [-1, 1]

Input gamma, \(\gamma_1\).

out_gammafloat in [-1, 1]

Output gamma, \(\gamma_2\).

in_normbool

If True, assume normalized input.

out_normbool

If True, assume normalized output.

in_mulbool

If True, assume gamma-multiplied input.

out_mulbool

If True, assume gamma-multiplied output.

n_fftint >> M1, M2

Number of FFT bins. Accurate conversion requires the large value.

forward(mc)[source]#

Convert mel-generalized cepstrum to mel-generalized cepstrum.

Parameters:
mcTensor [shape=(…, M1+1)]

Input mel-cepstrum.

Returns:
outTensor [shape=(…, M2+1)]

Converted mel-cepstrum.

Examples

>>> c1 = diffsptk.ramp(3)
>>> mgc2mgc = diffsptk.MelGeneralizedCepstrumToMelGeneralizedCepstrum(3, 4, 0.1)
>>> c2 = mgc2mgc(c1)
>>> c2
tensor([-0.0830,  0.6831,  1.1464,  3.1334,  0.9063])
diffsptk.functional.mgc2mgc(mc, out_order, in_alpha=0, out_alpha=0, in_gamma=0, out_gamma=0, in_norm=False, out_norm=False, in_mul=False, out_mul=False, n_fft=512)[source]#

Convert mel-generalized cepstrum to mel-generalized cepstrum.

Parameters:
mcTensor [shape=(…, M1+1)]

Input mel-cepstrum.

out_orderint >= 0

Order of output cepstrum, \(M_2\).

in_alphafloat in (-1, 1)

Input alpha, \(\alpha_1\).

out_alphafloat in (-1, 1)

Output alpha, \(\alpha_2\).

in_gammafloat in [-1, 1]

Input gamma, \(\gamma_1\).

out_gammafloat in [-1, 1]

Output gamma, \(\gamma_2\).

in_normbool

If True, assume normalized input.

out_normbool

If True, assume normalized output.

in_mulbool

If True, assume gamma-multiplied input.

out_mulbool

If True, assume gamma-multiplied output.

n_fftint >> M1, M2

Number of FFT bins. Accurate conversion requires the large value.

Returns:
outTensor [shape=(…, M2+1)]

Converted mel-cepstrum.