Ejemplo n.º 1
0
 def _test_linearity_of_istft(self, data_size, kwargs, atol=1e-6, rtol=1e-8):
     for i in range(self.number_of_trials):
         tensor1 = common_utils.random_float_tensor(i, data_size)
         tensor2 = common_utils.random_float_tensor(i * 2, data_size)
         a, b = torch.rand(2)
         istft1 = torchaudio.functional.istft(tensor1, **kwargs)
         istft2 = torchaudio.functional.istft(tensor2, **kwargs)
         istft = a * istft1 + b * istft2
         estimate = torchaudio.functional.istft(a * tensor1 + b * tensor2, **kwargs)
         self._compare_estimate(istft, estimate, atol, rtol)
Ejemplo n.º 2
0
    def _test_istft_is_inverse_of_stft(self, kwargs):
        # generates a random sound signal for each tril and then does the stft/istft
        # operation to check whether we can reconstruct signal
        for data_size in self.data_sizes:
            for i in range(self.number_of_trials):

                # Non-batch
                sound = common_utils.random_float_tensor(i, data_size)

                stft = torch.stft(sound, **kwargs)
                estimate = torchaudio.functional.istft(stft,
                                                       length=sound.size(1),
                                                       **kwargs)

                self._compare_estimate(sound, estimate)

                # Batch
                stft = torch.stft(sound, **kwargs)
                stft = stft.repeat(3, 1, 1, 1, 1)
                sound = sound.repeat(3, 1, 1)

                estimate = torchaudio.functional.istft(stft,
                                                       length=sound.size(1),
                                                       **kwargs)
                self._compare_estimate(sound, estimate)
Ejemplo n.º 3
0
def _test_istft_is_inverse_of_stft(kwargs):
    # generates a random sound signal for each tril and then does the stft/istft
    # operation to check whether we can reconstruct signal
    for data_size in [(2, 20), (3, 15), (4, 10)]:
        for i in range(100):

            sound = common_utils.random_float_tensor(i, data_size)

            stft = torch.stft(sound, **kwargs)
            estimate = torchaudio.functional.istft(stft, length=sound.size(1), **kwargs)

            _compare_estimate(sound, estimate)