Skip to content

mmaudio_processing

Audio preprocessing used by native MMAudio training feature extraction.

Classes

fastvideo.models.audio.mmaudio_processing.MMAudioMelConverter

MMAudioMelConverter(*, sampling_rate: int, n_fft: int, num_mels: int, hop_size: int, win_size: int, fmin: float, fmax: float, log_base: Literal['e', '10'])

Bases: Module

Convert waveforms to MMAudio's log-mel representation.

The FFT, padding, mel filter, and logarithm match the published MMAudio preprocessing contract. Keeping this component in FastVideo avoids a runtime import from the upstream training repository.

Source code in fastvideo/models/audio/mmaudio_processing.py
def __init__(
    self,
    *,
    sampling_rate: int,
    n_fft: int,
    num_mels: int,
    hop_size: int,
    win_size: int,
    fmin: float,
    fmax: float,
    log_base: Literal["e", "10"],
) -> None:
    super().__init__()
    from librosa.filters import mel as librosa_mel_fn

    mel = librosa_mel_fn(
        sr=sampling_rate,
        n_fft=n_fft,
        n_mels=num_mels,
        fmin=fmin,
        fmax=fmax,
    )
    self.n_fft = n_fft
    self.hop_size = hop_size
    self.win_size = win_size
    self.log_base = log_base
    self.register_buffer("mel_basis", torch.from_numpy(mel).float())
    self.register_buffer("hann_window", torch.hann_window(win_size))