Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
snakers4
GitHub Repository: snakers4/silero-vad
Path: blob/master/hubconf.py
1165 views
1
dependencies = ['torch', 'torchaudio']
2
import torch
3
import os
4
import sys
5
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
6
from silero_vad.utils_vad import (init_jit_model,
7
get_speech_timestamps,
8
save_audio,
9
read_audio,
10
VADIterator,
11
collect_chunks,
12
OnnxWrapper)
13
14
15
def versiontuple(v):
16
splitted = v.split('+')[0].split(".")
17
version_list = []
18
for i in splitted:
19
try:
20
version_list.append(int(i))
21
except:
22
version_list.append(0)
23
return tuple(version_list)
24
25
26
def silero_vad(onnx=False, force_onnx_cpu=False, opset_version=16):
27
"""Silero Voice Activity Detector
28
Returns a model with a set of utils
29
Please see https://github.com/snakers4/silero-vad for usage examples
30
"""
31
available_ops = [15, 16]
32
if onnx and opset_version not in available_ops:
33
raise Exception(f'Available ONNX opset_version: {available_ops}')
34
35
if not onnx:
36
installed_version = torch.__version__
37
supported_version = '1.12.0'
38
if versiontuple(installed_version) < versiontuple(supported_version):
39
raise Exception(f'Please install torch {supported_version} or greater ({installed_version} installed)')
40
41
model_dir = os.path.join(os.path.dirname(__file__), 'src', 'silero_vad', 'data')
42
if onnx:
43
if opset_version == 16:
44
model_name = 'silero_vad.onnx'
45
else:
46
model_name = f'silero_vad_16k_op{opset_version}.onnx'
47
model = OnnxWrapper(os.path.join(model_dir, model_name), force_onnx_cpu)
48
else:
49
model = init_jit_model(os.path.join(model_dir, 'silero_vad.jit'))
50
utils = (get_speech_timestamps,
51
save_audio,
52
read_audio,
53
VADIterator,
54
collect_chunks)
55
56
return model, utils
57
58