From 580b11b57ac4b62f7e2acda73813a4e10e8e4cd3 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期二, 10 十月 2023 17:17:29 +0800
Subject: [PATCH] v0.8.0
---
funasr/build_utils/build_args.py | 189 +++++++++++++++++++++++++++-------------------
1 files changed, 111 insertions(+), 78 deletions(-)
diff --git a/funasr/build_utils/build_args.py b/funasr/build_utils/build_args.py
index 4725c87..08018a7 100644
--- a/funasr/build_utils/build_args.py
+++ b/funasr/build_utils/build_args.py
@@ -1,6 +1,5 @@
-import argparse
-
from funasr.models.ctc import CTC
+from funasr.utils import config_argparse
from funasr.utils.get_default_kwargs import get_default_kwargs
from funasr.utils.nested_dict_action import NestedDictAction
from funasr.utils.types import int_or_none
@@ -8,82 +7,116 @@
from funasr.utils.types import str_or_none
-def build_args(args, extra_task_params):
- parser = argparse.ArgumentParser("Task related config")
- # if args.task_name == "asr":
- from funasr.build_utils.build_asr_model import class_choices_list
- for class_choices in class_choices_list:
- class_choices.add_arguments(parser)
- parser.add_argument(
- "--split_with_space",
- type=str2bool,
- default=True,
- help="whether to split text using <space>",
- )
- parser.add_argument(
- "--seg_dict_file",
- type=str,
- default=None,
- help="seg_dict_file for text processing",
- )
- parser.add_argument(
- "--input_size",
- type=int_or_none,
- default=None,
- help="The number of input dimension of the feature",
- )
- parser.add_argument(
- "--ctc_conf",
- action=NestedDictAction,
- default=get_default_kwargs(CTC),
- help="The keyword arguments for CTC class.",
- )
- parser.add_argument(
- "--cmvn_file",
- type=str_or_none,
- default=None,
- help="The file path of noise scp file.",
- )
+def build_args(args, parser, extra_task_params):
+ task_parser = config_argparse.ArgumentParser("Task related config")
+ if args.task_name == "asr":
+ from funasr.build_utils.build_asr_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
+ "--split_with_space",
+ type=str2bool,
+ default=True,
+ help="whether to split text using <space>",
+ )
+ task_parser.add_argument(
+ "--seg_dict_file",
+ type=str,
+ default=None,
+ help="seg_dict_file for text processing",
+ )
+ task_parser.add_argument(
+ "--input_size",
+ type=int_or_none,
+ default=None,
+ help="The number of input dimension of the feature",
+ )
+ task_parser.add_argument(
+ "--ctc_conf",
+ action=NestedDictAction,
+ default=get_default_kwargs(CTC),
+ help="The keyword arguments for CTC class.",
+ )
+ task_parser.add_argument(
+ "--cmvn_file",
+ type=str_or_none,
+ default=None,
+ help="The path of cmvn file.",
+ )
- # elif args.task_name == "pretrain":
- # from funasr.build_utils.build_pretrain_model import class_choices_list
- # for class_choices in class_choices_list:
- # class_choices.add_arguments(parser)
- # parser.add_argument(
- # "--input_size",
- # type=int_or_none,
- # default=None,
- # help="The number of input dimension of the feature",
- # )
- #
- # elif args.task_name == "lm":
- # from funasr.build_utils.build_lm_model import class_choices_list
- # for class_choices in class_choices_list:
- # class_choices.add_arguments(parser)
- #
- # elif args.task_name == "punc":
- # from funasr.build_utils.build_punc_model import class_choices_list
- # for class_choices in class_choices_list:
- # class_choices.add_arguments(parser)
- #
- # elif args.task_name == "vad":
- # from funasr.build_utils.build_vad_model import class_choices_list
- # for class_choices in class_choices_list:
- # class_choices.add_arguments(parser)
- # parser.add_argument(
- # "--input_size",
- # type=int_or_none,
- # default=None,
- # help="The number of input dimension of the feature",
- # )
- #
- # elif args.task_name == "diar":
- # from funasr.build_utils.build_diar_model import class_choices_list
- # for class_choices in class_choices_list:
- # class_choices.add_arguments(parser)
- #
- # else:
- # raise NotImplementedError("Not supported task: {}".format(args.task_name))
+ elif args.task_name == "pretrain":
+ from funasr.build_utils.build_pretrain_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
+ "--input_size",
+ type=int_or_none,
+ default=None,
+ help="The number of input dimension of the feature",
+ )
+ task_parser.add_argument(
+ "--cmvn_file",
+ type=str_or_none,
+ default=None,
+ help="The path of cmvn file.",
+ )
- task_args = parser.parse_args(extra_task_params)
+ elif args.task_name == "lm":
+ from funasr.build_utils.build_lm_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+
+ elif args.task_name == "punc":
+ from funasr.build_utils.build_punc_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+
+ elif args.task_name == "vad":
+ from funasr.build_utils.build_vad_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
+ "--input_size",
+ type=int_or_none,
+ default=None,
+ help="The number of input dimension of the feature",
+ )
+ task_parser.add_argument(
+ "--cmvn_file",
+ type=str_or_none,
+ default=None,
+ help="The path of cmvn file.",
+ )
+
+ elif args.task_name == "diar":
+ from funasr.build_utils.build_diar_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
+ "--input_size",
+ type=int_or_none,
+ default=None,
+ help="The number of input dimension of the feature",
+ )
+
+ elif args.task_name == "sv":
+ from funasr.build_utils.build_sv_model import class_choices_list
+ for class_choices in class_choices_list:
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
+ "--input_size",
+ type=int_or_none,
+ default=None,
+ help="The number of input dimension of the feature",
+ )
+
+ else:
+ raise NotImplementedError("Not supported task: {}".format(args.task_name))
+
+ for action in parser._actions:
+ if not any(action.dest == a.dest for a in task_parser._actions):
+ task_parser._add_action(action)
+
+ task_parser.set_defaults(**vars(args))
+ task_args = task_parser.parse_args(extra_task_params)
return task_args
--
Gitblit v1.9.1