Awtomatikong salin · Orihinal sa Ingles

Pag - unawa sa Gawain sa Tinig — Silero VAD

p99 · VAP — Mga Modelo

May dalawang modelong VAD: Bahagi ng Pyannote para sa disline stage na may mataas na katumpakan, at Silero VAD Sapagka't umaagos ang mababang-laterensiya sa pag-aanalisa; at kapuwa sila tumatakbong lubos sa on-device.

Pyannote (Offline)

Pyannote segmentation-3.0 ay nagbibigay ng mataas na-acuracy VAD gamit ang isang arkitekturang PyanNet. Ito ay nagpoproseso ng pagsasalita sa 10-pangalawang mga bintana na may 1-pangalawang hakbang, pagkatapos ay ang mga agregregate na nagtutugma ng mga prediksiyon at naglalapat ng hysteresis na pampadulas.

Arkitektura

Bagsag Mga Detalye
Kasalanan40 pinag-aaralang mga pansala ng bandpas (80 kabuuan: 40 cos + 40 kasalanan)
ELSTM4 patong, nakatago=128, bidirectional (256-dim output)
Linear2 linear layer kasama ang LeakyRELU (negative_slope=0.01)
Ilabas7-class softmax na may hysteresis post-processing

Model sukat: °1.49M parameters, −5.7 MB sa disk.

Mga Kasugpong Paso

Paggamit ng CLI

# Offline VAD
.build/release/speech vad recording.wav

# JSON output
.build/release/speech vad recording.wav --json

# Custom thresholds
.build/release/speech vad recording.wav --onset 0.6 --offset 0.3

Silero VAD (Streaming)

Silero VAD ay isang magaang na modelong dumadaloy na nagpoproseso ng 512-sample na mga tipak (32 ms sa 16 kHz). Tumatakbo ito sa 23x real-time sa release mode, ginagawa itong angkop para sa mga live audio applications.

Nabali ang likod: MLX at CoreML na ngayon ay parehong default sa Silero v6.2.1 luwas: aufklarer/Silero-VAD-v6.2.1-MLX at aufklarer/Silero-VAD-v6.2.1-CoreML. Pareho silang nag-iingat ng parehong 32 ms na dumadaloy ng API.

Arkitektura

Bagsag Mga Detalye
PAGTUTOKConv1d (1 hanggang 258 channel), kanan-lamang na repleksiyong pad na 64
Mang - aakit4x Conv1d + ReLU
LSTMNatatagong laki 128, ang estado ay humakot sa mga tipak
DecoderConv1d (128 hanggang 1) sa LSTM nakatagong estado, sagmoid output

Model sukat: iber309K parameters, −1.2 MB sa disk.

Pag - aayos sa Makina ng Estado

Ang dumadaloy na VAD processor ay gumagamit ng isang 4-state machine upang makagawa ng malinis na mga bahagi sa pagsasalita:

  1. katahimikan — walang naririnig na pananalita
  2. HULING HULING PAGSEEech — Unang pagsisimula ay tumawid, naghihintay ng pinakakaunting haba ng pagsasalita
  3. pagsasalita — pinagtibay na bahagi ng pagsasalita ang nagaganap
  4. HULING PAGHAHALAGA — Nakatawid ang pasukang offset, naghihintay ng pinakakaunting katahimikan

Mga Kasugpong Paso

Paggamit ng CLI

# Streaming VAD
.build/release/speech vad-stream recording.wav

# Custom thresholds
.build/release/speech vad-stream recording.wav --onset 0.6 --offset 0.3

# Minimum durations
.build/release/speech vad-stream recording.wav --min-speech 0.5 --min-silence 0.2

# Choose engine
.build/release/speech vad-stream recording.wav --engine coreml

Mga Mapagpipilian

Mapagpipilian Mga Aparity sa Paglalarawan
--onset Parehong Ang pagsisimula ng Pagsasalita ay tanda ng probabilidad
--offset ParehongBinabawasan ng Pagsasalita ang Halaga ng probabilidad
--min-speech Pag - aaksaya Bawasan ang tagal ng pagsasalita (pangalawa)
--min-silence Pag - aaksayaPamakaunting katahimikan upang wakasan ang bahagi (mga segundo)
--engine Pag - aaksayaDeference engine: mlx o coreml
--json Parehong Ang anyo ng output ng JSON
Mahalaga

Para sa mga aktuwal na-time application, gumamit ng speech vad-stream na may Silero VAD. Ang Pyannote model ay nangangailangan ng buong audio file at mas angkop para sa offline dimension processing kung saan ang katumpakan ay ang primary.

Tiyaking huminto sa pamamagitan ng Smart Turn

Ang VAD ay nakaririnig lamang ng katahimikan, kaya't hindi nito maisasaysay ang isang natapos na pangungusap mula sa isang tigil-tigil na mid-sentence. Attach. Smart Turn v3.2 hanggang sa StreamingVADProcessor — o tumakbo speech vad-stream --smart-turn — upang patunayan ang bawat paghinto bago matapos ang segment: ang isang natapos na pangungusap ay agad na natatapos ang pagliko, ang isang mid-sentence ay patuloy na nakikinig.

Modelong mga Pagpapababa ng Pabigat

Huwaran Likod LakiHuggingFace
Silero-VAD-v6.2.1MLX°1.2 MB Aufklarer/Silero-VAD-v6.2.1-MLX
Silero-VAD-v6.2.1CoreML°1.2 MB Aufklarer/Silero-VAD-v6.2.1-CoreML
Pyannote-Segmentation-3.0MLX°5.7 MB Aufklarer/Pyannote-Segmentation-MLX

Swift API

import SpeechVAD

// Offline VAD (Pyannote)
let pyannote = try await PyannoteVADModel.fromPretrained()
let segments = pyannote.detectSpeech(audio: samples, sampleRate: 16000)
for segment in segments {
    print("\(segment.startTime)s - \(segment.endTime)s")
}

// Streaming VAD (Silero)
let silero = try await SileroVADModel.fromPretrained()
let processor = StreamingVADProcessor(model: silero, config: .sileroDefault)
for event in processor.process(samples: audioBuffer) {
    switch event {
    case .speechStarted(let time):
        print("Speech started at \(time)s")
    case .speechEnded(let segment):
        print("Speech: \(segment.startTime)s - \(segment.endTime)s")
    }
}

Makukuha rin ito sa Android, at patuloy Linux & Windows sa pamamagitan ng Speech Core (ONNX Runtime).