Mercurial > hg > auditok
changeset 154:dde6da718b42
Add RawAudioSource class
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Sun, 24 Feb 2019 15:47:42 +0100 |
parents | 39559566226b |
children | 8b1b9010d6ae |
files | auditok/io.py |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/auditok/io.py Sun Feb 24 15:21:19 2019 +0100 +++ b/auditok/io.py Sun Feb 24 15:47:42 2019 +0100 @@ -491,6 +491,27 @@ return None +class RawAudioSource(_FileAudioSource, Rewindable): + def __init__( + self, file, sampling_rate, sample_width, channels, use_channel=0 + ): + _FileAudioSource.__init__( + self, sampling_rate, sample_width, channels, use_channel + ) + self._file = file + self._audio_stream = None + self._sample_size = sample_width * channels + + def open(self): + if self._audio_stream is None: + self._audio_stream = open(self._file) + + def _read_from_stream(self, size): + bytes_to_read = size * self._sample_size + data = self._audio_stream.read(bytes_to_read) + return data + + class WaveAudioSource(AudioSource): """ A class for an `AudioSource` that reads data from a wave file.