silero-vad README

The project's README from github.com/snakers4/silero-vad. As one markdown file: README.md.

Mailing list : test Mailing list : test License: CC BY-NC 4.0 downloads

Open In Colab Test Package Pypi version Python version

header


Silero VAD


Silero VAD - pre-trained enterprise-grade Voice Activity Detector (also see our STT models).


Real Time Example

https://user-images.githubusercontent.com/36505480/144874384-95f80f6d-a4f1-42cc-9be7-004c891dd481.mp4

Please note, that video loads only if you are logged in your GitHub account.


Fast start


Dependencies

System requirements to run python examples on x86-64 systems:

  • python 3.8+;
  • 1G+ RAM;
  • A modern CPU with AVX, AVX2, AVX-512 or AMX instruction sets.

Dependencies:

  • torch>=1.12.0;
  • torchaudio>=0.12.0 (for I/O only);
  • onnxruntime>=1.16.1 (for ONNX model usage).

Silero VAD uses torchaudio library for audio I/O (torchaudio.info, torchaudio.load, and torchaudio.save), so a proper audio backend is required:

  • Option №1 - FFmpeg backend. conda install -c conda-forge 'ffmpeg<7';
  • Option №2 - sox_io backend. apt-get install sox, TorchAudio is tested on libsox 14.4.2;
  • Option №3 - soundfile backend. pip install soundfile.

If you are planning to run the VAD using solely the onnx-runtime, it will run on any other system architectures where onnx-runtume is supported. In this case please note that:

  • You will have to implement the I/O;
  • You will have to adapt the existing wrappers / examples / post-processing for your use-case.

Using pip: pip install silero-vad

from silero_vad import load_silero_vad, read_audio, get_speech_timestamps
model = load_silero_vad()
wav = read_audio('path_to_audio_file')
speech_timestamps = get_speech_timestamps(
  wav,
  model,
  return_seconds=True,  # Return speech timestamps in seconds (default is samples)
)

Using torch.hub:

import torch
torch.set_num_threads(1)

model, utils = torch.hub.load(repo_or_dir='snakers4/silero-vad', model='silero_vad')
(get_speech_timestamps, _, read_audio, _, _) = utils

wav = read_audio('path_to_audio_file')
speech_timestamps = get_speech_timestamps(
  wav,
  model,
  return_seconds=True,  # Return speech timestamps in seconds (default is samples)
)

Key Features



Typical Use Cases



Links



Get In Touch


Try our models, create an issue, start a discussion, join our telegram chat, email us, read our news.

Please see our wiki for relevant information and email us directly.

Citations

@misc{Silero VAD,
  author = {Silero Team},
  title = {Silero VAD: pre-trained enterprise-grade Voice Activity Detector (VAD), Number Detector and Language Classifier},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/snakers4/silero-vad}},
  commit = {insert_some_commit_here},
  email = {[email protected]}
}

Examples and VAD-based Community Apps


silero-vad (snakers4/silero-vad)

Searching Database…

Что это такое?Silero VAD — это заранее обученный детектор речевой активности промышленного уровня: компактная модель, которая определяет, какие участки аудиопотока содержат речь.
Это готовое приложение или модель, которую я встраиваю в свой код?Это модель с обёртками для Python, а не приложение для конечного пользователя — интерфейса у неё нет. Вы вызываете её из своего кода, передаёте фрагменты аудио и получаете ответ, есть в них речь или нет.
Как добавить её в свой проект?Установите Python-пакет командой 'pip install silero-vad' или загрузите модель через torch.hub, а затем прогоните её на своём аудио.
Что ещё нужно установить вместе с ней?Python 3.8+ с torch>=1.12.0 и torchaudio>=0.12.0 для работы со звуком (нужен бэкенд вроде FFmpeg); onnxruntime>=1.16.1 требуется только если вы используете ONNX-модель.
Она запустится на любом компьютере или требует определённое железо?На x86-64 нужен современный процессор с поддержкой инструкций AVX, AVX2, AVX-512 или AMX и не меньше 1 ГБ оперативной памяти — очень старые процессоры без AVX не подойдут.
Для чего её обычно используют?Типичные задачи: определение речевой активности для IoT/edge/мобильных устройств, очистка данных и общий детект речи, телефония и автоматизация колл-центров, голосовые боты и голосовые интерфейсы.
Можно использовать не только из Python, например из C++, Rust или в браузере?Да — кроме Python она доступна в формате ONNX, есть примеры от сообщества на C++, Rust, Go, Java и C#, а также использование в браузере через ONNX Runtime Web. Работает везде, где работают PyTorch или ONNX-рантаймы.
Есть ли подводные камни с лицензией, если включить её в свой продукт?Нет — лицензия MIT без каких-либо ограничений: без телеметрии, ключей, регистрации, встроенного срока действия и привязки к вендору.
Насколько большая сама модель?Крошечная — JIT-модель весит около двух мегабайт, поэтому она хорошо подходит для edge- и мобильных решений.
Какие частоты дискретизации она принимает?Две: 8000 Гц и 16000 Гц, поэтому аудио нужно предварительно привести к одной из этих частот.
Умеет ли она расшифровывать речь в текст?Нет, она только определяет наличие речи, а не распознаёт слова. Для расшифровки её нужно объединить с отдельной моделью распознавания речи — та же команда выпускает и такие.
Creator
snakers4
Size
120.5 MB
Stars
10.5K
Age
5y
Commits · 90 Days