runtime_sdk_download_tool.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import os
  2. import argparse
  3. from pathlib import Path
  4. from funasr.utils.types import str2bool
  5. def main():
  6. parser = argparse.ArgumentParser()
  7. parser.add_argument('--model-name', type=str, required=True)
  8. parser.add_argument('--export-dir', type=str, required=True)
  9. parser.add_argument('--export', type=str2bool, default=True, help='whether to export model')
  10. parser.add_argument('--type', type=str, default='onnx', help='["onnx", "torch"]')
  11. parser.add_argument('--device', type=str, default='cpu', help='["cpu", "cuda"]')
  12. parser.add_argument('--quantize', type=str2bool, default=False, help='export quantized model')
  13. parser.add_argument('--fallback-num', type=int, default=0, help='amp fallback number')
  14. parser.add_argument('--audio_in', type=str, default=None, help='["wav", "wav.scp"]')
  15. parser.add_argument('--model_revision', type=str, default=None, help='model_revision')
  16. parser.add_argument('--calib_num', type=int, default=200, help='calib max num')
  17. args = parser.parse_args()
  18. model_dir = args.model_name
  19. if not Path(args.model_name).exists():
  20. from modelscope.hub.snapshot_download import snapshot_download
  21. try:
  22. model_dir = snapshot_download(args.model_name, cache_dir=args.export_dir, revision=args.model_revision)
  23. except:
  24. raise "model_dir must be model_name in modelscope or local path downloaded from modelscope, but is {}".format \
  25. (model_dir)
  26. if args.export:
  27. model_file = os.path.join(model_dir, 'model.onnx')
  28. if args.quantize:
  29. model_file = os.path.join(model_dir, 'model_quant.onnx')
  30. if not os.path.exists(model_file):
  31. print(".onnx is not exist, begin to export onnx")
  32. from funasr.bin.export_model import ModelExport
  33. export_model = ModelExport(
  34. cache_dir=args.export_dir,
  35. onnx=True,
  36. device="cpu",
  37. quant=args.quantize,
  38. )
  39. export_model.export(model_dir)
  40. if __name__ == "__main__":
  41. main()