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: Call `forward` function of the speaker embedding model.
  
  Args:
      audio_signal (Tensor):
          Torch tensor containing time-series signal
  
  Returns:
      Speaker embedding vectors for the given time-series input `audio_signal`.
docstr_tok: ["Call","`","forward","`","function","of","the","speaker","embedding","model",".","Args",":","audio_signal","(","Tensor",")",":","Torch","tensor","containing","time-series","signal","Returns",":","Speaker","embedding","vectors","for","the","given","time-series","input","`","audio_signal","`","."]
code: def _run_embedding_extractor(
      self, audio_signal: torch.Tensor
  ) -> torch.Tensor:
      """
      Call `forward` function of the speaker embedding model.
  
      Args:
          audio_signal (Tensor):
              Torch tensor containing time-series signal
  
      Returns:
          Speaker embedding vectors for the given time-series input `audio_signal`.
      """
      audio_signal = torch.stack(audio_signal).float().to(self.device)
      audio_signal_lens = torch.tensor(
          [self.n_embed_seg_len for k in range(audio_signal.shape[0])]
      ).to(self.device)
      _, torch_embs = self._speaker_model.forward(
          input_signal=audio_signal,
          input_signal_length=audio_signal_lens,
      )
      return torch_embs
  
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 13 for calling the OnlineClusteringDiarizer obj's underlying member method code with example usage: obj._run_embedding_extractor(audio_signal) and returns: torch_embs