Downloads · 30 days
15
22% of all-time downloads
OpenVoiceOS/paraformer-trilingual-zh-yue-en-onnx
paraformer-trilingual-zh-yue-en-onnx is a automatic speech recognition model from OpenVoiceOS. Use it when you need speech turned into text. It is set up for onnx-asr. The card lists the license as apache-2.0.
A SeACo-Paraformer trained on Mandarin, Cantonese (Yue) and English for onnx-asr. This is the strongest available Cantonese model in this collection: it is character identical to native FunASR on every Cantonese and M…
Downloads · 30 days
15
22% of all-time downloads
All-time downloads
69
Public
Repo size
1.1 GB
Likes
0
Public
Click a slice to open those files.
.onnx1.1 GB · 100%
From the Hugging Face model README
A SeACo-Paraformer trained on Mandarin, Cantonese (Yue) and English for onnx-asr.
This is the strongest available Cantonese model in this collection: it is character
identical to native FunASR on every Cantonese and Mandarin test clip, fp32 and int8
alike, and it replaces OpenVoiceOS/whisper-small as the Cantonese default, since
that model is a general multilingual Whisper checkpoint with no Cantonese-specific
training.
Paraformer is the Alibaba FunASR offline non-autoregressive recognizer. A SAN-M encoder reads the audio, a CIF predictor decides how many tokens the utterance has, and a single pass decoder emits all of them at once. There is no decoding loop, so one forward pass gives the transcript.
This checkpoint is a SeACo-Paraformer, the hotword-biasing variant of Paraformer. The
graph exposes two extra outputs used by the bias pathway (decoder_hidden,
pre_acoustic_embeds), but the paraformer model type in onnx-asr only requests
logits and token_num by name, so it loads and runs unmodified, with no hotword
biasing applied. Its speech / speech_lengths inputs and logits / token_num
outputs match the plain Paraformer contract exactly.
The ONNX graphs here are copied byte for byte from the
sherpa-onnx export by
csukuangfj.
Only the side files changed: tokens.txt became vocab.txt, and config.json carries
the FunASR frontend statistics from am.mvn.
The paraformer model type is on the feat/paraformer branch of the TigreGotico
onnx-asr fork.
pip install "onnx-asr[cpu,hub] @ git+https://github.com/TigreGotico/onnx-asr@feat/paraformer"
import onnx_asr
model = onnx_asr.load_model("OpenVoiceOS/paraformer-trilingual-zh-yue-en-onnx")
print(model.recognize("audio.wav"))
| Item | Value |
|---|---|
| Input | speech, float32, [batch, num_frames, 560] |
| Input | speech_lengths, int32, [batch] |
| Output | logits, float32, [batch, num_tokens, 11666] |
| Output | token_num, int32, [batch], the CIF token count |
| Output (unused) | decoder_hidden, pre_acoustic_embeds — SeACo hotword pathway, not read by onnx-asr |
The 560 dim input is the FunASR frontend: an 80 dim kaldi fbank of a waveform scaled to
the int16 range, then a low frame rate stack of 7 frames with a hop of 6, then the
am.mvn mean variance statistics. onnx-asr computes the fbank with its wespeaker
preprocessor and applies the LFR stack and the CMVN in the runtime. Decoding is one
argmax per logits row, stopping at </s> and never reading past token_num.
A streaming Paraformer also exists upstream, using a different graph with encoder and decoder states, and needs a streaming runtime that onnx-asr does not have yet (upstream issue #21). Only the offline model is mirrored here.
model.onnx (871 MB) and model_int8.onnx (245 MB). Both come straight from the
sherpa-onnx repository; nothing was re-quantized here.
2 Mandarin, 2 English and 2 Cantonese clips (FLEURS cmn_hans_cn, en_us,
yue_hant_hk), native FunASR 1.4.0 on the exact ModelScope checkpoint
(dengcunqin/speech_seaco_paraformer_large_asr_nat-zh-cantonese-en-16k-common-vocab11666-pytorch)
with frontend.dither = 0.
| Clip | fp32 | int8 |
|---|---|---|
| zh_1 | identical | identical |
| zh_2 | identical | identical |
| en_1 | identical | identical |
| en_2 | identical | a few words differ (deliberately out-of-domain foreign-cuisine clip) |
| yue_1 | identical | identical |
| yue_2 | identical | identical |
6 of 6 fp32 comparisons and 5 of 6 int8 comparisons are character identical to native FunASR. The one int8 difference is on the same deliberately hard, out-of-domain English clip that shows quantization noise in the other Paraformer mirrors in this collection. Cantonese, the language this checkpoint adds to the collection, is perfect in both precisions.
AMD Ryzen 5 7600, 6 cores, OMP_NUM_THREADS=6, CPU provider, batch 1, warm cache, best
of 3 passes over the 6 test clips.
| Precision | RTF |
|---|---|
| fp32 | 0.0196 |
| int8 | 0.0148 |
Apache License 2.0. The ModelScope model card
states License: Apache License 2.0. The sherpa-onnx mirror carries no license file of
its own, which is why the ModelScope source was read directly rather than the mirror.
dengcunqin/speech_seaco_paraformer_large_asr_nat-zh-cantonese-en-16k-common-vocab11666-pytorch, Apache-2.0.