개요
Silero는 경량 오픈소스 음성 AI 모델 시리즈로, 특히 Silero VAD(Voice Activity Detection)가 음성 에이전트 생태계에서 사실상 표준으로 사용됩니다. 1MB 미만의 초경량 모델로 로컬 실행이 가능하며, ONNX 포맷으로 다양한 환경에서 구동됩니다.
- 개발: Silero Team
- 라이선스: MIT
- GitHub: https://github.com/snakers4/silero-vad (VAD)
- GitHub: https://github.com/snakers4/silero-models (STT/TTS)
제품 라인업
Silero VAD — 핵심 제품
| 항목 | 사양 |
|---|---|
| 역할 | Voice Activity Detection (음성 활동 감지) |
| 모델 크기 | < 1MB |
| 포맷 | ONNX, PyTorch, TFLite |
| 지연 | ~1ms (CPU에서) |
| 정확도 | WebRTC VAD 대비 우수 |
| 라이선스 | MIT |
기능:
- 16kHz/8kHz 오디오 지원
- 프레임 단위(30~100ms) 음성/비음성 판별
- 음성 시작/종료 타임스탬프 제공
- 배치 처리 및 실시간 스트리밍 모두 지원
- 노이즈 환경에서도 높은 정확도
사용법:
import torch
# VAD 모델 로드
model, utils = torch.hub.load(
repo_or_dir='snakers4/silero-vad',
model='silero_vad'
)
(get_speech_timestamps, _, read_audio, _, _) = utils
# 오디오에서 음성 구간 추출
wav = read_audio('audio.wav', sampling_rate=16000)
speech_timestamps = get_speech_timestamps(wav, model, sampling_rate=16000)
for ts in speech_timestamps:
print(f"음성 구간: {ts['start']/16000:.2f}s ~ {ts['end']/16000:.2f}s")실시간 스트리밍:
# 실시간 VAD
window_size = 512 # 16kHz 기준 32ms
for i in range(0, len(wav), window_size):
chunk = wav[i:i+window_size]
speech_prob = model(chunk, 16000).item()
if speech_prob > 0.5:
print(f"음성 감지 (확률: {speech_prob:.2f})")Silero STT
| 항목 | 사양 |
|---|---|
| 역할 | Speech-to-Text (음성 인식) |
| 지원 언어 | 영어, 독일어, 스페인어 등 |
| 특징 | 경량, 로컬 실행, CTC 기반 |
- Whisper보다 가볍고 빠르지만 정확도는 다소 낮음
- 엣지 디바이스/임베디드 환경에 적합
Silero TTS
| 항목 | 사양 |
|---|---|
| 역할 | Text-to-Speech (음성 합성) |
| 지원 언어 | 영어, 러시아어, 독일어 등 |
| 모델 크기 | ~65MB |
| 특징 | SSML 지원, 다중 화자 |
import torch
model, _ = torch.hub.load(
repo_or_dir='snakers4/silero-models',
model='silero_tts',
language='en',
speaker='v3_en'
)
audio = model.apply_tts(text="Hello world", speaker='en_0', sample_rate=48000)- ElevenLabs/OpenAI TTS 대비 품질은 낮지만 무료 + 로컬 실행
- 인터넷 없는 환경, 프라이버시 중요한 경우에 적합
Silero VAD vs WebRTC VAD
| 항목 | Silero VAD | WebRTC VAD |
|---|---|---|
| 방식 | 딥러닝 (DNN) | 에너지 기반 + GMM |
| 모델 크기 | < 1MB | < 100KB |
| 정확도 | 높음 | 중간 |
| 노이즈 내성 | 강함 | 약함 |
| CPU 사용량 | 낮음 | 최저 |
| 언어 | Python, ONNX | C, Python 래퍼 |
| 실시간 | O | O |
→ 대부분의 경우 Silero VAD 권장 (정확도 우위, 여전히 충분히 경량)
활용 사례
| 용도 | 설명 |
|---|---|
| 음성 에이전트 전처리 | STT 전에 음성 구간만 추출 → 비용/지연 절감 |
| 회의 녹음 | 발화 구간 추출, 무음 구간 스킵 |
| 스트리밍 서비스 | 실시간 자막 생성 시 음성 감지 |
| 콜센터 | 고객 발화 감지, 턴테이킹 관리 |
| IoT/엣지 | 라즈베리파이 등에서 로컬 VAD |
| Whisper 전처리 | 긴 오디오에서 음성 구간만 Whisper에 전달 |
관련 항목
- 음성 AI (Speech AI) — STT/TTS/VAD 종합
- Deepgram — 클라우드 STT 플랫폼
- Twilio — 통신 API
- NVIDIA Jetson — 엣지 AI (Silero 실행 가능)
- Hailo — 엣지 NPU