导出 Whisper 模型到 ONNX

导出 Whisper 模型到 ONNX

    正在检查是否收录...

前言

在语音识别领域,Whisper 模型因其出色的性能和灵活性备受关注。为了在更多平台和环境中部署 Whisper 模型,导出为 ONNX 格式是一个有效的途径。ONNX(Open Neural Network Exchange)是一个开放格式,支持不同的深度学习框架之间的模型互操作性。本指南将详细介绍如何将 Whisper 模型导出为 ONNX 格式,并提供测试模型的步骤。

本节描述了如何将 Whisper 模型导出为 ONNX 格式。

可用模型

请注意,我们已经将 Whisper 模型导出为 ONNX 格式,它们可以从以下 Huggingface 仓库中获取:

模型类型 Huggingface 仓库链接 tiny.en 链接 base.en 链接 small.en 链接 distil-small.en 链接 medium.en 链接 distil-medium.en 链接 tiny 链接 base 链接 small 链接 medium 链接

提示:你也可以从 此处 下载它们。

如果你想自己导出模型或了解模型的导出过程,请继续阅读下文。

导出为 ONNX

我们使用 export-onnx.py 来导出 Whisper 模型到 ONNX。

首先,让我们安装依赖并下载导出脚本:

pip install torch openai-whisper onnxruntime onnx git clone https://github.com/k2-fsa/sherpa-onnx/ cd sherpa-onnx/scripts/whisper python3 ./export-onnx.py --help 

它将打印以下信息:

usage: export-onnx.py [-h] --model {tiny,tiny.en,base,base.en,small,small.en,medium,medium.en,large,large-v1,large-v2} optional arguments: -h, --help show this help message and exit --model {tiny,tiny.en,base,base.en,small,small.en,medium,medium.en,large,large-v1,large-v2} 

要导出 tiny.en 模型,我们可以使用:

python3 ./export-onnx.py --model tiny.en 

它将生成以下文件:

(py38) fangjuns-MacBook-Pro:whisper fangjun$ ls -lh tiny.en-* -rw-r--r-- 1 fangjun staff 105M Aug 7 15:43 tiny.en-decoder.int8.onnx -rw-r--r-- 1 fangjun staff 185M Aug 7 15:43 tiny.en-decoder.onnx -rw-r--r-- 1 fangjun staff 12M Aug 7 15:43 tiny.en-encoder.int8.onnx -rw-r--r-- 1 fangjun staff 36M Aug 7 15:43 tiny.en-encoder.onnx -rw-r--r-- 1 fangjun staff 816K Aug 7 15:43 tiny.en-tokens.txt 

tiny.en-encoder.onnx 是编码器模型,tiny.en-decoder.onnx 是解码器模型。

tiny.en-encoder.int8.onnx 是量化的编码器模型,tiny.en-decoder.int8.onnx 是量化的解码器模型。

tiny.en-tokens.txt 包含了令牌表,它将整数映射到令牌和反之。

要将导出的 ONNX 模型转换为 ONNX Runtime 格式,我们可以使用:

python3 -m onnxruntime.tools.convert_onnx_models_to_ort --optimization_style=Fixed ./ 

到目前为止,生成的文件如下:

(py38) fangjuns-MacBook-Pro:whisper fangjun$ ls -lh tiny.en-* -rw-r--r-- 1 fangjun staff 105M Aug 7 15:43 tiny.en-decoder.int8.onnx -rw-r--r-- 1 fangjun staff 185M Aug 7 15:43 tiny.en-decoder.onnx -rw-r--r-- 1 fangjun staff 12M Aug 7 15:43 tiny.en-encoder.int8.onnx -rw-r--r-- 1 fangjun staff 36M Aug 7 15:43 tiny.en-encoder.onnx -rw-r--r-- 1 fangjun staff 816K Aug 7 15:43 tiny.en-tokens.txt 

要检查导出的模型是否工作正常,我们可以使用 test.py。

我们使用 此测试音频。

pip install kaldi-native-fbank wget https://huggingface.co/csukuangfj/sherpa-onnx-whisper-tiny.en/resolve/main/test_wavs/0.wav python3 ./test.py \ --encoder ./tiny.en-encoder.onnx \ --decoder ./tiny.en-decoder.onnx \ --tokens ./tiny.en-tokens.txt \ ./0.wav 

要测试 int8 量化模型,我们可以使用:

python3 ./test.py \ --encoder ./tiny.en-encoder.int8.onnx \ --decoder ./tiny.en-decoder.int8.onnx \ --tokens ./tiny.en-tokens.txt \ ./0.wav 

希望这篇博客能帮助你顺利导出并测试 Whisper ONNX 模型。如果你有任何问题,请随时在评论区留言。

总结

### 文章总结:如何将Whisper模型导出为ONNX格式
#### 前言
在语音识别领域,Whisper 模型因其优异的性能和灵活性而备受关注。为在多种平台和环境中部署该模型,将其导出为ONNX(Open Neural Network Exchange)格式是一种有效方式。ONNX是一种开放格式,支持不同深度学习框架间的模型互操作性。本指南旨在指导用户将Whisper模型导出为ONNX格式,并提供模型测试步骤。
#### 可用模型
已提供多种预导出的Whisper ONNX模型,可直接从Huggingface仓库中获取,包括不同规模和语言的版本。同时,如果用户希望自行导出模型或了解导出过程,可以继续阅读以下步骤。
#### 导出为ONNX
1. **安装必要的库和脚本**:通过`pip`安装PyTorch、OpenAI Whisper、ONNX Runtime和ONNX,并克隆`sherpa-onnx`仓库中的`export-onnx.py`脚本。

2. **使用脚本导出模型**:运行`export-onnx.py`脚本,并选择所需的模型类型(如`tiny.en`)进行导出。此步骤将生成编码器和解码器的ONNX文件,以及一个包含令牌映射表的文本文件。
3. **可选的量化步骤**:生成的模型同时包括标准版本和量化(int8)版本,其中量化版本的模型大小更小,适合对延迟敏感的应用。
4. **转换为ONNX Runtime格式**(如果需要):可使用ONNX Runtime提供的工具将模型进一步优化为ONNX Runtime的专属格式。
#### 测试导出的模型
使用提供的`test.py`脚本和一段测试音频,测试导出的ONNX模型在编码器和解码器协同工作下的性能。若运行正常,将输出相应的语音识别结果。同时,也支持测试量化后的模型。
#### 总结
本文详细介绍了如何将Whisper模型导出为ONNX格式,并提供了预导出的模型下载链接与自行导出、测试模型的具体步骤。旨在帮助用户在不同平台和环境中便利地部署和优化Whisper模型。如有任何问题,欢迎随时交流。 onnxcodewhispertokenmediumpythononnx runtimehuggingfaceerp解码器rpa语音识别互操作性gitmac学习框架openai深度学习clone协同工作
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-18817.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

京东云:要让大模型听见“炮火声”

上一篇

Stable Diffusion与文本生成图像:未来的趋势与挑战

下一篇
  • 复制图片
按住ctrl可打开默认菜单