code: def _process_entry(
      entry: dict,
      input_audio_dir: Path,
      output_audio_dir: Path,
      overwrite_audio: bool,
      audio_trimmer: AudioTrimmer,
      output_sample_rate: int,
      output_format: str,
      volume_level: float,
  ) -> Tuple[dict, float, float]:
      audio_filepath = Path(entry["audio_filepath"])
  
      audio_path, audio_path_rel = get_abs_rel_paths(
          input_path=audio_filepath, base_path=input_audio_dir
      )
  
      if not output_format:
          output_format = audio_path.suffix
  
      output_path = output_audio_dir / audio_path_rel
      output_path = output_path.with_suffix(output_format)
      output_path.parent.mkdir(exist_ok=True, parents=True)
  
      if output_path.exists() and not overwrite_audio:
          original_duration = librosa.get_duration(path=audio_path)
          output_duration = librosa.get_duration(path=output_path)
      else:
          audio, sample_rate = librosa.load(audio_path, sr=None)
          original_duration = librosa.get_duration(
              y=audio, sr=sample_rate
          )
          if audio_trimmer is not None:
              audio, start_i, end_i = audio_trimmer.trim_audio(
                  audio=audio,
                  sample_rate=int(sample_rate),
                  audio_id=str(audio_path),
              )
  
          if output_sample_rate:
              audio = librosa.resample(
                  y=audio,
                  orig_sr=sample_rate,
                  target_sr=output_sample_rate,
              )
              sample_rate = output_sample_rate
  
          if volume_level:
              audio = normalize_volume(audio, volume_level=volume_level)
  
          if audio.size > 0:
              sf.write(
                  file=output_path, data=audio, samplerate=sample_rate
              )
              output_duration = librosa.get_duration(
                  y=audio, sr=sample_rate
              )
          else:
              output_duration = 0.0
  
      entry["duration"] = round(output_duration, 2)
  
      if os.path.isabs(audio_filepath):
          entry["audio_filepath"] = str(output_path)
      else:
          output_filepath = audio_path_rel.with_suffix(output_format)
          entry["audio_filepath"] = str(output_filepath)
  
      return entry, original_duration, output_duration
  
file_path: NeMo/scripts/dataset_processing/tts/preprocess_audio.py
imports: import argparse
  import os
  from pathlib import Path
  from typing import Tuple
  import librosa
  import soundfile
  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, write_manifest
  from nemo.collections.tts.parts.preprocessing.audio_trimming import AudioTrimmer
  from nemo.collections.tts.parts.utils.tts_dataset_utils import get_abs_rel_paths, normalize_volume
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling a global function with example usage: _process_entry(entry, input_audio_dir, output_audio_dir, overwrite_audio, audio_trimmer, output_sample_rate, output_format, volume_level) and returns: entry,  original_duration,  output_duration