Downloads · 30 days
86
52% of all-time downloads
OpenVoiceOS/omnilingual-asr-ctc-1b-onnx
omnilingual-asr-ctc-1b-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.
ONNX conversion of Meta's Omnilingual ASR CTC model at the 1B scale (omniASRCTC1Bv2), packaged for onnx-asr.
Downloads · 30 days
86
52% of all-time downloads
All-time downloads
165
Public
Repo size
4.9 GB
Likes
0
Public
Click a slice to open those files.
.data3.9 GB · 79%
From the Hugging Face model README
ONNX conversion of Meta's Omnilingual ASR CTC model at the 1B scale
(omniASR_CTC_1B_v2), packaged for
onnx-asr.
Omnilingual ASR covers more than 1600 languages. For several hundred of them it is the first speech recognition model that exists at all. Aragonese, Mirandese, Sardinian, Ligurian, Neapolitan, Cornish, Navajo, Cherokee and Inuktitut are in the list, and none of them has another open route to speech recognition today.
Model and weights are by Meta Platforms, Inc. and released under Apache-2.0.
This repository redistributes them in ONNX form. The LICENSE file is Meta's
verbatim.
| File | Size | Note |
|---|---|---|
model.onnx + model.onnx.data | 3.9 GB | FP32 |
model.int8.onnx | 1.0 GB | Dynamic INT8 |
tokens.txt | 90 KB | One shared vocabulary, 10288 tokens |
config.json | — | onnx-asr model type and subsampling factor |
test_wavs/ | — | The four upstream sample clips |
import onnx_asr
model = onnx_asr.load_model("omnilingual-ctc", "OpenVoiceOS/omnilingual-asr-ctc-1b-onnx")
print(model.recognize("audio.wav"))
# INT8
model = onnx_asr.load_model(
"omnilingual-ctc", "OpenVoiceOS/omnilingual-asr-ctc-1b-onnx", quantization="int8"
)
Needs the omnilingual-ctc model type, which is in the
TigreGotico onnx-asr fork.
| Item | Value |
|---|---|
| Input | x, float32, [batch, num_samples], raw 16 kHz waveform |
| Output | logits, float32, [batch, num_frames, 10288], unnormalized |
| Feature frontend | none needed — the wav2vec2 convolutional extractor is in the graph |
| Subsampling | 320 samples per frame (20 ms) |
| Blank | index 0, the <s> token |
| Language selection | none — the CTC family is not language-conditioned |
The vocabulary holds real spaces, not the ▁ marker, so the decoder joins tokens
without substitution.
Every number below comes from greedy CTC decoding through onnx-asr on CPU, on
five clips per language. CER and WER are computed after lowercasing and removal of
punctuation. This is a small spot check, not a benchmark.
| Language | Source | Verification level | CER FP32 | CER INT8 | WER FP32 |
|---|---|---|---|---|---|
Swahili (swh) | FLEURS-style, Common Voice 17 sw | Against reference text | 0.052 | 0.056 | 0.133 |
Portuguese (por) | Common Voice 17 pt | Against reference text | 0.242 | 0.300 | 0.362 |
Ligurian (lij) | facebook/omnilingual-asr-corpus | Against reference text, in-domain | 0.044 | 0.046 | 0.185 |
Occitan (oci) | Common Voice 17 oc | Against reference text | 0.141 | 0.135 | 0.517 |
Sardinian (srd) | Common Voice 17 sc | Against reference text | 0.335 | 0.340 | 0.840 |
Neapolitan (nap) | facebook/omnilingual-asr-corpus | Against reference text, in-domain | 0.521 | 0.514 | 0.796 |
German, English, Spanish and French were also transcribed from the four upstream sample clips, and the output matches the spoken sentence word for word.
Twelve clips (two per language) were also decoded with
aadel4/omniASR-CTC-1B-v2, a
Wav2Vec2ForCTC port of the same weights, on CPU in float32.
| Comparison | Result |
|---|---|
| FP32 ONNX vs PyTorch | 12 / 12 exact string match |
| INT8 ONNX vs PyTorch | 2.7 % mean character difference |
The FP32 graph reproduces the reference implementation exactly.
Read the table with care:
INT8 tracks FP32 closely everywhere. The 4x smaller file costs almost no accuracy.
AMD Ryzen 5 7600 (6 cores), CPU only, 6 intra-op threads, on a shared box.
| Runtime | RTF |
|---|---|
| ONNX INT8 | 0.25 – 1.05 |
| ONNX FP32 | 0.84 – 1.9 |
| PyTorch FP32 (reference) | 0.38 mean |
The machine was busy during the ONNX runs and quiet during the PyTorch run, and the FP32 ONNX evaluation ran with graph optimizations disabled to fit in memory, so the ONNX figures are pessimistic. Treat them as upper bounds.
onnx-asr external-data naming@misc{omnilingualasrteam2025omnilingualasropensourcemultilingual,
title={Omnilingual ASR: Open-Source Multilingual Speech Recognition for 1600+ Languages},
author={Omnilingual ASR team},
year={2025},
eprint={2511.09690},
archivePrefix={arXiv},
url={https://arxiv.org/abs/2511.09690},
}