def METHOD_NAME(self):
    # Start recording audio on the current thread until stop() is
    # called.
    buffer_size = self.config.BUFFER_SIZE
    stream = sounddevice.RawInputStream(
        dtype=self.config.FORMAT,
        channels=self.config.CHANNELS,
        samplerate=self.config.RATE,
        blocksize=buffer_size // 2,
    )
    stream.start()
    try:
        while not self._stop_event.isSet():
            with self._condition:
                data, _ = stream.read(buffer_size // 2)
                self._buffers.append(data)
                # Notify waiting threads (if any).
                self._condition.notifyAll()
            # This improves the performance; we don't need to
            #  process as much audio as the device can read.
            time.sleep(self.read_interval)
    finally:
        stream.close()