code: def download_an4(
      data_dir: str = "./",
      train_mount_dir: Optional[str] = None,
      test_mount_dir: Optional[str] = None,
  ):
      """
      Function to download the AN4 dataset. This hides pre-processing boilerplate for notebook ASR examples.
  
      Args:
          data_dir: Path to store the data.
          train_mount_dir: If you plan to mount the dataset, use this to prepend the mount directory to the
              audio filepath in the train manifest.
          test_mount_dir: If you plan to mount the dataset, use this to prepend the mount directory to the
              audio filepath in the test manifest.
      """
      print("******")
      os.makedirs(data_dir, exist_ok=True)
      if not os.path.exists(data_dir + "/an4_sphere.tar.gz"):
          an4_url = "https://dldata-public.s3.us-east-2.amazonaws.com/an4_sphere.tar.gz"
          an4_path = wget.download(an4_url, data_dir)
          print(f"Dataset downloaded at: {an4_path}")
      else:
          print("Tarfile already exists.")
          an4_path = data_dir + "/an4_sphere.tar.gz"
  
      if not os.path.exists(data_dir + "/an4/"):
          tar = tarfile.open(an4_path)
          tar.extractall(path=data_dir)
  
          print("Converting .sph to .wav...")
          sph_list = glob.glob(
              data_dir + "/an4/**/*.sph", recursive=True
          )
          for sph_path in sph_list:
              wav_path = sph_path[:-4] + ".wav"
              cmd = ["sox", sph_path, wav_path]
              subprocess.run(cmd)
      print("Finished conversion.\n******")
  
      # Building Manifests
      print("******")
      train_transcripts = data_dir + "/an4/etc/an4_train.transcription"
      train_manifest = data_dir + "/an4/train_manifest.json"
  
      if not os.path.isfile(train_manifest):
          build_manifest(
              train_transcripts,
              train_manifest,
              data_dir,
              train_mount_dir,
              "an4/wav/an4_clstk",
          )
          print("Training manifest created.")
  
      test_transcripts = data_dir + "/an4/etc/an4_test.transcription"
      test_manifest = data_dir + "/an4/test_manifest.json"
      if not os.path.isfile(test_manifest):
          build_manifest(
              test_transcripts,
              test_manifest,
              data_dir,
              test_mount_dir,
              "an4/wav/an4test_clstk",
          )
          print("Test manifest created.")
      print("***Done***")
  
file_path: NeMo/nemo/utils/notebook_utils.py
imports: import glob
  import json
  import os
  import os.path
  import subprocess
  import tarfile
  from typing import Optional
  import wget
label_desc: Use image node_id 2 for calling a global function with example usage: download_an4(data_dir, train_mount_dir, test_mount_dir) without return types