From 3a4281f4959534b1bf5d01acf0085f4f8e6f2ec8 Mon Sep 17 00:00:00 2001
From: wuhongsheng <664116298@qq.com>
Date: 星期五, 05 七月 2024 00:55:32 +0800
Subject: [PATCH] 优化speakid和语句匹配逻辑,部分解决speakid不从0递增问题 (#1870)
---
funasr/download/runtime_sdk_download_tool.py | 88 ++++++++++++++++++++++++++-----------------
1 files changed, 53 insertions(+), 35 deletions(-)
diff --git a/funasr/download/runtime_sdk_download_tool.py b/funasr/download/runtime_sdk_download_tool.py
index 91c5844..0db17c7 100644
--- a/funasr/download/runtime_sdk_download_tool.py
+++ b/funasr/download/runtime_sdk_download_tool.py
@@ -1,40 +1,58 @@
-from pathlib import Path
import os
import argparse
+from pathlib import Path
+
from funasr.utils.types import str2bool
-parser = argparse.ArgumentParser()
-parser.add_argument('--model-name', type=str, required=True)
-parser.add_argument('--export-dir', type=str, required=True)
-parser.add_argument('--export', type=str2bool, default=True, help='whether to export model')
-parser.add_argument('--type', type=str, default='onnx', help='["onnx", "torch"]')
-parser.add_argument('--device', type=str, default='cpu', help='["cpu", "cuda"]')
-parser.add_argument('--quantize', type=str2bool, default=False, help='export quantized model')
-parser.add_argument('--fallback-num', type=int, default=0, help='amp fallback number')
-parser.add_argument('--audio_in', type=str, default=None, help='["wav", "wav.scp"]')
-parser.add_argument('--model_revision', type=str, default=None, help='model_revision')
-parser.add_argument('--calib_num', type=int, default=200, help='calib max num')
-args = parser.parse_args()
-model_dir = args.model_name
-if not Path(args.model_name).exists():
- from modelscope.hub.snapshot_download import snapshot_download
- try:
- model_dir = snapshot_download(args.model_name, cache_dir=args.export_dir, revision=args.model_revision)
- except:
- raise "model_dir must be model_name in modelscope or local path downloaded from modelscope, but is {}".format \
- (model_dir)
-if args.export:
- model_file = os.path.join(model_dir, 'model.onnx')
- if args.quantize:
- model_file = os.path.join(model_dir, 'model_quant.onnx')
- if not os.path.exists(model_file):
- print(".onnx is not exist, begin to export onnx")
- from funasr.bin.export_model import ModelExport
- export_model = ModelExport(
- cache_dir=args.export_dir,
- onnx=True,
- device="cpu",
- quant=args.quantize,
- )
- export_model.export(model_dir)
\ No newline at end of file
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--model-name", type=str, required=True)
+ parser.add_argument("--export-dir", type=str, required=True)
+ parser.add_argument("--export", type=str2bool, default=True, help="whether to export model")
+ parser.add_argument("--type", type=str, default="onnx", help='["onnx", "torchscript", "bladedisc"]')
+ parser.add_argument("--device", type=str, default="cpu", help='["cpu", "cuda"]')
+ parser.add_argument("--quantize", type=str2bool, default=False, help="export quantized model")
+ parser.add_argument("--fallback-num", type=int, default=0, help="amp fallback number")
+ parser.add_argument("--audio_in", type=str, default=None, help='["wav", "wav.scp"]')
+ parser.add_argument("--model_revision", type=str, default=None, help="model_revision")
+ parser.add_argument("--calib_num", type=int, default=200, help="calib max num")
+ args = parser.parse_args()
+
+ model_dir = args.model_name
+ output_dir = args.model_name
+ if not Path(args.model_name).exists():
+ from modelscope.hub.snapshot_download import snapshot_download
+
+ try:
+ model_dir = snapshot_download(
+ args.model_name, cache_dir=args.export_dir, revision=args.model_revision
+ )
+ output_dir = os.path.join(args.export_dir, args.model_name)
+ except:
+ raise "model_dir must be model_name in modelscope or local path downloaded from modelscope, but is {}".format(
+ model_dir
+ )
+ if args.export:
+ model_file = os.path.join(model_dir, "model.onnx")
+ if args.quantize:
+ model_file = os.path.join(model_dir, "model_quant.onnx")
+ if args.type == "torchscript":
+ model_file = os.path.join(model_dir, "model.torchscript")
+ args.device = "cuda"
+ elif args.type == "bladedisc":
+ model_file = os.path.join(model_dir, "model_blade.torchscript")
+ args.device = "cuda"
+ if not os.path.exists(model_file):
+ print("model is not exist, begin to export " + model_file)
+ from funasr import AutoModel
+
+ export_model = AutoModel(model=args.model_name, output_dir=output_dir, device=args.device)
+ export_model.export(
+ quantize=args.quantize,
+ type=args.type,
+ )
+
+
+if __name__ == "__main__":
+ main()
--
Gitblit v1.9.1