fairseq
fairseq copied to clipboard
How to add a new task on CTC decoding
hello everyone:
I write a new task named "speech_translation" and it is trained by CTC loss. I want to use the file "examples/speech_recognition/new/infer.py" to evaluate its performance.
python3 /fairseq/examples/speech_recognition/new/infer.py --config-dir /fairseq/examples/speech_recognition/new/conf \
--config-name infer task=speech_translation task.data=$DATA_ROOT common.user_dir=/fairseq/examples/speech_to_text \
decoding.type=${decode_type} \
common_eval.path=$ST_SAVE_DIR/${CHECKPOINT_FILENAME} \
decoding.lexicon=$DATA_ROOT/spm_bpe10000.txt \
decoding.unique_wer_file=True \
dataset.gen_subset=dev_clean \
decoding.beam=1500 distributed_training.distributed_world_size=${num_gpus} \
I encounter the error:
Traceback (most recent call last):
File "/opt/tiger/s2st_fairseq/examples/speech_recognition/new/infer.py", line 475, in <module>
cli_main()
File "/opt/tiger/s2st_fairseq/examples/speech_recognition/new/infer.py", line 471, in cli_main
hydra_main() # pylint: disable=no-value-for-parameter
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/main.py", line 37, in decorated_main
strict=strict,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/utils.py", line 347, in _run_hydra
lambda: hydra.run(
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/utils.py", line 201, in run_and_report
raise ex
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/utils.py", line 198, in run_and_report
return func()
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/utils.py", line 350, in <lambda>
overrides=args.overrides,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/hydra.py", line 104, in run
run_mode=RunMode.RUN,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/hydra.py", line 516, in compose_config
from_shell=from_shell,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 156, in load_configuration
from_shell=from_shell,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 262, in _load_configuration
run_mode=run_mode,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 810, in _merge_defaults_into_config
hydra_cfg = merge_defaults_list_into_config(hydra_cfg, user_list)
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 788, in merge_defaults_list_into_config
package_override=default1.package,
File "/home/tiger/.local/lib/python3.7/site-packages/hydra/_internal/config_loader_impl.py", line 720, in _merge_config
raise MissingConfigException(msg, new_cfg, options)
hydra.errors.MissingConfigException: Could not load task/speech_translation.
Available options:
audio_finetuning
audio_pretraining
dummy_lm
dummy_masked_lm
hubert_pretraining
language_modeling
masked_lm
multilingual_language_modeling
sentence_prediction
sentence_prediction_adapters
simul_text_to_text
speech_unit_modeling
translation
translation_from_pretrained_xlm
translation_lev
How can I let the fairseq support new task defined by myself to use CTC decoding?