From fbf76853b2c9bb21a829de2ac76d9459391ae889 Mon Sep 17 00:00:00 2001 From: Thomas Fillon Date: Mon, 16 Dec 2013 09:24:20 +0100 Subject: [PATCH] Analyzer : propagate recent changes to IRIt_Speech analyzers --- timeside/analyzer/irit_speech_4hz.py | 18 +++++++++++------- timeside/analyzer/irit_speech_entropy.py | 21 ++++++++++----------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/timeside/analyzer/irit_speech_4hz.py b/timeside/analyzer/irit_speech_4hz.py index 1e5e876..ea86677 100644 --- a/timeside/analyzer/irit_speech_4hz.py +++ b/timeside/analyzer/irit_speech_4hz.py @@ -48,7 +48,8 @@ class IRITSpeech4Hz(Analyzer): ''' @interfacedoc - def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None): + def setup(self, channels=None, samplerate=None, blocksize=None, + totalframes=None): super(IRITSpeech4Hz, self).setup( channels, samplerate, blocksize, totalframes) self.energy4hz = [] @@ -135,13 +136,16 @@ class IRITSpeech4Hz(Analyzer): modEnergy.data_object.value = conf - self._results.add(modEnergy) + self.process_pipe.results.add(modEnergy) # Segment convert = {False: 0, True: 1} label = {0: 'nonSpeech', 1: 'Speech'} segList = segmentFromValues(modEnergyValue > self.threshold) + # Hint : Median filtering could imrove smoothness of the result + # from scipy.signal import medfilt + # segList = segmentFromValues(medfilt(modEnergyValue > self.threshold, 31)) segs = self.new_result(data_mode='label', time_mode='segment') segs.id_metadata.id += '.' + 'segments' @@ -151,12 +155,12 @@ class IRITSpeech4Hz(Analyzer): segs.data_object.label = [convert[s[2]] for s in segList] segs.data_object.time = [(float(s[0]) * self.blocksize() / - self.samplerate()) - for s in segList] + self.samplerate()) + for s in segList] segs.data_object.duration = [(float(s[1]-s[0]) * self.blocksize() / - self.samplerate()) - for s in segList] + self.samplerate()) + for s in segList] - self._results.add(segs) + self.process_pipe.results.add(segs) return diff --git a/timeside/analyzer/irit_speech_entropy.py b/timeside/analyzer/irit_speech_entropy.py index 8f84544..8d13ab4 100644 --- a/timeside/analyzer/irit_speech_entropy.py +++ b/timeside/analyzer/irit_speech_entropy.py @@ -19,7 +19,7 @@ # Author: Maxime Le Coz -from timeside.core import Processor, implements, interfacedoc +from timeside.core import implements, interfacedoc from timeside.analyzer.core import Analyzer from timeside.analyzer.utils import entropy, computeModulation from timeside.analyzer.utils import segmentFromValues @@ -32,7 +32,8 @@ class IRITSpeechEntropy(Analyzer): implements(IAnalyzer) @interfacedoc - def setup(self, channels=None, samplerate=None, blocksize=None, totalframes=None): + def setup(self, channels=None, samplerate=None, blocksize=None, + totalframes=None): super(IRITSpeechEntropy, self).setup( channels, samplerate, blocksize, totalframes) self.entropyValue = [] @@ -76,7 +77,7 @@ class IRITSpeechEntropy(Analyzer): conf.id_metadata.name += ' ' + 'Confidence' conf.data_object.value = confEntropy - self._results.add(conf) + self.process_pipe.results.add(conf) # Binary Entropy binaryEntropy = modulentropy > self.threshold @@ -87,22 +88,20 @@ class IRITSpeechEntropy(Analyzer): label = {0: 'NonSpeech', 1: 'Speech'} segList = segmentFromValues(binaryEntropy) - - segs = self.new_result(data_mode='label', time_mode='segment') segs.id_metadata.id += '.' + 'segments' segs.id_metadata.name += ' ' + 'Segments' - segs.data_object.label = segList + segs.label_metadata.label = label segs.data_object.label = [convert[s[2]] for s in segList] segs.data_object.time = [(float(s[0]) * self.blocksize() / - self.samplerate()) - for s in segList] + self.samplerate()) + for s in segList] segs.data_object.duration = [(float(s[1]-s[0]) * self.blocksize() / - self.samplerate()) - for s in segList] + self.samplerate()) + for s in segList] - self._results.add(segs) + self.process_pipe.results.add(segs) return -- 2.39.5