# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from omegaconf import OmegaConf from pytorch_lightning import seed_everything from nemo.collections.asr.models import ClusteringDiarizer from nemo.core.config import hydra_runner from nemo.utils import logging """ This script demonstrates how to use run speaker diarization. Usage: python offline_diar_infer.py \ diarizer.manifest_filepath= \ diarizer.out_dir='demo_output' \ diarizer.speaker_embeddings.model_path= \ diarizer.vad.model_path='vad_marblenet' \ diarizer.speaker_embeddings.parameters.save_embeddings=False Check out whole parameters in ./conf/offline_diarization.yaml and their meanings. For details, have a look at /tutorials/speaker_tasks/Speaker_Diarization_Inference.ipynb """ seed_everything(42) @hydra_runner(config_path="../conf/inference", config_name="diar_infer_meeting.yaml") def main(cfg): logging.info(f'Hydra config: {OmegaConf.to_yaml(cfg)}') sd_model = ClusteringDiarizer(cfg=cfg).to(cfg.device) sd_model.diarize() if __name__ == '__main__': main()