Beispiel #1
0
class ActivityDetection:

    def __init__(self):
        self.initted = False
        #self.nr = NoiseReduction()
        self.ltsd = LTSD_VAD()

    def init_noise(self, fs, signal):
        self.initted = True
        #self.nr.init_noise(fs, signal)
        self.ltsd.init_params_by_noise(fs, signal)
        #nred = self.nr.filter(fs, signal)
        #self.ltsd.init_params_by_noise(fs, nred)

    def filter(self, fs, signal):
        if not self.initted:
            raise "NoiseFilter Not Initialized"
#        nred = self.nr.filter(fs, signal)
#        removed = remove_silence(fs, nred)
#        self.ltsd.plot_ltsd(fs, nred)
        orig_len = len(signal)
        filtered, intervals = self.ltsd.filter(signal)
        #print 'signal lengths', len(filtered), orig_len
        if len(filtered) > orig_len / 3:
            return filtered
        return np.array([])
    
    def remove_silence(self,fs, signal, frame_duration = 0.02, frame_shift = 0.01, perc = 0.15):
        orig_dtype = type(signal[0])
        siglen = len(signal)
        retsig = np.zeros(siglen, dtype = np.int64)
        frame_length = int(frame_duration * fs)
        frame_shift_length = int(frame_shift * fs)
        new_siglen = 0
        i = 0
        average_energy = np.sum(signal ** 2) / float(siglen)
        
        #print "Avg Energy of signal: ", average_energy
        while i < siglen:
            subsig = signal[i:i + frame_length]
            ave_energy = np.sum(subsig ** 2) / float(len(subsig))
            if ave_energy < average_energy * perc:
                i += frame_length
            else:
                sigaddlen = min(frame_shift_length, len(subsig))
                retsig[new_siglen:new_siglen + sigaddlen] = subsig[:sigaddlen]
                new_siglen += sigaddlen
                i += frame_shift_length
        retsig = retsig[:new_siglen]
        return retsig.astype(orig_dtype)
Beispiel #2
0
class VAD(object):
    def __init__(self):
        self.initted = False
        self.nr = NoiseReduction()
        self.ltsd = LTSD_VAD()

    def init_noise(self, fs, signal):
        self.initted = True
        self.nr.init_noise(fs, signal)
        self.ltsd.init_params_by_noise(fs, signal)

    def filter(self, fs, signal):
        if not self.initted:
            raise "NoiseFilter Not Initialized"
        filtered, intervals = self.ltsd.filter(signal)
        return filtered, intervals
Beispiel #3
0
class VAD(object):
    def __init__(self):
        self.initted = False
        self.nr = NoiseReduction()
        self.ltsd = LTSD_VAD()

    def init_noise(self, fs, signal):
        self.initted = True
        self.nr.init_noise(fs, signal)
        self.ltsd.init_params_by_noise(fs, signal)
        #nred = self.nr.filter(fs, signal)
        #self.ltsd.init_params_by_noise(fs, nred)

    def filter(self, fs, signal):
        if not self.initted:
            raise "NoiseFilter Not Initialized"
#        nred = self.nr.filter(fs, signal)
#        removed = remove_silence(fs, nred)
#        self.ltsd.plot_ltsd(fs, nred)
        filtered, intervals = self.ltsd.filter(signal)
        return filtered, intervals
Beispiel #4
0
class VAD(object):

    def __init__(self):
        self.initted = False
        self.nr = NoiseReduction()
        self.ltsd = LTSD_VAD()

    def init_noise(self, fs, signal):
        self.initted = True
        self.nr.init_noise(fs, signal)
        self.ltsd.init_params_by_noise(fs, signal)
        #nred = self.nr.filter(fs, signal)
        #self.ltsd.init_params_by_noise(fs, nred)

    def filter(self, fs, signal):
        if not self.initted:
            raise "NoiseFilter Not Initialized"
#        nred = self.nr.filter(fs, signal)
#        removed = remove_silence(fs, nred)
#        self.ltsd.plot_ltsd(fs, nred)
        filtered, intervals = self.ltsd.filter(signal)
        return filtered, intervals
Beispiel #5
0
 def __init__(self):
     self.initted = False
     self.nr = NoiseReduction()
     self.ltsd = LTSD_VAD()
Beispiel #6
0
 def __init__(self):
     self.initted = False
     self.nr = NoiseReduction()
     self.ltsd = LTSD_VAD()