You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
976 B
Python
32 lines
976 B
Python
import pkg_resources
|
|
|
|
import _webrtcvad
|
|
|
|
__author__ = "John Wiseman jjwiseman@gmail.com"
|
|
__copyright__ = "Copyright (C) 2016 John Wiseman"
|
|
__license__ = "MIT"
|
|
__version__ = pkg_resources.get_distribution('webrtcvad').version
|
|
|
|
|
|
class Vad(object):
|
|
def __init__(self, mode=None):
|
|
self._vad = _webrtcvad.create()
|
|
_webrtcvad.init(self._vad)
|
|
if mode is not None:
|
|
self.set_mode(mode)
|
|
|
|
def set_mode(self, mode):
|
|
_webrtcvad.set_mode(self._vad, mode)
|
|
|
|
def is_speech(self, buf, sample_rate, length=None):
|
|
length = length or int(len(buf) / 2)
|
|
if length * 2 > len(buf):
|
|
raise IndexError(
|
|
'buffer has %s frames, but length argument was %s' % (
|
|
int(len(buf) / 2.0), length))
|
|
return _webrtcvad.process(self._vad, sample_rate, buf, length)
|
|
|
|
|
|
def valid_rate_and_frame_length(rate, frame_length):
|
|
return _webrtcvad.valid_rate_and_frame_length(rate, frame_length)
|