class_docstr: Creates an audio component that can be used to upload/record audio (as an input) or display audio (as an output).
  Preprocessing: passes the uploaded audio as a {Tuple(int, numpy.array)} corresponding to (sample rate in Hz, audio data as a 16-bit int array whose values range from -32768 to 32767), or as a {str} filepath, depending on `type`.
  Postprocessing: expects a {Tuple(int, numpy.array)} corresponding to (sample rate in Hz, audio data as a float or int numpy array) or as a {str} or {pathlib.Path} filepath or URL to an audio file, or bytes for binary content (recommended for streaming). Note: When converting audio data from float format to WAV, the audio is normalized by its peak value to avoid distortion or clipping in the resulting audio.
  Examples-format: a {str} filepath to a local file that contains audio.
  Demos: main_note, generate_tone, reverse_audio
  Guides: real-time-speech-recognition
docstr: Parameters:
      value: audio data in either of the following formats: a tuple of (sample_rate, data), or a string filepath or URL to an audio file, or None.
  Returns:
      base64 url data
docstr_tok: ["Parameters",":","value",":","audio","data","in","either","of","the","following","formats",":","a","tuple","of","(","sample_rate",",","data",")",",","or","a","string","filepath","or","URL","to","an","audio","file",",","or","None",".","Returns",":","base64","url","data"]
code: def postprocess(
      self, value: tuple[int, np.ndarray] | str | Path | bytes | None
  ) -> FileData | bytes | None:
      """
      Parameters:
          value: audio data in either of the following formats: a tuple of (sample_rate, data), or a string filepath or URL to an audio file, or None.
      Returns:
          base64 url data
      """
      orig_name = None
      if value is None:
          return None
      if isinstance(value, bytes):
          if self.streaming:
              return value
          file_path = processing_utils.save_bytes_to_cache(
              value, "audio", cache_dir=self.GRADIO_CACHE
          )
          orig_name = Path(file_path).name
      elif isinstance(value, tuple):
          sample_rate, data = value
          file_path = processing_utils.save_audio_to_cache(
              data,
              sample_rate,
              format=self.format,
              cache_dir=self.GRADIO_CACHE,
          )
          orig_name = Path(file_path).name
      else:
          if not isinstance(value, (str, Path)):
              raise ValueError(f"Cannot process {value} as Audio")
          file_path = str(value)
          orig_name = (
              Path(file_path).name if Path(file_path).exists() else None
          )
      return FileData(path=file_path, orig_name=orig_name)
  
imports: from __future__ import annotations
  import dataclasses
  from pathlib import Path
  from typing import Any, Callable, Literal
  import httpx
  import numpy
  from gradio_client import utils
  from gradio_client.documentation import document, set_documentation_group
  from gradio import processing_utils, utils
  from gradio.components.base import Component, StreamingInput, StreamingOutput
  from gradio.data_classes import FileData
  from gradio.events import Events
  from gradio.exceptions import Error
label_desc: Use image node_id 4 for calling the Audio obj's underlying member method code with example usage: obj.postprocess(value) and returns: FileData, None, value