def test_leq(self): for _, data in self.__database: algo = essentia.standard.Leq() generated = temporal.leq(data) reference = algo.compute(data.astype(np.float32)) error = utility.get_change(generated, reference) self.assertTrue(error < 1)
def test_duration(self): for fs, data in self.__database: algo = essentia.standard.Duration(sampleRate=fs) generated = temporal.duration(data, fs) reference = algo.compute(data.astype(np.float32)) error = utility.get_change(generated, reference) self.assertTrue(error < 1)
def test_weighted_centroid(self): for fs, data in self.__database: ind = (np.arange(1, len(data) + 1)) * (fs / (2.0 * len(data))) generated = statistics.weighted_centroid(data, ind) centroid, _ = extractor.stSpectralCentroidAndSpread(data, fs) reference = centroid * (fs / 2.0) # de-normalize error = utility.get_change(generated, reference) self.assertTrue(error < 1)
def test_rms(self): for _, data in self.__database: data = np.iinfo(np.uint8).max * data algo = essentia.standard.RMS() generated = temporal.rms(data) reference = algo.compute(data.astype(np.float32)) error = utility.get_change(generated, reference) self.assertTrue(error < 1)
def test_effective_duration(self): for fs, data in self.__database: threshold = random.uniform(0.0, 1.0) algo = essentia.standard.EffectiveDuration( sampleRate=fs, thresholdRatio=threshold) generated = temporal.effective_duration(data, fs, threshold) reference = algo.compute(data.astype(np.float32)) error = utility.get_change(generated, reference) self.assertTrue(error < 1)
def test_spectral_centroid(self): for fs, data in self.__database: _, data = scipy.signal.periodogram(data, fs) data = (data + utility.epsilon) * 100 ind = (np.arange(1, len(data) + 1)) * (fs / (2.0 * len(data))) generated = spectral.spectral_centroid(data, ind) centroid, _ = extractor.stSpectralCentroidAndSpread(data, fs) reference = centroid * (fs / 2.0) # de-normalize error = utility.get_change(generated, reference) self.assertTrue(error < 1)