class_docstr: Implementation of SpecAug.
  
  Reference:
      Daniel S. Park et al.
      "SpecAugment: A Simple Data
       Augmentation Method for Automatic Speech Recognition"
  
  .. warning::
      When using cuda mode, time_warp doesn't have reproducibility
      due to `torch.nn.functional.interpolate`.
code: def forward(self, x, x_lengths=None):
      if self.time_warp is not None:
          x, x_lengths = self.time_warp(x, x_lengths)
      if self.freq_mask is not None:
          x, x_lengths = self.freq_mask(x, x_lengths)
      if self.time_mask is not None:
          x, x_lengths = self.time_mask(x, x_lengths)
      return x, x_lengths
  
imports: from typing import Optional, Sequence, Union
  from espnet2.asr.specaug.abs_specaug import AbsSpecAug
  from espnet2.layers.mask_along_axis import MaskAlongAxis, MaskAlongAxisVariableMaxWidth
  from espnet2.layers.time_warp import TimeWarp
label_desc: Use image node_id 2 for calling the SpecAug obj's underlying member method code with example usage: obj.forward(x, x_lengths) and returns: x,  x_lengths