From 1c4e4e7d9ccd5e968590214cc66e43bc647d1482 Mon Sep 17 00:00:00 2001 From: YangZhou Date: Thu, 17 Nov 2022 17:45:25 +0800 Subject: [PATCH] fix test bug --- audio/tests/backends/__init__.py | 13 --- audio/tests/backends/soundfile/__init__.py | 13 --- audio/tests/backends/soundfile/common.py | 32 +++++++ audio/tests/backends/soundfile/info_test.py | 12 +-- audio/tests/backends/soundfile/load_test.py | 10 +-- audio/tests/backends/soundfile/save_test.py | 8 +- audio/tests/backends/sox_io/common.py | 89 +++++++++++++++++++ audio/tests/backends/sox_io/common_utils | 1 + audio/tests/backends/sox_io/info_test.py | 5 +- audio/tests/backends/sox_io/load_test.py | 2 +- audio/tests/backends/sox_io/save_test.py | 2 +- audio/tests/backends/sox_io/smoke_test.py | 2 +- .../tests/backends/sox_io/sox_effect_test.py | 2 +- .../sox_io/sox_effect_test_args.jsonl | 77 ++++++++++++++++ audio/tests/common_utils/__init__.py | 25 ++++-- 15 files changed, 236 insertions(+), 57 deletions(-) delete mode 100644 audio/tests/backends/__init__.py delete mode 100644 audio/tests/backends/soundfile/__init__.py create mode 100644 audio/tests/backends/sox_io/common.py create mode 120000 audio/tests/backends/sox_io/common_utils create mode 100644 audio/tests/backends/sox_io/sox_effect_test_args.jsonl diff --git a/audio/tests/backends/__init__.py b/audio/tests/backends/__init__.py deleted file mode 100644 index 97043fd7b..000000000 --- a/audio/tests/backends/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/audio/tests/backends/soundfile/__init__.py b/audio/tests/backends/soundfile/__init__.py deleted file mode 100644 index 97043fd7b..000000000 --- a/audio/tests/backends/soundfile/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/audio/tests/backends/soundfile/common.py b/audio/tests/backends/soundfile/common.py index 1aaed913e..eecead97f 100644 --- a/audio/tests/backends/soundfile/common.py +++ b/audio/tests/backends/soundfile/common.py @@ -55,3 +55,35 @@ def fetch_wav_subtype(dtype, encoding, bits_per_sample): if subtype: return subtype raise ValueError(f"wav does not support ({encoding}, {bits_per_sample}).") + +def get_encoding(ext, dtype): + exts = { + "mp3", + "flac", + "vorbis", + } + encodings = { + "float32": "PCM_F", + "int32": "PCM_S", + "int16": "PCM_S", + "uint8": "PCM_U", + } + return ext.upper() if ext in exts else encodings[dtype] + + +def get_bit_depth(dtype): + bit_depths = { + "float32": 32, + "int32": 32, + "int16": 16, + "uint8": 8, + } + return bit_depths[dtype] + +def get_bits_per_sample(ext, dtype): + bits_per_samples = { + "flac": 24, + "mp3": 0, + "vorbis": 0, + } + return bits_per_samples.get(ext, get_bit_depth(dtype)) diff --git a/audio/tests/backends/soundfile/info_test.py b/audio/tests/backends/soundfile/info_test.py index ffaccebb1..661965d41 100644 --- a/audio/tests/backends/soundfile/info_test.py +++ b/audio/tests/backends/soundfile/info_test.py @@ -10,12 +10,12 @@ from common import parameterize from common import skipIfFormatNotSupported from paddleaudio.backends import soundfile_backend -from tests.backends.common import get_bits_per_sample -from tests.backends.common import get_encoding -from tests.common_utils import get_wav_data -from tests.common_utils import nested_params -from tests.common_utils import save_wav -from tests.common_utils import TempDirMixin +from common import get_bits_per_sample +from common import get_encoding +from common_utils import get_wav_data +from common_utils import nested_params +from common_utils import save_wav +from common_utils import TempDirMixin class TestInfo(TempDirMixin, unittest.TestCase): diff --git a/audio/tests/backends/soundfile/load_test.py b/audio/tests/backends/soundfile/load_test.py index db2f28458..c67e04f40 100644 --- a/audio/tests/backends/soundfile/load_test.py +++ b/audio/tests/backends/soundfile/load_test.py @@ -13,11 +13,11 @@ from common import skipIfFormatNotSupported from paddleaudio.backends import soundfile_backend from parameterized import parameterized -from tests.common_utils import get_wav_data -from tests.common_utils import load_wav -from tests.common_utils import normalize_wav -from tests.common_utils import save_wav -from tests.common_utils import TempDirMixin +from common_utils import get_wav_data +from common_utils import load_wav +from common_utils import normalize_wav +from common_utils import save_wav +from common_utils import TempDirMixin def _get_mock_path( diff --git a/audio/tests/backends/soundfile/save_test.py b/audio/tests/backends/soundfile/save_test.py index 50c21a673..78aca01ea 100644 --- a/audio/tests/backends/soundfile/save_test.py +++ b/audio/tests/backends/soundfile/save_test.py @@ -10,10 +10,10 @@ from common import parameterize from common import skipIfFormatNotSupported from paddleaudio.backends import soundfile_backend -from tests.common_utils import get_wav_data -from tests.common_utils import load_wav -from tests.common_utils import nested_params -from tests.common_utils import TempDirMixin +from common_utils import get_wav_data +from common_utils import load_wav +from common_utils import nested_params +from common_utils import TempDirMixin class MockedSaveTest(unittest.TestCase): diff --git a/audio/tests/backends/sox_io/common.py b/audio/tests/backends/sox_io/common.py new file mode 100644 index 000000000..eecead97f --- /dev/null +++ b/audio/tests/backends/sox_io/common.py @@ -0,0 +1,89 @@ +import itertools +from unittest import skipIf + +from paddleaudio._internal.module_utils import is_module_available +from parameterized import parameterized + + +def name_func(func, _, params): + return f'{func.__name__}_{"_".join(str(arg) for arg in params.args)}' + + +def dtype2subtype(dtype): + return { + "float64": "DOUBLE", + "float32": "FLOAT", + "int32": "PCM_32", + "int16": "PCM_16", + "uint8": "PCM_U8", + "int8": "PCM_S8", + }[dtype] + + +def skipIfFormatNotSupported(fmt): + fmts = [] + if is_module_available("soundfile"): + import soundfile + + fmts = soundfile.available_formats() + return skipIf(fmt not in fmts, f'"{fmt}" is not supported by soundfile') + return skipIf(True, '"soundfile" not available.') + + +def parameterize(*params): + return parameterized.expand( + list(itertools.product(*params)), name_func=name_func) + + +def fetch_wav_subtype(dtype, encoding, bits_per_sample): + subtype = { + (None, None): dtype2subtype(dtype), + (None, 8): "PCM_U8", + ("PCM_U", None): "PCM_U8", + ("PCM_U", 8): "PCM_U8", + ("PCM_S", None): "PCM_32", + ("PCM_S", 16): "PCM_16", + ("PCM_S", 32): "PCM_32", + ("PCM_F", None): "FLOAT", + ("PCM_F", 32): "FLOAT", + ("PCM_F", 64): "DOUBLE", + ("ULAW", None): "ULAW", + ("ULAW", 8): "ULAW", + ("ALAW", None): "ALAW", + ("ALAW", 8): "ALAW", + }.get((encoding, bits_per_sample)) + if subtype: + return subtype + raise ValueError(f"wav does not support ({encoding}, {bits_per_sample}).") + +def get_encoding(ext, dtype): + exts = { + "mp3", + "flac", + "vorbis", + } + encodings = { + "float32": "PCM_F", + "int32": "PCM_S", + "int16": "PCM_S", + "uint8": "PCM_U", + } + return ext.upper() if ext in exts else encodings[dtype] + + +def get_bit_depth(dtype): + bit_depths = { + "float32": 32, + "int32": 32, + "int16": 16, + "uint8": 8, + } + return bit_depths[dtype] + +def get_bits_per_sample(ext, dtype): + bits_per_samples = { + "flac": 24, + "mp3": 0, + "vorbis": 0, + } + return bits_per_samples.get(ext, get_bit_depth(dtype)) diff --git a/audio/tests/backends/sox_io/common_utils b/audio/tests/backends/sox_io/common_utils new file mode 120000 index 000000000..3ff3cef8c --- /dev/null +++ b/audio/tests/backends/sox_io/common_utils @@ -0,0 +1 @@ +../../common_utils \ No newline at end of file diff --git a/audio/tests/backends/sox_io/info_test.py b/audio/tests/backends/sox_io/info_test.py index 4648aa3fb..b016987a6 100644 --- a/audio/tests/backends/sox_io/info_test.py +++ b/audio/tests/backends/sox_io/info_test.py @@ -9,16 +9,15 @@ import os import io from parameterized import parameterized -from tests.unit.audio.backends.common import get_bits_per_sample, get_encoding +from common import get_bits_per_sample, get_encoding from paddleaudio.backends import sox_io_backend -from tests.unit.common_utils import ( +from common_utils import ( get_wav_data, load_wav, save_wav, TempDirMixin, sox_utils, - data_utils ) #code is from:https://github.com/pytorch/audio/blob/main/torchaudio/test/torchaudio_unittest/backend/sox_io/info_test.py diff --git a/audio/tests/backends/sox_io/load_test.py b/audio/tests/backends/sox_io/load_test.py index 475dbcfcc..dc3d1efdd 100644 --- a/audio/tests/backends/sox_io/load_test.py +++ b/audio/tests/backends/sox_io/load_test.py @@ -6,7 +6,7 @@ import numpy as np from paddleaudio._internal import module_utils as _mod_utils from paddleaudio.backends import sox_io_backend -from tests.unit.common_utils import ( +from common_utils import ( get_wav_data, load_wav, save_wav, diff --git a/audio/tests/backends/sox_io/save_test.py b/audio/tests/backends/sox_io/save_test.py index 8fc7657d5..459ec7833 100644 --- a/audio/tests/backends/sox_io/save_test.py +++ b/audio/tests/backends/sox_io/save_test.py @@ -7,7 +7,7 @@ import paddle from parameterized import parameterized from paddleaudio.backends import sox_io_backend -from tests.unit.common_utils import ( +from common_utils import ( get_wav_data, load_wav, save_wav, diff --git a/audio/tests/backends/sox_io/smoke_test.py b/audio/tests/backends/sox_io/smoke_test.py index 27fc5a820..3cc0f5493 100644 --- a/audio/tests/backends/sox_io/smoke_test.py +++ b/audio/tests/backends/sox_io/smoke_test.py @@ -4,7 +4,7 @@ import unittest from parameterized import parameterized from paddleaudio.backends import sox_io_backend -from tests.unit.common_utils import ( +from common_utils import ( get_wav_data, TempDirMixin, name_func diff --git a/audio/tests/backends/sox_io/sox_effect_test.py b/audio/tests/backends/sox_io/sox_effect_test.py index a07d6e97d..f7a3ecbf6 100644 --- a/audio/tests/backends/sox_io/sox_effect_test.py +++ b/audio/tests/backends/sox_io/sox_effect_test.py @@ -9,7 +9,7 @@ import numpy as np from parameterized import parameterized from paddleaudio import sox_effects from paddleaudio._internal import module_utils as _mod_utils -from tests.unit.common_utils import ( +from common_utils import ( get_sinusoid, get_wav_data, load_wav, diff --git a/audio/tests/backends/sox_io/sox_effect_test_args.jsonl b/audio/tests/backends/sox_io/sox_effect_test_args.jsonl new file mode 100644 index 000000000..c1b5d19b5 --- /dev/null +++ b/audio/tests/backends/sox_io/sox_effect_test_args.jsonl @@ -0,0 +1,77 @@ +{"effects": [["allpass", "300", "10"]]} +{"effects": [["band", "300", "10"]]} +{"effects": [["bandpass", "300", "10"]]} +{"effects": [["bandreject", "300", "10"]]} +{"effects": [["bass", "-10"]]} +{"effects": [["biquad", "0.4", "0.2", "0.9", "0.7", "0.2", "0.6"]]} +{"effects": [["chorus", "0.7", "0.9", "55", "0.4", "0.25", "2", "-t"]]} +{"effects": [["chorus", "0.6", "0.9", "50", "0.4", "0.25", "2", "-t", "60", "0.32", "0.4", "1.3", "-s"]]} +{"effects": [["chorus", "0.5", "0.9", "50", "0.4", "0.25", "2", "-t", "60", "0.32", "0.4", "2.3", "-t", "40", "0.3", "0.3", "1.3", "-s"]]} +{"effects": [["channels", "1"]]} +{"effects": [["channels", "2"]]} +{"effects": [["channels", "3"]]} +{"effects": [["compand", "0.3,1", "6:-70,-60,-20", "-5", "-90", "0.2"]]} +{"effects": [["compand", ".1,.2", "-inf,-50.1,-inf,-50,-50", "0", "-90", ".1"]]} +{"effects": [["compand", ".1,.1", "-45.1,-45,-inf,0,-inf", "45", "-90", ".1"]]} +{"effects": [["contrast", "0"]]} +{"effects": [["contrast", "25"]]} +{"effects": [["contrast", "50"]]} +{"effects": [["contrast", "75"]]} +{"effects": [["contrast", "100"]]} +{"effects": [["dcshift", "1.0"]]} +{"effects": [["dcshift", "-1.0"]]} +{"effects": [["deemph"]], "input_sample_rate": 44100} +{"effects": [["dither", "-s"]]} +{"effects": [["dither", "-S"]]} +{"effects": [["divide"]]} +{"effects": [["downsample", "2"]], "input_sample_rate": 8000, "output_sample_rate": 4000} +{"effects": [["earwax"]], "input_sample_rate": 44100} +{"effects": [["echo", "0.8", "0.88", "60", "0.4"]]} +{"effects": [["echo", "0.8", "0.88", "6", "0.4"]]} +{"effects": [["echo", "0.8", "0.9", "1000", "0.3"]]} +{"effects": [["echo", "0.8", "0.9", "1000", "0.3", "1800", "0.25"]]} +{"effects": [["echos", "0.8", "0.7", "700", "0.25", "700", "0.3"]]} +{"effects": [["echos", "0.8", "0.7", "700", "0.25", "900", "0.3"]]} +{"effects": [["echos", "0.8", "0.7", "40", "0.25", "63", "0.3"]]} +{"effects": [["equalizer", "300", "10", "5"]]} +{"effects": [["fade", "q", "3"]]} +{"effects": [["fade", "h", "3"]]} +{"effects": [["fade", "t", "3"]]} +{"effects": [["fade", "l", "3"]]} +{"effects": [["fade", "p", "3"]]} +{"effects": [["fir", "0.0195", "-0.082", "0.234", "0.891", "-0.145", "0.043"]]} +{"effects": [["flanger"]]} +{"effects": [["gain", "-l", "-6"]]} +{"effects": [["highpass", "-1", "300"]]} +{"effects": [["highpass", "-2", "300"]]} +{"effects": [["hilbert"]]} +{"effects": [["loudness"]]} +{"effects": [["lowpass", "-1", "300"]]} +{"effects": [["lowpass", "-2", "300"]]} +{"effects": [["mcompand", "0.005,0.1 -47,-40,-34,-34,-17,-33", "100", "0.003,0.05 -47,-40,-34,-34,-17,-33", "400", "0.000625,0.0125 -47,-40,-34,-34,-15,-33", "1600", "0.0001,0.025 -47,-40,-34,-34,-31,-31,-0,-30", "6400", "0,0.025 -38,-31,-28,-28,-0,-25"]], "input_sample_rate": 44100} +{"effects": [["oops"]]} +{"effects": [["overdrive"]]} +{"effects": [["pad"]]} +{"effects": [["phaser"]]} +{"effects": [["remix", "6", "7", "8", "0"]], "num_channels": 8} +{"effects": [["remix", "1-3,7", "3"]], "num_channels": 8} +{"effects": [["repeat"]]} +{"effects": [["reverb"]]} +{"effects": [["reverse"]]} +{"effects": [["riaa"]], "input_sample_rate": 44100} +{"effects": [["silence", "0"]]} +{"effects": [["speed", "1.3"]], "input_sample_rate": 4000, "output_sample_rate": 5200} +{"effects": [["speed", "0.7"]], "input_sample_rate": 4000, "output_sample_rate": 2800} +{"effects": [["stat"]]} +{"effects": [["stats"]]} +{"effects": [["stretch"]]} +{"effects": [["swap"]]} +{"effects": [["synth"]]} +{"effects": [["tempo", "0.9"]]} +{"effects": [["tempo", "1.1"]]} +{"effects": [["treble", "3"]]} +{"effects": [["tremolo", "300", "40"]]} +{"effects": [["tremolo", "300", "50"]]} +{"effects": [["trim", "0", "0.1"]]} +{"effects": [["upsample", "2"]], "input_sample_rate": 8000, "output_sample_rate": 16000} +{"effects": [["vol", "3"]]} diff --git a/audio/tests/common_utils/__init__.py b/audio/tests/common_utils/__init__.py index efa206a89..7bc718f38 100644 --- a/audio/tests/common_utils/__init__.py +++ b/audio/tests/common_utils/__init__.py @@ -1,12 +1,19 @@ -from .case_utils import name_func -from .case_utils import TempDirMixin -from .parameterized_utils import nested_params -from .wav_utils import get_wav_data -from .wav_utils import load_wav -from .wav_utils import normalize_wav -from .wav_utils import save_wav +from .wav_utils import get_wav_data, load_wav, save_wav, normalize_wav +from .parameterized_utils import nested_params +from .data_utils import get_sinusoid, load_params, load_effects_params +from .case_utils import ( + TempDirMixin, + name_func +) __all__ = [ - "get_wav_data", "load_wav", "save_wav", "normalize_wav", "get_sinusoid", - "name_func", "nested_params", "TempDirMixin" + "get_wav_data", + "load_wav", + "save_wav", + "normalize_wav", + "load_params", + "nested_params", + "get_sinusoid", + "name_func", + "load_effects_params" ]