def test_kaldifeat_supports_list_of_uneven_len_inputs():
    input = [
        torch.arange(8000, dtype=torch.float32),
        torch.arange(16000, dtype=torch.float32),
    ]
    fe = KaldifeatFbank()
    feats = fe.extract(input, sampling_rate=16000)
    assert len(feats) == 2
    f1, f2 = feats
    assert f1.shape == (50, 80)
    assert f2.shape == (100, 80)
def test_kaldifeat_supports_list_of_even_len_inputs(input):
    fe = KaldifeatFbank()
    feats = fe.extract(input, sampling_rate=16000)
    assert feats.ndim == 3
    assert feats.shape == (2, 50, 80)
def test_kaldifeat_supports_single_input_waveform(input):
    fe = KaldifeatFbank()
    feats = fe.extract(input, sampling_rate=16000)
    assert feats.shape == (50, 80)
def test_kaldifeat_supports_list_with_single_input_waveform(input):
    fe = KaldifeatFbank()
    feats = fe.extract(input, sampling_rate=16000)
    assert isinstance(feats, list)
    assert len(feats) == 1
    assert feats[0].shape == (50, 80)
def test_kaldifeat_config():
    x = np.arange(8000, dtype=np.float32)
    fe = KaldifeatFbank(KaldifeatFbankConfig(mel_opts=KaldifeatMelOptions(num_bins=27)))
    feats = fe.extract(x, sampling_rate=16000)
    assert feats.shape == (50, 27)