"""Contains the abstract base class for augmentation models.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from abc import ABCMeta, abstractmethod class AugmentorBase(object): """Abstract base class for augmentation model (augmentor) class. All augmentor classes should inherit from this class, and implement the following abstract methods. """ __metaclass__ = ABCMeta @abstractmethod def __init__(self): pass @abstractmethod def transform_audio(self, audio_segment): """Adds various effects to the input audio segment. Such effects will augment the training data to make the model invariant to certain types of perturbations in the real world, improving model's generalization ability. Note that this is an in-place transformation. :param audio_segment: Audio segment to add effects to. :type audio_segment: AudioSegmenet|SpeechSegment """ pass