class_docstr: Inference model Class for offline speaker diarization. 
  This class handles required functionality for diarization : Speech Activity Detection, Segmentation, 
  Extract Embeddings, Clustering, Resegmentation and Scoring. 
  All the parameters are passed through config file 
docstr: Saves model instance (weights and configuration) into EFF archive or .
   You can use "restore_from" method to fully restore instance from .nemo file.
  
  .nemo file is an archive (tar.gz) with the following:
      model_config.yaml - model configuration in .yaml format. You can deserialize this into cfg argument for model's constructor
      model_wights.chpt - model checkpoint
  
  Args:
      save_path: Path to .nemo file where model instance should be saved
docstr_tok: ["Saves","model","instance","(","weights","and","configuration",")","into","EFF","archive","or",".","You","can","use","``","restore_from","''","method","to","fully","restore","instance","from",".nemo","file",".",".nemo","file","is","an","archive","(","tar.gz",")","with","the","following",":","model_config.yaml","-","model","configuration","in",".yaml","format",".","You","can","deserialize","this","into","cfg","argument","for","model","'s","constructor","model_wights.chpt","-","model","checkpoint","Args",":","save_path",":","Path","to",".nemo","file","where","model","instance","should","be","saved"]
code: def save_to(self, save_path: str):
      """
      Saves model instance (weights and configuration) into EFF archive or .
       You can use "restore_from" method to fully restore instance from .nemo file.
  
      .nemo file is an archive (tar.gz) with the following:
          model_config.yaml - model configuration in .yaml format. You can deserialize this into cfg argument for model's constructor
          model_wights.chpt - model checkpoint
  
      Args:
          save_path: Path to .nemo file where model instance should be saved
      """
  
      # TODO: Why does this override the main save_to?
  
      with tempfile.TemporaryDirectory() as tmpdir:
          config_yaml = os.path.join(tmpdir, _MODEL_CONFIG_YAML)
          spkr_model = os.path.join(tmpdir, _SPEAKER_MODEL)
  
          self.to_config_file(path2yaml_file=config_yaml)
          if self.has_vad_model:
              vad_model = os.path.join(tmpdir, _VAD_MODEL)
              self._vad_model.save_to(vad_model)
          self._speaker_model.save_to(spkr_model)
          self.__make_nemo_file_from_folder(
              filename=save_path, source_dir=tmpdir
          )
  
imports: import json
  import os
  import pickle
  import shutil
  import tarfile
  import tempfile
  from copy import deepcopy
  from typing import Any, List, Optional, Union
  import torch
  from omegaconf import DictConfig, OmegaConf
  from pytorch_lightning.utilities import rank_zero_only
  from tqdm import tqdm
  from nemo.collections.asr.metrics.der import score_labels
  from nemo.collections.asr.models.classification_models import EncDecClassificationModel
  from nemo.collections.asr.models.label_models import EncDecSpeakerLabelModel
  from nemo.collections.asr.parts.mixins.mixins import DiarizationMixin
  from nemo.collections.asr.parts.utils.speaker_utils import audio_rttm_map, get_embs_and_timestamps, get_uniqname_from_filepath, parse_scale_configs, perform_clustering, segments_manifest_to_subsegments_manifest, validate_vad_manifest, write_rttm2manifest
  from nemo.collections.asr.parts.utils.vad_utils import generate_overlap_vad_seq, generate_vad_segment_table, get_vad_stream_status, prepare_manifest
  from nemo.core.classes import Model
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 14 for calling the ClusteringDiarizer obj's underlying member method code with example usage: obj.save_to(save_path) without return types