Source code for malaya_speech.model.webrtc
import numpy as np
from malaya_speech.utils.astype import to_byte, to_ndarray, float_to_int
from malaya_speech.model.frame import Frame
[docs]class WebRTC:
__name__ = 'vad'
def __str__(self):
return f'<{self.__name__}>'
def __init__(self, vad, sample_rate=16000, minimum_amplitude: int = 100):
self.vad = vad
self.sample_rate = sample_rate
self.minimum_amplitude = minimum_amplitude
self.minimum_sample = 30
self.maximum_sample = 30
def is_speech(self, frame):
if isinstance(frame, Frame):
frame = frame.array
frame = to_byte(frame)
minimum = np.mean(np.abs(to_ndarray(frame)))
return (
self.vad.is_speech(frame, self.sample_rate)
and minimum >= self.minimum_amplitude
)
def __call__(self, frame):
return self.is_speech(frame)