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()

```

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.

{"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"}]}