class_docstr: Sound audio dataset: Audio dataset with environmental sound-specific metadata.
  
  Args:
      info_fields_required (bool): Whether all the mandatory metadata fields should be in the loaded metadata.
      external_metadata_source (tp.Optional[str]): Folder containing JSON metadata for the corresponding dataset.
          The metadata files contained in this folder are expected to match the stem of the audio file with
          a json extension.
      aug_p (float): Probability of performing audio mixing augmentation on the batch.
      mix_p (float): Proportion of batch items that are mixed together when applying audio mixing augmentation.
      mix_snr_low (int): Lowerbound for SNR value sampled for mixing augmentation.
      mix_snr_high (int): Upperbound for SNR value sampled for mixing augmentation.
      mix_min_overlap (float): Minimum overlap between audio files when performing mixing augmentation.
      kwargs: Additional arguments for AudioDataset.
  
  See `audiocraft.data.info_audio_dataset.InfoAudioDataset` for full initialization arguments.
code: def collater(self, samples):
      # when training, audio mixing is performed in the collate function
      wav, sound_info = super().collater(
          samples
      )  # SoundDataset always returns infos
      if self.aug_p > 0:
          wav, sound_info = mix_samples(
              wav,
              sound_info,
              self.aug_p,
              self.mix_p,
              snr_low=self.mix_snr_low,
              snr_high=self.mix_snr_high,
              min_overlap=self.mix_min_overlap,
          )
      return wav, sound_info
  
imports: from dataclasses import dataclass, fields, replace
  import json
  from pathlib import Path
  import random
  import typing
  import numpy
  import torch
  from .info_audio_dataset import InfoAudioDataset, get_keyword_or_keyword_list
  from ..modules.conditioners import ConditioningAttributes, SegmentWithAttributes, WavCondition
label_desc: Use image node_id 4 for calling the SoundDataset obj's underlying member method code with example usage: obj.collater(samples) and returns: wav,  sound_info