From 33d3d2084403fd34b79c835d2f2fe04f6cd8f738 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期三, 13 九月 2023 09:33:54 +0800
Subject: [PATCH] Merge branch 'main' of github.com:alibaba-damo-academy/FunASR add
---
funasr/build_utils/build_args.py | 162 +++++++++++++++++++++++------------------------------
1 files changed, 71 insertions(+), 91 deletions(-)
diff --git a/funasr/build_utils/build_args.py b/funasr/build_utils/build_args.py
index e85597e..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,135 +7,116 @@
from funasr.utils.types import str_or_none
-def build_args(args):
- parser = argparse.ArgumentParser("Task related config")
+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:
- # Append --<name> and --<name>_conf.
- # e.g. --encoder and --encoder_conf
- class_choices.add_arguments(parser)
- parser.add_argument(
- "--token_list",
- type=str_or_none,
- default=None,
- help="A text mapping int-id to token",
- )
- parser.add_argument(
+ class_choices.add_arguments(task_parser)
+ task_parser.add_argument(
"--split_with_space",
type=str2bool,
default=True,
help="whether to split text using <space>",
)
- parser.add_argument(
+ task_parser.add_argument(
"--seg_dict_file",
type=str,
default=None,
help="seg_dict_file for text processing",
)
- parser.add_argument(
- "--init",
- type=lambda x: str_or_none(x.lower()),
- default=None,
- help="The initialization method",
- choices=[
- "chainer",
- "xavier_uniform",
- "xavier_normal",
- "kaiming_uniform",
- "kaiming_normal",
- None,
- ],
- )
- parser.add_argument(
+ task_parser.add_argument(
"--input_size",
type=int_or_none,
default=None,
help="The number of input dimension of the feature",
)
- parser.add_argument(
+ task_parser.add_argument(
"--ctc_conf",
action=NestedDictAction,
default=get_default_kwargs(CTC),
help="The keyword arguments for CTC class.",
)
- parser.add_argument(
- "--token_type",
- type=str,
- default="bpe",
- choices=["bpe", "char", "word", "phn"],
- help="The text will be tokenized " "in the specified level token",
- )
- parser.add_argument(
- "--bpemodel",
- type=str_or_none,
- default=None,
- help="The model file of sentencepiece",
- )
- parser.add_argument(
+ task_parser.add_argument(
"--cmvn_file",
type=str_or_none,
default=None,
- help="The file path of noise scp file.",
+ 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:
- # Append --<name> and --<name>_conf.
- # e.g. --encoder and --encoder_conf
- class_choices.add_arguments(parser)
- parser.add_argument(
- "--init",
- type=lambda x: str_or_none(x.lower()),
- default=None,
- help="The initialization method",
- choices=[
- "chainer",
- "xavier_uniform",
- "xavier_normal",
- "kaiming_uniform",
- "kaiming_normal",
- None,
- ],
- )
- parser.add_argument(
+ 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",
)
- parser.add_argument(
- "--feats_type",
- type=str,
- default='fbank',
- help="feats type, e.g. fbank, wav, ark_wav(needed to be scale normalization)",
+ task_parser.add_argument(
+ "--cmvn_file",
+ type=str_or_none,
+ default=None,
+ help="The path of cmvn file.",
)
- parser.add_argument(
- "--noise_db_range",
- type=str,
- default="13_15",
- help="The range of noise decibel level.",
+
+ 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",
)
- parser.add_argument(
- "--pred_masked_weight",
- type=float,
- default=1.0,
- help="weight for predictive loss for masked frames",
+ task_parser.add_argument(
+ "--cmvn_file",
+ type=str_or_none,
+ default=None,
+ help="The path of cmvn file.",
)
- parser.add_argument(
- "--pred_nomask_weight",
- type=float,
- default=0.0,
- help="weight for predictive loss for unmasked frames",
+
+ 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",
)
- parser.add_argument(
- "--loss_weights",
- type=float,
- default=0.0,
- help="weights for additional loss terms (not first one)",
+
+ 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))
- args = parser.parse_args()
- return args
+ 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