NeMo ASR: ModuleNotFoundError «ctc_decoders» при изменении стратегии декодирования на поиск по лучу в Google ColabPython

Программы на Python
Ответить
Anonymous
 NeMo ASR: ModuleNotFoundError «ctc_decoders» при изменении стратегии декодирования на поиск по лучу в Google Colab

Сообщение Anonymous »

Я работаю с коллекцией ASR NVIDIA NeMo (модель QuartzNet) в Google Colab. Я пытаюсь оценить модель с помощью CTC Beam Search без языковой модели (установка альфа=0.0).
Даже после установки pyctcdecode и kenlm я сталкиваюсь с ошибкой ModuleNotFoundError: Нет модуля с именем 'ctc_decoders', когда я вызываю Change_decoding_strategy.
Среда:
  • ОС: Google Colab (Ubuntu 22.04 LTS)
  • Python: 3.12
  • Версия NeMo: последняя (устанавливается через pip)
Фрагмент кода:

Код: Выделить всё

import os
from omegaconf import DictConfig

# Creating a dummy file to bypass initial FileNotFoundError for kenlm_path
with open("dummy.bin", "w") as f:
f.write("")

beam_widths = [3, 10, 20]

for width in beam_widths:
try:
# Resetting decoding strategy
quartznet_model_copy.decoding = None

beam_cfg = DictConfig({
"strategy": "beam",
"beam": {
"search_type": "default",
"kenlm_path": os.path.abspath("dummy.bin"),
"width": width,
"alpha": 0.0,
"beta": 0.0,
"return_best_hypothesis": True
}
})

quartznet_model_copy.change_decoding_strategy(decoding_cfg=beam_cfg)
# evaluate_wer call...

except Exception as e:
print(f"Error: {e}")
raise e

Код: Выделить всё

ModuleNotFoundError: No module named 'ctc_decoders'
...
/usr/local/lib/python3.12/dist-packages/nemo/collections/asr/modules/beam_search_decoder.py in __init__(...)
64             from ctc_decoders import Scorer, ctc_beam_search_decoder_batch
65         except ModuleNotFoundError:
---> 66             raise ModuleNotFoundError(
67                 "BeamSearchDecoderWithLM requires the installation of ctc_decoders "
68                 "from scripts/asr_language_modeling/ngram_lm/install_beamsearch_decoders.sh"
Что я пробовал:
  • Установка pyctcdecode через pip, но тип поиска по умолчанию по-прежнему запускает старую зависимость ctc_decoders.
  • Изменение search_type на pyctcdecode, но я все равно получите то же требование для ctc_decoders.
Вопрос: Как я могу использовать Beam Search в NeMo в Google Colab без необходимости компилировать устаревшую библиотеку ctc_decoders? Есть ли способ заставить NeMo использовать pyctcdecode в качестве бэкэнда, не вызывая эту ошибку отсутствия модуля?

Подробнее здесь: https://stackoverflow.com/questions/798 ... trategy-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»