Native Silero VAD model on Lstm with weights from the upstream ONNX file
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- machine-learning
Direzione di ricerca
Start by reading the existing Lstm state-step API from #823 and the ONNX weight reader in skainet-io-onnx; the issue does not name specific files. Implement the Silero graph with ctx.ops.*, load weights from the pinned upstream ONNX initializers, and add the streaming adapter. Done means parity within 1e-4 over at least 1,000 frames, Android performance under 1 ms per frame, and a Python-side ground-truth entry.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Silero VAD (v6.x, MIT) is the de-facto on-device voice activity detector. A SKaiNET consumer currently has to ship ONNX Runtime only for it, next to whatever runs the ASR model, which costs a second native runtime, an extra ~2.3 MB model on a separate loader, and a minSdk floor set by ORT rather than by SKaiNET.
The model is small: an STFT front end baked into the graph as conv weights, a conv encoder, one LSTM cell with a carried [2,1,128] state, and a dense sigmoid head. Input per call is a 64-sample context prepended to a 512-sample frame at 16 kHz. Lstm with LstmState(h, c) and an explicit step already exists in skainet-lang-core (#823), which was added with exactly this kind of streaming use in mind.
Scope
-
SileroVadmodule (skainet-modelsor a newskainet-model-vad): the graph expressed withctx.ops.*only, so it runs eagerly and lowers through the tape path like every other SKaiNET model. ReuseLstm. - Weights loaded from the initializers of the pinned upstream
silero_vad.onnxthroughskainet-io-onnx's weight reader (no new file format; upstream stays the source of truth). Load the STFT basis as weights rather than re-deriving it so the model matches bit for bit. - Streaming API:
process(frame: FloatArray): Floatreturning speech probability,reset(), and the state carried across calls; aVoiceActivityDetector-shaped adapter for the audio-side libraries. - Parity test: probabilities within 1e-4 of ONNX Runtime over ≥ 1000 consecutive frames from three clips including state carry-over, checked against a committed golden (ORT is a test-time dependency only).
- Android measurement: < 1 ms per frame on one thread with the JNI tier.
- Ground-truth entry so the Python-side suite (#985) covers the op set.
Non-goals
- Importing the Silero graph through the ONNX graph importer. That needs LSTM/Gather/Unsqueeze/Where/If converters and is tracked separately as the verification path; the hand-written module is the shipping path.
Related
- #823 —
Lstmlayer with explicit state step API - #230 — ONNX I/O module MVP
- Lingua principale
- Kotlin
- Stelle
- 52
- Fork
- 15
- Merge medio
- 1g 15h
- PR unite (30g)
- 36
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SKaiNET-developers/SKaiNET
-
coding good first issue size:xs skill:kotlin-core sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
SKaiNET-developers/SKaiNET#1323 ·
I maintainer di solito rispondono entro 1 giorno
-
coding good first issue platform size:xs skill:js sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
SKaiNET-developers/SKaiNET#1232 ·
I maintainer di solito rispondono entro 1 giorno
-
skeep tracking
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
SKaiNET-developers/SKaiNET#1331 ·
I maintainer di solito rispondono entro 1 giorno
-
assessment size:s skill:review sub-issue
Difficoltà 4/5 1-2 giorni Idoneità per principianti 18/100
SKaiNET-developers/SKaiNET#1330 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue size:s skill:docs sub-issue
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
SKaiNET-developers/SKaiNET#1329 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di SKaiNET-developers/SKaiNET
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
Kotlin/kotlin-lsp#288 ·
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
chrisbanes/haze#1536 ·
I maintainer di solito rispondono entro 1 giorno
-
Cassiopeia drops the `präsentiert von` credit printed in the event bodyForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaafk-ok area:data-quality importer size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
enorm-labs/event-junkie#3166 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
rajpreetcodes/Skills_MCP_Server#25 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
com-lihaoyi/mill#7776 ·
I maintainer di solito rispondono entro 1 giorno