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: Initialize online speaker clustering module
  
  Attributes:
      online_clus (OnlineSpeakerClustering):
          Online clustering diarizer class instance
      history_n (int):
          History buffer size for saving history of speaker label inference
          Total number of embedding vectors saved in the buffer that is kept till the end of the session
      current_n (int):
          Current buffer (FIFO queue) size for calculating the speaker label inference
          Total number of embedding vectors saved in the FIFO queue for clustering inference
docstr_tok: ["Initialize","online","speaker","clustering","module","Attributes",":","online_clus","(","OnlineSpeakerClustering",")",":","Online","clustering","diarizer","class","instance","history_n","(","int",")",":","History","buffer","size","for","saving","history","of","speaker","label","inference","Total","number","of","embedding","vectors","saved","in","the","buffer","that","is","kept","till","the","end","of","the","session","current_n","(","int",")",":","Current","buffer","(","FIFO","queue",")","size","for","calculating","the","speaker","label","inference","Total","number","of","embedding","vectors","saved","in","the","FIFO","queue","for","clustering","inference"]
code: def _init_online_clustering_module(self, clustering_params):
      """
      Initialize online speaker clustering module
  
      Attributes:
          online_clus (OnlineSpeakerClustering):
              Online clustering diarizer class instance
          history_n (int):
              History buffer size for saving history of speaker label inference
              Total number of embedding vectors saved in the buffer that is kept till the end of the session
          current_n (int):
              Current buffer (FIFO queue) size for calculating the speaker label inference
              Total number of embedding vectors saved in the FIFO queue for clustering inference
      """
      self.online_clus = OnlineSpeakerClustering(
          max_num_speakers=clustering_params.max_num_speakers,
          max_rp_threshold=clustering_params.max_rp_threshold,
          sparse_search_volume=clustering_params.sparse_search_volume,
          history_buffer_size=clustering_params.history_buffer_size,
          current_buffer_size=clustering_params.current_buffer_size,
          cuda=self.cuda,
      )
      self.history_n = clustering_params.history_buffer_size
      self.current_n = clustering_params.current_buffer_size
  
      self.max_num_speakers = self.online_clus.max_num_speakers
  
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 2 for calling the OnlineClusteringDiarizer obj's underlying member method code with example usage: obj._init_online_clustering_module(clustering_params) without return types