class_docstr: A class that enables online (streaming) clustering based diarization.
  
  - The instance created from `OnlineClusteringDiarizer` sets aside a certain amount of memory
    to provide the upcoming inference with history information
  
  - There are two major modules involved: `OnlineSegmentor` and `OnlineSpeakerClustering`.
      OnlineSegmentor: Take the VAD-timestamps and generate segments for each scale
      OnlineSpeakerClustering: Update the entire speaker labels of the given online session
                               while updating the speaker labels of the streaming inputs.
  
  - The overall diarization process is done by calling `diarize_step` function.
    `diarize_step` function goes through the following steps:
      (1) Segmentation (`OnlineSegmentor` class)
      (2) Embedding extraction (`_extract_online_embeddings` function call)
      (3) Online speaker counting and speaker clustering (`OnlineClusteringDiarizer` class)
      (4) Label generation (`generate_cluster_labels` function call)
docstr: Reset all the necessary variables and initialize classes.
  
  Attributes:
      n_embed_seg_len (int):
          Number of segments needed for 1 second of input time-series signal
docstr_tok: ["Reset","all","the","necessary","variables","and","initialize","classes",".","Attributes",":","n_embed_seg_len","(","int",")",":","Number","of","segments","needed","for","1","second","of","input","time-series","signal"]
code: def reset(self):
      """
      Reset all the necessary variables and initialize classes.
  
      Attributes:
          n_embed_seg_len (int):
              Number of segments needed for 1 second of input time-series signal
      """
      self.n_embed_seg_len = int(
          self.sample_rate
          * self.multiscale_args_dict["scale_dict"][
              self.base_scale_index
          ][0]
      )
      self._init_segment_variables()
      self._init_online_clustering_module(
          self._cfg_diarizer.clustering.parameters
      )
      self._init_online_segmentor_module(self.cfg.sample_rate)
      self._init_memory_buffer()
      self._init_temporal_major_voting_module(
          self._cfg_diarizer.clustering.parameters
      )
      self._init_buffer_frame_timestamps()
  
imports: import os
  import time
  from copy import deepcopy
  from typing import Dict
  import torch
  from omegaconf import DictConfig
  from nemo.collections.asr.models import ClusteringDiarizer
  from nemo.collections.asr.parts.utils.offline_clustering import get_scale_interpolated_embs, split_input_data
  from nemo.collections.asr.parts.utils.online_clustering import OnlineSpeakerClustering
  from nemo.collections.asr.parts.utils.speaker_utils import OnlineSegmentor, audio_rttm_map, generate_cluster_labels, get_embs_and_timestamps
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 9 for calling the OnlineClusteringDiarizer obj's underlying member method code with example usage: obj.reset() without return types