תרגום מכונה · המקור באנגלית

גילוי קולי - Silero VAD

p99 VAP - מודלים

שני דגמי VAD זמינים: Pyannote עיבוד לא מקוון עם דיוק גבוה, Silero VAD עבור הזרמת גילויים נמוכים, שניהם רצים לגמרי על-ידרון.

Pyannote (Offline)

Pyannote segmentation-3.0 מספק דיוק גבוה VAD באמצעות ארכיטקטורת PyanNet.זה מעבד דיבור ב- 10-II עם צעד 1 השני, ולאחר מכן מצטבר תחזיות חופפות ומתחולת hysteresis חלקה.

ארכיטקטורה

שלב השלבפרטים
SincNet40 מסננים של הלהקה (80: 40 cos + 40 החטא)
BLSTM4 שכבות, מוסתר=128, דו-צדדי (256-dimפלט)
קוויאר2 שכבות ליניאריות עם LakyReLU (negative_slope=0.01)
Output7-class Softmax with hysteresis לאחר עיבוד

גודל המודל: -1.49M פרמטרים - 5.7 MB על דיסק.

Default Thresholds

CLI Usage

# 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 הוא מודל זרימה קל משקל כי תהליכים 512-sample נתחים (32 ms ב 16 kHz) הוא פועל בשעה 23x בזמן אמת במצב השחרור, מה שהופך אותו מתאים עבור יישומי אודיו חיים.

פיצול חוזר: MLX ו- CoreML עכשיו כברירת מחדל עבור Silero v6.2.1: aufklarer/Silero-VAD-v6.2.1-MLX ו aufklarer/Silero-VAD-v6.2.1-CoreMLשניהם שומרים את אותו 32 ms הזרמת API.

ארכיטקטורה

שלב השלבפרטים
STFTConv1d (1 עד 258 ערוצים), עמוד השתקפות נכון של 64
Encoder4x Conv1d + ReLU
LSTMגודל מוסתר 128, המדינה נשאה על פני גושים
DecoderConv1d (128 עד 1) על מצב חבוי LSTM, sigmoid פלט

גודל מודל: -309K פרמטרים - 1.2 MB על דיסק.

מכונת הזרמת המדינה

הסטרימינג VAD מעבד משתמש במכונה של 4 מדינות כדי לייצר פלחי דיבור נקיים:

  1. silence - שום דיבור לא מזוהה
  2. עקבו אחריSpeech - סף התחלה חוצה, מחכה לזמן דיבור מינימלי
  3. speech - קטע דיבור שאושר מראש
  4. המונחים: pendingsilence - סף התחלה חצה, מחכה למשך זמן שתיקה מינימלי

Default Thresholds

CLI Usage

# 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

אפשרויות אפשרויות

אפשרותהצעות לתיאור תיאור
--onsetשניהם שניהםדיבור על סף הסתברות
--offsetשניהם שניהםדיבור על סף ההסתברות
--min-speechהזרמת הזרמתסטרימינגמינימום תקופת דיבור (שניים)
--min-silenceהזרמת הזרמתסטרימינגמשך השתיקה המינימלי לקטע הסיום (שניים)
--engineהזרמת הזרמתסטרימינגמנוע ההקצאה: mlx או או coreml
--jsonשניהם שניהםפורמט JSON
חשוב

עבור יישומים בזמן אמת, השתמש speech vad-stream עם Silero VAD. Pyannote מודל דורש קובץ אודיו מלא והוא מתאים יותר לעיבוד אצווה לא מקוון שבו הדיוק הוא העדיפות.

תגית: Smart Turn

VAD שומע רק שתיקה, כך שזה לא יכול להגיד משפט גמור מעצירה באמצע ההסכמה. Smart Turn v3.2 to to StreamingVADProcessor - או לרוץ speech vad-stream --smart-turn - כדי לאשר כל הפסקה לפני שהקטע מסתיים: משפט גמור מסתיים מיד, הפסקה באמצע התמימות ממשיכה להקשיב.

דגם Downloads

מודל מודלחזרהגודלHuggingFace
Silero-VAD-v6.2.1MLX1.2 MBaufklarer/Silero-VAD-v6.2.1-MLX
Silero-VAD-v6.2.1CoreML1.2 MBaufklarer/Silero-VAD-v6.2.1-CoreML
Pyannote-Segmentation-3.0MLX5.7 MBaufklarer/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")
    }
}

זמין גם Androidוכן הלאה Linux & Windows באמצעות דיבור Core (ONNX Runtime).