תרגום מכונה · המקור באנגלית
גילוי קולי - Silero VAD
שני דגמי VAD זמינים: Pyannote עיבוד לא מקוון עם דיוק גבוה, Silero VAD עבור הזרמת גילויים נמוכים, שניהם רצים לגמרי על-ידרון.
Pyannote (Offline)
Pyannote segmentation-3.0 מספק דיוק גבוה VAD באמצעות ארכיטקטורת PyanNet.זה מעבד דיבור ב- 10-II עם צעד 1 השני, ולאחר מכן מצטבר תחזיות חופפות ומתחולת hysteresis חלקה.
ארכיטקטורה
| שלב השלב | פרטים |
|---|---|
| SincNet | 40 מסננים של הלהקה (80: 40 cos + 40 החטא) |
| BLSTM | 4 שכבות, מוסתר=128, דו-צדדי (256-dimפלט) |
| קוויאר | 2 שכבות ליניאריות עם LakyReLU (negative_slope=0.01) |
| Output | 7-class Softmax with hysteresis לאחר עיבוד |
גודל המודל: -1.49M פרמטרים - 5.7 MB על דיסק.
Default Thresholds
- הערה:
0.767– הסתברות שלמעלה מאיזה דיבור מזוהה 0.377– הסתברות שתחתיה תסתיים הדיבור
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.
ארכיטקטורה
| שלב השלב | פרטים |
|---|---|
| STFT | Conv1d (1 עד 258 ערוצים), עמוד השתקפות נכון של 64 |
| Encoder | 4x Conv1d + ReLU |
| LSTM | גודל מוסתר 128, המדינה נשאה על פני גושים |
| Decoder | Conv1d (128 עד 1) על מצב חבוי LSTM, sigmoid פלט |
גודל מודל: -309K פרמטרים - 1.2 MB על דיסק.
מכונת הזרמת המדינה
הסטרימינג VAD מעבד משתמש במכונה של 4 מדינות כדי לייצר פלחי דיבור נקיים:
- silence - שום דיבור לא מזוהה
- עקבו אחריSpeech - סף התחלה חוצה, מחכה לזמן דיבור מינימלי
- speech - קטע דיבור שאושר מראש
- המונחים: pendingsilence - סף התחלה חצה, מחכה למשך זמן שתיקה מינימלי
Default Thresholds
- המונחים:
0.5 0.35- משך הדיבור המינימלי:
0.25s - משך השתיקה המינימלי:
0.1s
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 מודל דורש קובץ אודיו מלא והוא מתאים יותר לעיבוד אצווה לא מקוון שבו הדיוק הוא העדיפות.
VAD שומע רק שתיקה, כך שזה לא יכול להגיד משפט גמור מעצירה באמצע ההסכמה. Smart Turn v3.2 to to StreamingVADProcessor - או לרוץ speech vad-stream --smart-turn - כדי לאשר כל הפסקה לפני שהקטע מסתיים: משפט גמור מסתיים מיד, הפסקה באמצע התמימות ממשיכה להקשיב.
דגם Downloads
| מודל מודל | חזרה | גודל | HuggingFace |
|---|---|---|---|
| Silero-VAD-v6.2.1 | MLX | 1.2 MB | aufklarer/Silero-VAD-v6.2.1-MLX |
| Silero-VAD-v6.2.1 | CoreML | 1.2 MB | aufklarer/Silero-VAD-v6.2.1-CoreML |
| Pyannote-Segmentation-3.0 | MLX | 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")
}
}
זמין גם Androidוכן הלאה Linux & Windows באמצעות דיבור Core (ONNX Runtime).