From c506a5f67eef7a1dd4b7bff2dcd2abbad74a3ad2 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期二, 27 六月 2023 16:57:13 +0800
Subject: [PATCH] sdk utils
---
.gitignore | 3 ++-
funasr/utils/runtime_sdk_download_tool.py | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+), 1 deletions(-)
diff --git a/.gitignore b/.gitignore
index 58bee36..d47674c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,5 @@
build
funasr.egg-info
docs/_build
-modelscope
\ No newline at end of file
+modelscope
+samples
\ No newline at end of file
diff --git a/funasr/utils/runtime_sdk_download_tool.py b/funasr/utils/runtime_sdk_download_tool.py
new file mode 100644
index 0000000..dbddd55
--- /dev/null
+++ b/funasr/utils/runtime_sdk_download_tool.py
@@ -0,0 +1,38 @@
+from pathlib import Path
+import os
+import argparse
+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('--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('--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)
+ except:
+ raise "model_dir must be model_name in modelscope or local path downloaded from modelscope, but is {}".format \
+ (model_dir)
+
+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.export.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
--
Gitblit v1.9.1