changeset 217:b99eb5767ff6

Raise ValueError for bad block_dur values
author Amine Sehili <amine.sehili@gmail.com>
date Sat, 06 Jul 2019 11:17:54 +0100
parents 3708f2eb8a40
children 41e2ce69d4f4
files auditok/util.py
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/auditok/util.py	Sat Jul 06 11:17:54 2019 +0100
+++ b/auditok/util.py	Sat Jul 06 11:17:54 2019 +0100
@@ -698,7 +698,18 @@
 class _FixedSizeAudioReader(_AudioSourceProxy):
     def __init__(self, audio_source, block_dur):
         super(_FixedSizeAudioReader, self).__init__(audio_source)
+
+        if block_dur <= 0:
+            raise ValueError(
+                "block_dur must be > 0, given: {}".format(block_dur)
+            )
+
         self._block_size = int(block_dur * self.sr)
+        if self._block_size == 0:
+            err_msg = "Too small block_dur ({0:f}) for sampling rate ({1}). "
+            err_msg += "block_dur should cover at least one sample "
+            err_msg += "(i.e. 1/{1})"
+            raise ValueError(err_msg.format(block_dur, self.sr))
 
     def read(self):
         return self._audio_source.read(self._block_size)