export model

This commit is contained in:
游雁 2023-02-10 18:50:08 +08:00
parent d4b683433a
commit db0dd1950f

View File

@ -9,14 +9,15 @@ import torch
from funasr.bin.asr_inference_paraformer import Speech2Text
from funasr.export.models import get_model
import numpy as np
import random
class ASRModelExportParaformer:
def __init__(self, cache_dir: Union[Path, str] = None, onnx: bool = True):
assert check_argument_types()
self.set_all_random_seed(0)
if cache_dir is None:
cache_dir = Path.home() / "cache" / "export"
cache_dir = Path.home() / ".cache" / "export"
self.cache_dir = Path(cache_dir)
self.export_config = dict(
@ -25,6 +26,7 @@ class ASRModelExportParaformer:
)
logging.info("output dir: {}".format(self.cache_dir))
self.onnx = onnx
def _export(
self,
@ -61,6 +63,10 @@ class ASRModelExportParaformer:
model_script = torch.jit.trace(model, dummy_input)
model_script.save(os.path.join(path, f'{model.model_name}.torchscripts'))
def set_all_random_seed(self, seed: int):
random.seed(seed)
np.random.seed(seed)
torch.random.manual_seed(seed)
def export(self,
tag_name: str = 'damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
mode: str = 'paraformer',
@ -89,38 +95,6 @@ class ASRModelExportParaformer:
)
self._export(model, tag_name)
# def export_from_modelscope(
# self,
# tag_name: str = 'damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
# ):
#
# from funasr.tasks.asr import ASRTaskParaformer as ASRTask
# from modelscope.hub.snapshot_download import snapshot_download
#
# model_dir = snapshot_download(tag_name, cache_dir=self.cache_dir)
# asr_train_config = os.path.join(model_dir, 'config.yaml')
# asr_model_file = os.path.join(model_dir, 'model.pb')
# cmvn_file = os.path.join(model_dir, 'am.mvn')
# model, asr_train_args = ASRTask.build_model_from_file(
# asr_train_config, asr_model_file, cmvn_file, 'cpu'
# )
# self.export(model, tag_name)
#
# def export_from_local(
# self,
# tag_name: str = '/root/cache/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
# ):
#
# from funasr.tasks.asr import ASRTaskParaformer as ASRTask
#
# model_dir = tag_name
# asr_train_config = os.path.join(model_dir, 'config.yaml')
# asr_model_file = os.path.join(model_dir, 'model.pb')
# cmvn_file = os.path.join(model_dir, 'am.mvn')
# model, asr_train_args = ASRTask.build_model_from_file(
# asr_train_config, asr_model_file, cmvn_file, 'cpu'
# )
# self.export(model, tag_name)
def _export_onnx(self, model, verbose, path, enc_size=None):
if enc_size: