重要

您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新库,NeMo Run。我们目前正在将所有功能从 NeMo 1.0 移植到 2.0。有关以前版本或 2.0 中尚未提供的功能的文档,请参阅 NeMo 24.07 文档

检查点#

在 NeMo 中加载预训练检查点主要有两种方法,如加载 ASR 检查点中所介绍的。在说话人日志中,日志器加载通过配置文件传递的检查点。

端到端说话人日志模型#

Sortformer 日志器训练#

使用以下命令训练 Sortformer 日志器模型。

# Feed the config for Sortformer diarizer model training
python ${NEMO_ROOT}/examples/speaker_tasks/diarization/neural_diarizer/sortformer_diar_train.py --config-path='../conf/neural_diarizer' \
  --config-name='sortformer_diarizer_hybrid_loss_4spk-v1.yaml' \
  trainer.devices=1 \
  model.train_ds.manifest_filepath="<train_manifest_path>" \
  model.validation_ds.manifest_filepath="<dev_manifest_path>" \
  exp_manager.name='sample_train' \
  exp_manager.exp_dir=./sortformer_diar_train

Sortformer 日志器推理#

使用以下命令在 Sortformer 日志器模型上运行推理。

# Config for post-processing
PP_YAML1=${NEMO_ROOT}/examples/speaker_tasks/diarization/conf/post_processing/sortformer_diar_4spk-v1_dihard3-dev.yaml
PP_YAML2=${NEMO_ROOT}/examples/speaker_tasks/diarization/conf/post_processing/sortformer_diar_4spk-v1_callhome-part1.yaml
python ${NEMO_ROOT}/examples/speaker_tasks/diarization/neural_diarizer/e2e_diarize_speech.py \
  batch_size=1 \
  model_path=/path/to/diar_sortformer_4spk_v1.nemo \
  postprocessing_yaml=${PP_YAML2} \
  dataset_manifest=/path/to/diarization_manifest.json

HuggingFace 预训练检查点#

ASR 集合具有在各种数据集上针对各种任务训练的多个模型的检查点。这些检查点可通过 NGC NeMo 自动语音识别集合获得。NGC 上的模型卡片包含有关每个可用检查点的更多信息。

一般来说,您可以使用以下格式的模型名称加载模型,

pip install -U "huggingface_hub[cli]"
huggingface-cli login
from nemo.collections.asr.models import SortformerEncLabelModel
diar_model = SortformerEncLabelModel.from_pretrained("nvidia/diar_sortformer_4spk-v1")

其中模型名称是下表 “模型名称” 条目下的值。

端到端说话人日志模型#

模型名称

模型基类

模型卡片

diar_sortformer_4spk

SortformerEncLabelModel

http://hugging-face.cn/nvidia/diar_sortformer_4spk-v1

级联说话人日志管道模型#

加载本地检查点#

加载 VAD 模型

pretrained_vad_model='/path/to/vad_multilingual_marblenet.nemo' # local .nemo or pretrained vad model name
...
# pass with hydra config
config.diarizer.vad.model_path=pretrained_vad_model

加载说话人嵌入模型

pretrained_speaker_model='/path/to/titanet-l.nemo' # local .nemo or pretrained speaker embedding model name
...
# pass with hydra config
config.diarizer.speaker_embeddings.model_path=pretrained_speaker_model

加载神经日志器模型

pretrained_neural_diarizer_model='/path/to/diarizer_msdd_telephonic.nemo' # local .nemo or pretrained neural diarizer model name
...
# pass with hydra config
config.diarizer.msdd_model.model_path=pretrained_neural_diarizer_model

NeMo 将自动以 .nemo 格式保存您正在训练的模型的检查点。您也可以随时使用 model.save_to(<checkpoint_path>.nemo) 手动保存您的模型。

推理#

注意

有关详细信息和深入理解,请参考 <NeMo_root>/tutorials/speaker_tasks/Speaker_Diarization_Inference.ipynb

查看 数据集 以准备音频文件和可选标签文件。

使用以下命令运行和评估说话人日志器

# Have a look at the instruction inside the script and pass the arguments you might need.
python <NeMo_root>/examples/speaker_tasks/diarization/offline_diarization.py

NGC 预训练检查点#

ASR 集合具有在各种数据集上针对各种任务训练的多个模型的检查点。这些检查点可通过 NGC NeMo 自动语音识别集合获得。NGC 上的模型卡片包含有关每个可用检查点的更多信息。

一般来说,您可以使用以下格式的模型名称加载模型,

pretrained_vad_model='vad_multilingual_marblenet'
pretrained_speaker_model='titanet_large'
pretrained_neural_diarizer_model='diar_msdd_telephonic'
...
config.diarizer.vad.model_path=retrained_vad_model \
config.diarizer.speaker_embeddings.model_path=pretrained_speaker_model \
config.diarizer.msdd_model.model_path=pretrained_neural_diarizer_model

其中模型名称是下表 “模型名称” 条目下的值。

说话人日志管道模型#

模型名称

模型基类

模型卡片

vad_multilingual_marblenet

EncDecClassificationModel

https://catalog.ngc.nvidia.com/orgs/nvidia/teams/nemo/models/vad_multilingual_marblenet

vad_marblenet

EncDecClassificationModel

https://ngc.nvidia.com/catalog/models/nvidia:nemo:vad_marblenet

vad_telephony_marblenet

EncDecClassificationModel

https://ngc.nvidia.com/catalog/models/nvidia:nemo:vad_telephony_marblenet

titanet_large

EncDecSpeakerLabelModel

https://ngc.nvidia.com/catalog/models/nvidia:nemo:titanet_large

ecapa_tdnn

EncDecSpeakerLabelModel

https://ngc.nvidia.com/catalog/models/nvidia:nemo:ecapa_tdnn

diar_msdd_telephonic

EncDecDiarLabelModel

https://ngc.nvidia.com/catalog/models/nvidia:diar_msdd_telephonic