code: def _download_and_preprocess_data(data_dir):
      new_data_dir = os.path.join(data_dir, ARCHIVE_DIR_NAME)
      target_dir = os.path.abspath(new_data_dir)
      archive_path = os.path.abspath(
          os.path.join(data_dir, LDC_DATASET)
      )
  
      # Check swb1_LDC97S62.tgz then extract
      assert os.path.isfile(archive_path)
      _extract(target_dir, archive_path)
  
      # Transcripts
      transcripts_path = maybe_download(
          ARCHIVE_URL, target_dir, ARCHIVE_NAME
      )
      _extract(target_dir, transcripts_path)
  
      # Check swb1_d1/2/3/4/swb_ms98_transcriptions
      expected_folders = [
          "swb1_d1",
          "swb1_d2",
          "swb1_d3",
          "swb1_d4",
          "swb_ms98_transcriptions",
      ]
      assert all(
          [
              os.path.isdir(os.path.join(target_dir, e))
              for e in expected_folders
          ]
      )
  
      # Conditionally convert swb sph data to wav
      _maybe_convert_wav(target_dir, "swb1_d1", "swb1_d1-wav")
      _maybe_convert_wav(target_dir, "swb1_d2", "swb1_d2-wav")
      _maybe_convert_wav(target_dir, "swb1_d3", "swb1_d3-wav")
      _maybe_convert_wav(target_dir, "swb1_d4", "swb1_d4-wav")
  
      # Conditionally split wav data
      d1 = _maybe_split_wav_and_sentences(
          target_dir,
          "swb_ms98_transcriptions",
          "swb1_d1-wav",
          "swb1_d1-split-wav",
      )
      d2 = _maybe_split_wav_and_sentences(
          target_dir,
          "swb_ms98_transcriptions",
          "swb1_d2-wav",
          "swb1_d2-split-wav",
      )
      d3 = _maybe_split_wav_and_sentences(
          target_dir,
          "swb_ms98_transcriptions",
          "swb1_d3-wav",
          "swb1_d3-split-wav",
      )
      d4 = _maybe_split_wav_and_sentences(
          target_dir,
          "swb_ms98_transcriptions",
          "swb1_d4-wav",
          "swb1_d4-split-wav",
      )
  
      swb_files = d1.append(d2).append(d3).append(d4)
  
      train_files, dev_files, test_files = _split_sets(swb_files)
  
      # Write sets to disk as CSV files
      train_files.to_csv(
          os.path.join(target_dir, "swb-train.csv"), index=False
      )
      dev_files.to_csv(
          os.path.join(target_dir, "swb-dev.csv"), index=False
      )
      test_files.to_csv(
          os.path.join(target_dir, "swb-test.csv"), index=False
      )
  
imports: import codecs
  import fnmatch
  import os
  import random
  import subprocess
  import sys
  import tarfile
  import unicodedata
  import wave
  import librosa
  import pandas
  import requests
  import soundfile
  from deepspeech_training.util.importers import validate_label_eng
label_desc: Use image node_id 3 for calling a global function with example usage: _download_and_preprocess_data(data_dir) without return types