'Read samples from the stream.  Do not call when using
*non-blocking* mode.
:param num_frames: The number of frames to read.
:param exception_on_overflow:
Specifies whether an IOError exception should be thrown
(or silently ignored) on input buffer overflow. Defaults
to True.
:raises IOError: if stream is not an input stream
or if the read operation was unsuccessful.
:rtype: string'

def read(self, num_frames, exception_on_overflow=True):

    if (not self._is_input):
        raise IOError('Not    input    stream', paCanNotReadFromAnOutputOnlyStream)
    return pa.read_stream(self._stream, num_frames, exception_on_overflow)
