|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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=<path to manifest file> \ |
|
diarizer.out_dir='demo_output' \ |
|
diarizer.speaker_embeddings.model_path=<pretrained modelname or path to .nemo> \ |
|
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 <NeMo_git_root>/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() |
|
|