Source code for nlpaug.augmenter.audio.shift

"""
    Augmenter that apply shifting operation to audio.
"""

from nlpaug.augmenter.audio import AudioAugmenter
import nlpaug.model.audio as nma
from nlpaug.util import Action, WarningMessage


[docs]class ShiftAug(AudioAugmenter): """ :param int sampling_rate: Sampling rate of input audio. :param float duration: Max shifting segment (in second) :param str direction: Shifting segment to left, right or one of them. Value can be 'left', 'right' or 'random' :param str name: Name of this augmenter >>> import nlpaug.augmenter.audio as naa >>> aug = naa.ShiftAug(sampling_rate=44010) """ def __init__(self, sampling_rate, duration=3, direction='random', shift_direction='random', name='Shift_Aug', verbose=0, stateless=True): super().__init__(action=Action.SUBSTITUTE, name=name, duration=duration, device='cpu', verbose=verbose, stateless=stateless) self.sampling_rate = sampling_rate self.direction = direction self.shift_direction = shift_direction self.model = nma.Shift() self.model.validate(shift_direction) def _get_aug_shift(self): aug_shift = int(self.sampling_rate * self.duration) if self.direction == 'right': return -aug_shift elif self.direction == 'random': direction = self.sample(4)-1 if direction == 1: return -aug_shift return aug_shift def substitute(self, data): aug_shift = self._get_aug_shift() if not self.stateless: self.aug_factor = aug_shift return self.model.manipulate(data, aug_shift)