Speaker diarization
State: closed | Pull request: yes

This PR enables speaker diarization inference capability in NeMo. It features and supports both oracle and non-oracle VAD diarization with spectral clustering. 

Here are some of the new additions made:

- Adds support to diarize wav files given through list or from a file containing paths to audio files (speaker_diarize.py)
- Added ClusteringDiarizer model that combines VAD and Speaker Embeddings model to extract time stamps and Embeddings (clustering_diarizer.py)
- Added VAD utils to support overlap segment creation and probability smoothing for combining VAD decisions (vad_utils.py)
- Added script to get best thresholds for unseen data given through dev manifest. (vad_tune_threshold.py) 
- Added utils to clean and combine time stamps from VAD. (speaker_utils.py)
- Perform clustering and writes predicted rttm (speaker_utils.py)
- Added rttm_to_manifest.py to create oracle manifest for performing diarization with any external VAD decision 

This pull request **introduces 1 alert** when merging b6411e54d856fbe4193e259784afa2e08af516c5 into 941ef1fd71bd2515a4ba7092d65146edfddc1229 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-9e7b6190b88049553be6394e4585e7cfbe3807f2)

**new alerts:**

* 1 for Variable defined multiple times

This pull request **introduces 1 alert** when merging acaa2e39898db84435864ae98148b5c9413556e4 into 941ef1fd71bd2515a4ba7092d65146edfddc1229 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-727f18f169d6a18ec5b25480a71518fd052c39e4)

**new alerts:**

* 1 for Variable defined multiple times

This pull request **introduces 1 alert** when merging faa9cb0f8e778116f6e1cc93aeddaf842a25ef90 into 941ef1fd71bd2515a4ba7092d65146edfddc1229 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-6aff78b25618011ef678d8030e953815f73b39c2)

**new alerts:**

* 1 for Variable defined multiple times

This pull request **introduces 1 alert** when merging a763a0b34765e7b4d8ec3e93143e629415b67c8d into 941ef1fd71bd2515a4ba7092d65146edfddc1229 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-538c1c4353458bcf9cda2fcbaa440de11c550302)

**new alerts:**

* 1 for Variable defined multiple times

This pull request **introduces 1 alert** when merging 8b019f9a913cf8c8176b7d6a2e720d023af87f6e into 941ef1fd71bd2515a4ba7092d65146edfddc1229 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-b4cc6a3533e4de6daf5a2da13557e60ab26eedcf)

**new alerts:**

* 1 for Illegal raise

This pull request **introduces 1 alert** when merging f939869259283fca037efc94a22187df6c2c81bf into 4c1d7b586fe764894f3468a11369aebc4962fa9f - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-837b1b71823a03f0d923fb525134fc588df06b2c)

**new alerts:**

* 1 for Unused local variable

This pull request **introduces 1 alert** when merging 51068149216ed2a8597697011c33f7d1339e0411 into f4fbe89e39047c49643a681452a08e2c15dfca15 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-64e4d33ce8431c673dc25b513a9908ba3144c441)

**new alerts:**

* 1 for Unused local variable

looks good to me, @fayejf and @jbalam-nv  could you please have a look too?

This pull request **introduces 1 alert** when merging 26ef2adf611352e588c3b4232f28a1771c736404 into f4fbe89e39047c49643a681452a08e2c15dfca15 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-df788edebc465747fbb65d6c29b8e39bb5a76c8f)

**new alerts:**

* 1 for Unused local variable

This pull request **introduces 1 alert** when merging adb1439303ddf32d3a445258b2c5e879922c068c into 4fe96b152a74ba2dd3e044cd76fe91dfda566c08 - [view on LGTM.com](https://lgtm.com/projects/g/NVIDIA/NeMo/rev/pr-17545190551ae62ed2a5eabe6aab22a88c3fbb21)

**new alerts:**

* 1 for Unused local variable