Реалізація Voice Activity Detection (VAD) для сегментації аудіо VAD визначає, чи є в даному аудіофрагменті мова. Це критичний препроцесинговий крок: без VAD STT-модель витрачає ресурси на тишу і шум, а голосові роботи не знають, коли користувач перестав говорити. ### Основні інструменти Silero VAD — найкращий баланс якості та швидкості для продакшену:```python
import torch import torchaudio
model, utils = torch.hub.load( repo_or_dir='snakers4/silero-vad', model='silero_vad' ) (get_speech_timestamps, _, read_audio, _, _) = utils
audio = read_audio('audio.wav', sampling_rate=16000) speech_timestamps = get_speech_timestamps( audio, model, threshold=0.5, sampling_rate=16000, min_speech_duration_ms=250, min_silence_duration_ms=100 )
[{'start': 1600, 'end': 24320}, ...]
**WebRTC VAD** - мінімальна затримка (<5 мс), підходить для real-time:python
import webrtcvad
import collections
vad = webrtcvad.Vad(3) # агрессивность 0–3
def frame_generator(frame_duration_ms, audio, sample_rate): n = int(sample_rate * (frame_duration_ms / 1000.0) * 2) for offset in range(0, len(audio) - n + 1, n): yield audio[offset:offset + n]







