Unverified Commit 05746042 authored by moto's avatar moto Committed by GitHub
Browse files

Refactor test_sox_effects (#805)

1. Move misplaced sox compatibility test (T,Fade, T.Vol, T.Vad) to test/test_sox_compatibility.py
2. Move test_sox_effects to test/sox_effect/ where all the other functionalities from torchaudio.sox_effects are tested
parent daa0007a
......@@ -29,7 +29,7 @@ The following test modules are defined for corresponding `torchaudio` module/fun
- [`torchaudio.transforms`](./test_transforms.py)
- [`torchaudio.compliance.kaldi`](./test_compliance_kaldi.py)
- [`torchaudio.kaldi_io`](./test_kaldi_io.py)
- [`torchaudio.sox_effects`](test/test_sox_effects.py)
- [`torchaudio.sox_effects`](test/sox_effects)
- [`torchaudio.save`, `torchaudio.load`, `torchaudio.info`](test/test_io.py)
### Test modules that do not fall into the above categories
......
......@@ -5,7 +5,7 @@ import unittest
import torch
import torchaudio
from . import common_utils
from .. import common_utils
@common_utils.skipIfNoSoxBackend
......@@ -222,51 +222,3 @@ class Test_SoxEffectsChain(common_utils.TorchaudioTestCase):
E.append_effect_to_chain("compand", ["0.3", "1", "6:-70,-60,-20", "-5", "-90", "0.2"])
with self.assertRaises(RuntimeError):
E.sox_build_flow_effects()
def test_fade(self):
x_orig, _ = torchaudio.load(self.test_filepath)
fade_in_len = 44100
fade_out_len = 44100
for fade_shape_sox, fade_shape_torchaudio in (("q", "quarter_sine"), ("h", "half_sine"), ("t", "linear")):
E = torchaudio.sox_effects.SoxEffectsChain()
E.set_input_file(self.test_filepath)
E.append_effect_to_chain("fade", [fade_shape_sox, 1, "0", 1])
x, sr = E.sox_build_flow_effects()
fade = torchaudio.transforms.Fade(fade_in_len, fade_out_len, fade_shape_torchaudio)
# check if effect worked
self.assertTrue(x.allclose(fade(x_orig), rtol=1e-4, atol=1e-4))
def test_vol(self):
x_orig, _ = torchaudio.load(self.test_filepath)
for gain, gain_type in ((1.1, "amplitude"), (2, "db"), (2, "power")):
E = torchaudio.sox_effects.SoxEffectsChain()
E.set_input_file(self.test_filepath)
E.append_effect_to_chain("vol", [gain, gain_type])
x, sr = E.sox_build_flow_effects()
vol = torchaudio.transforms.Vol(gain, gain_type)
z = vol(x_orig)
# check if effect worked
self.assertTrue(x.allclose(z, rtol=1e-4, atol=1e-4))
def test_vad(self):
sample_files = [
common_utils.get_asset_path("vad-go-stereo-44100.wav"),
common_utils.get_asset_path("vad-go-mono-32000.wav")
]
for sample_file in sample_files:
E = torchaudio.sox_effects.SoxEffectsChain()
E.set_input_file(sample_file)
E.append_effect_to_chain("vad")
x, _ = E.sox_build_flow_effects()
x_orig, sample_rate = torchaudio.load(sample_file)
vad = torchaudio.transforms.Vad(sample_rate)
y = vad(x_orig)
self.assertTrue(x.allclose(y, rtol=1e-4, atol=1e-4))
......@@ -2,6 +2,8 @@ import unittest
import torch
import torchaudio.functional as F
import torchaudio.transforms as T
from parameterized import parameterized
from .common_utils import (
skipIfNoSoxBackend,
......@@ -299,3 +301,31 @@ class TestFunctionalFiltering(TempDirMixin, TorchaudioTestCase):
data, path = self.get_whitenoise()
result = F.lfilter(data, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]))
self.assert_sox_effect(result, path, ['biquad', b0, b1, b2, a0, a1, a2])
@parameterized.expand([
('q', 'quarter_sine'),
('h', 'half_sine'),
('t', 'linear'),
])
def test_fade(self, fade_shape_sox, fade_shape):
fade_in_len, fade_out_len = 44100, 44100
data, path = self.get_whitenoise(sample_rate=44100)
result = T.Fade(fade_in_len, fade_out_len, fade_shape)(data)
self.assert_sox_effect(result, path, ['fade', fade_shape_sox, '1', '0', '1'])
@parameterized.expand([
('amplitude', 1.1),
('db', 2),
('power', 2),
])
def test_vol(self, gain_type, gain):
data, path = self.get_whitenoise()
result = T.Vol(gain, gain_type)(data)
self.assert_sox_effect(result, path, ['vol', f'{gain}', gain_type])
@parameterized.expand(['vad-go-stereo-44100.wav', 'vad-go-mono-32000.wav'])
def test_vad(self, filename):
path = get_asset_path(filename)
data, sample_rate = load_wav(path)
result = T.Vad(sample_rate)(data)
self.assert_sox_effect(result, path, ['vad'])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment