ModuleNotFoundError: No module named 'nemo.collections.asr.metrics.rnnt_wer'
State: closed | Pull request: no
Labels: name: bug

**Describe the bug**

I am trying to run `examples/asr/speech_to_text_eval.py` , but obtaining exception.
This happens on different branches: main, r1.22.0, r1.21.0 etc.

**Steps/Code to reproduce bug**

python examples/asr/speech_to_text_eval.py     model_path=../results/KZ_MCV_ISSAI_V2/2024-03-15_16-25-00/checkpoints/KZ_MCV_ISSAI_V2.nemo     pretrained_name=null     dataset_manifest=~/datasets/kz_test.json     batch_size=32

**Expected behavior**

to obtain the predictions

**Environment overview (please complete the following information)**

 - Environment location: GCP
 - Method of NeMo install: pip install

**Environment details**

If NVIDIA docker image is used you don't need to specify these.
Otherwise, please provide:
- OS version: ubuntu 22.04
- PyTorch version: 2.2.1
- Python version: 3.11.2


Can you paste your full stack trace ? Rnnt wer was merged into wer.py in NeMo 1.23.0, and we tested the eval script but might have missed something. 

```
Traceback (most recent call last):
  File "/home/aidos/exp/NeMo/examples/asr/speech_to_text_eval.py", line 71, in <module>
    import transcribe_speech
  File "/home/aidos/exp/NeMo/examples/asr/transcribe_speech.py", line 34, in <module>
    from nemo.collections.asr.parts.utils.transcribe_utils import (
ImportError: cannot import name 'read_and_maybe_sort_manifest' from 'nemo.collections.asr.parts.utils.transcribe_utils' (/home/aidos/nemo_venv/lib/python3.11/site-packages/nemo/collections/asr/parts/utils/transcribe_utils.py)

```

This exception is being thrown on main branch. 

I tried to switch to r1.23.0 and r1.22.0 etc. Further exceptions were thrown of different branches:
![image](https://github.com/NVIDIA/NeMo/assets/159052091/e09def90-8fec-4b34-b936-2281dd6ca5fe)
![image](https://github.com/NVIDIA/NeMo/assets/159052091/3423944d-1573-433b-ac90-71c4fa854ea9)


You can't use the main branch script with the r1.23 branch or lower Nemo installation, you should switch to the correct branch of the installed NeMo version before using the script. So if you have 1.23 pip installed you need the 1.23.0 branch 

As to main, thanks for the trace, well take a look asap. Fyi @stevehuang52 @tbartley94 

> You can't use the main branch script with the r1.23 branch or lower Nemo installation, you should switch to the correct branch of the installed NeMo version before using the script. So if you have 1.23 pip installed you need the 1.23.0 branch

I'm actually training on main branch. The Nemo toolkit has been install in python venv.
For the inference then, should I create another venv and install r1.23? Is `speech_to_text_eval` script is working stable on that version?

If you do `pip install -e .[all]`, then the main branch version of the scripts are needed.
If you do `pip install nemo_toolkit[all]==VERSION`  then you need to switch to VERSION branch before going to the example scripts. 

The two mismatches you're seeing are
1) Traceback (most recent call last):
  File "/home/aidos/exp/NeMo/examples/asr/speech_to_text_eval.py", line 71, in <module>
    import transcribe_speech
  File "/home/aidos/exp/NeMo/examples/asr/transcribe_speech.py", line 34, in <module>
    from nemo.collections.asr.parts.utils.transcribe_utils import (
ImportError: cannot import name 'read_and_maybe_sort_manifest' from 'nemo.collections.asr.parts.utils.transcribe_utils' (/home/aidos/nemo_venv/lib/python3.11/site-packages/nemo/collections/asr/parts/utils/transcribe_utils.py)

I tried this on both transcribe speech and speech to text eval just a moment ago - they work.
Most likely you have an older version of main branch (or are using 1.23 branch and attempting to use the latest main script) - you need to pull from main again and install it. 

2) The dataclass issue - you're using Python 3.11 presumably. Its a bug with the dataclass handling, ill fix that in a PR in some time. If you want you can switch to 3.10 if its easy, or wait until I fix it.