跳转至

模型

本页列出 zipformer 预训练模型及其在常用开源测试集的性能和对应的使用方法。

模型配置

zipformer 目前提供 xlarge, large, medium, small 等几个变体,具体配置参数见下表。

模型 参数量 配置
xlarge 300M --num-encoder-layers 2,2,4,5,4,2
--feedforward-dim 512,1024,2048,3072,2048,1024
--encoder-dim 192,384,768,1024,768,384
--encoder-unmasked-dim 192,256,320,512,320,256
large 150M --num-encoder-layers 2,2,4,5,4,2
--feedforward-dim 512,768,1536,2048,1536,768
--encoder-dim 192,256,512,768,512,256
--encoder-unmasked-dim 192,192,256,320,256,192
medium 65M --num-encoder-layers 2,2,3,4,3,2
--feedforward-dim 512,768,1024,1536,1024,768
--encoder-dim 192,256,384,512,384,256
--encoder-unmasked-dim 192,192,256,256,256,192
small 25M --num-encoder-layers 2,2,2,2,2,2
--feedforward-dim 512,768,768,768,768,768
--encoder-dim 192,256,256,256,256,256
--encoder-unmasked-dim 192,192,192,192,192,192

中英文模型

非流式模型

名称 参数量 下载地址 aishell test 1 / 2 wenetspeech test-net/meetting Common Voice zh kespeech test librispeech test-clean / other gigaspeech test Common voice en tedium test
xlarge-ctc 300M ModelScope 1.61 / 2.7 5.35 / 6.39 8.26 5.74 3.51 / 7.78 14.53 28.57 15.07
large-ctc 150M ModelScope 2.51 / 3.51 6.23 / 6.67 7.96 8.95 2.62 / 5.17 10.73 12.99 10.11
large-rnnt 150M ModelScope 2.42 / 3.55 6.7 / 7.81 7.92 8.88 2.27 / 4.64 10.08 11.27 9.82
medium-ctc 65M ModelScope 3.08 / 3.98 7.08 / 7.62 9.2 11.23 3.01 / 6.06 11.22 15.28 10.38
medium-rnnt 65M ModelScope 2.67 / 3.67 6.79 / 7.33 8.97 10.67 2.61 / 5.36 10.56 12.94 10.06
small-ctc 35M ModelScope 4.82 / 5.5 10.09 / 11.3 12.76 16.07 5.12 / 10.67 22.27 23.7 11.04
small-rnnt 35M ModelScope 3.92 / 4.74 9.09 / 10.57 11.86 14.84 3.78 / 8.65 16.1 18.21 6.79

目录结构

下面是非流式 zipformer 语音识别模型中包含的文件:

.
├── ctc.fp16.onnx
├── ctc.int8.onnx
├── ctc.onnx
├── data
│   ├── tokens.txt
│   └── zh-en-8776.vocab
├── decoder.onnx
├── encoder.fp16.onnx
├── encoder.int8.onnx
├── encoder.onnx
├── jit_model.pt
├── joiner.fp16.onnx
├── joiner.int8.onnx
├── joiner.onnx
└── model.pt
  • model.pt 是模型的 pytorch state_dict, CTC 和 Transducer 模型共用,可以用来导出 jit scripted 和 onnx 模型,也可以用来作为微调的起点。
  • jit_model.pt 是 jit scripted 模型,ctc 和 Transducer 模型共用,可以用来 torch.jit.script 部署。
  • ctc.onnx, ctc.fp16.onnx, ctc.int8.onnx 是导出的 CTC 头 onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型)。
  • encoder.onnx, encoder.fp16.onnx, encoder.int8.onnx 是导出的 Transducer encoder onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型), decoder.onnx 是导出的 Transducer decoder onnx 格式模型,(注意,decoder 没有 fp16 和 int8 模型), joiner.onnx, joiner.fp16.onnx, joiner.int8.onnx 是导出的 Transducer joiner onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型)。
  • data 目录下是 bpe 模型和 tokens。

使用方法

本节只列出 zipformer 仓库 支持的使用方法(即,基于 python 的使用方法),关于其他语言、操作系统和硬件平台的推理部署方案,请参见部署部分

命令行使用

下面的样例以 zipformer-large 为例,其他模型同理

  • 使用 ctc 头推理
# jit script model
zipformer inference \
    --model zipformer-large/jit_model.pt \
    --ctc 1 \
    --model-type jit \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --model zipformer-large/ctc.onnx \
    --ctc 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --model zipformer-large/ctc.fp16.onnx \
    --ctc 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --model zipformer-large/ctc.int8.onnx \
    --ctc 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav
# jit script model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --ctc 1 \
    --model-type jit \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --ctc 1 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --ctc 1 \
    --dtype fp16 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --ctc 1 \
    --dtype int8 \
    --model-type onnx \
    data/en.wav data/zh.wav
  • 使用 transducer 头推理
# jit script model
zipformer inference \
    --model zipformer-large/jit_model.pt \
    --model-type jit \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --encoder zipformer-large/encoder.onnx \
    --decoder zipformer-large/decoder.onnx \
    --joiner zipformer-large/joiner.onnx \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --encoder zipformer-large/encoder.fp16.onnx \
    --decoder zipformer-large/decoder.onnx \
    --joiner zipformer-large/joiner.fp16.onnx \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --encoder zipformer-large/encoder.int8.onnx \
    --decoder zipformer-large/decoder.onnx \
    --joiner zipformer-large/joiner.int8.onnx \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav
# jit script model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --model-type jit \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --dtype fp16 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --ms-model pkufool/zipformer-large \
    --dtype int8 \
    --model-type onnx \
    data/en.wav data/zh.wav
python api 使用
  • 使用 ctc 头推理
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    model="zipformer-large/jit_model.pt",
    tokens="data/tokens.txt",
    ctc=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large/ctc.onnx",
    tokens="data/tokens.txt",
    ctc=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large/ctc.fp16.onnx",
    tokens="data/tokens.txt",
    ctc=True,
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large/ctc.int8.onnx",
    tokens="data/tokens.txt",
    ctc=True,
)
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    ms_model="pkufool/zipformer-large",
    ctc=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
    ctc=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
    ctc=True,
    dtype="fp16",
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
    ctc=True,
    dtype="int8",
)
  • 使用 transducer 头推理
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    model="zipformer-large/jit_model.pt",
    tokens="data/tokens.txt",
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large/encoder.onnx",
    decoder="zipformer-large/decoder.onnx",
    joiner="zipformer-large/joiner.onnx",
    tokens="data/tokens.txt",
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large/encoder.fp16.onnx",
    decoder="zipformer-large/decoder.onnx",
    joiner="zipformer-large/joiner.fp16.onnx",
    tokens="data/tokens.txt",
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large/encoder.int8.onnx",
    decoder="zipformer-large/decoder.onnx",
    joiner="zipformer-large/joiner.int8.onnx",
    tokens="data/tokens.txt",
)
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    ms_model="pkufool/zipformer-large",
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
    dtype="fp16",
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large",
    dtype="int8",
)

流式模型

下面的评测结果使用 --chunk-size 16 --left-context-frames 128

名称 参数量 下载地址 aishell test 1 / 2 wenetspeech test-net/meetting Common Voice zh kespeech test librispeech test-clean / other gigaspeech test Common voice en tedium test
large-ctc 150M ModelScope 3.78 / 4.71 8.65 / 10.54 11.8 15.35 3.74 / 8.5 12.32 19.7 10.92
large-rnnt 150M ModelScope 3.53 / 4.48 8.31 / 10.27 11.99 14.83 3.26 / 7.51 11.77 17.53 10.82
medium-ctc 65M ModelScope 4.46 / 5.09 9.74 / 11.21 12.68 11.26 4.28 / 9.4 12.96 21.77 11.26
medium-rnnt 65M ModelScope 3.9 / 4.79 9.05 / 10.82 12.41 17.89 3.64 / 8.08 12.13 18.97 10.9
small-ctc 35M ModelScope 6.7 / 7.24 12.92 / 16.45 17.18 23.32 19.4 / 29.66 26.18 33.52 17.67
small-rnnt 35M ModelScope 5.69 / 6.26 12.06 / 16.13 16.51 22.29 8.15 / 16.91 19.77 28.54 14.23

目录结构

下面是流式 zipformer 语音识别模型中包含的文件:

.
├── ctc-chunk-16-left-64.fp16.onnx
├── ctc-chunk-16-left-64.int8.onnx
├── ctc-chunk-16-left-64.onnx
├── ctc-chunk-32-left-128.fp16.onnx
├── ctc-chunk-32-left-128.int8.onnx
├── ctc-chunk-32-left-128.onnx
├── ctc-chunk-64-left-256.fp16.onnx
├── ctc-chunk-64-left-256.int8.onnx
├── ctc-chunk-64-left-256.onnx
├── data
│   ├── tokens.txt
│   └── zh-en-8776.vocab
├── decoder-chunk-16-left-64.onnx
├── decoder-chunk-32-left-128.onnx
├── decoder-chunk-64-left-256.onnx
├── encoder-chunk-16-left-64.fp16.onnx
├── encoder-chunk-16-left-64.int8.onnx
├── encoder-chunk-16-left-64.onnx
├── encoder-chunk-32-left-128.fp16.onnx
├── encoder-chunk-32-left-128.int8.onnx
├── encoder-chunk-32-left-128.onnx
├── encoder-chunk-64-left-256.fp16.onnx
├── encoder-chunk-64-left-256.int8.onnx
├── encoder-chunk-64-left-256.onnx
├── jit_model-chunk-16-left-64.pt
├── jit_model-chunk-32-left-128.pt
├── jit_model-chunk-64-left-256.pt
├── joiner-chunk-16-left-64.fp16.onnx
├── joiner-chunk-16-left-64.int8.onnx
├── joiner-chunk-16-left-64.onnx
├── joiner-chunk-32-left-128.fp16.onnx
├── joiner-chunk-32-left-128.int8.onnx
├── joiner-chunk-32-left-128.onnx
├── joiner-chunk-64-left-256.fp16.onnx
├── joiner-chunk-64-left-256.int8.onnx
├── joiner-chunk-64-left-256.onnx
└── model.pt

导出的流式模型中有三种时延的变体,即 chunk-size=16, left-context-frames=64 (时延 320ms), chunk-size=32, left-context-frames=128 (时延 640ms), chunk-size=64, left-context-frames=256 (时延 1280ms)

  • model.pt 是模型的 pytorch state_dict, CTC 和 Transducer 模型共用,可以用来导出 jit scripted 和 onnx 模型,也可以用来作为微调的起点。
  • jit_model-chunk-{chunk-size}-left-{left-context-frames}.pt 是 jit scripted 模型,ctc 和 Transducer 模型共用,可以用来 torch.jit.script 部署。
  • ctc-chunk-{chunk-size}-left-{left-context-frames}.onnx, ctc-chunk-{chunk-size}-left-{left-context-frames}.fp16.onnx, ctc-chunk-{chunk-size}-left-{left-context-frames}.int8.onnx 是导出的 CTC 头 onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型)。
  • encoder-chunk-{chunk-size}-left-{left-context-frames}.onnx, encoder-chunk-{chunk-size}-left-{left-context-frames}.fp16.onnx, encoder-chunk-{chunk-size}-left-{left-context-frames}.int8.onnx 是导出的 Transducer encoder onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型), decoder-chunk-{chunk-size}-left-{left-context-frames}.onnx 是导出的 Transducer decoder onnx 格式模型,(注意,decoder 没有 fp16 和 int8 模型), joiner-chunk-{chunk-size}-left-{left-context-frames}.onnx, joiner-chunk-{chunk-size}-left-{left-context-frames}.fp16.onnx, joiner-chunk-{chunk-size}-left-{left-context-frames}.int8.onnx 是导出的 Transducer joiner onnx 格式模型,分别对应 float32, float16, int8 数据类型(注意,有些模型可能没有 fp16 和 int8 模型)。
  • data 目录下是 bpe 模型和 tokens。

使用方法

本节只列出 zipformer 仓库 支持的使用方法(即,基于 python 的使用方法),关于其他语言、操作系统和硬件平台的推理部署方案,请参见部署部分

命令行使用

下面的样例以 zipformer-large-streaming 为例,使用 chunk-size=32, left-context-frames=128 配置,其他模型同理

  • 使用 ctc 头推理
# jit script model
zipformer inference \
    --model zipformer-large-streaming/jit_model-chunk-32-left-128.pt \
    --ctc 1 \
    --streaming 1 \
    --model-type jit \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --model zipformer-large-streaming/ctc-chunk-32-left-128.onnx \
    --ctc 1 \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --model zipformer-large-streaming/ctc-chunk-32-left-128.fp16.onnx \
    --ctc 1 \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --model zipformer-large-streaming/ctc-chunk-32-left-128.int8.onnx \
    --ctc 1 \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav
# jit script model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --ctc 1 \
    --streaming 1 \
    --model-type jit \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --ctc 1 \
    --streaming 1 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --ctc 1 \
    --streaming 1 \
    --dtype fp16 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --ctc 1 \
    --streaming 1 \
    --dtype int8 \
    --model-type onnx \
    data/en.wav data/zh.wav
  • 使用 transducer 头推理
# jit script model
zipformer inference \
    --model zipformer-large-streaming/jit_model-chunk-32-left-128.pt \
    --streaming 1 \
    --model-type jit \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --encoder zipformer-large-streaming/encoder-chunk-32-left-128.onnx \
    --decoder zipformer-large-streaming/decoder-chunk-32-left-128.onnx \
    --joiner zipformer-large-streaming/joiner-chunk-32-left-128.onnx \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --encoder zipformer-large-streaming/encoder-chunk-32-left-128.fp16.onnx \
    --decoder zipformer-large-streaming/decoder-chunk-32-left-128.onnx \
    --joiner zipformer-large-streaming/joiner-chunk-32-left-128.fp16.onnx \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --encoder zipformer-large-streaming/encoder-chunk-32-left-128.int8.onnx \
    --decoder zipformer-large-streaming/decoder-chunk-32-left-128.onnx \
    --joiner zipformer-large-streaming/joiner-chunk-32-left-128.int8.onnx \
    --streaming 1 \
    --model-type onnx \
    --tokens data/tokens.txt \
    data/en.wav data/zh.wav
# jit script model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --streaming 1 \
    --model-type jit \
    data/en.wav data/zh.wav

# onnx model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --streaming 1 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx fp16 model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --streaming 1 \
    --dtype fp16 \
    --model-type onnx \
    data/en.wav data/zh.wav

# onnx int8 model
zipformer inference \
    --ms-model pkufool/zipformer-large-streaming \
    --streaming 1 \
    --dtype int8 \
    --model-type onnx \
    data/en.wav data/zh.wav
python api 使用
  • 使用 ctc 头推理
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    model="zipformer-large-streaming/jit_model-chunk-32-left-128.pt",
    tokens="data/tokens.txt",
    streaming=True,
    ctc=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large-streaming/ctc-chunk-32-left-128.onnx",
    tokens="data/tokens.txt",
    streaming=True,
    ctc=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large-streaming/ctc-chunk-32-left-128.fp16.onnx",
    tokens="data/tokens.txt",
    streaming=True,
    ctc=True,
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    model="zipformer-large-streaming/ctc-chunk-32-left-128.int8.onnx",
    tokens="data/tokens.txt",
    streaming=True,
    ctc=True,
)
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    ctc=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    ctc=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    ctc=True,
    dtype="fp16",
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    ctc=True,
    dtype="int8",
)
  • 使用 transducer 头推理
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    model="zipformer-large-streaming/jit_model-chunk-32-left-128.pt",
    tokens="data/tokens.txt",
    streaming=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large-streaming/encoder-chunk-32-left-128.onnx",
    decoder="zipformer-large-streaming/decoder-chunk-32-left-128.onnx",
    joiner="zipformer-large-streaming/joiner-chunk-32-left-128.onnx",
    tokens="data/tokens.txt",
    streaming=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large-streaming/encoder-chunk-32-left-128.fp16.onnx",
    decoder="zipformer-large-streaming/decoder-chunk-32-left-128.onnx",
    joiner="zipformer-large-streaming/joiner-chunk-32-left-128.fp16.onnx",
    tokens="data/tokens.txt",
    streaming=True,
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    encoder="zipformer-large-streaming/encoder-chunk-32-left-128.int8.onnx",
    decoder="zipformer-large-streaming/decoder-chunk-32-left-128.onnx",
    joiner="zipformer-large-streaming/joiner-chunk-32-left-128.int8.onnx",
    tokens="data/tokens.txt",
    streaming=True,
)
from zipformer import inference

# jit script model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="jit",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
)

# onnx model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
)

# onnx fp16 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    dtype="fp16",
)

# onnx int8 model
results = inference(
    ["data/en.wav", "data/zh.wav"],
    model_type="onnx",
    ms_model="pkufool/zipformer-large-streaming",
    streaming=True,
    dtype="int8",
)

评论

如果您通过 github 登录评论有困难, 您可以加入我们的微信QQ群与广大开发者一起交流,也欢迎大家关注我们的微信公众号