[ASR_with_SpeakerDiarization]  predict RTTM contains only one speaker
State: closed | Pull request: no
Labels: name: bug

@tango4j 
**Describe the bug**

I am using `offline_diar_with_asr_infer.py` to do SD + ASR, but after running, my pred_rttms/aepyx.rttm contains the same speaker id for each row like:
```
SPEAKER aepyx 1   2.360   0.360 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   2.800   0.400 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   3.280   0.720 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   4.280   0.080 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   4.520   0.240 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   4.920   0.520 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER aepyx 1   5.560   0.280 <NA> <NA> speaker_0 <NA> <NA>
```
Moreover, I use the ASR_with_SpeakerDiarization tutorial on colab and also got the same result:
```
SPEAKER an4_diarize_test 1   0.240   0.320 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   0.800   0.360 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   1.280   0.240 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   1.800   0.360 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   2.240   0.240 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   2.960   0.440 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   3.480   0.440 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   4.280   0.320 <NA> <NA> speaker_0 <NA> <NA>
SPEAKER an4_diarize_test 1   4.720   0.320 <NA> <NA> speaker_0 <NA> <NA>
```


**Steps/Code to reproduce bug**

command: 
python offline_diarization_with_asr.py

manifest file:  
`{"audio_filepath": "/workspace/nemo/examples/speaker_tasks/diarization/data/voxconverse/voxconverse_test_wav/voxconverse_test_wav/aepyx.wav", "offset": 0, "duration": null, "label": "infer", "text": "-", "rttm_filepath": "/workspace/nemo/examples/speaker_tasks/diarization/data/voxconverse/test/aepyx.rttm"}
`conf/offline_diarization_with_asr.yaml:
```
name: &name "ClusterDiarizer"
  
num_workers: 4
sample_rate: 16000
batch_size: 64

diarizer:
  manifest_filepath: /workspace/nemo/examples/speaker_tasks/diarization/manifest_oracleV_asr.json
  out_dir: output_asr_rp1_test
  oracle_vad: True # If True, uses RTTM files provided in the manifest file to get speech activity (VAD) timestamps
  collar: 0.25 # Collar value for scoring
  ignore_overlap: True # Consider or ignore overlap segments while scoring

  vad:
    model_path: null # .nemo local model path or pretrained model name or none
    external_vad_manifest: null # This option is provided to use external vad and provide its speech activity labels for speaker embeddings extraction. Only one of model_path or external_vad_manifest should be set

    parameters: # Tuned parameters for CH109 (using the 11 multi-speaker sessions as dev set) 
      window_length_in_sec: 0.15  # Window length in sec for VAD context input 
      shift_length_in_sec: 0.01 # Shift length in sec for generate frame level VAD prediction
      smoothing: "median" # False or type of smoothing method (eg: median)
      overlap: 0.875 # Overlap ratio for overlapped mean/median smoothing filter
      onset: 0.4 # Onset threshold for detecting the beginning and end of a speech 
      offset: 0.7 # Offset threshold for detecting the end of a speech
      pad_onset: 0.05 # Adding durations before each speech segment 
      pad_offset: -0.1 # Adding durations after each speech segment 
      min_duration_on: 0.2 # Threshold for small non_speech deletion
      min_duration_off: 0.2 # Threshold for short speech segment deletion
      filter_speech_first: True

  speaker_embeddings:
    model_path: titanet_large #.nemo local model path or pretrained model name (titanet_large, ecapa_tdnn or speakerverification_speakernet)
    parameters:
      window_length_in_sec: 1.5 # Window length(s) in sec (floating-point number). Either a number or a list. Ex) 1.5 or [1.5,1.0,0.5]
      shift_length_in_sec: 0.75 # Shift length(s) in sec (floating-point number). Either a number or a list. Ex) 0.75 or [0.75,0.5,0.25]
      multiscale_weights: null # Weight for each scale. should be null (for single scale) or a list matched with window/shift scale count. Ex) [0.33,0.33,0.33]
      save_embeddings: False # Save speaker embeddings in pickle format.

  clustering:
    parameters:
      oracle_num_speakers: False # If True, use num of speakers value provided in manifest file.
      max_num_speakers: 20 # Max number of speakers for each recording. If an oracle number of speakers is passed, this value is ignored.
      enhanced_count_thres: 80 # If the number of segments is lower than this number, enhanced speaker counting is activated.
      max_rp_threshold: 0.25 # Determines the range of p-value search: 0 < p <= max_rp_threshold. 
      sparse_search_volume: 30 # The higher the number, the more values will be examined with more time. 

  asr:
    model_path: stt_en_conformer_ctc_large # Provide NGC cloud ASR model name. stt_en_conformer_ctc_* models are recommended for diarization purposes.
    parameters:
      asr_based_vad: True # if True, speech segmentation for diarization is based on word-timestamps from ASR inference.
      asr_based_vad_threshold: 0.05 # Threshold (in sec) that caps the gap between two words when generating VAD timestamps using ASR based VAD.
      asr_batch_size: null # Batch size can be dependent on each ASR model. Default batch sizes are applied if set to null.
      lenient_overlap_WDER: True # If true, when a word falls into  speaker-overlappedregions, consider the word as a correctly diarized word.
      decoder_delay_in_sec: null # Native decoder delay. null is recommended to use the default values for each ASR model.
      word_ts_anchor_offset: null # Offset to set a reference point from the start of the word. Recommended range of values is [-0.05  0.2]. 
      word_ts_anchor_pos: "start" # Select which part of the word timestamp we want to use. The options are: 'start', 'end', 'mid'.
      fix_word_ts_with_VAD: True # Fix the word timestamp using VAD output. You must provide a VAD model to use this feature.
      colored_text: False # If True, use colored text to distinguish speakers in the output transcript.
      print_time: True # If True, the start and end time of each speaker turn is printed in the output transcript.
      break_lines: False # If True, the output transcript breaks the line to fix the line width (default is 90 chars)

    ctc_decoder_parameters: # Optional beam search decoder (pyctcdecode)
      pretrained_language_model: null # KenLM model file: .arpa model file or .bin binary file.
      beam_width: 32
      alpha: 0.5
      beta: 2.5

    realigning_lm_parameters: # Experimental feature
      arpa_language_model: null # Provide a KenLM language model in .arpa format.
      min_number_of_words: 3 # Min number of words for the left context.
      max_number_of_words: 10 # Max number of words for the right context.
      logprob_diff_threshold: 1.2  # The threshold for the difference between two log probability values from two hypotheses
```

**Environment details**
docker
nemo-toolkit = 1.10.0

**Additional context**
GPU model