class_docstr: GramVaaniDownloader downloads a GramVaani dataset.
  Args:
    gram_vaani_csv (GramVaaniCSV): A GramVaaniCSV representing the data to download
    target_dir (str): The path to download the data to
  Attributes:
      data (:class:`pandas.DataFrame`): `pandas.DataFrame` Containing the GramVaani csv data
docstr: Downloads the data associated with this instance
  Return:
    mp3_directory (os.path): The directory into which the associated mp3's were downloaded
code: def download(self):
      """Downloads the data associated with this instance
      Return:
        mp3_directory (os.path): The directory into which the associated mp3's were downloaded
      """
      mp3_directory = self._pre_download()
      self.data.swifter.apply(
          func=lambda arg: self._download(*arg, mp3_directory),
          axis=1,
          raw=True,
      )
      return mp3_directory
  
imports: import csv
  import logging
  import math
  import os
  import subprocess
  import urllib
  from pathlib import Path
  import pandas
  from sox import Transformer
  import swifter
  from deepspeech_training.util.importers import get_importers_parser, get_validate_label
label_desc: Use image node_id 2 for calling the GramVaaniDownloader obj's underlying member method code with example usage: obj.download() and returns: mp3_directory