Exemplo n.º 1
0
        def _test_both_ways():
            _seed()
            n_quantize = 256
            encoding_layer = MuLawEncoding(n_quantize)
            decoding_layer = MuLawDecoding(n_quantize)

            x_mu = torch.randint(low=0, high=n_quantize - 1, size=(1, 1024))
            assert _all_equal(x_mu, encoding_layer(decoding_layer(x_mu)))
Exemplo n.º 2
0
        def _test_mu_encoding():
            _seed()
            n_quantize = 256
            encoding_layer = MuLawEncoding(n_quantize)

            waveform = 2 * (torch.rand(1, 1024) - 0.5)  # in [-1, 1)
            # manual computation
            mu = torch.tensor(n_quantize - 1, dtype=waveform.dtype, requires_grad=False)
            waveform_mu = waveform.sign() * torch.log1p(mu * waveform.abs()) / torch.log1p(mu)
            waveform_mu = ((waveform_mu + 1) / 2 * mu + 0.5).long()

            assert _all_equal(encoding_layer(waveform),
                              waveform_mu)