Downloads · 30 days
0
crash-sv/scribe-ecapa-voxlingua107
scribe-ecapa-voxlingua107 is a audio classification model from crash-sv. Use it for the audio classification task on the model card, and read the license before you ship it in a product. It is set up for onnxruntime. The card lists the license as apache-2.0.
A byte-for-byte copy of christopherthompson81/voxlingua107-lid-onnx, published here so that Scribe SV — a Windows dictation and translation utility — can download it on demand from a repository we control. Nothing was…
Downloads · 30 days
0
Access
Public
Updated Sep 30, 2026
Repo size
86.7 MB
Likes
0
Public
Click a slice to open those files.
.onnx86.7 MB · 100%
From the Hugging Face model README
A byte-for-byte copy of
christopherthompson81/voxlingua107-lid-onnx,
published here so that Scribe SV — a Windows dictation and
translation utility — can download it on demand from a repository we control. Nothing was
retrained, converted or modified; the voxlingua107.onnx file has the same MD5
(90101ebfee08d96afe7d516e988910fa) as the upstream one.
On machines without a CUDA GPU, dictation runs on Parakeet TDT 0.6b v3, which covers 25 European languages. Speech in any other language would come back as plausible-looking nonsense (we measured 106.9 % WER on Turkish), so before recognising an audio file we ask this model one binary question: is the language of this audio inside the Parakeet tier, or outside it?
The answer is obtained by masking the 107-class softmax down to the 25 Parakeet languages and
comparing the largest remaining probability against a threshold. The predicted language name
is never used — inside the tier Parakeet writes in the language it hears, and outside it
Whisper detects the language itself. Only if the verdict is "outside" does the application
offer to download
crash-sv/scribe-whisper-turbo-int8.
FLEURS clips, CPU (CPUExecutionProvider), 10-second segments, 200 clips per language:
| time per clip | 87.6 ms (10 s segment), 104.0 ms (30 s) |
| masked max-probability, in-tier clips (ru/en/de/fr/es) | min 0.088, median 0.996 |
| masked max-probability, out-of-tier clips (tr/zh/ja/ko/ar) | 0.0000 for all 100 clips |
| threshold we ship | 0.05 — recall 100 %, false alarm 0 % |
Errors inside the mask (e.g. Russian scored as Ukrainian) are harmless for us: both languages are in the tier, and the name is discarded anyway.
| File | Purpose |
|---|---|
voxlingua107.onnx | End-to-end graph: raw 16 kHz PCM → 107-class logits + 256-dim embedding |
lang_map.json | Class index → { iso, name } |
manifest.json | Per-file MD5 hashes, as published upstream |
Preprocessing (FBANK, per-utterance mean-variance normalisation) is folded into the graph, so callers send raw PCM and nothing else.
import json
import numpy as np
import onnxruntime as ort
from huggingface_hub import snapshot_download
folder = snapshot_download("crash-sv/scribe-ecapa-voxlingua107")
session = ort.InferenceSession(f"{folder}/voxlingua107.onnx",
providers=["CPUExecutionProvider"])
(logits,) = session.run(["logits"],
{session.get_inputs()[0].name: pcm_16k_float32[None, :]})
christopherthompson81/voxlingua107-lid-onnx
(part of Vernacula) — the STFT op is
replaced by two Conv1D passes so the whole preprocessing path has CUDA kernels.speechbrain/lang-id-voxlingua107-ecapa
by the SpeechBrain team, trained on the
VoxLingua107 dataset
(CC-BY-4.0).Jörgen Valk and Tanel Alumäe. VoxLingua107: a Dataset for Spoken Language Recognition. Proc. IEEE SLT Workshop, 2021.
<!-- legal:begin — generated by tools/legal_package.py, do not edit -->License text (LICENSE-Apache-2.0.txt) lies in the repository root.
This republication keeps the original licenses.
<!-- legal:end -->