code: def validate_vad_manifest(AUDIO_RTTM_MAP, vad_manifest):
      """
      This function will check the valid speech segments in the manifest file which is either
      generated from NeMo voice activity detection(VAD) or oracle VAD.
      If an audio file does not contain any valid speech segments, we ignore the audio file
      (indexed by uniq_id) for the rest of the processing steps.
      """
      vad_uniq_ids = set()
      with open(vad_manifest, "r") as vad_file:
          for line in vad_file:
              line = line.strip()
              dic = json.loads(line)
              if dic["duration"] > 0:
                  vad_uniq_ids.add(dic["uniq_id"])
  
      provided_uniq_ids = set(AUDIO_RTTM_MAP.keys())
      silence_ids = provided_uniq_ids - vad_uniq_ids
      for uniq_id in silence_ids:
          del AUDIO_RTTM_MAP[uniq_id]
          logging.warning(
              f"{uniq_id} is ignored since the file does not contain any speech signal to be processed."
          )
  
      if len(AUDIO_RTTM_MAP) == 0:
          raise ValueError(
              "All files present in manifest contains silence, aborting next steps"
          )
  
imports: import gc
  import json
  import math
  import os
  import shutil
  from copy import deepcopy
  from typing import Dict, List, Tuple, Union
  import numpy
  import omegaconf
  import soundfile
  import torch
  from pyannote.core import Annotation, Segment
  from tqdm import tqdm
  from nemo.collections.asr.data.audio_to_label import repeat_signal
  from nemo.collections.asr.parts.utils.longform_clustering import LongFormSpeakerClustering
  from nemo.collections.asr.parts.utils.offline_clustering import SpeakerClustering, get_argmin_mat, split_input_data
  from nemo.utils import logging
label_desc: Use image node_id 22 for calling a global function with example usage: validate_vad_manifest(AUDIO_RTTM_MAP, vad_manifest) without return types