VQMIVC / ParallelWaveGAN /test /test_mel_loss.py
akhaliq3
spaces demo
2b7bf83
raw
history blame
1.12 kB
#!/usr/bin/env python3
# Copyright 2021 Tomoki Hayashi
# MIT License (https://opensource.org/licenses/MIT)
"""Test code for Mel-spectrogram loss modules."""
import numpy as np
import torch
from parallel_wavegan.bin.preprocess import logmelfilterbank
from parallel_wavegan.losses import MelSpectrogram
def test_mel_spectrogram_is_equal():
x = np.random.randn(22050)
x = np.abs(x) / np.max(np.abs(x))
mel_npy = logmelfilterbank(
x,
22050,
fft_size=1024,
hop_size=256,
win_length=None,
window="hann",
num_mels=80,
fmin=80,
fmax=7600,
eps=1e-10,
)
mel_spectrogram = MelSpectrogram(
fs=22050,
fft_size=1024,
hop_size=256,
win_length=None,
window="hann",
num_mels=80,
fmin=80,
fmax=7600,
eps=1e-10,
).to(dtype=torch.double)
mel_torch = mel_spectrogram(torch.from_numpy(x).unsqueeze(0))
np.testing.assert_array_almost_equal(
mel_npy.transpose(1, 0).astype(np.float32),
mel_torch[0].numpy().astype(np.float32),
)