| | |
| | | ## Using paraformer with ONNXRuntime |
| | | ## Using funasr with ONNXRuntime |
| | | |
| | | <p align="left"> |
| | | <a href=""><img src="https://img.shields.io/badge/Python->=3.7,<=3.10-aff.svg"></a> |
| | | <a href=""><img src="https://img.shields.io/badge/OS-Linux%2C%20Win%2C%20Mac-pink.svg"></a> |
| | | </p> |
| | | |
| | | ### Introduction |
| | | - Model comes from [speech_paraformer](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary). |
| | | |
| | | |
| | | ### Steps: |
| | | 1. Download the whole directory (`funasr/runtime/python/onnxruntime`) to the local. |
| | | 2. Install the related packages. |
| | | ```bash |
| | | pip install requirements.txt |
| | | ``` |
| | | 3. Download the model. |
| | | - [Download Link](https://swap.oss-cn-hangzhou.aliyuncs.com/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.onnx?OSSAccessKeyId=LTAI4FxMqzhBUx5XD4mKs296&Expires=2036094510&Signature=agmtMkxLEviGg3Rt3gOO4PvfrJY%3D) |
| | | - Put the model into the `resources/models`. |
| | | ```text |
| | | . |
| | | ├── demo.py |
| | | ├── rapid_paraformer |
| | | │ ├── __init__.py |
| | | │ ├── kaldifeat |
| | | │ ├── __pycache__ |
| | | │ ├── rapid_paraformer.py |
| | | │ └── utils.py |
| | | ├── README.md |
| | | ├── requirements.txt |
| | | ├── resources |
| | | │ ├── config.yaml |
| | | │ └── models |
| | | │ ├── am.mvn |
| | | │ ├── model.onnx # Put it here. |
| | | │ └── token_list.pkl |
| | | ├── test_onnx.py |
| | | ├── tests |
| | | │ ├── __pycache__ |
| | | │ └── test_infer.py |
| | | └── test_wavs |
| | | ├── 0478_00017.wav |
| | | └── asr_example_zh.wav |
| | | ``` |
| | | 4. Run the demo. |
| | | 1. Export the model. |
| | | - Command: (`Tips`: torch >= 1.11.0 is required.) |
| | | |
| | | More details ref to ([export docs](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export)) |
| | | |
| | | - `e.g.`, Export model from modelscope |
| | | ```shell |
| | | python -m funasr.export.export_model --model-name damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type onnx --quantize False |
| | | ``` |
| | | - `e.g.`, Export model from local path, the model'name must be `model.pb`. |
| | | ```shell |
| | | python -m funasr.export.export_model --model-name ./damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --export-dir ./export --type onnx --quantize False |
| | | ``` |
| | | |
| | | |
| | | 2. Install the `funasr_onnx` |
| | | |
| | | install from pip |
| | | ```shell |
| | | pip install --upgrade funasr_onnx -i https://pypi.Python.org/simple |
| | | ``` |
| | | |
| | | or install from source code |
| | | |
| | | ```shell |
| | | git clone https://github.com/alibaba/FunASR.git && cd FunASR |
| | | cd funasr/runtime/python/funasr_onnx |
| | | python setup.py build |
| | | python setup.py install |
| | | ``` |
| | | |
| | | 3. Run the demo. |
| | | - Model_dir: the model path, which contains `model.onnx`, `config.yaml`, `am.mvn`. |
| | | - Input: wav formt file, support formats: `str, np.ndarray, List[str]` |
| | | - Output: `List[str]`: recognition result. |
| | | - Example: |
| | | ```python |
| | | from rapid_paraformer import RapidParaformer |
| | | from funasr_onnx import Paraformer |
| | | |
| | | model_dir = "/nfs/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" |
| | | model = Paraformer(model_dir, batch_size=1) |
| | | |
| | | config_path = 'resources/config.yaml' |
| | | paraformer = RapidParaformer(config_path) |
| | | wav_path = ['/nfs/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/example/asr_example.wav'] |
| | | |
| | | wav_path = ['test_wavs/0478_00017.wav'] |
| | | |
| | | result = paraformer(wav_path) |
| | | result = model(wav_path) |
| | | print(result) |
| | | ``` |
| | | |
| | | ## Performance benchmark |
| | | |
| | | Please ref to [benchmark](https://github.com/alibaba-damo-academy/FunASR/blob/main/funasr/runtime/python/benchmark_onnx.md) |
| | | |
| | | ## Acknowledge |
| | | 1. We acknowledge [SWHL](https://github.com/RapidAI/FunASR) for contributing the onnxruntime(pthon api). |
| | | 1. This project is maintained by [FunASR community](https://github.com/alibaba-damo-academy/FunASR). |
| | | 2. We acknowledge [SWHL](https://github.com/RapidAI/RapidASR) for contributing the onnxruntime (for paraformer model). |