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
code: def _pre_download(self):
      mp3_directory = os.path.join(self.target_dir, "mp3")
      if not os.path.exists(self.target_dir):
          _logger.info("Creating directory...%s", self.target_dir)
          os.mkdir(self.target_dir)
      if not os.path.exists(mp3_directory):
          _logger.info("Creating directory...%s", mp3_directory)
          os.mkdir(mp3_directory)
      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 3 for calling the GramVaaniDownloader obj's underlying member method code with example usage: obj._pre_download() and returns: mp3_directory