fairseq icon indicating copy to clipboard operation
fairseq copied to clipboard

How to add a new task on CTC decoding

Open fengpeng-yue opened this issue 3 years ago • 0 comments

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?

fengpeng-yue avatar Jul 26 '22 13:07 fengpeng-yue