| 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 | |