Audio Perturbators

Audio Perterbators All audio-specific perturbators derive from the BlackboxAudioPerturbator class. They take a numpy array (audio signal) and the sample rate as input and return a numpy array (perturbed audio signal).

AudioBackgroundWhiteNoisePerturbator

The AudioBackgroundWhiteNoisePerturbator adds white noise to the input signal.

The probability distribution passed to the class during instantiation is used to determine the amount of noise added to the signal.

Usage

from insynth.perturbators.audio import AudioBackgroundWhiteNoisePerturbator
import librosa
from scipy.stats import norm

perturbator = AudioBackgroundWhiteNoisePerturbator(noise_prob=norm, noise_prob_args={'loc': 0.2, 'scale': 0.2})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Background White Noise

AudioCompressionPerturbator

The AudioCompressionPerturbator adds compression artifacts to the input signal.

The probability distribution passed to the class during instantiation is used to determine the amount of compression artifacts added to the signal.

Usage

from insynth.perturbators.audio import AudioCompressionPerturbator
import librosa
from scipy.stats import norm

perturbator = AudioCompressionPerturbator(compression_prob=norm, compression_prob_args={'loc': 80, 'scale': 40})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Compression

AudioPitchPerturbator

The AudioPitchPerturbator changes the pitch of the input signal.

The probability distribution passed to the class during instantiation is used to determine how much the pitch is changed.

Usage

from insynth.perturbators.audio import AudioPitchPerturbator
import librosa
from scipy.stats import norm

perturbator = AudioPitchPerturbator(pitch_prob=norm, pitch_prob_args={'loc': 0, 'scale': 8})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Pitch

AudioClippingPerturbator

The AudioClippingPerturbator clips the input signal.

The probability distribution passed to the class during instantiation is used to determine how much the signal is clipped.

Usage

from insynth.perturbators.audio import AudioClippingPerturbator
import librosa
from scipy.stats import norm

perturbator = AudioClippingPerturbator(clipping_prob=norm, clipping_prob_args={'loc': 20, 'scale': 30})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Clipping

AudioVolumePerturbator

The AudioVolumePerturbator changes the volume of the input signal.

The probability distribution passed to the class during instantiation is used to determine how much the volume is changed.

Usage

from insynth.perturbators.audio import AudioVolumePerturbator
import librosa
from scipy.stats import norm

perturbator = AudioVolumePerturbator(volume_prob=norm, volume_prob_args={'loc': 0, 'scale': 10})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Volume

AudioEchoPerturbator

The AudioEchoPerturbator adds echo to the input signal.

The probability distribution passed to the class during instantiation is used to determine how large the delay of the added echo is.

Usage

from insynth.perturbators.audio import AudioEchoPerturbator
import librosa
from scipy.stats import norm

perturbator = AudioEchoPerturbator(echo_prob=norm, echo_prob_args={'loc': 0.3, 'scale': 0.1})
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Echo

AudioShortNoisePerturbator

The AudioShortNoisePerturbator adds short background noise to the input signal.

The noise_types parameter passed to the class during instantiation determines which noise types are added to the signal (chosen randomly). They are used as the directory names to search noise files from under data/audio/background_noise/.

Usage

from insynth.perturbators.audio import AudioShortNoisePerturbator
import librosa

perturbator = AudioShortNoisePerturbator()
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Short Noise

AudioBackgroundNoisePerturbator

The AudioBackgroundNoisePerturbator adds background noise to the input signal.

The noise_types parameter passed to the class during instantiation determines which noise types are added to the signal (chosen randomly). They are used as the directory names to search noise files from under data/audio/background_noise/.

Usage

from insynth.perturbators.audio import AudioBackgroundNoisePerturbator
import librosa

perturbator = AudioBackgroundNoisePerturbator()
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Background Noise

AudioImpulseResponsePerturbator

The AudioImpulseResponsePerturbator convolves the input signal with an impulse response.

The impulse_types parameter passed to the class during instantiation determines which impulse response types the signal is convolved with. They are used as the directory names to search noise files from under data/audio/pulse_response/.

Usage

from insynth.perturbators.audio import AudioImpulseResponsePerturbator
import librosa

perturbator = AudioImpulseResponsePerturbator()
audio, sample_rate = librosa.load('audio.wav')
perturbed_im = perturbator.apply((audio, sample_rate))

Result

Impulse Response