code: def main():
      parser = argparse.ArgumentParser()
      parser.add_argument("--data-root", "-d", required=True, type=str)
      parser.add_argument(
          "--vocab-type",
          default="unigram",
          required=True,
          type=str,
          choices=["bpe", "unigram", "char"],
      ),
      parser.add_argument("--vocab-size", default=8000, type=int)
      parser.add_argument("--task", type=str, choices=["asr", "st"])
      parser.add_argument("--joint", action="store_true", help="")
      parser.add_argument(
          "--cmvn-type",
          default="utterance",
          choices=["global", "utterance"],
          help="The type of cepstral mean and variance normalization",
      )
      parser.add_argument(
          "--gcmvn-max-num",
          default=150000,
          type=int,
          help="Maximum number of sentences to use to estimate global mean and "
          "variance",
      )
      parser.add_argument("--use-audio-input", action="store_true")
      args = parser.parse_args()
  
      if args.joint:
          process_joint(args)
      else:
          process(args)
  
imports: import argparse
  import logging
  import os
  from pathlib import Path
  import shutil
  from itertools import groupby
  from tempfile import NamedTemporaryFile
  from typing import Tuple
  import numpy
  import pandas
  import soundfile
  from examples.speech_to_text.data_utils import create_zip, extract_fbank_features, filter_manifest_df, gen_config_yaml, gen_vocab, get_zip_manifest, load_df_from_tsv, save_df_to_tsv, cal_gcmvn_stats
  import torch
  from torch.utils.data import Dataset
  from tqdm import tqdm
  from fairseq.data.audio.audio_utils import get_waveform, convert_waveform
label_desc: Use image node_id 3 for calling a global function with example usage: main() without return types