mirror of
https://github.com/snakers4/silero-vad.git
synced 2026-02-04 17:39:22 +08:00
95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
dependencies = ['torch', 'torchaudio']
|
|
import torch
|
|
import os
|
|
import json
|
|
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 silero_vad(onnx=False):
|
|
"""Silero Voice Activity Detector
|
|
Returns a model with a set of utils
|
|
Please see https://github.com/snakers4/silero-vad for usage examples
|
|
"""
|
|
model_dir = os.path.join(os.path.dirname(__file__), 'files')
|
|
if onnx:
|
|
model = OnnxWrapper(os.path.join(model_dir, 'silero_vad.onnx'))
|
|
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):
|
|
"""Silero Number Detector
|
|
Returns a model with a set of utils
|
|
Please see https://github.com/snakers4/silero-vad for usage examples
|
|
"""
|
|
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)
|
|
utils = (get_number_ts,
|
|
save_audio,
|
|
read_audio,
|
|
collect_chunks,
|
|
drop_chunks)
|
|
|
|
return model, utils
|
|
|
|
|
|
def silero_lang_detector(onnx=False):
|
|
"""Silero Language Classifier
|
|
Returns a model with a set of utils
|
|
Please see https://github.com/snakers4/silero-vad for usage examples
|
|
"""
|
|
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)
|
|
utils = (get_language,
|
|
read_audio)
|
|
|
|
return model, utils
|
|
|
|
|
|
def silero_lang_detector_95(onnx=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
|
|
"""
|
|
|
|
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)
|
|
|
|
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
|