|
dependencies = ['torch', 'torchaudio'] |
|
import torch |
|
import json |
|
import os |
|
from utils_vad import (init_jit_model, |
|
get_speech_timestamps, |
|
get_number_ts, |
|
get_language, |
|
get_language_and_group, |
|
save_audio, |
|
read_audio, |
|
VADIterator, |
|
collect_chunks, |
|
drop_chunks, |
|
Validator, |
|
OnnxWrapper) |
|
|
|
|
|
def versiontuple(v): |
|
splitted = v.split('+')[0].split(".") |
|
version_list = [] |
|
for i in splitted: |
|
try: |
|
version_list.append(int(i)) |
|
except: |
|
version_list.append(0) |
|
return tuple(version_list) |
|
|
|
|
|
def silero_vad(onnx=False, force_onnx_cpu=False): |
|
"""Silero Voice Activity Detector |
|
Returns a model with a set of utils |
|
Please see https://github.com/snakers4/silero-vad for usage examples |
|
""" |
|
|
|
if not onnx: |
|
installed_version = torch.__version__ |
|
supported_version = '1.12.0' |
|
if versiontuple(installed_version) < versiontuple(supported_version): |
|
raise Exception(f'Please install torch {supported_version} or greater ({installed_version} installed)') |
|
|
|
model_dir = os.path.join(os.path.dirname(__file__), 'files') |
|
if onnx: |
|
model = OnnxWrapper(os.path.join(model_dir, 'silero_vad.onnx'), force_onnx_cpu) |
|
else: |
|
model = init_jit_model(os.path.join(model_dir, 'silero_vad.jit')) |
|
utils = (get_speech_timestamps, |
|
save_audio, |
|
read_audio, |
|
VADIterator, |
|
collect_chunks) |
|
|
|
return model, utils |
|
|
|
|
|
def silero_number_detector(onnx=False, force_onnx_cpu=False): |
|
"""Silero Number Detector |
|
Returns a model with a set of utils |
|
Please see https://github.com/snakers4/silero-vad for usage examples |
|
""" |
|
raise NotImplementedError('This model has been deprecated and is not supported anymore.') |
|
if onnx: |
|
url = 'https://models.silero.ai/vad_models/number_detector.onnx' |
|
else: |
|
url = 'https://models.silero.ai/vad_models/number_detector.jit' |
|
model = Validator(url, force_onnx_cpu) |
|
utils = (get_number_ts, |
|
save_audio, |
|
read_audio, |
|
collect_chunks, |
|
drop_chunks) |
|
|
|
return model, utils |
|
|
|
|
|
def silero_lang_detector(onnx=False, force_onnx_cpu=False): |
|
"""Silero Language Classifier |
|
Returns a model with a set of utils |
|
Please see https://github.com/snakers4/silero-vad for usage examples |
|
""" |
|
raise NotImplementedError('This model has been deprecated and is not supported anymore.') |
|
if onnx: |
|
url = 'https://models.silero.ai/vad_models/number_detector.onnx' |
|
else: |
|
url = 'https://models.silero.ai/vad_models/number_detector.jit' |
|
model = Validator(url, force_onnx_cpu) |
|
utils = (get_language, |
|
read_audio) |
|
|
|
return model, utils |
|
|
|
|
|
def silero_lang_detector_95(onnx=False, force_onnx_cpu=False): |
|
"""Silero Language Classifier (95 languages) |
|
Returns a model with a set of utils |
|
Please see https://github.com/snakers4/silero-vad for usage examples |
|
""" |
|
raise NotImplementedError('This model has been deprecated and is not supported anymore.') |
|
if onnx: |
|
url = 'https://models.silero.ai/vad_models/lang_classifier_95.onnx' |
|
else: |
|
url = 'https://models.silero.ai/vad_models/lang_classifier_95.jit' |
|
model = Validator(url, force_onnx_cpu) |
|
|
|
model_dir = os.path.join(os.path.dirname(__file__), 'files') |
|
with open(os.path.join(model_dir, 'lang_dict_95.json'), 'r') as f: |
|
lang_dict = json.load(f) |
|
|
|
with open(os.path.join(model_dir, 'lang_group_dict_95.json'), 'r') as f: |
|
lang_group_dict = json.load(f) |
|
|
|
utils = (get_language_and_group, read_audio) |
|
|
|
return model, lang_dict, lang_group_dict, utils |
|
|