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: In case buffer is not filled or there is no speech activity in the input, generate temporary output.
  
  Returns:
      diar_hyp (Tensor): Speaker labels based on the previously saved segments and speaker labels
docstr_tok: ["In","case","buffer","is","not","filled","or","there","is","no","speech","activity","in","the","input",",","generate","temporary","output",".","Returns",":","diar_hyp","(","Tensor",")",":","Speaker","labels","based","on","the","previously","saved","segments","and","speaker","labels"]
code: def _get_interim_output(self) -> torch.Tensor:
      """
      In case buffer is not filled or there is no speech activity in the input, generate temporary output.
  
      Returns:
          diar_hyp (Tensor): Speaker labels based on the previously saved segments and speaker labels
      """
      if len(self.memory_cluster_labels) == 0 or self.buffer_start < 0:
          diar_hyp, _ = generate_cluster_labels(
              [[0.0, self.total_buffer_in_secs]], [0]
          )
      else:
          diar_hyp, _ = generate_cluster_labels(
              self.memory_segment_ranges[self.base_scale_index],
              self.memory_cluster_labels,
          )
      return diar_hyp
  
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 16 for calling the OnlineClusteringDiarizer obj's underlying member method code with example usage: obj._get_interim_output() and returns: diar_hyp