def test_crop_time_after_padding(): sg_orig = test_audio_tensor() a2s = AudioToSpec.from_cfg(AudioConfig.Voice()) sg = a2s(sg_orig) crop_time = CropTime((sg.duration + 5) * 1000, pad_mode=AudioPadType.Zeros_After) inp, out = apply_transform(crop_time, sg.clone()) _test_ne(sg.duration, sg_orig.duration)
def test_crop_time(): for i in [1, 2, 5]: a2s = AudioToSpec.from_cfg(AudioConfig.Voice()) audio = test_audio_tensor(seconds=3) crop = CropTime(i * 1000) inp, out = apply_transform(crop, a2s(audio)) _test_eq(i, round(out.duration)) _test_close(out.width, int((i / inp.duration) * inp.width), eps=1.01)
def test_crop_time_repeat_padding(): "Test that repeat padding works when cropping time" repeat = 3 audio = test_audio_tensor() crop_12000ms_repeat = CropTime(repeat * 1000 * audio.duration, pad_mode=AudioPadType.Repeat) a2s = AudioToSpec.from_cfg(AudioConfig.Voice()) sg = a2s(audio) inp, out = apply_transform(crop_12000ms_repeat, sg) _test_eq(inp.width, sg.width) _test_ne(sg.width, out.width)
def test_crop_time_with_pipeline(ex_files): """ AudioToSpec->CropTime and ResizeSignal->AudioToSpec will result in same size images """ oa = OpenAudio(ex_files) crop_dur = random.randint(1000, 5000) DBMelSpec = SpectrogramTransformer(mel=True, to_db=True) pipe_cropsig = Pipeline( [oa, DBMelSpec(hop_length=128), CropTime(crop_dur)]) pipe_cropspec = Pipeline([ oa, ResizeSignal(crop_dur), DBMelSpec(hop_length=128), ]) for i in range(4): _test_eq(pipe_cropsig(i).width, pipe_cropspec(i).width)
def test_fail_bad_pad(): # test bad pad_mode doesnt fail silently, correct is 'zeros_after' _test_fail(CropTime(12000, pad_mode="zerosafter"))