class_docstr: Class that processes an example from Audio collection and returns
  a dictionary with prepared signals.
  
  For example, the output dictionary may be the following
  ```
  {
      'input_signal': input_signal_tensor,
      'target_signal': target_signal_tensor,
      'reference_signal': reference_signal_tensor,
      'embedding_vector': embedding_vector
  }
  ```
  Keys in the output dictionary are ordered with synchronous signals given first,
  followed by asynchronous signals and embedding.
  
  Args:
      sample_rate: sample rate used for all audio signals
      random_offset: If `True`, offset will be randomized when loading a subsegment
                     from a file.
class_docstr_tok: ["Class","that","processes","an","example","from","Audio","collection","and","returns","a","dictionary","with","prepared","signals",".","For","example",",","the","output","dictionary","may","be","the","following","``","`","{","'input_signal","'",":","input_signal_tensor",",","'target_signal","'",":","target_signal_tensor",",","'reference_signal","'",":","reference_signal_tensor",",","'embedding_vector","'",":","embedding_vector","}","``","`","Keys","in","the","output","dictionary","are","ordered","with","synchronous","signals","given","first",",","followed","by","asynchronous","signals","and","embedding",".","Args",":","sample_rate",":","sample","rate","used","for","all","audio","signals","random_offset",":","If","`","True","`",",","offset","will","be","randomized","when","loading","a","subsegment","from","a","file","."]
docstr: Given an example, load audio from `example.audio_files` and prepare
  the output dictionary.
  
  Args:
      example: An example from an audio collection
  
  Returns:
      An ordered dictionary of signals and their tensors.
      For example, the output dictionary may be the following
      ```
      {
          'input_signal': input_signal_tensor,
          'target_signal': target_signal_tensor,
          'reference_signal': reference_signal_tensor,
          'embedding_vector': embedding_vector
      }
      ```
      Keys in the output dictionary are ordered with synchronous signals given first,
      followed by asynchronous signals and embedding.
code: def load_audio(
      self, example: collections.Audio.OUTPUT_TYPE
  ) -> Dict[str, torch.Tensor]:
      """Given an example, load audio from `example.audio_files` and prepare
      the output dictionary.
  
      Args:
          example: An example from an audio collection
  
      Returns:
          An ordered dictionary of signals and their tensors.
          For example, the output dictionary may be the following
          ```
          {
              'input_signal': input_signal_tensor,
              'target_signal': target_signal_tensor,
              'reference_signal': reference_signal_tensor,
              'embedding_vector': embedding_vector
          }
          ```
          Keys in the output dictionary are ordered with synchronous signals given first,
          followed by asynchronous signals and embedding.
      """
      output = OrderedDict()
  
      if self.sync_setup is not None:
          # Load all signals with the same start and duration
          sync_signals = self.load_sync_signals(example)
          output.update(sync_signals)
  
      if self.async_setup is not None:
          # Load each signal independently
          async_signals = self.load_async_signals(example)
          output.update(async_signals)
  
      # Load embedding vector
      if self.embedding_setup is not None:
          embedding = self.load_embedding(example)
          output.update(embedding)
  
      if not output:
          raise RuntimeError(
              "Output dictionary is empty. Please use `_setup` methods to setup signals to be loaded"
          )
  
      return output
  
imports: import abc
  import math
  import random
  from collections import OrderedDict, namedtuple
  from dataclasses import dataclass
  from typing import Callable, Dict, List, Optional, Tuple, Type, Union
  import librosa
  import numpy
  import torch
  from nemo.collections.asr.parts.preprocessing.segment import AudioSegment
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.collections.common.parts.preprocessing import collections
  from nemo.collections.common.parts.utils import flatten
  from nemo.core.classes import Dataset
  from nemo.core.neural_types import AudioSignal, EncodedRepresentation, LengthsType, NeuralType
  from nemo.utils import logging
label_desc: Use image node_id 13 for calling the ASRAudioProcessor obj's underlying member method code with example usage: obj.load_audio(example) and returns: output