Example #1
0
 def test_synth(self):
     si_in, ei_in = torchaudio.info(self.test_filepath)
     len_in_seconds = si_in.length / si_in.channels / si_in.rate
     ei_in.encoding = torchaudio.get_sox_encoding_t(1)
     E = torchaudio.sox_effects.SoxEffectsChain(out_encinfo=ei_in, out_siginfo=si_in)
     E.set_input_file(self.test_filepath)
     E.append_effect_to_chain("synth", [str(len_in_seconds), "pinknoise", "mix"])
     E.append_effect_to_chain("rate", [44100])
     E.append_effect_to_chain("channels", [2])
     x, sr = E.sox_build_flow_effects()
     self.assertEqual(x.size(0), si_in.channels)
     self.assertEqual(si_in.length, x.size(0) * x.size(1))
Example #2
0
 def test_band_chorus(self):
     si_in, ei_in = torchaudio.info(self.test_filepath)
     ei_in.encoding = torchaudio.get_sox_encoding_t(1)
     E = torchaudio.sox_effects.SoxEffectsChain(out_encinfo=ei_in, out_siginfo=si_in)
     E.set_input_file(self.test_filepath)
     E.append_effect_to_chain("band", ["-n", "10k", "3.5k"])
     E.append_effect_to_chain("chorus", [.5, .7, 55, 0.4, .25, 2, '-s'])
     E.append_effect_to_chain("rate", [si_in.rate])
     E.append_effect_to_chain("channels", [si_in.channels])
     x, sr = E.sox_build_flow_effects()
     # The chorus effect will make the output file longer than the input
     self.assertEqual(x.size(0), si_in.channels)
     self.assertGreaterEqual(x.size(1) * x.size(0), si_in.length)
Example #3
0
 def test_ulaw_and_siginfo(self):
     si_out = torchaudio.sox_signalinfo_t()
     ei_out = torchaudio.sox_encodinginfo_t()
     si_out.precision = 8
     ei_out.encoding = torchaudio.get_sox_encoding_t(9)
     ei_out.bits_per_sample = 8
     si_in, ei_in = torchaudio.info(self.test_filepath)
     si_out.rate = 44100
     si_out.channels = 2
     E = torchaudio.sox_effects.SoxEffectsChain(out_siginfo=si_out, out_encinfo=ei_out)
     E.set_input_file(self.test_filepath)
     x, sr = E.sox_build_flow_effects()
     # Note: the output was encoded into ulaw because the
     #       number of unique values in the output is less than 256.
     self.assertLess(x.unique().size(0), 2**8 + 1)
     self.assertEqual(x.numel(), si_in.length)