code: def download_esc50(data_path):
      """
      This function automatically downloads the ESC50 dataset to the specified data path in the data_path variable
  
      Arguments
      ---------
      data_path: str or Path
          Directory used to save the dataset.
      """
      if not os.path.exists(os.path.join(data_path, "meta")):
          print(
              f"ESC50 is missing. We are now downloading it. Be patient it's a 600M file. You can check {data_path}/temp_download to see the download progression"
          )
          temp_path = os.path.join(data_path, "temp_download")
  
          # download the data
          fetch(
              "master.zip",
              "https://github.com/karoldvl/ESC-50/archive/",
              savedir=temp_path,
          )
  
          # unpack the .zip file
          shutil.unpack_archive(
              os.path.join(temp_path, "master.zip"), data_path
          )
  
          # move the files up to the datapath
          files = os.listdir(os.path.join(data_path, "ESC-50-master"))
          for fl in files:
              shutil.move(
                  os.path.join(data_path, "ESC-50-master", fl),
                  data_path,
              )
  
          # remove the unused datapath
          shutil.rmtree(os.path.join(data_path, "temp_download"))
          shutil.rmtree(os.path.join(data_path, "ESC-50-master"))
  
          print(f"ESC50 is downloaded in {data_path}")
  
file_path: speechbrain/recipes/ESC50/esc50_prepare.py
imports: import os
  import shutil
  import json
  import logging
  import torchaudio
  from speechbrain.dataio.dataio import read_audio
  from speechbrain.dataio.dataio import load_data_csv
  from speechbrain.utils.fetching import fetch
label_desc: Use image node_id 1 for calling a global function with example usage: download_esc50(data_path) without return types