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.