Step-Audio / funasr_detach /download /runtime_sdk_download_tool.py
martin
initial
67c46fd
raw
history blame
2.2 kB
import os
import argparse
from pathlib import Path
from funasr_detach.utils.types import str2bool
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", "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_detach.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)
if __name__ == "__main__":
main()