1import pkg_resources 2 3import _webrtcvad 4 5__author__ = "John Wiseman jjwiseman@gmail.com" 6__copyright__ = "Copyright (C) 2016 John Wiseman" 7__license__ = "MIT" 8__version__ = pkg_resources.get_distribution('webrtcvad').version 9 10 11class Vad(object): 12 def __init__(self, mode=None): 13 self._vad = _webrtcvad.create() 14 _webrtcvad.init(self._vad) 15 if mode is not None: 16 self.set_mode(mode) 17 18 def set_mode(self, mode): 19 _webrtcvad.set_mode(self._vad, mode) 20 21 def is_speech(self, buf, sample_rate, length=None): 22 length = length or int(len(buf) / 2) 23 if length * 2 > len(buf): 24 raise IndexError( 25 'buffer has %s frames, but length argument was %s' % ( 26 int(len(buf) / 2.0), length)) 27 return _webrtcvad.process(self._vad, sample_rate, buf, length) 28 29 30def valid_rate_and_frame_length(rate, frame_length): 31 return _webrtcvad.valid_rate_and_frame_length(rate, frame_length) 32