Views
No views yet
speechbrain/lang-id-voxlingua107-ecapa
for use as the language-identification backend in
Vernacula.scripts/voxlingua107_export/speechbrain/lang-id-voxlingua107-ecapaSTFT op replaced with two Conv1D passes (cos + sin DFT basis, windowed): preprocessing wall-time share drops from 85.6% to 14% — roughly 27× faster on CUDA than the stock SpeechBrain export, which forced host fallback for the STFT op..data sidecar — minimal distribution friction for clients.sweep_duration_accuracy.py) shows confidence plateau beyond ~30 s; clips under 5 s are the noisy regime.bench_iobinding.py) isolates H2D / D2H allocation and copy overhead by comparing numpy ↔ session.run vs GPU OrtValue buffers + run_with_iobinding for both serial and batched (b=16) workloads.| File | Purpose |
|---|---|
voxlingua107.onnx | End-to-end graph: raw 16 kHz audio → 107-class logits + 256-dim embedding |
lang_map.json | Class index → { iso, name } lookup |
manifest.json | Per-file MD5 hashes for integrity checks |
scripts/voxlingua107_export/
in the Vernacula repo. The STFT op is replaced with two Conv1D passes
(cos + sin basis, windowed) so the preprocessing path has CUDA kernels
end-to-end — roughly a 27× speedup on CUDA vs the stock SpeechBrain export.huggingface_hub
and run with onnxruntime:1from huggingface_hub import snapshot_download
2import onnxruntime as ort
3import json
4
5path = snapshot_download(repo_id="christopherthompson81/voxlingua107-lid-onnx")
6sess = ort.InferenceSession(f"{path}/voxlingua107.onnx")
7lang_map = json.load(open(f"{path}/lang_map.json"))
8# Feed raw 16 kHz mono PCM as float32 [batch, samples]
9# Outputs: logits [batch, 107] and embedding [batch, 256]1@inproceedings{valk2021slt,
2 title={{VoxLingua107}: a Dataset for Spoken Language Recognition},
3 author={J{\"o}rgen Valk and Tanel Alum{\"a}e},
4 booktitle={Proc. IEEE SLT Workshop},
5 year={2021},
6}scripts/voxlingua107_export/) — the export pipeline that produced these filesspeechbrain/lang-id-voxlingua107-ecapa — upstream SpeechBrain model card