code: def main():
      args = get_args()
      feature_config_path = args.feature_config_path
      manifest_path = args.manifest_path
      audio_dir = args.audio_dir
      feature_dir = args.feature_dir
      dedupe_files = args.dedupe_files
      overwrite = args.overwrite
      num_workers = args.num_workers
  
      if not manifest_path.exists():
          raise ValueError(f"Manifest {manifest_path} does not exist.")
  
      if not audio_dir.exists():
          raise ValueError(
              f"Audio directory {audio_dir} does not exist."
          )
  
      feature_config = OmegaConf.load(feature_config_path)
      feature_config = instantiate(feature_config)
      featurizers = feature_config.featurizers
  
      entries = read_manifest(manifest_path)
  
      if dedupe_files:
          final_entries = []
          audio_filepath_set = set()
          for entry in entries:
              audio_filepath = entry["audio_filepath"]
              if audio_filepath in audio_filepath_set:
                  continue
              final_entries.append(entry)
              audio_filepath_set.add(audio_filepath)
          entries = final_entries
  
      for feature_name, featurizer in featurizers.items():
          print(f"Computing: {feature_name}")
          Parallel(n_jobs=num_workers)(
              delayed(featurizer.save)(
                  manifest_entry=entry,
                  audio_dir=audio_dir,
                  feature_dir=feature_dir,
                  overwrite=overwrite,
              )
              for entry in tqdm(entries)
          )
  
file_path: NeMo/scripts/dataset_processing/tts/compute_features.py
imports: import argparse
  from pathlib import Path
  from hydra.utils import instantiate
  from joblib import Parallel, delayed
  from omegaconf import OmegaConf
  from tqdm import tqdm
  from nemo.collections.asr.parts.utils.manifest_utils import read_manifest
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types