Issue to saving temporary files in speaker diarization using NeuralDiarizer
State: closed | Pull request: no
Labels: name: bug

I am trying to reproduce a speaker diarization, using NeuralDiariazer class, in Databricks on Azure and I am facing an issue related to temporal files saving during the voice activity detection. The temporal files were supposed to be saved inside the blob storage, in a folder called "temp_outputs" inside "dbfs", but are not being saved successfully, raising the following error:

`OSError: [Errno 95] Operation not supported`

The problem seems to be in the _run_vad function, during the .frame files writing, in the part of the code below:

https://github.com/NVIDIA/NeMo/blob/f90eea140c1375a921f764f08f0fc998d5a4112b/nemo/collections/asr/models/clustering_diarizer.py#L236-L238

The first .frame file is saved, but the problem starts in the next index of the for loop.

Does not seem to be a problem related to permission, because I am able to save files inside the blob storage, as is shown below:

```python
for f in range (5):
    with open(temp_path + f'/{f}.frame', "a", encoding='utf-8') as fout:
        for f2 in range (10):
            fout.write((f2))
```

The files saved:
![image](https://github.com/NVIDIA/NeMo/assets/61297550/5601ee98-576e-4300-a1d6-4be89f85f9bb)

**Steps/Code to reproduce bug**

```python
# Initialize NeMo MSDD diarization model
msdd_model = NeuralDiarizer(cfg=create_config(temp_path)).to("cuda")
msdd_model.diarize()

del msdd_model
torch.cuda.empty_cache()
```

"Temp_path" is the temporary path where the temporary files are saved, and where it is located the mono audio that I want to diarize.
create_config is a function where I define all the configurations to instantiate the NeuralDiarizer class, as is shown below.
```python
def create_config(output_dir):
    DOMAIN_TYPE = "telephonic"  # Can be meeting or telephonic based on domain type of the audio file
    CONFIG_FILE_NAME = f"diar_infer_{DOMAIN_TYPE}.yaml"
    CONFIG_URL = f"https://raw.githubusercontent.com/NVIDIA/NeMo/main/examples/speaker_tasks/diarization/conf/inference/{CONFIG_FILE_NAME}"
    MODEL_CONFIG = os.path.join(output_dir, CONFIG_FILE_NAME)

    if not os.path.exists(MODEL_CONFIG):
        MODEL_CONFIG = wget.download(CONFIG_URL, output_dir)

    config = OmegaConf.load(MODEL_CONFIG)

    data_dir = os.path.join(output_dir, "data")
    os.makedirs(data_dir, exist_ok=True)

    meta = {
        "audio_filepath": os.path.join(output_dir, "mono_file.wav"),
        "offset": 0,
        "duration": None,
        "label": "infer",
        "text": "-",
        "rttm_filepath": None,
        "uem_filepath": None,
    }
    with open(os.path.join(data_dir, "input_manifest.json"), "w") as fp:
        json.dump(meta, fp)
        fp.write("\n")

    pretrained_vad = "vad_multilingual_marblenet"
    pretrained_speaker_model = "titanet_large"

    config.num_workers = 2  # Workaround for multiprocessing hanging with ipython issue
    config.batch_size = 32 # default is 64
    config.diarizer.manifest_filepath = os.path.join(data_dir, "input_manifest.json")
    config.diarizer.out_dir = (
        output_dir  # Directory to store intermediate files and prediction outputs
    )

    config.diarizer.speaker_embeddings.model_path = pretrained_speaker_model
    config.diarizer.oracle_vad = (
        False  # compute VAD provided with model_path to vad config
    )
    config.diarizer.clustering.parameters.oracle_num_speakers = False

    # Here, we use our in-house pretrained NeMo VAD model
    config.diarizer.vad.model_path = pretrained_vad
    config.diarizer.vad.parameters.onset = 0.8
    config.diarizer.vad.parameters.offset = 0.6
    config.diarizer.vad.parameters.pad_offset = -0.05
    config.diarizer.msdd_model.model_path = (
        "diar_msdd_telephonic"  # Telephonic speaker diarization model
    )

    return config
```

**Environment overview (please complete the following information)**

 - Environment location: Databricks (Azure)
 - Method of NeMo install: pip install