code: def make_train_loader(
      manifest_file,
      manifest_root,
      backend_obj,
      noise_file=None,
      random_seed=0,
  ):
      aeon_config = common_config(
          manifest_file, manifest_root, backend_obj.bsz
      )
      aeon_config["shuffle_manifest"] = True
      aeon_config["shuffle_enable"] = True
      aeon_config["random_seed"] = random_seed
  
      if noise_file is not None:
          aeon_config["augmentation"] = []
          aeon_config["augmentation"].append(dict())
          aeon_config["augmentation"][0]["type"] = "audio"
          aeon_config["augmentation"][0][
              "noise_index_file"
          ] = noise_file
          aeon_config["augmentation"][0][
              "noise_root"
          ] = os.path.dirname(noise_file)
          aeon_config["augmentation"][0]["add_noise_probability"] = 0.5
          aeon_config["augmentation"][0]["noise_level"] = (0.0, 0.5)
  
      return wrap_dataloader(AeonDataLoader(aeon_config))
  
file_path: neon/examples/whale_calls/data.py
imports: import os
  import numpy
  from zipfile import ZipFile
  from glob import glob
  from neon.util.persist import get_data_cache_or_nothing
  from neon.data.aeon_shim import AeonDataLoader
  from neon.data.dataloader_transformers import OneHot, TypeCast
label_desc: Use image node_id 5 for calling a global function with example usage: make_train_loader(manifest_file, manifest_root, backend_obj, noise_file, random_seed) and returns: wrap_dataloader