Даже после установки 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.
Подробнее здесь: https://stackoverflow.com/questions/798 ... trategy-to
Мобильная версия