def test_mu_law_companding(self): sig = self.sig.clone() quantization_channels = 256 sig = self.sig.numpy() sig = sig / np.abs(sig).max() self.assertTrue(sig.min() >= -1. and sig.max() <= 1.) sig_mu = transforms.MuLawEncoding(quantization_channels)(sig) self.assertTrue(sig_mu.min() >= 0. and sig.max() <= quantization_channels) sig_exp = transforms.MuLawExpanding(quantization_channels)(sig_mu) self.assertTrue(sig_exp.min() >= -1. and sig_exp.max() <= 1.) #diff = sig - sig_exp #mse = np.linalg.norm(diff) / diff.shape[0] #self.assertTrue(mse, np.isclose(mse, 0., atol=1e-4)) # not always true sig = self.sig.clone() sig = sig / torch.abs(sig).max() self.assertTrue(sig.min() >= -1. and sig.max() <= 1.) sig_mu = transforms.MuLawEncoding(quantization_channels)(sig) self.assertTrue(sig_mu.min() >= 0. and sig.max() <= quantization_channels) sig_exp = transforms.MuLawExpanding(quantization_channels)(sig_mu) self.assertTrue(sig_exp.min() >= -1. and sig_exp.max() <= 1.)
def test_mu_law_companding(self): sig = self.sig.clone() quantization_channels = 256 sig = self.sig.numpy() sig = sig / np.abs(sig).max() self.assertTrue(sig.min() >= -1. and sig.max() <= 1.) sig_mu = transforms.MuLawEncoding(quantization_channels)(sig) self.assertTrue(sig_mu.min() >= 0. and sig.max() <= quantization_channels) sig_exp = transforms.MuLawExpanding(quantization_channels)(sig_mu) self.assertTrue(sig_exp.min() >= -1. and sig_exp.max() <= 1.) sig = self.sig.clone() sig = sig / torch.abs(sig).max() self.assertTrue(sig.min() >= -1. and sig.max() <= 1.) sig_mu = transforms.MuLawEncoding(quantization_channels)(sig) self.assertTrue(sig_mu.min() >= 0. and sig.max() <= quantization_channels) sig_exp = transforms.MuLawExpanding(quantization_channels)(sig_mu) self.assertTrue(sig_exp.min() >= -1. and sig_exp.max() <= 1.) repr_test = transforms.MuLawEncoding(quantization_channels) repr_test.__repr__() repr_test = transforms.MuLawExpanding(quantization_channels) repr_test.__repr__()
targets = targets[:x[-1].astype(int)] inputs = inputs[:len(inputs) // seq_M * seq_M] targets = targets[:len(targets) // seq_M * seq_M] h = f(np.arange(1, len(inputs) + 1)) train_wav.append(inputs) train_features.append(h) train_targets.append(targets) train_wav = np.concatenate(train_wav) train_features = np.vstack(train_features) train_targets = np.concatenate(train_targets) enc = transforms.MuLawEncoding(channels) dec = transforms.MuLawExpanding(channels) train_wav = enc(train_wav) train_targets = enc(train_targets) scaler = StandardScaler() train_features = scaler.fit_transform(train_features) train_wav = train_wav.reshape(-1, seq_M) train_features = np.rollaxis( train_features.reshape(-1, seq_M, features_size), 2, 1) train_targets = train_targets.reshape(-1, seq_M) train_wav = torch.from_numpy(train_wav).long() train_features = torch.from_numpy(train_features).float() train_targets = torch.from_numpy(train_targets).long()