prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Fix links to speaker identification notebook
  # What does this PR do ?
  
  Fixes #5258
  
  **Collection**: [Note which collection this PR will affect]
  
  # Changelog 
  - Add specific line by line info of high level changes in this PR.
  
  # Usage
  * You can potentially add a usage example below
  
  ```python
  # Add a code snippet demonstrating how to use this 
  ```
  
  # Before your PR is "Ready for review"
  **Pre checks**:
  - [ ] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)
  - [ ] Did you write any new necessary tests?
  - [ ] Did you add or update any necessary documentation?
  - [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?
    
  **PR Type**:
  - [ ] New Feature
  - [ ] Bugfix
  - [ ] Documentation
  
  If you haven't finished some of the above items you can still open "Draft" PR.
  
  
  ## Who can review?
  
  Anyone in the community is free to review the PR once the checks have passed. 
  [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.
  
  # Additional Information
  * Related to # (issue)
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `examples/speaker_tasks/recognition/speaker_reco.py`
  Content:
  ```
  1 # Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.
  2 #
  3 # Licensed under the Apache License, Version 2.0 (the "License");
  4 # you may not use this file except in compliance with the License.
  5 # You may obtain a copy of the License at
  6 #
  7 #     http://www.apache.org/licenses/LICENSE-2.0
  8 #
  9 # Unless required by applicable law or agreed to in writing, software
  10 # distributed under the License is distributed on an "AS IS" BASIS,
  11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12 # See the License for the specific language governing permissions and
  13 # limitations under the License.
  14 
  15 import os
  16 
  17 import pytorch_lightning as pl
  18 import torch
  19 from omegaconf import OmegaConf
  20 from pytorch_lightning import seed_everything
  21 
  22 from nemo.collections.asr.models import EncDecSpeakerLabelModel
  23 from nemo.core.config import hydra_runner
  24 from nemo.utils import logging
  25 from nemo.utils.exp_manager import exp_manager
  26 
  27 """
  28 Basic run (on GPU for 10 epochs for 2 class training):
  29 EXP_NAME=sample_run
  30 python ./speaker_reco.py --config-path='conf' --config-name='SpeakerNet_recognition_3x2x512.yaml' \
  31     trainer.max_epochs=10  \
  32     model.train_ds.batch_size=64 model.validation_ds.batch_size=64 \
  33     model.train_ds.manifest_filepath="<train_manifest>" model.validation_ds.manifest_filepath="<dev_manifest>" \
  34     model.test_ds.manifest_filepath="<test_manifest>" \
  35     trainer.devices=1 \
  36     model.decoder.params.num_classes=2 \
  37     exp_manager.name=$EXP_NAME +exp_manager.use_datetime_version=False \
  38     exp_manager.exp_dir='./speaker_exps'
  39 
  40 See https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Recognition_Verification.ipynb for notebook tutorial
  41 
  42 Optional: Use tarred dataset to speech up data loading.
  43    Prepare ONE manifest that contains all training data you would like to include. Validation should use non-tarred dataset.
  44    Note that it's possible that tarred datasets impacts validation scores because it drop values in order to have same amount of files per tarfile; 
  45    Scores might be off since some data is missing. 
  46    
  47    Use the `convert_to_tarred_audio_dataset.py` script under <NEMO_ROOT>/speech_recognition/scripts in order to prepare tarred audio dataset.
  48    For details, please see TarredAudioToClassificationLabelDataset in <NEMO_ROOT>/nemo/collections/asr/data/audio_to_label.py
  49 """
  50 
  51 seed_everything(42)
  52 
  53 
  54 @hydra_runner(config_path="conf", config_name="SpeakerNet_verification_3x2x256.yaml")
  55 def main(cfg):
  56 
  57     logging.info(f'Hydra config: {OmegaConf.to_yaml(cfg)}')
  58     trainer = pl.Trainer(**cfg.trainer)
  59     log_dir = exp_manager(trainer, cfg.get("exp_manager", None))
  60     speaker_model = EncDecSpeakerLabelModel(cfg=cfg.model, trainer=trainer)
  61     trainer.fit(speaker_model)
  62     if not trainer.fast_dev_run:
  63         model_path = os.path.join(log_dir, '..', 'spkr.nemo')
  64         speaker_model.save_to(model_path)
  65 
  66     torch.distributed.destroy_process_group()
  67     if hasattr(cfg.model, 'test_ds') and cfg.model.test_ds.manifest_filepath is not None:
  68         if trainer.is_global_zero:
  69             trainer = pl.Trainer(devices=1, accelerator=cfg.trainer.accelerator, strategy=cfg.trainer.strategy)
  70             if speaker_model.prepare_test(trainer):
  71                 trainer.test(speaker_model)
  72 
  73 
  74 if __name__ == '__main__':
  75     main()
  76
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/examples/speaker_tasks/recognition/speaker_reco.py b/examples/speaker_tasks/recognition/speaker_reco.py
  --- a/examples/speaker_tasks/recognition/speaker_reco.py
  +++ b/examples/speaker_tasks/recognition/speaker_reco.py
  @@ -37,7 +37,7 @@
       exp_manager.name=$EXP_NAME +exp_manager.use_datetime_version=False \
       exp_manager.exp_dir='./speaker_exps'
   
  -See https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Recognition_Verification.ipynb for notebook tutorial
  +See https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Identification_Verification.ipynb for notebook tutorial
   
   Optional: Use tarred dataset to speech up data loading.
      Prepare ONE manifest that contains all training data you would like to include. Validation should use non-tarred dataset.
  
verification_info: {"golden_diff": "diff --git a/examples/speaker_tasks/recognition/speaker_reco.py b/examples/speaker_tasks/recognition/speaker_reco.py\n--- a/examples/speaker_tasks/recognition/speaker_reco.py\n+++ b/examples/speaker_tasks/recognition/speaker_reco.py\n@@ -37,7 +37,7 @@\n     exp_manager.name=$EXP_NAME +exp_manager.use_datetime_version=False \\\n     exp_manager.exp_dir='./speaker_exps'\n \n-See https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Recognition_Verification.ipynb for notebook tutorial\n+See https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Identification_Verification.ipynb for notebook tutorial\n \n Optional: Use tarred dataset to speech up data loading.\n    Prepare ONE manifest that contains all training data you would like to include. Validation should use non-tarred dataset.\n", "issue": "Fix links to speaker identification notebook\n# What does this PR do ?\r\n\r\nFixes #5258\r\n\r\n**Collection**: [Note which collection this PR will affect]\r\n\r\n# Changelog \r\n- Add specific line by line info of high level changes in this PR.\r\n\r\n# Usage\r\n* You can potentially add a usage example below\r\n\r\n```python\r\n# Add a code snippet demonstrating how to use this \r\n```\r\n\r\n# Before your PR is \"Ready for review\"\r\n**Pre checks**:\r\n- [ ] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)\r\n- [ ] Did you write any new necessary tests?\r\n- [ ] Did you add or update any necessary documentation?\r\n- [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)\r\n  - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?\r\n  \r\n**PR Type**:\r\n- [ ] New Feature\r\n- [ ] Bugfix\r\n- [ ] Documentation\r\n\r\nIf you haven't finished some of the above items you can still open \"Draft\" PR.\r\n\r\n\r\n## Who can review?\r\n\r\nAnyone in the community is free to review the PR once the checks have passed. \r\n[Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.\r\n\r\n# Additional Information\r\n* Related to # (issue)\r\n\n", "before_files": [{"content": "# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport os\n\nimport pytorch_lightning as pl\nimport torch\nfrom omegaconf import OmegaConf\nfrom pytorch_lightning import seed_everything\n\nfrom nemo.collections.asr.models import EncDecSpeakerLabelModel\nfrom nemo.core.config import hydra_runner\nfrom nemo.utils import logging\nfrom nemo.utils.exp_manager import exp_manager\n\n\"\"\"\nBasic run (on GPU for 10 epochs for 2 class training):\nEXP_NAME=sample_run\npython ./speaker_reco.py --config-path='conf' --config-name='SpeakerNet_recognition_3x2x512.yaml' \\\n    trainer.max_epochs=10  \\\n    model.train_ds.batch_size=64 model.validation_ds.batch_size=64 \\\n    model.train_ds.manifest_filepath=\"<train_manifest>\" model.validation_ds.manifest_filepath=\"<dev_manifest>\" \\\n    model.test_ds.manifest_filepath=\"<test_manifest>\" \\\n    trainer.devices=1 \\\n    model.decoder.params.num_classes=2 \\\n    exp_manager.name=$EXP_NAME +exp_manager.use_datetime_version=False \\\n    exp_manager.exp_dir='./speaker_exps'\n\nSee https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Recognition_Verification.ipynb for notebook tutorial\n\nOptional: Use tarred dataset to speech up data loading.\n   Prepare ONE manifest that contains all training data you would like to include. Validation should use non-tarred dataset.\n   Note that it's possible that tarred datasets impacts validation scores because it drop values in order to have same amount of files per tarfile; \n   Scores might be off since some data is missing. \n   \n   Use the `convert_to_tarred_audio_dataset.py` script under <NEMO_ROOT>/speech_recognition/scripts in order to prepare tarred audio dataset.\n   For details, please see TarredAudioToClassificationLabelDataset in <NEMO_ROOT>/nemo/collections/asr/data/audio_to_label.py\n\"\"\"\n\nseed_everything(42)\n\n\n@hydra_runner(config_path=\"conf\", config_name=\"SpeakerNet_verification_3x2x256.yaml\")\ndef main(cfg):\n\n    logging.info(f'Hydra config: {OmegaConf.to_yaml(cfg)}')\n    trainer = pl.Trainer(**cfg.trainer)\n    log_dir = exp_manager(trainer, cfg.get(\"exp_manager\", None))\n    speaker_model = EncDecSpeakerLabelModel(cfg=cfg.model, trainer=trainer)\n    trainer.fit(speaker_model)\n    if not trainer.fast_dev_run:\n        model_path = os.path.join(log_dir, '..', 'spkr.nemo')\n        speaker_model.save_to(model_path)\n\n    torch.distributed.destroy_process_group()\n    if hasattr(cfg.model, 'test_ds') and cfg.model.test_ds.manifest_filepath is not None:\n        if trainer.is_global_zero:\n            trainer = pl.Trainer(devices=1, accelerator=cfg.trainer.accelerator, strategy=cfg.trainer.strategy)\n            if speaker_model.prepare_test(trainer):\n                trainer.test(speaker_model)\n\n\nif __name__ == '__main__':\n    main()\n", "path": "examples/speaker_tasks/recognition/speaker_reco.py"}], "after_files": [{"content": "# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport os\n\nimport pytorch_lightning as pl\nimport torch\nfrom omegaconf import OmegaConf\nfrom pytorch_lightning import seed_everything\n\nfrom nemo.collections.asr.models import EncDecSpeakerLabelModel\nfrom nemo.core.config import hydra_runner\nfrom nemo.utils import logging\nfrom nemo.utils.exp_manager import exp_manager\n\n\"\"\"\nBasic run (on GPU for 10 epochs for 2 class training):\nEXP_NAME=sample_run\npython ./speaker_reco.py --config-path='conf' --config-name='SpeakerNet_recognition_3x2x512.yaml' \\\n    trainer.max_epochs=10  \\\n    model.train_ds.batch_size=64 model.validation_ds.batch_size=64 \\\n    model.train_ds.manifest_filepath=\"<train_manifest>\" model.validation_ds.manifest_filepath=\"<dev_manifest>\" \\\n    model.test_ds.manifest_filepath=\"<test_manifest>\" \\\n    trainer.devices=1 \\\n    model.decoder.params.num_classes=2 \\\n    exp_manager.name=$EXP_NAME +exp_manager.use_datetime_version=False \\\n    exp_manager.exp_dir='./speaker_exps'\n\nSee https://github.com/NVIDIA/NeMo/blob/main/tutorials/speaker_tasks/Speaker_Identification_Verification.ipynb for notebook tutorial\n\nOptional: Use tarred dataset to speech up data loading.\n   Prepare ONE manifest that contains all training data you would like to include. Validation should use non-tarred dataset.\n   Note that it's possible that tarred datasets impacts validation scores because it drop values in order to have same amount of files per tarfile; \n   Scores might be off since some data is missing. \n   \n   Use the `convert_to_tarred_audio_dataset.py` script under <NEMO_ROOT>/speech_recognition/scripts in order to prepare tarred audio dataset.\n   For details, please see TarredAudioToClassificationLabelDataset in <NEMO_ROOT>/nemo/collections/asr/data/audio_to_label.py\n\"\"\"\n\nseed_everything(42)\n\n\n@hydra_runner(config_path=\"conf\", config_name=\"SpeakerNet_verification_3x2x256.yaml\")\ndef main(cfg):\n\n    logging.info(f'Hydra config: {OmegaConf.to_yaml(cfg)}')\n    trainer = pl.Trainer(**cfg.trainer)\n    log_dir = exp_manager(trainer, cfg.get(\"exp_manager\", None))\n    speaker_model = EncDecSpeakerLabelModel(cfg=cfg.model, trainer=trainer)\n    trainer.fit(speaker_model)\n    if not trainer.fast_dev_run:\n        model_path = os.path.join(log_dir, '..', 'spkr.nemo')\n        speaker_model.save_to(model_path)\n\n    torch.distributed.destroy_process_group()\n    if hasattr(cfg.model, 'test_ds') and cfg.model.test_ds.manifest_filepath is not None:\n        if trainer.is_global_zero:\n            trainer = pl.Trainer(devices=1, accelerator=cfg.trainer.accelerator, strategy=cfg.trainer.strategy)\n            if speaker_model.prepare_test(trainer):\n                trainer.test(speaker_model)\n\n\nif __name__ == '__main__':\n    main()\n", "path": "examples/speaker_tasks/recognition/speaker_reco.py"}]}